Early Google engineer and now Twitter Ads engineering manager Jeremy Ginsberg follows up on my New Grad Career Advice with some of his own thoughts. tldr: CS Degree Won’t Make You A Great Engineer, Your First Job Will
A CS degree is generally the best foundation for a career in software (for PM’s and SWE’s alike, IMHO), but it won’t make you a great engineer: your first 2 years working in industry are when you really develop your skills and learn best practices. Midstage startups are great at many things, but solid engineering fundamentals are typically less of a priority than rapid execution, scaling hastily-written servers to handle increased load, adding new features, etc. You’ll learn how to move fast, but it’s easy to pick up bad engineering habits.
The advantage of joining Google/Facebook/Twitter for 2-3 years is that you’ll be encouraged to develop more reliable systems, and learn how to build things which are designed for scale from the beginning. Each of these companies has more than a few brilliant senior engineers: they will be your guides and mentors. So when you’re interviewing, make sure you know who you’ll be working with. Interview your tech
lead or manager, and insist on working with the most technically accomplished team who will take a chance on hiring you. The strongest teams are often (not always) working on core servers, serving infra,
ranking/quality, or wildly ambitious and challenging projects. At Google, if the team has a bunch of “old timers” who’ve been at the company 4+ years, it’s usually a good sign.
Later, if/when you move to a startup, you’ll be ready to make the tough and important engineering decisions needed to grow your company.
P.S. I’m working with a few great teams on Twitter Ads, and we’re always looking for exceptional new grads. Email jeremyg-at-twitter dot com if you’re interested.