I'm a junior developer thinking about getting my masters in Computer Science
I'm a junior developer that went to a tech bootcamp and have been working as a frontend developer for a year and a half. I didn't study computer science in undergrad and now I'm thinking about getting my masters in Computer Science. Do you think its worth it?
12 comments
[ 0.26 ms ] story [ 35.7 ms ] threadIt depends on what your goal is and the type of Masters program you select.
Generally, there are two types of Masters programs: course based and research based. In the former, you take several graduate level courses in a variety of CS disciplines (programming languages, distributed systems, AI, graphics). With the latter, you generally take courses in your first year and your second year is spent doing research on a single project (with the goal to publish at least once). These courses involve reading the seminal papers and a scattering of modern papers and working on a small project (typically implementing something from one of the papers you’ve read).
If you’re considering a career in academia, do a Masters. If you want to understand the theoretical underpinnings of an area of CS, do a Masters. If you want to take time off to experiment with different aspects of CS, do a Masters.
If you want to become a better developer, a Masters may not help you.
The code you write in your Masters is generally done solitarily. You’ll work with other grad students on discussing papers and problems, but it’s rare to have two grad students working on the same codebase (the eternal fight for primary authorship). As a result, there isn’t much opportunity for you to improve your coding craft by having other developers off a code review. As well, a lot of the process and tooling employed by software companies (“Joel test” things like source control and continuous integration) are generally not applied because of limited capacity.
All of this said, in grad school I met students who were amazing developers despite having limited industry experience. In industry, I met amazing research minded people, abreast of the state of the art in research, who’d never gone to graduate school.
Coming back full circle, what is it you hope to accomplish with a Masters degree? Fuller and deeper understanding of CS? Better development and tooling practices? Answering these questions will help you determine if a Masters is right for you.
I'm looking at a Masters program right now at Pace University for Software Development and engineering. Here is a list of the courses I would take. http://support.csis.pace.edu/CSISWeb/docs/worksheets/GradWor...
Does that seem like it would be better than Computer Science?
In the end: I want to be a better programmer. I would do it concurrently with working. Does a program like the one I pasted above seem worth the student loans and time spent?
Merely changing my resume to say I started the degree generated more LI requests/cold calls. It definitely helped in that I would later apply and get accepted in the Google Summer of Code. People can go ga-ga over it if you have Google on your resume but YMMV. I finished my degree back in 2013 and I believe I now get more play from the connections I've made than my degree.
I would view a Master's as filling in the theory gaps that your bootcamp didn't have time to cover. It will probably make you a better developer but may or may not improve job chances but could be a good idea if you love to learn. I'd advise you to check out some of the Online Masters Degree courses from Udacity and see if you like them. You can decide later whether you want do a full program or just do them for free.
MIT's OpenCourseWare courses are an option. I used their material on Algorithms to study for my grad school algorithms class and got an A- so it's legit.
Disclaimer: I work for Udacity.
1) Keep working, dig deeper into topics along the way 2) Build side projects. One is a site that has open courseware organized the way a CS degree is. I feel like people need structure to learn effectively, but with so many resources available it can be hard. 3) Use the resources on the web and learn what you want to. There is a TON of info out there. Just pic a topic or two and dive into them.
So
I think it's important to set some clearly defined goals and avoid drifting through the ecosystem of JavaScript. It is too big, there is too much to do and learn in any reasonable amount of time. You(not you specifically) need to set some specific goals and etch away at them everyday. Approach it with a sense of urgency and be relentless at achieving those goals because it is much harder to learn difficult concepts on your own and without guidance so most people start then give up or get sidetracked.
I am very quickly approaching my first full year of front end development and although I have a solid github account full of projects, I've only recently realized how little time I've spent honing my skills at core JavaScript principles. This has worked wonderfully at getting me interviews and terribly at actually getting offers.
I am more of an amateur, so I don't mind. My only ambition would be to become more like this guy: https://www.youtube.com/user/Bisqwit
The abundance of online resoures is a mixed blessing - there is so much interesting stuff out there that it's enough to spend your entire life exploring all of it without realising your primary goals.
Think about it like this - if you are a doctor, it's not enought to say you want to be "a better doctor", or "a better sportswoman". Such goals are meaningless, because each and every one of us wants to simply be better. Does becoming a better programmer mean you understand the given technology better, that you code faster in a language of your choice, colaborate with others more efficiently?
You are talking about your career here so I'd approach the problem from the standpoint of the value you bring to the market. On a meta-level your general goal should be acquisition of such a skillset that would be valued and allow you gradually achieve such a high position that would secure your income for the years to come.
Going to a school certainly helps you limit the scope, time and effort you have to put into the task as well as it gives you a diploma that always could be of use. (The market is still unsaturated with coders of any level, but if the demand for manpower dropped a diploma could be important while competing for employment). Schools are also good about teaching more general problems such as math, algorithms and computability theory, these however have imho little use in front-end development.
Try asking people around you what things they think you should learn to perform better in the specyfic set of tasks you are dealing with on daily basis and focus on them. Your employer will be happy to hear you want to improve your skills.
Apart from that try learning something really challenging, something you really don't like doing (assembly? scala?), or something fundamental like TCP/IP or SSH. Personally my weakest point is math, so for me discrete mathematics would be best.
TL:DR Be specyfic in your goals whether you decide to go to school or not.
My analysis -- when I pondered the same question in my late 20s: no.
At the time, I even worked for an employer that would shoulder a good chunk of the cost, and I still worked it out to be around 20-30K out of pocket (this is at a decent, but not Top 10 program.) I'd need to take the GRE, and the course load would be fairly time-consuming to graduate in 3 years. I don't know what level of drive you have, but after I crank through a 10 hour day coding in my day job, I doubt I'm going to have the energy to attend classes, do homework assignments, and study for tests.
After all that effort, what do I really get? I'm well-paid already, and I prefer small companies that wouldn't really care what my level of schooling was as long as I can get the job done. Quite frankly, I believe that I can, and do, learn far more by reading online and playing with side-projects.
That said, I thought my BS in CS was well worth it, and if money was no object, I would be a full-time student pursuing a PhD in CS.
Would I do it again, hells yes but would I do it when I was a bit younger (I did mine late 20's) hells no. Go out and learn as much as you can working on your own projects or better yet step away from the computer and have fun. There is more to life than trying to be the best at computing. Masters won't go anywhere, you can pick it up when the time is right.
Peace
And you should ask yourself too 'WHY?'