Since when is this the worst case scenario for a CS grad? Last I checked, FAANGs value and compensate their engineers more than basically every other industry.
I double majored in economics and comp sci, then got a masters in cs/ml. I didn't plan on going to a FAANG until I realized a few things:
1. Staying in academia was clearly not an option for me. I still have friends who are miserable trying to get through their postdocs and I can't deal with the hobnobbery that some departments exhibit, the political infighting etc. I felt like if I got into the wrong program for a PhD I'd miss out on 5-8 years of my 20s and early 30s.
2. Did the startup thing. Found that most smaller startups are 90% talk and marketing and nothing really groundbreaking happens there. There are a few exceptions to that and if you're lucky enough to find one of those companies, good for you.
3. Other industries that don't focus on software often don't value SWEs the same way. It wasn't until a few years ago that the IT guy who maintained everyones desktops at a small financial firm and the person who wrote the internal software were the same individual. There is nothing wrong with those roles, but if you have the skills most CS grads acquire, you can specialize much more if you find a more software focused role
4. Starting my own thing isn't an option for me personally. I started some companies very early on when in doing my first degree (2009-11) and they failed, great experiences, don't need them again. If this is for you, then good, go for it.
5. FAANGs and other large software corps give you the structure to focus on work, like a laser, and then turn off and still maintain a healthy work/life balance. There are still politics and other bullshit to deal with, but your chances of finding a good team that minimize bullshit are high, in my experience. This doesn't happen at most startups where you have to play many roles. At a FAANG if you are really into a project, you're free to dive into it 24/7. If you're at a different phase in your life, say you just had your first child, you can take a step back and slow down for a bit. Nobody is going to ask "why haven't you pushed 50 diffs this week?" And obviously there is the pay.
He said this in the context of advising him to focus on algos and data structures. As in, if you work hard on those things, the worst case scenario is you'll be really good at whiteboard interviews. The point is that even the 'worst case' is a good outcome. Very different than talking about the worst case scenario for cs grads in general.
But that is not unique to FAANGs, and not unique to CS/IT. At some point you usually end up wanting more, either a more fulfilling job or a job that pays more. The former is probably going to have a human or societal component, the latter will drive you more to banks, economic institutions, insurance, government contractors, exchanges and similar jobs.
I worked for a gov't subcontractor (for the USAF) and a bank prior to moving to the bay and working at a FAANG. The opportunities to make 500k+/year don't exist, outside a few private funds that grind you to dust. If you are super well connected and you can start a military contract firm, you can make tons of money, but that has nothing to do with things you'd learn in a CS + X double major. Think tanks and other economic agencies don't compare with a good FAANG salary. You'll start at 50k and be lucky to make 200k by the end. 200k is a starting salary for a facebook engineer in most markets. I have two friends who are engineers at insurance cos, they certainly don't work there for the money.
If you're talking about jobs that don't involve CS applications, I wouldn't have any idea, but this isn't what OP was asking about.
Not everyone picks a job based one what "fulfills" them. Some people are trying to pay down college debt, support a family, support a lifestyle etc. And if what fulfills you working with very smart and driven individuals on very difficult and ambiguous problems, I think you'll enjoy working for a large tech company.
It’s up to you how you want to spend your life, but everyone I know is much happier after the left.
Yeah, I'm sure they are much happier.
Unless it was a planned stepping-stone all along, to land the real "dream" job and have the credentials to command a more magnanimous compensation than they would without that Google tenure.
If you come in the side door (shift sectors, side-learn upgrade your capabilities) you may have the experience to plan ahead like that. But this was about beginners so I suppose that doesn't matter in this case.
Presumably this is considered a worst case by someone who values other aspects of life more than money.
Sure, the FAANG companies are great for highly technical meta-work. And this is good for some people. Other people may prefer a more direct, less corporate, less textbook environment.
Not saying that's all said companies do, and some people (whom I lovingly refer to as "puzzlers") would enjoy the extra complexity and challenge for its own sake. But I wouldn't say the FAANG companies have any particularly inspiring missions. Not that such missions are easy to find, and they almost never pay as well, but they certainly don't seem to exist at FAANG.
The best one-line definition of FB I've ever read.
To be fair the FAANG companies fit that description the early/mid 2000s, back when their various technological niches were less developed. They've since become the establishment, and some like Apple/Google/Facebook have started the descent into downright decadence and complacency.
I spend most of my time coding on side projects, so as it turns out I'm not great at algorithms. Recently I've learned that I can only really do easy problems on Leetcode/codeforces etc, and I've been trying to improve.
Thanks for the advice!
This even applies internally, if your customers are other parts of your company.
MaxCompensation = UnitValue * NumberOfUnits
In tech companies, NumberOfUnits is commonly one million+.
In non-tech companies... it's much less.
So either deliver more value (petrogeology simulations!) or work for a specialized company that services multiple clients (healthcare software!). Be aware the former can be morally onerous, and the latter craven to protect their (relatively few) key clients.
That said, if done right, I find it way more interesting. Solving problems in {x field} with software means you get to learn about {x field} and software!
Just be sure to self-motivate on keeping your skills up to date. It's easy to get complacent and rust, given there's not the same competitive tech pressure (for better and worse).
With respect to algorithms - nobody starts out good with them (except Knuth), it takes practice. Don't give up. Also recognize Leetcode for what it is - practice. It's okay to do a problem poorly/not figure something out. It doesn't actually determine anything about your intelligence or trajectory in the field.
With respect to getting a job - I would think about programming as a tool. What industry do you want to use that tool on? I would think long and hard about that and consider double majoring/minoring in that new thing. Physics, math, business, whatever. Computer Science + some area of study where you can use CS for the betterment of an industry (outside of CS) will leave you in the best position to do well.
I would also suggest really focusing on Data Structures/Algorithms. Worst case, you'll be good at whiteboard interviews and can get a job at a FAANG company.
Network, hard. Your professors probably know lots of people, and your classmates (in your major) will go on to get jobs you might be interested in. Develop connections with the people around you, and become a person they want to work with in the future.
Above all, don't waste your college time. Actually give a shit about what you're learning. Try new things, make mistakes, have fun, but also work hard on your degree.