3 ms·
My background is in pure math. I've had a total of about 4 CS courses throughout 4 years of undergrad and 3 years of grad school. My first software role was 6
by pmiller2 7y ago
My background is in pure math. I've had a total of about 4 CS courses throughout 4 years of undergrad and 3 years of grad school. My first software role was 6 or 7 years ago, in SoCal, at a salary of $70k with no stock options or RSUs. I did have a bit of an advantage in that I had been playing with computers since I was 7, and started using programming as a tool in my 20's. I also had a copy of CLRS that I had studied large portions of, and that helped quite a lot, especially with concepts like Big-O notation.
If you're going to follow my example (and I'm not necessarily suggesting you do -- my path did not feel close to optimal), then you should start applying for those "junior for some super low pay" jobs, for at least a year or 2, as long as it's enough to support yourself.
What I did after that was move to the Bay Area and ended up taking a job at a startup for $105k and some worthless options. From there, it was a steady progression. Next job was $140k and some probably worthless options, until now where I'm over $200k total comp at a public company.
I'm not saying any of this to brag, either. If anything, compared to online salary and comp resources, I'm probably around the median for 6 YoE in the Bay Area. But, the median SWE comp is still really good, and you can live quite well on it while maxing out 401k's, paying off student debts, or whatever your financial priorities are at the moment.
If you go this route, be prepared for a lot of rejection looking for that first job. Some companies will see no CS degree, no tech internships, and no coding-related work experience, and just bin your resume. Even on my second job, I was finding myself getting rejected or ghosted for positions where I felt my resume was nearly a perfect match to the job description [0]. Persistence is the only way through.
Stuff I would advise you to do that I didn't do so well would be things like get a LeetCode premium subscription and start solving the problems. I don't mean "grinding LeetCode" like you see people bragging about on /r/cscareerquestions; I mean start with the easy problems and use those to learn more about programming, then move on to medium problems and use those to learn about CS, while also gaining insight into interview questions you'll see in the wild.
If you have friends in the tech industry who are at companies you'd like to work for, try and get some referrals. This can get your resume looked at, even if you wouldn't appear qualified on the surface.
If you land a position that's primarily coding/software-oriented, but it's not literally called something like "software engineer," consider putting it on your resume like "$ACTUAL_TITLE (software engineer)". Part of my problem after my first job was that the position title wasn't called "software engineer" even though writing software was literally all I did.
There's probably more, but those are the main things I can think of right now.