Ask HN: Does a formal education in CS matter?
I am attempting to complete a MS in CS part-time and am struggling with the workload alongside a full time job and hobbies. The main issue is I am not sure if this is a worthwhile endeavor at this point.
I am young, and my job role is already lightly CS-related (data). I have an undergraduate minor in CS, so I have taken Data Structures, Discrete Structures, AI, etc. I don't think I want to be a SWE, I am mainly pursuing this degree for personal knowledge (to enable side projects and satisfy interest) and to make my profile more appealing to large tech companies and startups.
Is a masters worth it? Or would it be more worth it to try to build knowledge through side projects / a blog if I can trust myself to remain committed? My response: It depends. My Story: Started life going after an aero engineering degree, built an airplane, then married a woman who wanted to live on farm. I thought: wind energy! Windmills are just gliders on a bearing, so I build a windmill to charge batteries, rose to be an early president of AWEA, then was asked: how do you know where to put these machines? Weather stations. Tiny cmos microprocessor-based weather stations. But farmers would say: can I use that data to predict fruit frost, water needs, pesticide needs? Welp: at that time in history, Byte had a piece on Expert Systems. I was programming my weather stations in Forth, so I transliterated their Basic code to Forth. That's when I learned about recursion. They don't teach that in aero classes. Which lead to going beyond expert systems into machine learning. But, having given a few conference papers on wind energy and on expert systems, my resume grew to the point where I got hired at an AI company doing ontology coupling in a B2B setting. I was working with Ms and PhD-level developers, and got along just fine Can you do that?
No clue.
The secret to my success was a relentless devotion to building stuff, always way over my head.i The answer is the same as the answer to whether you should consider purchase of an electron microscope or some other really expensive and esoteric tool. If you have something you plan to use it for, it's worthwhile; if you don't, it isn't. Education is a tool. Employers only care about your education to the extent that it enables you to do something that they need. If you're mostly going to be a web front- or back-end developer, the skills enabled by a MSCS may not be of that much interest to them. This is a helpful way to look at this thank you How can you possibly expect to get an answer to that question without details? Most people survive just fine without an MSc in CS so I guess it is not "worth it". The main question is your main motivation and the tradeoffs with respect to time, energy, and money. I think it would be helpful if you could expand on your motivations a little more. For your personal knowledge: do you find that classes enable you you to learn better? Have you tried self-teaching things or taking MOOC classes on your own? Does the structure help? What do you want to know that you don't know now (unknown unknowns notwithstanding), and how do you think classes would help? For making your profile more appealing to companies: what kind of work do you want to do? For example, if you want to do PhD level research work, you'll probably need a PhD. For that work you're interested in, have you found your current profile is limiting you? You mention you don't want to be a SWE, so it would be interesting to hear which work you _are_ interested in. Source: I went through the process of doing a part-time MSCS while working full time as a SWE (details at https://alexanderell.is/posts/mscs/ if you're interested) and have way too many opinions about it. I actually read your blog on this while applying :). It was very helpful and part of my initial decision was exactly your quote to yourself at the top of the post. I do think I underestimated the time tradeoff as I generally breezed through my undergraduate coursework. These are all good points to consider, and I definitely think I learn better & am more motivated when learning via projects, rather than the classroom environment. Work is more of a question mark, am on the lookout for what I want to do after having found analytics work unrewarding. Have considered SWE and product management, I just feel very _behind_ in the former (doubly so in research). Additionally I do feel I would generally enjoy a more social role. Regardless, thank you for the reply, this is a good framework for thinking about if this will be valuable or not. Edit: Additionally, reading your post again: really like the point about figuring out what you don't know. Right now there seems to be so much 'magic' that I cannot comprehend; definitely feel that satisfying that curiosity is one reason to push through. Ha small world! Glad it has been helpful :) That makes a lot of sense, and I definitely identify with that feeling of the magic. I felt like there were a dozen caves I knew about, each one with an intimidating name ("compilers", "networking", "machine learning", etc.), and before the MS, I knew these caves existed but didn't know much about them. Taking the classes was like a guided tour into the first sections of the cave (usually with a map and flashlight provided by the instructor). It was like they gave me a feel for both the general layout and the true depth of the caves, even if I only saw a bit of each one. It would take a PhD to fully explore just one path in one cave all the way to the end, but the classes helped me become more familiar with what each one generally looks like and how they're laid out. I think just as importantly, they also helped to give me the knowledge and tools to go deeper into each cave (or new caves) on my own and the confidence to know that I could if I wanted to. The only other thing I'd say is that software engineering can be more social than you may think, at least it has been for me, especially when compared to what I naively thought software work was like. I don't have the blog post written to link you to yet, but, depending on the company, it's definitely not just you and the computer. I'm pretty biased being on this side of the courses, but feel free to reach out if you want to chat more! I once tried to hire a guy that was basically a genius, but he didn't have any degrees. I had worked with him for 2 years at a previous company, so I had a very high confidence in his ability to perform in the team. My manager at BigCorp simply did not allow me, regardless of all my experience with him. But except for this guy, I would actually never try to hire people without CS degrees. So yeah, even if you can prove you're a genius and are at the same level or even above people with a CS degree, you may face some roadblocks. At another company, I had worked with some programmers without computer-related degrees (most of them were Mechanical Engineers) and they were not very fun to work with, they got confused on even some basic stuff. Would not recommend. CS degree does make a difference. If I wanted to hire someone for to do work that that is more scientific, like someone to do performance analysis and tuning, I would absolutely prefer someone with a Master's degree than someone without. I knew how to code before going to the university to get a CS degree. Formal education taught me a lot more about the field than just coding. I wouldn't hire a person without a degree. This is a pretty serious line in the sand. My company has definitely hired many people without CS degrees (myself included). What field do you work in? The problem when you don't have a formal education is that you don't know what you don't know. A degree is definitely worth it. Finish your degree.