Is a graduate degree worth it for developers and how do you stay focused?
2020-01-10 Nick Larsen
One of my big questions revolves around the OMSCS degree- I'm trying to decide whether to pursue this now, or focus on learning (self-taught) to get a job and then head towards this degree once I'm hired. Do you have any insight into the benefit of this degree- did you feel it helped you code better and might be a help to entering the industry, or was it more a stepping stone further along your career path?
From what I've read online, degrees are a bit less important for programming jobs. Do you think being in the middle of the OMSCS degree would help with getting that first job, or do you think it's better to concentrate on a portfolio and programming skills and let those skills shine in interviews?
Thank you for your time and insight! If you have any general advice or anything else you'd like to share, I'm always happy to hear it.
When it comes to getting a job, the whole name of the game is convincing the company that you can do the work and that you aren't going to flake out on them.
OMSCS and any certificate schooling is a means of accomplishing the first one. However, as a developer you build things, so hopefully you can show those things you've built. That's why not having a degree isn't the end of the road, there are plenty of other ways to show your worth. Which is the best depends on where you want to go. If you want to get a job at a startup, usually prior startup experience or building something that people actually use (open source, some website with actual users, or a video demo of something you've built but cant share publicly) are all great means on conveying that you are a capable developer. Sometimes even just blogging about the things that the company works with is enough.
When deciding if a graduate level program from a top CS school is the right path for you, think about how you learn best. If you excel at self study but suck at writing papers on a timeline, then you might not want to go the graduate school route. If you need to be surrounded by other people who are learning the same things as you to lean on and study with, then graduate school is a much better idea than self study. Another reason to go the route of OMSCS is that accredited schools often offer job placement or opportunities for continuing work after graduation if you ask them to. At Ga Tech you can become a TA while you work on your degree and continue to be one once you finish. They also offer regular job fairs, and you can always contact your advisor for any other programs they offer.
The reason I went the OMSCS route is that I'm interested in artificial intelligence and although there are plenty of resources out there to learn from, I hit a wall in my understanding and I was unable to advance on my own. I needed to be around other people learning that stuff as well and it turned out to be a huge success for me. I learned so much at school, even about stuff I felt like I already knew very well. It was completely eye opening and I am indeed a better developer and scientist as a result of my time there.
The program did not actually advance my pay at all, at least not directly. My company offers no advantages to people who hold certain certificates, however even while I was in school I put my new skills to use on long standing problems we have here which we have started making progress on again. Did I need school for that? I did, yes, but someone who excels at studying alone could easily have found what they needed to the move the needles, or my company could have just hired someone else. And on that note, there is one additional benefit to getting a job before going to school, which is that your company might well be willing to pay for your school, like mine did, which was another wonderful benefit. That being said, OMSCS is quite affordable comparatively speaking. Assuming you pass all your classes and don't have to drop any, you'll get in and out for less than $10,000 US including the books and research shows that you will make up at least that much in additional salary per year on average with the additional credentials. I know I sound like a sales pitch here, it's because I had a lot of practice reciting this stuff from the research project I joined while studying there (sorry).
For the interviews, you are going to have to let not only your programming skills but also your problem solving skills shine through. At the point that you are in technical interviews your portfolio largely wont matter anymore. Write some code every day and your programming skills will get better, you'll have to study common algorithms and data structures in order to improve your problem solving skills. I wrote up the distinction between these skills on my blog.
Do what makes you happy. If writing front ends makes you happy, do that; if it's making iOS apps that turns you on and keeps you motivated, do that. Same for full stack, data development, machine learning, etc, just find a way to do something you enjoy and aggressively avoid the things that don't make you happy. For me that's artificial intelligence, I love it, I've written so much of it, mostly unpaid, because it really makes me happy. I'm fortunate that I get to use it every now and then on projects that I work on for my job and slowly but surely I've managed to shift my focus almost entirely to AI and ML work. When you're learning, try everything so you know whether or not you like it, then just do more of the stuff that you like and less of the stuff that you dont. I do realize you need to put food on your table, so I'm definitely advocating that you be pragmatic about it, but if as you do more of what you enjoy, people will find that joy infectious and it opens up a lot more doors than trying to optimize for getting a job that's easy to get now.
Please keep the questions coming,