Hacker News new | ask | show | jobs
by jujodi 1895 days ago
This will probably be an unpopular opinion but most software is just connecting a couple layers of abstraction to form a new, novel layer of abstraction that you get to design. You do this all the time with CRUD, what makes you think writing drivers in C is all that much different? If you know to any extent how Node's single threaded event loop works to process HTTP requests, then you know how drivers work too, there are just different best practices, APIs, etc. These things you mentioned are mostly practical and can be learned by doing.

That's different though than "Computer Science in general," which is far more theoretical, mathematical, and logical. These things, while they can be learned by doing, are much easier to learn by being taught. Paying someone to teach you C/C++ isn't going to make you better at Computer Science in General, it will just teach you a new programming language, which is practical. Computer science in general are things like distributed systems, discrete math, algorithms, etc.