“Any sufficiently advanced technology is indistinguishable from magic.”
There’s little I’ve found to be more true than Arthur C. Clarke’s famous quote when it comes to building software.
Left right and center you’re tempted with all sorts of magic. Frameworks and languages promise you thorough solutions with very little input on your part. “Trust in me and all your problems will melt away”.
Eschewing the magic of jQuery, I burned myself many times trying to write code that worked in all browsers. I wrote my XMLHTTP requests, pub/sub implementation and eventually a Single Page App using nothing but the things I’d written.
By the time I got around to discovering frameworks, libraries and all the wonders of front-end development, I didn’t need most of it. Nothing was magical.
It may seem like a true waste of time writing my own, knowing there’s code out there that does more than mine, written by smarter people than myself and relied on by bigger, more important sites than I’ve ever worked on.
Why did I bother writing mine? Because it was nothing magical. I didn’t think I was doing anything impressive.
By unintentionally training myself to see building in the browser as nothing magical, I gained the ability to spot high quality tools; what’s worth using and what can be done without.
Today I read a post by a much better (and famous) programmer than myself that captures the same sentiment.
I urge you to read it. He makes the argument for learning taking priority over magic much better than I ever could.