As always, to me this sounds like a real waste of time. I'd rather be working on a real project (working for people who value work on real projects), not practicing for an interview.
But that's me.
As always, to me this sounds like a real waste of time. I'd rather be working on a real project (working for people who value work on real projects), not practicing for an interview.
But that's me.
Of course, if a company is just building the stereotypical basic CRUD app to serve a maximum of 10K users total and maybe 10 per minute at peak, this probably doesn’t matter much.
However, companies that pay top dollar expect candidates with top knowledge, and that’s fair IMO.
Knowing how to solve the ten or twenty most common CS interview questions is not an indicator of possessing "top knowledge". It's an indicator that someone studied the cheat sheet to big tech interviews, and that's all.
The coding problems are part of the interview, but they're not the entirety of the interview. You can't pass a FAANG interview by cramming CS questions, unless you're maybe applying for a new grad position where previous work experience isn't factored in very much.
Having a bunch of basic, generally useful algorithms in recent memory does save a lot of time on the "general solution" side when you're working in a new milieu. (That saved time then gets consumed trying to find, configure, and tune anything in an unfamiliar cloud environment, but that's another kettle of fish).
The hard part is distilling the most commonly used and most helpful of these tools. But after doing so, I can now approach side projects where I got stuck on not having an efficient way to store and access data.
Knowing the start and limits of those algorithms gives me that confidence that what I build is close to as efficient as possible, and allows me then focus on pulling those efficient modules together.
As a self taught dev, its given me confidence in my expertise, and that pays off in job opportunity, self respect, confidence to mentor others, and actually completing hard projects that I could not complete before.
I don't like that that's how it is, but that's what the game is, and most people are in no position to change the rules of the game.
I also acknowledge that despite all its flaws, the SWE interview landscape is still better than say, that for lawyers, where if you didn't graduate from a top law school some doors are immediately and permanently shut for you.
You can still get into a top tech company without an outstanding pedigree. The closest analogue to the lawyer situation is that if you have a top tech company on your resume, I'd say many doors are opened (or opened much more easily) to you than someone without such name brand companies on their resume.
There's the key. Their marketing has convinced millions of current and future devs that they are the best places to work for; that they are worth doing silly things for just to work there.
The problem is that many of their "wins" are from decades ago (or more). Today, for Google at least, you can't even choose what you'll be working on. You'll be tossed wherever they think they need you. Even the best new hires won't make it to the largest salaries (dominated by veterans) and won't get to spend their 20% time (if they even get it) on the next gmail.
The best advice I can offer, about two decades into my career, is to stop chasing the shiny marketing material. They'll burn you out and replace you without blinking.
Almost every non-family owned business now hires developers (and data scientists), some for very good salaries in places where you're not paying thousands of dollars monthly to be someone's roommate.
But it's all relative. At least from this side of the fence, I see FAANG (and other top tech companies) have less downsides and more upsides, relatively speaking, compared to your typical non-tech companies.
The point is emphasized by friends and ex-coworkers who've jumped ship to FAANG and other top tech companies after working at non-tech companies like where I am. All of them seem to love it.
I am not sure what you mean by this, but at least a couple of years ago you did have the opportunity to talk to several different teams and decide which one you're joining before signing the offer. Is that not the case anymore?
That hit hard! Thanks for putting that in words!
The FAANMG+ life probably isn't for everyone, but it has definite upsides, and I imagine that's why most people jump through the interview hoops. It's not because they generally value toy programs over real projects.
Small companies cargo-culting FAANG interview processes on the other hand...
how else to you filter out the unlucky candidates :)
I can do both, perhaps even concurrently, but clocks are ticking and I’m worried I only have so many years before I’m pigeonholed where I am now.
If, and only if, you're hired. Putting all of that time into studying for the interview is no guarantee of being hired.
This seems like a "why go to college" type of response where there is some truth to the fact that so much of college is a waste (I've never used statistics or economics in jobs)... yet it's more than just college or CS questions.
I agree that a lot of story around interviewing is broken and that many of the questions don't relate to day to day jobs... like creating a binary tree or "how do you move a mountain" (IE: https://www.amazon.com/How-Would-Move-Mount-Fuji/dp/03167784...) - but they do show that you know CS basics, know how to learn them or have basic problem solving skills.
As much as people bemoan CS interviews... currently? They are a necessary evil to certain segments of the job market. Can you get jobs without them? Sure... just like you can get jobs without degrees - but your resume will get round-filed for a large number of jobs without a degree and you'll not make it past initial filters without knowing "basic" CS trivia like binary trees.
Whether you're okay with a limited job pool or not is on you... I don't have a 4 year... but I have a 2 year with many years of experience and I'm okay with some of the limits until I eventually get a BA. I still make six figures and know I can find a new job if it comes to it - as I've done repeatedly with limits. I've never balanced a binary tree for a job interview but I have "failed" online tests because I wasn't "fast enough" on code tests. I'm still employable and successful.
Ok. So not soft skills then.
Instead, it is very specific skills. It is not soft skills.
https://www.wikijob.co.uk/content/interview-advice/competenc...
> Soft skills are the more intangible and non-technical abilities that are sought from candidates. For example:
* Communication * Teamwork * Problem-solving * Leadership * Responsibility
So "interviewing" isn't a soft skill as I've always though it to be but I didn't call CS basics a soft skill - I called interviewing one. I was thinking more "a skill not work related per-se" - ie interviewing - while the expected definition is more... personality and interpersonal skills.
I'd consider interviewing "personality and interpersonal" but I can adjust my terminology.
Interviewing is an important skill for most people and interviewing in the programming realm, unfortunately, relies on CS basics. Generally you don't get one without the other.
https://en.m.wikipedia.org/wiki/Theoretical_computer_science