Hacker News new | ask | show | jobs
by Calavar 1402 days ago
Oh man, I remember this attitude from a lot of my classmates back in undergrad. "Why are we using Java like dinosaurs? All jobs are in Ruby/Rails!" (Today it would be Node/Typescript instead of RoR)

It really amazed me how many students didn't see forest for the trees. Sure, the college could teach us RoR, but five years from now it will be something else. And sure enough, five years later it was all about Node. And five years from now it will be something else.

Typescript, Node, RoR, and so on are all just icing over the same underlying core concepts that have stood the test of time. Learn the concepts, and you will be an expert regardless of whichever icing is on trop.

When I took our databases course, our professor gave us problem sets with long lists of ridiculously complicated things that we had to write queries for in relational calculus. The problems all ways seemed so contrived. And why the hell were we writing them in some stupid mathematical notation instead of code?

But when I started my first job, I found that I had a much better understanding of how and when to use joins, derived queries, and subqueries than some of my colleagues, who used "where in" clauses everywhere. And if they got worked into a corner, they queried a huge chunk of data, brought it all in over the wire, then used a soup of procedural loops and ifs to filter out what they wanted. Unsurprisingly, their code wasn't very performant and was filled with bugs.

I ran into a similar thing when I got into an argument with a guy about JS on the server. He said JS was revolutionary because it allowed for async IO. And I said what's new about that? You could do that in Ruby too. The guy refused to believe me. He legitimately thought that because Ruby didn't have an "async" keyword that it couldn't do async IO. He knew the syntax sugar de jour on top of async concepts, but he didn't understand the concepts underneath. If fads move on from JS to a new language that has a different async programming model, what is he going to do?

You can learn SQL or Node from online tutorials or a coding bootcamp. And it will feel more useful than a college course because they give you concrete examples right away. But they will only teach you the surface dressing. They won't push you to understand the tough underlying concepts because that isn't easily done in a single article or a three week crash course.