They might be disappointed graduating post-ML bubble, especially if they have their hearts set on half a million dollar salaries, but they'll do fine with a PhD in CS.
Then again, I'm not part of the SV world, so YMMV.
They might be disappointed graduating post-ML bubble, especially if they have their hearts set on half a million dollar salaries, but they'll do fine with a PhD in CS.
Then again, I'm not part of the SV world, so YMMV.
What's hot in technology changes all the time. The smart strategy for an undergraduate is to:
1. cover the fundamentals
2. take the honors track (where the professor and the students want to be there)
3. avoid "hands-on" classes, which you can learn on the job as required
4. take at least 3 years of math. Really. Don't avoid it. If you can't do math, you can't do engineering or science.
As for me, my degree is in Mechanical Engineering, with a side of Aero/Astro. And yet I work on compilers :-)
Trivially, being good at frontend coding and at UX design (cognitive aspects, etc) helps. Being good at designing software and being good at talking the language of your business is super helpful, this what's required at the director / VP Eng level.
And yes, do take the math. After just 2 years of university math (as an embedded systems major, I had to later study myself to grab some missing algebra, some category theory, etc, to grasp SICP on one hand, and Haskell on another. This helped me become seriously better at writing and understanding code in industrial languages.
I have a theory it was because, "they are honors students, they'll learn the subject regardless, and we need to put this bad teacher SOMEWHERE".
I once got out of a differential equations honors class because it was very obvious the first week, that the teacher was awful. Later, my fellow honors students told me how "lucky" I was to have switched. They were suffering through the course, while I was learning and enjoying my new class.
Would you recommend a specific branch of math?(discrete, linear algebra, etc.)
Also, which math or general skills/fundamentals would you say has helped you the most when implementing compilers?