
Ask HN: Makes sense to do Masters in Computer Science after 13 years experience? - sidcool
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.<p>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&#x27;s chugging along, but I am yet to make something cool with Rust.<p>I also try very hard to have an exponential personal growth.  It&#x27;s not been very successful so far.  I do keep learning but not at a speed I consider meaningful.<p>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?<p>EDIT: I already have a Bachelor of Engineering Degree (non US)
======
gringoDan
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/](http://www.omscs.gatech.edu/)

~~~
js4
"

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
It _does_ say applicants who do not meet those criteria will be evaluated on a
case by case basis, though.

------
halffullbrain
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
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
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.

------
voycey
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
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
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
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
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
Thanks, I like academia, but would like to return back to industry.

~~~
guitarbill
Awesome. Knowing what you like and what not is half the battle.

------
CyberFonic
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
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
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
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
What grievances do you have with the field, outside of generally being
annoyed? Just curious, as I work in the field.

~~~
sidcool
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
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
Yeah, 4 years is less. 13 years is a lot more

------
alexcnwy
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
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
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
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
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
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
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
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
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
Rust does have both of those things, though Emscripten has fallen out of
favor. There's a native LLVM target these days.

------
grandsui
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.

