Ask HN: Makes sense to do Masters in Computer Science after 13 years experience?

I have been programming for 13 years now, which kinda makes me an old timer. I have mostly done web backends (little frontend) and DevOps, but nothing FAANG level.

I am starting to get saturated with building regular apps and doing DevOps (some of them quite cool and challenging). So I picked up Rust to get into low level systems programming. It's chugging along, but I am yet to make something cool with Rust.

I also try very hard to have an exponential personal growth. It's not been very successful so far. I do keep learning but not at a speed I consider meaningful.

This made me think, should I go ahead and pursue a Masters degree in Computer Science? Specifically in my interest subject of Distributed Computing. Is it too late for me to pursue it? Is it even meaningful given my info above? Has anyone had success with learning something Masters level without external motivation?

EDIT: I already have a Bachelor of Engineering Degree (non US)

41 points | by sidcool 1864 days ago

19 comments

  • gringoDan 1864 days ago
    For a low-risk way to make this decision, check out programs like Georgia Tech's Online MS in Computer Science. [0] It confers the same degree as the on-campus program at a small fraction of the cost. Take a class while working and if you like it, continue to pursue the MS (either with GT, or you could transfer the credits somewhere else). If not, drop out and you're only out ~$800.

    [0] http://www.omscs.gatech.edu/

    • js4 1864 days ago
      "

      Preferred qualifications for admitted OMS CS students are an undergraduate degree in computer science or related field (typically mathematics, computer engineering or electrical engineering) from an accredited institution with a cumulative GPA of 3.0 or higher. Applicants who do not meet these criteria will be evaluated on a case-by-case basis; however, work experience will not take the place of an undergraduate degree. The following are required for admission"

      Never mind what you have done in the last decade or so, hopefully you got a CS degree and had a 3.0 GPA.

      • throwawaymath 1863 days ago
        It does say applicants who do not meet those criteria will be evaluated on a case by case basis, though.
      • tropo 1863 days ago
        Yes, it's really quite a vile racket they have going on there, making people do a BS that is 60% to 80% useless filler gunk.

        I could understand stating that instructors will not slow down for unprepared students, and that people with a low or missing GPA don't get to sign up for classes until after other students have done so. That makes sense. Denying admission is improper.

    • hacym 1863 days ago
      If anyone is interested in this, I wrote up my thoughts on my first year in the program:

      https://medium.com/@mycahp/thoughts-on-the-omscs-program-at-...

    • minhaz23 1855 days ago
      Is 800 what you pay up front? When do you pay the rest, after completion?

      What's the cost of the entire program?

    • xfitm3 1864 days ago
      What would you suggest to someone who doesn’t have a BS? Or a HS diploma?
      • throwawaymath 1863 days ago
        How are you going to be admitted to a graduate program without an undergraduate degree? The cases I'm aware of where that's happened are so rare and unique they may as well have never happened.

        Even in those instances, I don't think any of them happened in the last decade or two. If anything it's probably more difficult than ever to e.g. impress the right faculty member and thus bypass graduate admissions these days (Lockhart did this after meeting Erdos at Columbia in the late 80s). The amount of bureaucracy has only increased over time. More importantly much of it has been systematically automated, so you longer even have a clear system for a human to bypass a requirement in exceptional cases.

        I think it's also hard to make a really good case for it. I know someone who was admitted to Harvard at 16 years old. Upon admission he already had two full years of undergraduate credit completed through a gifted youth program at Stanford. He finished his bachelors degree before he turned 18 and received his PhD at 21. He didn't "need" undergraduate education in the usual sense of the word, but he still got it (albeit in a non-traditional way) before going to grad school.

        It might sound harsh but when people like that exist and still get a bachelors degree, universities don't really have to make exceptions. There's just no pressure to do so, and in their eyes anyone without the qualification is an unknown quantity with an unfamiliar bureaucratic exception process tied to it.

        • wmil 1863 days ago
          An MS program won't take someone like that, but MBA programs quite commonly take in people without undergrad degrees who have an impressive enough resume.
    • sidcool 1864 days ago
      That's a good idea. What is the market value of the online degree? Is it comparable to full time degree?
      • ajhurliman 1864 days ago
        There's no indication on the degree that it's online, so the same as the on-campus degree. The only differentiation that an outsider could possibly audit is that the online degree only allows for a coursework degree, whereas the on-campus degree allows for a thesis-based coursework (or you could do a coursework degree on-campus too).
      • xfitm3 1864 days ago
        Quote: “It confers the same degree as the on-campus program at a small fraction of the cost.”
  • halffullbrain 1864 days ago
    It's never too late to learn as long as you're learning something you're interested in. Period. For me it was machine learning, which I started to study in 2016 (at age 43), despite having skipped math at Uni. But it was a lot of fun to learn!

    Also, in my experience, you won't pick up a language by doing something unspecific. If you want to learn Rust, start a specific project which lies on the border of what you know; let's say - a HTTP proxy, preferable with some feature that you think is missing. You'll very likely fail to produce something more useful than what's out there already, but you'll learn more than what would by following tutorials.

    Whether you should be pursuing an actual degree depends a lot on where you are and want to go -- but keep in mind that getting a degree is more than just taking the classes (learning environment, classmates, etc.). So, if you're primarily doing online classes alone, you might have a harder time than if you we're in a more typical university setting. So, find somebody in the same situation to use as a workout buddy!

    HTH!

    • hiei 1863 days ago
      Great response! RE: machine learning. Where would you say you are now in terms of expertise? Have you churned out some personal projects? Are you working on it professionally?
      • halffullbrain 1863 days ago
        I'm working on it professionally, but not with huge datasets in a FAANG kind of place, like the MOOCs would have you wish for.

        Once the ML promises hit the real world, where the demand for recognising cats is less acute, and datasets are much smaller (since they're so expensive to curate), it does get less sexy and glitzy. Specifically, I currently work on fraud detection at a government agency, using ML and graph databases.

        We have some people who do the ML stuff full time, where I'm the back-up and sounding board (as in I'm the senior/mentor)

        So, I wouldn't have been working there, doing that, if it weren't for my drive to learn on the side, I guess. ML is not my primary extracurricular interest anymore, but it feels good to know that I can code up a neural net, or discuss the tactics of building a model pipeline with (mostly) anyone.

    • sidcool 1864 days ago
      That helps. Thanks!
  • xs83 1863 days ago
    Personally I would say no. For me a CS degree is too general as post graduate study, You don't need to prove that you are capable of coding as (I assume) you have a decent online portfolio of your work / what you are capable of. You already have an engineering degree - If you are set on doing a Masters I would do it in something you are interested in, that is more specialised, has longevity and is related to your ideal future job (e.g. Data Science, Big Data, Distributed / HPC).

    I have recently taken on a Computer Science graduate who is doing a Masters in Data Science because we needed a good "All Rounder" with a focus on Data Science and Engineering.

  • Spooky23 1863 days ago
    IMO, it's a waste of time unless:

    - You have a bunch of money sitting around and want a structured environment to pursue your knowledge goals.

    - Your employer will reimburse expenses and is supportive you pursuing this for a few years.

    My wife was able to do the second option in her field and enjoyed the experience immensely -- she found school much more rewarding after having the experience of working and the wisdom of not being 18-22. :) But having a 75% reimbursement is what made it possible, there was no ROI to justify a huge financial outlay.

  • xemdetia 1864 days ago
    I'm someone who went back to school and what I suggest is that you take advantage of the knowledge you have learned. I would recommend looking at programs and see which universities have courses/expertise in things you actually want to accelerate your own learning. Going to a B university to take courses/be around students that are learning from an expert in a subfield is just worth it more than going to an A university or an easy university just for a Master's. I'm sure there's plenty of other personal things you have to balance but I am happier with my education mainly because I went to somewhere that specialized/had experts in things I specifically wanted to get better at where as if I took the 'easy option' I would have been less happy with the time spent v. personal growth.

    Also if there are particular courses you want to take it's worth contacting professors who have done that course in the past and make sure they don't have a sabbatical/retirement coming up. While this may not guarantee anything I have seen people disappointed by ending up in that situation where the particular lab ended up working on a major project and the number of courses available for master's students was less.

    You need to have a plan for what you want out of your Master's and then choose to do it in my opinion, just assuming a Master's is going to take you to the next level betrays the fact that a Master's degree is usually a first tier true postgrad specialization, where a doctorate would be a second tier, and postdoc/principal researcher/etc would be what I consider a third tier of specialization. You have to do the due diligence to understand what you are signing up for.

    • CyberFonic 1863 days ago
      With considerable real-world-experience there are opportunities to be an adjunct lecturer in your area of expertise whilst studying in a new area. In my experience you learn so much more about what you thought you already knew well by teaching it.
  • guitarbill 1864 days ago
    Be very sure you like research and academia. CS != programming.

    You haven't mentioned anything about teaching/mentoring others, or hobbies. Maybe it's time to focus less on your job?

    • sidcool 1864 days ago
      Thanks, I like academia, but would like to return back to industry.
      • guitarbill 1863 days ago
        Awesome. Knowing what you like and what not is half the battle.
  • CyberFonic 1863 days ago
    Been there, done that (well actually a PhD after 20+ years experience).

    It depends on your motivation, is it to learn a lot about something you are interested in or is it to earn more money?

    To clarify, masters degrees are about advanced learning about a specialised topic. Typically there is a capstone project which requires some research and a thesis. But for extensive research into a topic you pursue a PhD. The criteria being that you make a contribution to the existing body of knowledge. Whilst with a masters you learn the body of knowledge as it stands at that time of your studies.

    If you expect to earn more, then you would first need to research the jobs in your area of interest and see if any require a masters degree. Some companies prefer industry experience over academic credentials and others are the other way around. It wouldn't hurt to apply for some jobs in your area of interest and see what the feedback is.

  • sneusse 1863 days ago
    I would recommend to do that. In Germany (depending where you are located and the school ) I even could keep my job and just extend the study time to about double the regular time. I didn’t learn a lot of new stuff but I was „forced“ to repeat and relearn a lot I wasn’t using in a long time (math, proofs, low level electronics in my case). Doing that didn’t change a lot regarding my income but helped me to reflect on my daily work. It feels a little bit weird to be one of the oldest in the lecture though.

    Edit: Education is pretty much free here, the only thing you’ll have to spend is your time.

  • lucasosouza 1864 days ago
    Definitely pays off to go back to school. You will be in an environment where everyone around you, tenured professors and young students alike, are pushing hard to keep learning and growing. That will be specially true if you pick a research area in which the state of the art changes every 6 months (maybe distributed computing fits this description, I'm not sure, I work with AI/DL/RL).

    And if you are the kind of person that can only be happy while you are personally growing, the motivation is learning in itself.

    • sidcool 1864 days ago
      I for some reason, don't like AI/ML and its cousins. I could just be bad at them, but I get annoyed with the hype around it. There of course are people doing amazing things in it, but I don't see myself among them.
      • bad_news_bears 1863 days ago
        What grievances do you have with the field, outside of generally being annoyed? Just curious, as I work in the field.
        • sidcool 1863 days ago
          Most people I have met who claim they are AI/ML experts, usually do linear regression or use pytorch or Tensor flow to get results. I don't say that's not valuable. But I don't think they are experts.

          The hype has attracted manager like people who call themselves AI experts who have read a book on what AI can do and simply write blogs on the dangers of AI.

  • chrisseaton 1864 days ago
    Expecting exponential personal growth is obviously completely unrealistic and you’re setting yourself up to fail, so I’d rethink that goal for someone that’s steady and linear.

    Most masters are still teaching degrees - you’ll learn and practice using things but I guess you do that daily anyway?

    Maybe consider a MRes, MPhil, or PhD if you have a passion for creating things? I went back to do a PhD after working, but only four years in my case.

    • sidcool 1864 days ago
      Yeah, 4 years is less. 13 years is a lot more
  • alexcnwy 1863 days ago
    Do it if you are so passionate about the topic that you’re teaching yourself anyway but need to set aside a chunk of time to really get the momentum you want. Don’t do it if you’re hoping it will pull you out of a rut (there will be lots of boring courses and admin).

    Personally I found doing a MSc in Statistics after 3 years of working to be incredibly valuable. I think part of it was it gave me permission to view myself as an expert (although you don’t really need a MSc to do that as you can tell by switching on the news lol)

  • Endy 1862 days ago
    I will say that it's not too late, and that learning is always valuable. Now, whether you want to go to a school to learn, that's a harder question. In general, unless you're looking at jobs that require it, or you need the connections that a graduate program might bring, I wouldn't.

    And don't worry about 'exponential' personal growth. Linear growth is still growth and it feels better to succeed at a linear goal than fail at an exponential one.

  • inertiatic 1863 days ago
    I can't see it being worth the time investment if you're already working in the field and aren't going to try getting into academia. And I have an MSc myself.

    After you have a BS you pretty much know how to study and what interests you, so you get much higher returns on time investment by picking your preferred subject and reading a few books on it.

  • samblr 1863 days ago
    With the wealth of courses available these days on internet. I highly recommend taking them.

    And for exponential growth == Start medium level side project and dedicate yourself to grow number of users for it.

    There will be tonnes to learn from a regular job.

  • allenliuzihao 1863 days ago
    I would say if you want to learn stuff, university is by no means the only option. Nowadays there are so many resources on the internet. Also, a degree is only a credential and go as far as you make of it.
  • justaguyhere 1862 days ago
    I am in a similar boat, but instead of a generic CS degree, I am looking to get a degree in a narrower field - data science and blockchain hold my interest currently. Any course recommendations?
  • kingnothing 1863 days ago
    What's your goal? If you want to learn, get an MS. The opportunity cost of leaving the industry to go to school for 2 years is extremely high, though. You'll miss out on presumably somewhere in the area of $250k of income at non-SF levels for a senior-lead engineer.
  • sethryclaus 1863 days ago
    Surely "exponential personal growth" would be an artifact of the method of measurement? Your first task could be to hack that method to get an arbitrary conclusion of your choosing. I am totally serious. Bigly lesson, that one :)

    Remember how, as a kid, doing the wrong thing was thrilling? For me, that's what enjoying learning is like and it does often start from a willingness to be wrong or fail (ever ridden a bike into a bush - not as soft as you think at high speeds).

    For example, yesterday I ended up randomly understanding Godel's proof for his incompleteness theorem and it's significance because I was trying to find out why the validity of substitution/equivalence seemed to be an assumption of all logics (if anyone can point me in the direction of what I'm misunderstanding there, that'd be great).

    Now, almost everyone I've ever met tells me I'm crazy and/or an arrogant asshole depending on context. It does worry me but not enough to stop because how I feel is like a slow burning version of jumping off a cliff.

    It's scary and hard to get started but once you do, you experience something fleeting and hard to grasp and then a sort of calming shock as you hit the cold water and look up, somehow feeling relaxed about having a long way to swim to the surface.

    (Bear in mind that I'm paranoid about checking for rocks before jumping and that is somewhat analogous to learning - some of what you do is swimming around at the bottom diving down to see how deep it is or finding a vantage point where you can see the bottom from. It's also hard to trust someone when they tell you it's safe. All of that features in learning for me as well.)

    One of the things that happens if you do things like that is that you get fitter because you've been climbing up to the top of that cliff over and over. If you then have to do something a bit boring like, say, read the manual for Rust, it isn't very hard because you're stronger, fast have better endurance and are less likely to trip.

    What I'm saying there is that you may have started at the crappy end of the experience :) Go have some fun, find a motive and then worry about it.

    Re: distributed computing... If you want to do something cool, I'd suggest starting with Aphyr's blog and his Jepsen test suite.

    This is written in Clojure, which is JVM based but has a javascript version, ClojureScript.

    Lots of Clojure packages work out of the box in ClojureScript and last time I had a play the "Leiningen" package manager understood that and came to the party.

    From there, you could adapt Jepsen to testing a distributed system of your choice communicating via WebRTC and a STUN server running in a serverless browser environment.

    If you go straight to conflict-free-replicated-datatypes (CRDTs), I think that'd all qualify as cool - especially if you can automatically test them (I'd suggest spinning up multiple browsers using puppeteer).

    Remember that composition still exists and it's possible to achieve slightly less abstract programming conditions by creating a hard dependency on a reasonable context that covers some of the requirements of CRDTs.

    /endbraindump glhf

    • sethryclaus 1863 days ago
      If you really wanted to burn your eyebrows off, you could also use a no-serialization tool like Capnproto and implement it in Rust using ArrayBuffers (fixed in Chrome) to share state between background workers and the main thread.

      I think I read something about Rust having Capnproto and Emscripten compilation to web assembly these days.

      • steveklabnik 1863 days ago
        Rust does have both of those things, though Emscripten has fallen out of favor. There's a native LLVM target these days.
  • grandsui 1863 days ago
    Tangentially related: Would there be a significance difference between a Master's major in internetworking compared to distributed computing? I got into the former but have been interested in the latter.