Barely a week goes by without someone urging us all to learn the ‘fundamentals’ before learning the latest framework or tool of choice.
I’ve been and still am one of those people. I believe it’s rewarding and helpful to learn the underpinnings of the skills you use most often.
But it’s very easy to take this assertion too far.
What are the fundamentals anyway?
Meekly, the novice React developer retires to inhale a stack of books on these crucial underpinnings. They return months later with an encyclopedic knowledge of the language constructs, syntax, semantics, nooks and crannies.
“Fool, you can’t be trusted until you have understood the depths TCP/IP and HTTP networking.”
Once again, the novice retires to their learning pod, but with a slight frown this time.
They return with thoughts of accidentally on purpose losing some of your packets in transit.
(You get the picture, we could go on like this for a while.)
“Hast thou now understood all there is to know about the Web Platform and its constituents and cooperators?” we boom.
“Why do you keep talking like that?” asks the student. We ignore them.
“Now, go forth and build the most amazing web application thus far brought into reality,” we continue.
“Er, OK. What framework should I use?” asks the novice.
(This all seemed funnier in my head when I thought it up.)
Anyway, the point is, I’ve become rather distrustful of this advice. The unspoken message is that you shouldn’t be allowed to build anything until you can pass an exam on bitwise operators and name all the HTML tags or something.
That’s not how I learned. And I don’t think it’s how anyone should learn to contribute to the web, professionally or otherwise.
I didn’t start out by picking up a book on fundamentals. I just built stuff and used the amazing learning resources on the web to take me to the next place just in time. Along the way I started asking questions about how certain things work behind the scenes, and looked them up or played around with them.
These focused little detours are where fundamental underpinnings really come from, because we’re motivated to find out at the point of need. They build over time and start to join up.
To ask others to build up fundamentals is disingenuous at best, and actively puts up barriers to entry at worst.
And I still don’t understand bitwise operators or TCP/IP.
What’s something ‘fundamental’ you’ve somehow managed to avoid learning about?
All the best,