mattcdrake
Joined 7 years ago
Joined 7 years ago
What you get from the program will depend on what you put in. The program itself is solid, but you'll definitely need to work on your own to become hireable - mainly leetcoding, real world projects, etc. I would highly suggest taking the more rigorous classes. There's an active slack that helped me to make friends, debug code, and workshop ideas.
All in all, it was worth it for me. It helped me get a job at Intel after graduation, so I guess it was a success.
I wrote a bit about my decision to do another degree on my blog, in case you're interested: https://mdrake.sh/blog/whats_next/
I'm also down to answer any questions about my experience in the program :)
As a prereq, try to make sure you enjoy the field you're switching to. This seems obvious, but I've met people that didn't. Learn concepts and build projects in your target field to make sure you're actually interested. I built some silly projects with Node & React, learned enough C#/Unity to make awful 2d games, and solved Project Euler/Exercism puzzles. I started 20x more projects than I finished, but finishing isn't really the point at this stage - you're just aiming for exposure. Once I knew what I wanted, I made a plan and started to execute:
1. I positioned myself to program as much as possible at work. In my org, this was easy - most analysts were already writing Python, R, or SQL every day. I took every opportunity to work on projects where the deliverable was working software instead of a slide deck. Almost every data analyst chose the opposite - so there was little competition for these projects. For example, I ended up being able to debug and fix a production C++ application, just because everyone else avoided the task and I offered to try. This step lasted about 1.5 years for me.
2. I learned and built things in my free time. I read books, watched tutorials, did algorithm MOOCs, etc etc. If I had to do it again, I would spend 1/5 the time (or less) following step-by-step tutorials. They definitely helped (especially with "unknown unknowns"), but stumbling through the silliest of projects helped me retain so much more. I did this in parallel with step 1.
3. I did a CS degree. I detailed my cost-benefit analysis in a blog(1), so I won't regurgitate it here. I don't think this is necessary, but being able to apply to new grad SWE jobs was a boon. I tried making the switch before doing a CS degree and got filtered at the resume stage almost every time. I think degree gatekeeping is dumb, unfair, etc. but it is a real problem constraint that you should consider.
I hope any of this helps. It has been a lot of work, and a lot more work to go...but I'm 100% sure I made the right choice. My email is in my profile if you think there's any help I can offer. Good luck!
- Spotify's "Discover Weekly" playlist - it's hit or miss and it gives me a lot of stuff I know about (and have listened to on their platform!). But, they also send me some cool stuff I haven't heard about.
- Genre specific subreddits - broad ones like /r/music aren't great, but more niche subs have a lot of good recommendations.
- Friends that also love music and know what I'm into - this one has the highest signal to noise ratio, by far.
In each episode, the affable host tells a story (or reads a catalog, or recaps a Star Trek episode, etc) in the most meandering, boring way possible. It sounds weird, but it's just interesting enough for me to stop thinking about other things - but not interesting enough that I want to stay awake. I highly recommend it to anyone that has similar problems.
Sorry if it sounds like I'm writing ad copy for the show, but it literally changed my life for the better.
Interestingly, it's written by Aaron Griffin - the former Arch Linux lead dev.