Ask HN: Is a Masters in CS/Engineering worth it for a mid-career PM?

71 points by deeptechdreamer ↗ HN
I’m a PM & designer in his late 30s who is itching to get into deep tech (BCI, AI, aerospace, medtech, etc). I have no background in engineering and am considering pursuing a masters either in CS or similar.

Has anyone here done this mid-career? Was it worth it?

91 comments

[ 2.0 ms ] story [ 192 ms ] thread
(comment deleted)
If you're looking for a technical job, the easier path would be to find a PM/Designer job at one of your target companies and try switching to a dev role within the company. When you apply as a junior developer, your previous work experience will not be considered relevant. You'll be competing with other junior developers (who also likely don't have any relevant work experience) and it's much harder to differentiate yourself. Whereas if you want to switch roles inside a company, people who are familiar with your skills are likely to take a bet on you (if you have a good track record).

On the other hand, the masters program will introduce you to a new network of people, and working towards a goal with a cohort is much more motivating than learning by yourself.

I agree with your suggestion with one caveat: having a Master's degree when switching to a dev role would be very beneficial. Both in terms of how it looks on paper and in terms of competency.
A few questions to think about-

What are you wanting to do with the degree?

What are the requirements for the roles you're interested in?

Does the masters get you there or will you need to get some other experience along the way?

Do you know someone in the field who can point you to where you want to be and maybe skip some of the issues they had?

Are you willing to start as a junior technologist and work your way up again?

The cheaper option:

- Learn python by watching the freecodecamp videos on YouTube.

- Learn AI stuff (enough to build some really useful shit) by watching the FastAI course on YouTube.

Don't worry about not having any good ideas on what to build when you start out. Once you start taking the FastAI class, the lecturer point out many good ideas, which lead to your own ideas.

And you know, practice, build some small stuff, build some bigger stuff, talk about it, write about it, network, etc.

You don't quite say, but I get the impression you want to keep working as a PM, not a software engineer, but be able to do so in these areas?

I think a masters that gave you expertise in the subject area be better than a generic CS masters. These are quite different areas. For medtech (and possibly BCI) medical compliance qualifications might open more doors than CS. For AI a masters in CS focusing on AI would presumably be a lot of use. I have no idea about aerospace but its seems likely that a different degree would be better than CS.

If instead you want to become a software engineer, then by all means do a CS degree, perhaps one which allows you to focus on the deep tech domain that interests you most.

Its only value is to get foreigners a H-1B. Otherwise it's useless. Masters in CS won't help. Just go read the course content yourself.
Consider that taking 5-10 graduate courses and writing a master's level thesis or project will generally take all of your free time and a bunch of your savings over the course of two or more years. (I sure hope you're not thinking to take on debt for this!)

And while you'll absolutely learn some things and find yourself excited about some ideas in those couple years, you will forget almost all of the stuff your learned within a few years of graduating because you won't be continuing to get your hands dirty and won't be building on the knowledge. Technical knowledge does not "stick" if you don't use it.

If you're a hungry learner and have the free time and money, you can go back to school for whatever you want. This sounds adjacent to your work, at least, so that's something. But remember that formal education is only the first and smallest step in learning a technical discipline, and it sounds like you want to continue PM'ing rather than transition to a technical IC, so you won't be continuing on the later steps.

If you're just trying to be the best technical PM you can be in your industry, there are almost certainly far more time/cost/stress-efficient ways to do so.

Yes, I want to be a PM with deep technical understanding. What are the other more efficient paths?
A lot of people who are switching to SWE from other areas are advised to write a few personal projects.
Some options:

* Depending on your industry and its maturity, there may be courework or certification tracks designed for managers, etc (still expensive, but better focused)

* Regularly attend technical conferences in your industry. Sit for sessions and presentations on those deeper topics, work hard to understand them, make a point to follow up on what you're exposed to, make connections with people who can amplify your knowledge and keep you inspired, etc (broadly cheaper, and ongoing)

* Audit classes and seminars. Generally, you do not need to be enrolled in a degree program to attend classes and learn things. But you do often need to make a personal connection with whoever is leading it and get their permission. You may sometimes need to lay fees. (cheap, ongoing, deep; maybe not convenient if you're not near a suitable university)

* saturate yourself in the technical meetup circles in your area and do your best to catch up and keep up. As with conference, find friendly people who can help you learn and keep you inspired (cheap, ongoing, maybe not convenient)

* take ad hoc online classes. (cheaper, ongoing, available anywhere)

* do what other auto-didacts do: just immerse yourself. Buy books that look like they'd be fascinating, and if they end up over your head, figure out what other book or video or class might help remedy that, recusring until you find the starting point you need. (cheap, ongoing, limitless)

* etc

Technical degree programs are generally structured and priced for people who are pursuing the field professionally, but they are only a tiny fraction of the learning opportunities that are out there.

Yeah I think there’s a lot you can do that doesn’t involve the cost and rigidity of a degree program unless there’s some reason to do so. And the company is willing to cover it for whatever reason.

ADDED: I did go back to school for an MBA and used it to somewhat change careers. But degrees from good schools were less expensive at the time, I had sort of planned to do so, the degree was more of a gate for certain roles, I enjoyed it, and as I say it was a good way to transition into the computer industry which might otherwise have been hard.

Everything swatcoder suggested in his comment is good. I just want to add/emphasize:

If you don't actively stay up with the tech, your understanding will atrophy. Consequently, because you intend to remain a PM, your tech will never be as strong as someone who is dedicated to it and you need to be okay with that.

Another classic example for this are engineering managers: people management (like project/product management) is its own discipline with a deep set of skills, research, training, etc. To become a good EM means you _will_ sacrifice some of your technical edge. That "deep technical understanding" that good EM's maintain is built on a foundation of years as a practitioner and, even then, requires continual investment.

I don't mean to discourage you, I just want to ensure you have realistic expectations.

Given all that and given your goals, I think you should just ask yourself a question only you can answer: how do you best learn?

If that's in the classroom, then go get that masters (online or in person). If that's with hands on projects, then set aside time for tinkering and get going. Likewise with books, videos, meet-ups, etc. You know what motivates you and what techniques keep you focused (because you'll need that discipline).

Regardless, I wish you luck and enjoy the journey!

> If you don't actively stay up with the tech, your understanding will atrophy

Ex-tech turned PM here. This is totally accurate. But as you say, don’t be discouraged. When I was a tech, if my PM had taken the time to learn anything I would have been ecstatic.

My advice: learn at home. Set up some VMs and watch some YouTube. Install some things. Whatever field you’re in, install it. Play with it. Honestly that’ll put you well above your peers.

Other excellent advice in this thread re: going to meetups, conferences etc. Just absorb stuff. It takes a while but it’ll sink in.

I mean, just knowing what half the terms mean is half the battle...

“ people management (like project/product management) is its own discipline with a deep set of skills, research, training, etc.”

What reading or other recommendations do you have here?

Software Engineering in practice versus the curriculum in most Computer Science programs, undergraduate or graduate level tend to be very different.

If you want to become more effective as a PM through sharing a technical understanding, it would probably be better to gain first-hand experience of what teams are practicing -- That would provide a better understanding and empathy for what they have to deal with.

Contribute to open source! This is incredibly effective: you're thrown in the deep end and surrounded by skilled mentors. If you're respectful of the needs of the team, your project management skills will be super valuable for the project as well.
One other suggestion: ask SWEs on your team to explain specific issues you're discussing in technical terms. Engineers love to explain things, and as long as you're not interrupting their flow or wasting time in a meeting, I think you could learn a ton of relevant, technical areas.

This is no substitute for broader knowledge on core principles, but they will reinforce each other.

YouTube, and build your ideas. Preferably before finding out how it has already been solved.

Early on I just read books and built distributed systems and database engines from scratch.

These days I have been able to drink from the firehose on YouTube for a variety of subjects. Physics, chemistry, business finance, technical analysis (stocks), CAM, food production, and plenty more. I'm literally blown away at how much more efficient it is than trudging through college. If you put in the work you can go deep and gain skills very quickly.

> Consider that taking 5-10 graduate courses and writing a master's level thesis or project will generally take all of your free time and a bunch of your savings over the course of two or more years. (I sure hope you're not thinking to take on debt for this!)

OMSCS graduate. The program certainly ate up most of my free time for 2.5 years, but on the other hand, the whole degree was about $8k for me and required no thesis or capstone project--just grinding through 10 classes worth of assignments and exams. Also, it was 100% online, so that flexibility frees up time.

Theoretically, if you do 1-2 easy-ish classes per semester, you can minimize the free time impact. But I was less interested in the credential and more interested in the learning experience, so I took difficult classes and worked as a TA.

Caveat: I graduated in 2021 so things may have changed since then.

It's the same now. You can still take two hard/challenging courses together if you plan it right, though. Some courses release all the projects at the start of the semester so they're more self-paced, pair that with courses on a more rigid schedule that release one project at a time. If you stay ahead in the one class, then it's not much different than taking one at a time.
Good to know. https://www.omscentral.com/ and talking to other students helped a great deal with planning.

Two difficult classes I took together were Embedded Systems Optimization and Compilers, both taught by the same instructor and with similar concepts, so working on one helped solidify concepts in the other.

On the other hand, I took Distributed Computing during its first offering alongside Graduate Algorithms and was super overwhelmed.

Wow, I thought I was masochistic. What possessed you to take DC and GA (two of the hardest classes) together?

I took DC alone and found it manageable if you weren't a perfectionist. Compilers was the most difficult thing I've ever done, though that was mostly due to my own poor time management during phase 3 (generating the intermediate representation). I didn't complete phase 3, so most of my time during phase 4 (emitting MIPS assembly + implementing three register allocation algorithms + optimizations) was catching up.

Also, as a note, the very difficult classes like distributed computing and compilers are completely optional (though well worth it IMO). The only very difficult class that's required is graduate algorithms.

For those not familiar with OMSCS, there are some class ratings here: https://www.omscentral.com/

It was the first online cohort of DC so I didn't realize how intensely difficult it'd be. I'd taken GIOS with Ada which was gentle, so I figured DC wouldn't be significantly harder.

It was a good life experience even though I wound up sacrificing my 4.0 by a few grade points. In hindsight, had I realized how steep the curve would be for DC, I'd have pushed a bit harder to squeeze out a few more test cases, but I was pretty mentally defeated at the time and felt like I'd exhausted all of the ideas I had on the projects multiple times over.

I found DC more difficult than compilers by a wide margin because of the nondeterminism, debugging difficulty and trying to figure out what the test harness was even doing. Compilers involved writing more lines of code, but it was manageable, synchronous greenfield application design.

You don't have to take GA anymore if you choose the new specialization.

https://omscs.gatech.edu/specialization-human-computer-inter...

Neither HCI nor Interactive Intelligence require GA. In II it's one of two courses courses you get to choose between. I think a lot of people select those two specializations just to avoid it. II is also close to the ML specialization, so people who have trouble with or want to skip GA can move to it pretty easily.
Hm what's your evaluation of the program then? What did you learn, and did you learn what you wanted to learn?
I graduated this year. Great program at an incredible price, I think it was less than $7k for me after they reduced the fee. I didn't have a CS undergrad (Other stem) but was working as a software engineer and wanted to bulk up on basic knowledge with the systems track. Learned a lot of what I wanted and got sight on some weak areas. Would highly recommend the program. Hardest part was that it's actually very rigorous if you're going for As.
> you will forget almost all of the stuff your learned

Speak for yourself.

You are also developing a meta skill of being able to read technical material, and a fluency with basic concepts (algorithms, signals, etc)

Also sometimes learning something isn’t knowing exactly how to do it on the spot, but knowing it’s the right thing to look up when you need it.

Can you define "designer"? That means so many things in different fields. Like are you a web designer who knows stuff like React? A mechanical designer that would have a mechanical engineering background? Or a graphic designer thats more like an artist than an engineer?

Seeing that you're in the medical field, I'd say look towards finding a job with your relevant work experience at a company that overlaps medical with the kind of technology you're interested in (using AI to analyze patient records for example). From there, you can use whatever experience you have gained on your own (I'm assuming you've been doing little code projects at home) to sidestep into roles at that new company that better align with what you want. Then, use the company's tuition assistance to get your CS masters as it directly aligns with the work you'd be doing. Since you've been a PM and also have whatever software experience you've gained so far plus the 2 years bump from the masters, you can easily slide into a senior or lead role. You can use your PM skills while also getting your hands dirty.

Of course you could just go get your CS masters right now and then start looking at software engineer jobs with 2 years experience (assuming no prior engineering experience) but I'm guessing that could be a big pay cut for you and you'd be 40 years old competing with 22 year olds fresh out of college willing to work for nothing. Not the best idea if you've got a family to provide for.

Also, I hear you. You're having midlife crisis because you're afraid you'll be stuck in a job you don't like for the second half of your career. Don't worry. Take it slow but move decisively. Find employers that overlap your experience with your interests and navigate with purpose. Don't rush to get a master's that will do little to get you where you want. Worry about that once you've got your foot in the door.

Take a look at the OMSCS. Great degree, very cheap, and you can do it while you work.

https://omscs.gatech.edu/

Happy to chat about my experience with the program, feel free to email me: hn@sjer.red

Can attest to the program being worth it!
I'm in my 4th week of my first class. I'm 54. I have a CS undergrad from 1996. I too caught the ML bug and...this first class is kicking my butt but I'm LOVING the experience. Quality education, very inexpensive, and I can quit any time. I'm doing it for the love of learning and don't need to do it. It takes $100 to apply. Just go for it and try a class. I will warn you without a tech background this particular program will be tough I think. I'm struggling catching up w/ Math
Congratulations on getting back into it! What style of class or course of study did you choose? $100 seems like an accessible price point.
This looks like a winner to me as well. Personally I find university courses to be motivating, and unlike other programs this doesn't seem to be designed to rip you off or put you in debt. You learn the same good material as on-campus students, and you get an MS out of it from a good engineering school. The credential is meaningful because it requires completion of courses that are difficult but also designed to teach you the material.

If you have no engineering background, I expect you'd need to spend time doing prerequisite/undergrad courses beforehand.

The down side is that: it takes time and money, and nobody will give you a raise because you have an MSCS (though maybe it could help with changing jobs). But the actual knowledge and skills are useful if you can put them to use, and you may also find the courses to be satisfying in themselves.
The entire OMSCS program costs about $6000-$7000, depending on if you take one or two classes per semester.

That's not free, but it is an undeniably great value for the money.

At my workplace, its a hard requirement for advancement to get a MS/PhD. Comes with an automatic raise too.
We have a product analytics team where people have transitioned from being fully PM focused to being deeply data analysis oriented. It starts with using code-lite tools like Tableau and SQL queries then easily opens up into running data transform jobs with Python scheduled on a cluster. It would probably be easier and more financially remunerative to be at a company where you provide value in a product role, and continue providing that value as you slowly transition to a more engineering role.
For what it's worth, I don't think not having a masters degree would be an impediment to job progression, but it sounds like you might want one and are just looking for a reason.
Careful about aging out. At your age you have about 10 years before age discrimination will hit you hard at the individual contributor level if you haven’t moved into management. Maybe a dual master program to obtain the MS in computer science and an MBA simultaneously? That way you show deep knowledge of business and the technology.
There are plenty of us in our late 40’s and above who work as IC engineers.
I worry about this a fair amount and I appreciate hearing the success stories
I guess one of the points is - when did they start?
IMO aging out only really happens when you rest on your laurels and let your skill set lapse. Also happens at younger ages but we just call that being PIP’d. All my dev friends and I are mid 50s and doing fine not being in management.
There's an extra qualifier here, where are there Software Engineers past 40s that started in their 30s. I'd don't see many, if at all, that are basically at entry level and end up doing PM/TPM work (not that it's not important, but not worth degree for!)
Serious question...where is this happening? I've been a job-hopper all my life. I'm 54, and i've never felt i was being discriminated against. I keep hearing about agism...is it more in SV? I'm in south carolina
They just dont call back. Two spaces in your sentences? Your first job in the 90s? etc etc. Easy to filter you and you would never know it.
No. I would give the same advice to an 18 year old. I can't speak for aerospace, but can expertly speak on BCI, medtech and AI. And bank security.

What I would honestly recommend doing is a bootcamp for full stack, or even just backend or frontend, or native, React Native, etc. Start there. You must learn the basics of code first. Not only that, but you will need to know how a non-academic team works. Github for starters. Also if anyone ever tells you that "elegant" code in one line is better than "readable" code in 10 lines, punch them for me. That is not how reality works in the workplace. Clear variable names. Clear function names. An understandable architecture for what is trying to be accomplished. These are the most important things, not reducing a perfectly understandable algorithm to something akin to calculus.

I actually made some of the first BCIs for the PC a long time ago, but already was a certified architect in C#, Microsoft, etc. These days you want to go for Node/JS or Go or Java, etc. Once you learn one language it is simple to learn another, particularly C-based languages (JS/TypeScript/C#/Java/ObjC/Swift and so on - notably they use brackets instead of indents or words to denote functions and objects.

I used to do AI work, but mainly medtech these days like digital therapeutics, and paradoxically I also do bank security (startup I was working with got bought by a bank, thus the disparity between the two. hey, you make friends along the way, help them out, and occasionally a hustle becomes your job)

I highly recommended becoming intimately aquatinted with databases, both relational and otherwise. And learn how to optimize them. You WILL have to work with a relational database at some point and thus you will need to learn SQL, indexing, etc.

Along the journey of my life, I've become quite the physicist and like to think I have a deeper understanding of math than most people. The only benefit I see to a degree is you might learn some of that. Physics, signal processing (from an EEG for example), and so on, are unavoidable. HOWEVER, there are a TON of libraries that will do all of that for you, and along the way you will learn it. I highly doubt anyone writes their own Fast Fourier Transform (FFT) these days, but to use it you have to understand how it works, what it's giving you, and what it's not, in order to avoid egregious mistakes. I've had to correct many people on what a Fourier transform actually does, many of them who have related doctorates. There are some truly stupid highly credentialed people in the world. IMO even the wikipedia article on it has some serious mistakes.

Honestly? Everything you need to know you can learn yourself online very cheaply through online courses. Get yourself a mentor or two. People LOVE teaching others. A bootcamp, however, will land you your first job.

As far as getting a job, when it comes to programming or engineering, "the proof is in the pudding". I've interviewed hundreds of programmers. At first I read all about their achievements at MIT and all of what they are experts in. But, in the end, EVERY INTERVIEW will consist of a live coding session. 90% of the people I interviewed could not write a solution to total softball questions like, "Alphabetize this text" or "Parse this JSON". I would even let them google and they still couldn't do it. I've had people right out of bootcamp that were better coders than the most highly credentialed CS graduates.

Which brings me to my final notes: 1) Live code as much as possible. Learn to love it. I failed the crap out of my first live coding interview, but faced my fear and now I'm the only one in the bank department I'm in that live codes. As I'm sure you can imagine, product and design LOVE IT. 2) FORGET ABOUT LEETCODE or any other such crap. If I was ever given a leetcode question in an interview I would tell them point blank that people just memorize the answers to th...

I am an Electrical Engineer who transitioned into Software Engineering at the start of my career. I’m also under 30.

For context, I failed most of my Computer Science papers first go (undiagnosed ADHD) and I absolutely Hated (with a capital H), Software at uni.

Once I graduated though I picked up Python and discovered I actually LOVE programming and computers - the way uni was taught and my immaturity really put me off initially.

I’m successful as a Software Engineer, have sold my own Software, have built an AI app recently, but I have had some knowledge gaps.

I entered Harvards CS50 courses and loved them! You could try that instead of a masters? One can basically finish a full course in 2 weeks (on top of work and life)

I’d highly recommend starting there, rather than the mountain that is a Masters.

But if you are blasting through the courses, then consider a Masters at that point?

I have also been considering a Masters, but you have to ask yourself why?

- For the knowledge gained?

- For the cred?

- For employment opportunities?

I’d say you can get all of that with a typical software career if you also study on your own time outside of work.

But if you absolutely can’t shake the thought of doing a Masters, how about doing it part time so you can still have healthy finances?

Best of luck!

If you want to justify it, just frame it as a personal goal and do it. That way you don't have to measure any benefit from your career perspective, you did it because you wanted to grow as a person, and any benefits are a side effect.

Most people always think you can take classes online, work in side projects and get the same benefits. They are all right, except enrolling in a program will help you stick to it, and that is the whole point.

To be honest not really. For mid career pivots, your work on your resume counts more than a degree. You'd see more success transitioning organically by helping out with simple technical projects on the team and filling knowledge gaps with YouTube. Formal courses fill you with information that gets forgotten without practical application.

PMs with engineering knowledge are actually very valuable. I love cross-functional team members, since they always provide new perspectives. So I wouldn't call it a pivot either, more like a career boost. You'd need to have a supportive engineering team who'd be willing to let you get your hands dirty though, that'd be your bigger challenge.

I went through a similar change from PM(-T in my case) to SDE, and I can +1 the parent. The best way to make a mid career change is to find a job where the old and new role can overlap, which I how I did it as well. If you're currently working as a PM, try to get an engineering role for the same product. The engineering part will be new, but you will be able to leverage your domain expertise.

I will caution you that SDE is a job family that requires a ton of practitioner experience, especially at the higher job levels (and you likely don't want to transition to a lower level). The only way I was able to make this change was because I have a relevant college degree and because I started out my career as an SDE and always kept up to date. And even with that, it took me 2.5 years to make the job change official.

Still, don't let that caution scare you, if you really want the change and you want it for the right reasons. SDE is probably the easiest of the STEM disciplines to get into without a format education in the field.

And finally, another big +1 on the parent's comment about PM-T with technical experience being super valuable.

I'm not sure that, absent some serious credentialism, getting a degree makes a lot of sense past some point. Certifications, attending conferences, etc, may well and they're a lot cheaper, companies will probably be happy to pay for them, and they are probably mostly not time out of your pocket.

If a company wants to pay for an executive MBA program or something along those lines, sure why not?, but certainly wouldn't do it on my own.

29 years into my career. I have 1 semester of undergrad at UIC. Hasn't mattered a bit. The opportunity cost of a midcareer masters is high. If you're not already in tech, the degree might serve as a forcing function and do some matchmaking for entry-level jobs, but my guess is you could have hustled and gotten those same opportunities without it.

I have two kids who occasionally think about how they'd pivot from their undergrad degrees into tech work (probably after seeing me waking at at 11AM and working all day in my pajamas). I would steer them away from an MSCS.

The advice in here is broadly "no", but I think that is because you specifically called out CS. I think you should probably narrow that list of fields a bit more, because for some fields you would have no choice -- eg, if you wanted to do GNC (guidance navigation and control) in aerospace I think you'd _have_ to go back to school, because so much of the fundamental math is not something you could learn on-the-job.
If you want to learn for the joy of learning: yes

If you want to get a job at a competitive company / make a career change: no

Learning is always worth it, but you dont need to pay for a 2nd certification for that. Disclaimer - I did an MSc in Bioinformatics 20 years ago. I've been working in the software industry for 30 years. I contemplated doing a PhD, but up until now, there has just been multiple firehoses of free information online to absorb (plus many good books).
I am assuming your in a country where you have to pay for university courses? If not I've personally found that it's an interesting and worthwhile complement to development work. Working as a developer and taking some courses in areas where I feel that theoretical knowledge is beneficial while slowly working towards a masters. From a career standpoint I don't think the degree while help that much however the deeper knowledge might. But again this is under the assumption that the education is free.
A masters degree is excellent for gaining opportunities doing more interesting work, but otherwise is an extremely expensive way to enter tech.

I am a mid-40s developer without a masters, but have a former military and cyber defense background. Most of my programming experience is in JavaScript, which is super low barrier to entry and generally stacked with beginners and beginner experts that never get past entry level capabilities. At this point in my career, in this line of work in JavaScript, I have to make hard choices:

1. Make good money working with people that cannot really program but nonetheless consider themselves engineers with hyper insecurity because they are reliant upon a massive tech stack

2. Make less money working with more mature people doing different work

With that as my options I have to make some hard decisions about if I even want to advance