A job at Google won't bring you even close to be able to learn all of that on the job. The real world version of most of such projects are orders of magnitude more complicated, take years to develop and have tens to hundreds of people working on them.
Since you lack both the theoretical and practical knowledge of writing a kernel, for example, you will not be designing the solution for it at Google. At best you will learn to implement a piece of it, and it will take years (think of working on Fuchsia with no prior kernel experience).
A (master's) degree isn't an automatic ticket to becoming the lead developer on Fuchsia, but it gives you the chance to learn the theoretical portion of the domain and apply it in a controlled environment, at an accelerated pace, under the guidance of a person who specializes in teaching (not jaded Joe who's waiting for his RSUs to vest), so you have a large foundation on which to build the real world practical skills on the job.
Even if you switch teams every half, you will still not be able to cover the breadth of the material in a master's program on the job, not to mention having to perform to get a good enough rating to stay employed, while having essentially no prior knowledge of the topic.
You could supplement by taking some courses or reading books after work, but this would essentially be a diy masters without access to experienced professors, that would take much longer and be several times more stressful and inefficient.
In many classes I chose what project to work on and I chose to push myself to work on difficult projects (e.g. I could have chosen to implement a basic stack machine with a small instruction set, instead I chose to implement an ARM CPU, which lead to many overnighters to meet the deadlines; the 3D game was my choice as well - I could have picked to implement an easy visualization in opengl).
In all honesty some of the intro courses were not worth the price tag, but the advanced ones I'd consider taking again just for fun. If your employer covers the tuition, then I'd say that any course taught by instructors at SEAS (Harvard's engineering school) is absolutely worth taking.
Both are valuable, but for different reasons. Whether pursuing a master's degree is worth it depends on your individual circumstances.
- Enjoying taking classes
- Interest in learning about breadth of material that I wasn't seeing as a FE eng (even at Google)
- Some minor concern about having CS credentials (less these days, but very much a concern earlier in my career)
- Interest in learning about academia and doing research
For me, there were enough intangibles that interested me, and importantly I didn't do it just for the career benefits, though I think it helped out (although with survivorship and confirmation bias, it's hard to say).> in your late 20s/early 30s, it pays off more to put in the hours at work and to start a family in what’s left of your days
Another reason why I'm not continuing with the part-time studies! I've joked with my wife that in my free time, we _could_ have kids, or I could do a part-time PhD for 5 years...
I thought about a master (my UG degree was electrical engineering) but I was wondering if it was just an ego thing that would take loads of time, cost loads of money and not really make any difference.