Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Is a Masters in CS/Engineering worth it for a mid-career PM?
71 points by deeptechdreamer 85 days ago | hide | past | favorite | 90 comments
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?




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.


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


>OMSCS.

From the Georgia Tech online course?


I googled and answered my own question:

https://omscs.gatech.edu/


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


Yes, I want to be a PM with deep technical understanding. What are the other more efficient paths?


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.


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.


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.


A lot of people who are switching to SWE from other areas are advised to write a few personal projects.


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.


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.


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


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.


Can attest to the program being worth it!


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


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.


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.


There are plenty of us in our late 40’s and above who work as IC engineers.


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!)


I worry about this a fair amount and I appreciate hearing the success stories


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.


I guess one of the points is - when did they start?


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.


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.


I transitioned to SWE later in life, I did a postbac CS crash course that got me automatic entry into the CS masters program at the same school. I did two terms in the MS program and then got a full time SWE job after an internship. Some lessons learned/logistics:

* I did pre reqs as cheaply as possible while working. I went to school full time after, the cost benefit was better for me because of the expected income jump. Either way, I worked really hard in school, keeping a full time job wouldn’t have been possible for me with a full load.

* If you do a CS program, allow the time to really enjoy the material. It will move fast. If you don’t enjoy a class, or a prof, find something better if at all possible.

* A MS degree has so far not been necessary (I didn’t finish the degree), but a significant amount of CS coursework plus an unrelated BA has absolutely been necessary for my SWE jobs (I work as a backend/platform engineer most of the time)

* If you’re doing it for the money, a CS education can do a lot to unlock better jobs— just be really clear with yourself that that’s what you’re aiming for. School involves a lot of hoops. Don’t do what doesn’t serve you. If you’re there for personal growth and learning, set yourself up financially and take the leap to go full time. You’ll enjoy it a lot more if you spend the time saving, take intro courses and then allow for a deep dive. Your interests and goals will shift over time.

* I really benefitted from landing in a program where I had a small in person cohort. I studied with my classmates a lot and made at least one life long friend.

Anyhow, good luck! It’s so exciting to go for a big goal.


I'm 40+ and I've just handed in my dissertation for a BSc in computer science. I've also just started an MSc in cyber security.

My advice. If you want to get a job just do courses that are going to teach you the practical things you need to know/are interested in. Academia is a waste of time unless you're going into academia, or an industry that requires academic skills.

All the stuff I can do is self taught, though these course have taught me the fundamentals.

If I knew then what I know now I would have gone a different way.


> dissertation for a BSc in computer science

Wait, dissertation? What country are you in?


UK. That's what the uni calls it.


I'm in a AI/ML masters and it is pretty cheap.

While it takes time to do, it has really held me accountable to actually go learn the things I really ought to be learning rather than being stagnant.

I'm a staff PM at a big tech company and I came to realize that nobody knew this stuff, not even the people we are hiring to implement it. Therefore I decided to go out and learn it as my skillset needed a refresh (I come from the mobile dev boom)


Mind sharing the link to the masters you're taking?


It is the UT Austin program. It is a bit more theory heavy akin to early Andrew Ng courses at Stanford.


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.


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.


I pivoted from hardware to software by getting a CS degree. I would only recommend doing it if the jobs you want require a CS degree. Even then, I would probably look around and find a company who doesn't require a CS degree, as the companies that do are becoming rarer and rarer. Rather than going back to school, I would use your current foot-in-the-door to try and get more involved in the technical side of things. There's usually at least one dev who loves to explain things in as excruciating detail as you want, though definitely let him know you're asking because you want to learn, not because you want to manage.

I'm sure that many people will disagree with this, but I also don't think there's a ton of value in an MSCS unless you have a BSCS or similar technical undergrad, or unless you study/prepare your ass off learning the fundamentals before starting grad school. A CS degree certainly isn't required to be a great engineer, but most of the great engineers I've worked with did have one. The underpinnings provided by a good BSCS program will make you much better at the design side of software.

If you want to do the prep work, between MIT and other online courses it's all out there for you. You can also audit great courses for cheap at most any school you choose. Some of the most helpful classes are Algorithms, Data Structures, Operating Systems (yes! knowing what the OS is doing underneath you is important for writing performant and reliable code), and Computer Security (you should at least be writing a basic buffer overflow exploit in this class, such as the classic "defuse the bomb" assignment).

So to summarize, IIWM, I would try to find opportunities in your current role to get deeper into the technical, then practice practice practice on your own. Build a non-trivial app that does something you need. Open source it and do a Show HN, and you'll get a ton of feedback, some of which will be extremely helpful for you. Also show it to your colleagues and ask for feedback. Then look for jobs that don't require a degree. You could reasonably be getting an engineering job in 12 to 24 months. If you really want to go for the MSCS, make sure to thoroughly prepare yourself with undergrad-level work. The MSCS will (or should at least) expect you to already have a base knowledge in algorithms, data structures, and other CS-related things, and while most people can get through the program without this, they will get far, far less out of it than they could have.


>I’m a PM & designer in his late 30s who is itching to get into deep tech

I've always told people who are interested in getting into tech: if you don't love it enough to do it on your own, don't get into the field. Not because I think they're dumb, but to excel, you need an almost unhealthy obsession with building software.

So, having said that, I would explore the internet for a topic you are interested in and invest some of your free time into it. Build something to the point you think someone would buy it (polished, not throw away code). Make sure it's tested and relatively bug free. See how you feel after that.

Having said that (again), I have an undergrad MIS degree and it gave me a good foundation and I learned the jargon, but the vast majority of practical stuff I learned, I learned working on personal projects at home and projects at work.


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


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.


I’ll try to be a bit more direct than other answers, so apologies if it is too much, but let me say that such a move would make more sense if you want to switch to a developer role. I’d say it is not a good plan for a PM role as honestly PMs don’t need the tech depth to be great and two years isn’t enough to be competitive technically with devs with 4yr degrees and 10+ years experience, etc. Instead consider taking an online data structure coding class to feel how it feels (coursera has good ones) to become technical. If you love it, you can choose to go further in that direction if you want. Hope that helps!


I would recommend considering the Georgia Tech Online Masters in CS. You can manage the work at your own pace. It is extremely cost-effective, and Georgia Tech is well recognized as a tech-forward university.

Btw, I highly I applaud your decision to go deep tech mid-career. I think there's not enough strong product people in deep tech. Even if you go back to product afterwards, your strength in understanding the problem space and available solutions will serve you well.

I'm also mid-to-late career PM transitioning back into deep tech. My path is a little bit different than yours. I'm doing a hard tech startup instead.


I would advise taking an IC role in deep tech. See what that takes, what knowledge you need. If you do need an MSc then do that. A couple of years as an IC will prep you to be a deep tech PM more than any credential.


Unless you're doing it for ease of immigration, I generally don't recommend it - a lot of University assignments use outdated tech and you end up not using most of what you've learned. The concepts are useful of course, but you could also read about them on your own time.

If you're doing it for ease of immigration though, I 100% recommend it, not just to get a work visa, but for a foreigner coming to the USA its a great way to get accustomed to American lifestyle, make friends in a new country and create a network and support system.

edit: spelling


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.


This is one corner of the educational system I never dug into. I know it's possible, so, I would ask someone who has done it, how exactly does one progress from "no background in engineering" to "a Master's degree in CS"?

Having done a Master's degree in CS, but with a Bachelor's in CS before it, the classes I took for my Master's degree would have been mostly impenetrable to someone without a bachelor's degree already.

So how exactly does that work?


It takes some doing. In my case (in the USA):

* Years of part time math classes. Math classes are sequential, I hadn't taken any college level math as an undergrad. I was working at a university, so I had the luxury of basically free credits, and lunch breaks where I was already on campus.

* A unicorn, no-longer-in-existence post baccalaureate program that covered the highlights of undergrad CS topics in 9 months. It was full time, and the entry bar was pretty low, but I had to take the GRE. Completion granted automatic entry to the MSCS program.

* Postbac is always an option, without a special program you'd just take undergraduate programs until you either earn the entry requirements for the MSCS program, or an actual second bachelor's degree. This can take years, because of course scheduling and sequential classes.

* I went to a state school -- sadly, many of the MSCS classes were 400/500 level, meaning there were some nominal additional assignments for the grad students, but you were otherwise basically just taking advanced undergraduate classes for special topics.

* All told, I spent a few years taking math classes one at a time, three terms full time post bac, and two terms in MSCS before landing a job. I don't see an advantage to finishing the MSCS at that school.


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.


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


If you have no experience in writing software, physics, or applying higher level math, jumping into a master's program without an engineering background will probably wreck you.

Lots of universities will let you sign up for graduate level classes as a continuing education student or certificate program. Sign up for one and see if you can keep your head above water. Even taking a Python class at a community college would help a lot.


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


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?


I'm nearing completion of my Cybersecurity Masters degree. It's fully online and takes around 20-40 hours per week of work. No thesis, but I do have a project/capstone course right now.

I don't have a computer science undergrad so for me the motivation was both in the potential for advancement, but also a chance to study the field I've been working in for the past decade.

School has some clear advantages:

* It standardizes taxonomies, frameworks, and methods. You'll be able to talk to others who are more ingrained in things like distributed systems or other deep fields and recognize the terminology and use the correct references.

* Things like ethics, establishing trust, and reliability of data are hard to learn "on the job" except in cases where you are directly prompted. These skills can be easily taught in a classroom setting.

* The efficiency of classroom learning is hard to beat. A well defined lecture and reading guide will show you just the right content to most efficiently convey a topic. Obviously this requires a lecturer to be good enough at their job to successfully perform.

Frankly, some of the arguments here against higher education are alarming. You should not be acquiring specific skills in your classes. You should have learned logic, algorithms, and how DAG works in your undergrad or through self teaching. Mastery of Apache Airflow is your own business, but much more straightforward with the aforementioned skills.

After continuing in my IT career and taking college courses, I have continued to regret my time as a younger administrator. I was given too much permission and it's only through luck and coincidence I never caused turmoil. Without any formal training I had access to so much data and potential to inflict problems. I can't see a world where that kind of malpractice is allowed to continue. In the same way that we ask forklift operators to guarantee the safety of those around them by passing a test, we should be asking our IT workers to prove their basic abilities before handing over domain administrator logins.


If you can secure a scholarship, I would definitely recommend going for it. You’ll gain a lot of knowledge and earn respect with a master’s degree. Whether it leads to something more depends on how you use your degree and the opportunities you create for yourself.


  itching to get into deep tech
What actions have you taken so far? Are you working through any books or online courses with actual homework problems?

For all the things you mentioned, a good start might be studying calculus. Even if you studied it in high school, you're probably rusty.

If I were in your shoes, I would sign up for mathacademy.com ($50/month) and commit 2 hours per day (14 hours per week) to studying math. This would both help you develop a study habit, and ensure you have a good mathematical foundation for the other things you want to do.

In my experience, trying to study things that require some math foundation (like all the things you've listed) can be really hard and demotivating if you're missing those prerequisites. It can feel like you're not smart enough.


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.


Meta comment, but didn't this get posted 4 days ago? Why is it showing as posted today with comments that I definitely saw before? This has triggered my déjà vu.


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.


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 these, they are not applicable to real-life application, and then I would walk out because that company is clearly not serious. 3) Whiteboard interviews are also going to happen. Super easy. Flow chart with how the frontend connects to the backend, branching enough into each until they know you know what you're talking about. 4) Don't forget the old school! If someone asks you what "PUT" means in a request and you don't know the answer, that's pretty embarrassing. Learn about basic networking, from old to new. 5) LEARN DEFENSIVE CODING: This will give you a leg up because I've never met a programmer who knew it who hadn't also been a hacker at some point in their life. Basically what this means is how to reduce vulnerabilities, but also how to straight up trick would-be hackers. For example, error messages. If you have an error message that says "License invalid", it will be ludicrously easy to find that string and thus where the license code is likely to be. Instead, screw with them. Say your program detects that a user has hacked into your app, if you simply cause a crash or exit that just gives them an easy way to find and remove the problem. Instead, perhaps there is a commonly used number in your app. Change it so they get weird data. Or maybe division of numbers is needed at some point. Change the divisor to 0 to cause a random crash. Some defensive coders will simply use a timer, set it to a random value, and then cause a crash in some way. Whatever you decide to do, use multiple defensive techniques, and always always screw with the hacker so they have no easy way to determine where to look to bypass your protections.

-------

Ok so I've overwhelmed you and you may be rethinking your decision. Don't. Jump right in! Learn as you go, keeping the above advice in mind, and you will succeed. Take a few courses on the basics of the actual reality of working in the private sector, so you know the basics of github, but make no mistake: show me a coder that says he doesn't google at least once a week, I'll show you a damn liar.

As far as aerospace, I've no clue. I have friends at NASA who are bored out of their minds, but the are all credentialed. Even so, the exactly University you go to barely matters, as far as I can see. Again, coding and the understanding of fundamental concepts is something that can and will be tested during an interview, and maybe even before the interview with a take-home project or a general phone call.

Above all, have confidence in yourself, and walk out of an interview that is stupid or has a bad culture. EVERYONE has imposter syndrome. Make THEM court you. I've straight up never gotten a job I wrote a cover letter for. Usually out of some company that is truly interested calls YOU. They can see your resume on LinkedIn like everyone else. Which reminds me, up your LinkedIn game big time. Yeah yeah everyone hates it but you start writing things, people invite you on podcasts, the snowball starts rolling.

Well that's all I've got. I hope it helps!

Good luck!


For clarity: do you want to be a software engineer, platform engineer, data scientist, ML expert or something else?


What causes 4 day old questions like this to resurface with the timestamps showing hours old instead of days?


Why would you take graduate courses if you have no background? Maybe undergraduate would be more your speed


Is this a repost? I swear I've seen a similar post recently with near-identical responses.


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!


99% chance you’re just bored in your career. You’ll probably be as bored in your new career, as most of work in any field is just a boring grind. It’s best to alleviate boredom without severely compromising one’s earning potential.


In a person's late 30's job prospects for professional jobs are primarily a function of the person's professional network. If you get a degree in CS, you will be one among many fresh CS grads. What will stand out is your age and work history. These will raise a natural and reasonable question "Why hasn't this person been hired by someone who has seen their work or worked with them?"

For someone whose job is going through 1000 cold call resumes a day, "No" has a low bar because the shortlist is only a small fraction of the resumes. It's not impossible. But by your late 30's "potential" is not a saleable asset.

Go to school to learn something you are directly interested in. If you want a job in BCI, Ai, aerospace, etc. apply for jobs in BCI, Ai, aerospace, etc. Good luck.


No, not worth it


Not really. The utility of credentials is falling fast vs recommendations, networking, and work experience.

If you want to learn some deeper technical things, I suggest online one-off courses or online mini-certificates.

On the other hand, if you are still in one of the few remaining societies where credentialism is still rampant, then you may want a Masters for the prestige.


Get an MBA




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: