I'm not sure why people find studying fundamentals in school useless. And I don't think ChatGPT is the answer to in-depth learning. My experience is that it is the fundamentals that are the most valuable that a college can give to its students. A smart person can learn anything on her own, but for an ordinary student like me, what school teaches is invaluable as it is so hard to learn such fundamentals on my own. A few examples in my line of work:
- Systems. Yes, you can read papers and case studies and what not. But it will not be easy for one to even tell which part of a paper is the essence, which paragraph needs deep dive, or which claim needs close examination. In a seminar, a professor will work with students to critique papers, to cross examine multiple systems on related ideas, to deeply understand the theoretical bounds and the practical implications, and etc. That kind of experience is just not easily available in other places. Besides, it's just miles easier for someone to tech Lynch's book on distributed algorithms, for instance, with properly designed hand-outs and homework than reading the tomb by oneself. Similarly, it's not that easy to grasp the idea of program analysis if one wants to get in the trench of writing a compiler backend. I got seriously confused in an introduction course on program analysis for all the concepts about lattices, partial orders, abstract interpretations and etc. It's hard to imagine that I'd have the same access or even energy to study such stuff out of school.
- High-dimensional stats and probabilities. Again, I'm sure a brilliant student can teach herself, but man, even finding the right accessible material can be hard, let alone digest the fundamental ideas and concepts in such readings without the help of my professors and classmates.
- Math, all kinds of math. I'm not sure about you, but math matters in software development. Understanding temporal logic and mathematical logic in general makes doing formal verification much easier. Understanding probability and queuing theory enables me to test and diagnose my systems at a whole new level. Understanding combinatorics makes it really easy to learn data structures and algorithms rigorously. Understanding formal reasoning in general makes it easy to follow the books and papers on distributed algorithms. Linear algebra and numerical optimization and calculus are also important but hard to learn by oneself if a person wants to tap into ML sys.
The bottom line is, fundamentals expand one's conceptual depth and breadth, as well as the ability to abstract and to dive deep, which in turn gives a person more choices. I didn't start as a system engineer, nor did I know that I would work on internals of ML algorithms. But when opportunities called, I could jump on it. And in the meantime, I regretted that I didn't learn more fundamentals when I could, which made it hard for me to dive to the desired levels.
Besides, even the fun of studying STEM topics is hard to get outside of school. I'm sure one can read about physics and chemistry and what not, but man, having labs and professors who can give you guidance... That makes a whole world of difference.
> And I don't think ChatGPT is the answer to in-depth learning.
I think ChatGPT is perfect for learning. Specifically because if you don't get something, you can keep asking it infinitely without worrying about seeming stupid. You could never do something like that in a classroom. Perhaps you could do it if your parents hired a special tutor with infinite patience for you.
In school my main issue was - my mind wandered for a moment - and now I'm all out of sync and without context. Everything from that point on is just a complete waste of time. And this happened every few minutes, so it's impossible to learn something in school.
> Math, all kinds of math. I'm not sure about you, but math matters in software development.
This is something that I largely disagree with. 99% of common software development doesn't rely on math at all. Or any knowledge of math. And I enjoy maths. Math was my favourite subject in school. Most I've touched maths is if I have tried to do game development or some sort of simulation software for my side projects, but everyday professional work - I have really never needed math beyond the simplest.
> Understanding temporal logic and mathematical logic in general makes doing formal verification much easier.
I think this type of logic is completely unrelated to what is being taught at school which is rote learning of formulas and NOT problem solving. What is being taught at schools is not true problem solving.
> The bottom line is, fundamentals expand one's conceptual depth and breadth, as well as the ability to abstract and to dive deep, which in turn gives a person more choices. I didn't start as a system engineer, nor did I know that I would work on internals of ML algorithms.
I see, if you are working more on that side, it may be true, that you are using more maths there - I've been doing mostly common full stack development, which really just doesn't require maths. While I've tried different ML things, which haven't really required maths at all, I assume you might need maths if you are developing some cutting edge algorithms. But usual ML that I have tried seems to be mostly about trial and error to find the correct parameters intuitively.
> Besides, even the fun of studying STEM topics is hard to get outside of school. I'm sure one can read about physics and chemistry and what not, but man, having labs and professors who can give you guidance... That makes a whole world of difference.
I've found it more fun outside school without the forced pressures and with natural interest...
I usually get stuck on "trust whatever it says". Maybe I'm wrong, but I find myself unable to get over the hump of trust in generated text at all. I shudder to think of the coming decades when a large portion of available information online is created from such systems.
I think there's a substantial difference between "Hey ChatGPT, could you explain Maxwell's Equations" and reading Jackson's textbook and solving the problem sets on the book.
Besides, even the fun of studying STEM topics is hard to get outside of school. I'm sure one can read about physics and chemistry and what not, but man, having labs and professors who can give you guidance... That makes a whole world of difference.