Pure & Not-So-Simple

Getting Started

I started taking a look at web design and development in January '12; Codecademy had just launched and claimed a simpler way for the average person to learn JavaScript, so it seemed like the perfect beginning to my independent academic endeavor. However, I would soon find out that this method of learning JavaScript was just as insufficient as other similar services.

Codecademy starts with the basics of syntax, as you would with learning any programming language, and advances with the typical functionality of JavaScript with loops, conditionals, and, obviously, functions. Along the way, you complete a few bits of practice code to prove a grasp of the content. The biggest takeaway from this type of learning is programming logic and problem solving, rather than how JavaScript works in the real world, and that is the biggest weakness as well. Just as the logic sections are finished, Codecademy immediately turns to JQuery for selector and event support, rather than giving a full background on JavaScript events and selectors, because it is a popular and simple library commonly placed hand-in-hand with JavaScript.

The Rant

That was a basic layout of what is wrong with trying to learn JavaScript in this day and age, at least on the web. JQuery is an awesome and powerful tool that many professional developers use to enhance experiences for all web users, but it is ultimately a tool to use with JavaScript, not in place of it. That line has been blurred, muddled, and obscured so much in the past few years that many job posts for developers/designers will include a preference for JavaScript/JQuery knowledge or even solely JQuery. So this was attitude I was surrounded by as I continued my quest into world of web development, ignorant to the fallacy I was basing my coding abilities upon.

It wasn't until I wanted my web development to grow past simple menus and using plugins to solve my problems and try my hand at making actual web apps; instead, I realized how convoluted my self-driven education had been. Those EdTech services were not the only ones at fault, I had also gone into this learning experience the wrong way. I had no practical uses or intentions for learning web development, so all the lessons were just for show. It took time for me to realize just what web development and proper design was capable of. But getting out of the ditch I had dug myself was more difficult than could have been anticipated.

Loss of Words

It is not that the information is missing, it is more like it is far spread out. There are a sparse amount of real lessons on the subject; albeit a load of books, mostly from the O'Reily franchise. But these books either cover a specific aspect of the language or additional tooling to use with it like Backbone.js or Node.js. It is rare to find a perfect resource that explains the exact practical use of JS in everyday websites and web apps without the inclusion of tools or libraries to spoil the fun. So the interested parties must search far and wide to fully grasp what native JavaScript is capable of nowadays, give it the old college try, and start getting creative, otherwise they can fall on the crutch of JQuery like so many others.

The Solution

Explore the far reaches and odd ends of the Internet to properly learn the basis of modern web development and understand what makes your favorite web tools tick. Fork a fancy project on GitHub and explore the source. Read as much as possible from articles, blog posts, and books by web professionals and experts alike. Come up with an idea for a simple web app and attempt to create it. After that is all said and done, then start exploring the use of additional tools and libraries to ease development while having a complete understanding of what it really takes to complete this task. JavaScript is an expansive, flexible, and powerful language for web development, especially in 2013, so it would be wise to take notice of how it operates now before you get left behind.

P.S. My favorite resources so far are JavaScript.is(Sexy), DailyJS, Professional JavaScript for Web Developers, and JSbooks. Try using CodePen to give your new code skills a shot.