
I am not a recruiter. I am a software engineer. And as such, I know what it's like to be asked to whip up brilliant algorithms on the spot and then write flawless code on a whiteboard. I've been through this as a candidate and as an interviewer. Cracking the Coding Interview, 6th Edition is here to help you through this process, teaching you what you need to know and enabling you to perform at your very best. I've coached and interviewed hundreds of software engineers. The result is this book. Learn how to uncover the hints and hidden details in a question, discover how to break down a problem into manageable chunks, develop techniques to unstick yourself when stuck, learn (or re-learn) core computer science concepts, and practice on 189 interview questions and solutions. These interview questions are real; they are not pulled out of computer science textbooks. They reflect what's truly being asked at the top companies, so that you can be as prepared as possible. WHAT'S INSIDE? • 189 programming interview questions, ranging from the basics to the trickiest algorithm problems. • A walk-through of how to derive each solution, so that you can learn how to get there yourself. • Hints on how to solve each of the 189 questions, just like what you would get in a real interview. • Five proven strategies to tackle algorithm questions, so that you can solve questions you haven't seen. • Extensive coverage of essential topics, such as big O time, data structures, and core algorithms.
I made a free e-book here (https://emilwallner.gumroad.com/l/no-ml-degree), and I believe most of the key points are still valid, however, when I learned software engineering and ML, ML was a rather small field and tools like chatGPT and claude didn’t exist.
Imo, asking about a curriculum is the wrong framing, for me, it was more about how to find resources to focus full-time and being in an environment that increases my motivation.
I started learning software engineering at home taking courses, but I procrastinated too much to be effective, maybe I did around 10 hours of effective learning per week. For me, studying C at 42 (https://www.42network.org/42-schools/), a free peer-to-peer school was crucial, and I recommend something similar. It enabled me to focus 70-90 hours a week, and after 6 months I was good enough to get competitive startup job offers.
During my time, the FastAI course (https://www.fast.ai/) was the best practical AI course. I'd probably spend a week looking for ambitious projects made by recent autodidacts, and ask them which course they think is best now. And spend max 1-2 months taking the course.
As for picking projects and building a portfolio, the advice in my e-book is still valid. An ambitious but realistic timeframe for landing a FAANG job is 3-5 years. Once you have a solid portfolio, I’d recommend joining say a YC-startup or similar with ex-FAANG employees to get up to speed and references. My first gig was at the YC-startup FloydHub with ex-FAANG employees.
If you are self-taught it’s often easier to get on the FAANG radar by making highly domain specific portfolio projects that are core to their business, or making open-source contributions to their projects. The other route is applying for jobs, however, most people without an ivy-level degree don’t pass the screening stage. If you choose this path, plan for at least 6 month to learn the first part of Ian Goodfellow’s book (https://www.deeplearningbook.org/) using say ChatGPT as your tutor, also grasp the key content in Chip Huyen’s books (https://huyenchip.com/), learn cracking the coding interview, and get good at solving leetcode hard problems.
Like others have said, just some random on the internet, but at a minimum seriously find a wordsmith to update that resume and some recruiter will be contacting you. Also, more is not better no need to list the Test Tech or Mac Repair since other jobs overlap with those years and makes it seem like you were only part time. Everyone fibs a little bit no one is going to ask if you were part time or full time on a job from 20 years ago. Also, if you have self-employed listed make sure you have the tax# and LLC cert from the state as they are going to want to see that as proof to count as relevant experience.
I know you did not ask for my advice, but after reading your reply got me curious about why so gloom. As programmers we need to market ourselves and fake it till, we make it.
algorithm-optimization problems are relevant if and only if the company operates at significant scale; the "tricks" employed are not mysterious/tricky secrets, they're standard approaches (like dynamic programming == caching previous computations) for software engineering
Cracking the Coding Interview is a good book; the Stanford algorithms course on Coursera is excellent
the ideal interview would be to hire you for a day/week to do something real with the team...
Looking at my career, it tanked at age 44, in 2007 due to the financial crisis, and has never truly recovered. Part of this is the reality of getting old. Age discrimination is real.
I am now 60, and still employed, but mainly with contracts, and even those have been difficult to get, in part because I am not a good interviewer.
My approach has been to focus on senior software engineering roles, even though that could be considered "junior" given my decades of experience.
All I can suggest is that you cram for interviews for whatever roles you are hoping to get. Read Cracking the Coding Interview, practice solving problems on Hacker Rank, cram for design and behavioral interviews, etc.
Yes, I had to practice doing l33t code bullshit. It is part of how we have to play the game.