Hacker News new | ask | show | jobs
by swatcoder 642 days ago
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.

3 comments

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