Monday, May 18, 2015

Order Of Operations



When I decided to start exploring coding as a career, one of my first google searches was "what is the best order to learn programming languages?" This led to a ton of forums containing arguments about what the best order was and I never really found a solid answer. I was recently reminded that I'm still struggling with this order of things and having to back-track in my studies all the time.

A couple days ago in a meeting with a tech startup, I was told a little bit about what makes their website run. They told me I would be welcome to contribute to their project and learn from experience but first I should learn a JavaScript library called ember.js.

I ran home, found an ember tutorial, and dove right in. Then of course I saw the warning: "Before learning ember, you need to understand AJAX and JSON." I needed to back-track a bit to get through ember.js the right way.

Throughout the past six months of self-teaching, I've found that back-tracking like this is inevitable. Without any sort of course structure or counseling, you're faced with the challenge of not only learning the material but also figuring out the best way to learn it.

It seems like there are probably about 70 popular JavaScript libraries in use now, and over 1000 listed on JavaScripting.com. (If you're reading this far after May 2015, there are likley more!)

There's no way to be familiar with all the libraries and frameworks, but it seems to me the most important thing is to understand their foundations. From what I understand so far, not only does it help to thoroughly understand the syntax of core languages, but you'll also have a general understanding of what's happening under the hood of each method, and you'll have an easier time debugging issues or finding efficient solutions.

If you're trying to teach yourself web programming like me, I've found this is the best order to learning programming languages:

HTML - learn the DOM (document object model), and how a browser builds a webpage.
CSS - learn how a browser styles and positions elements, and the cascading effect (look into OOCSS for best practices).
JavaScript - the foundation for all the other libraries out there.
PHP - necessary for a lot of server-side tasks like writing to files or databases.
SQL - useful for many server-side tasks and data persistence.
XML - A good introduction to what JSON does better…
JSON - opens doors to work with AJAX pretty efficiently.
AJAX - allows fast, asynchronous downloads of information from server.
JQuery - learn how plugins and chaining events work.

I've learned all these things in a completely jumbled way, going from one to the other, and back again. Knowing what I do now, this is the most logical order I'd recommend going in.

Of course with my currently limited understanding of the industry, I can't claim I'm an expert here. I might find myself backtracking again next week. I'm just excited to continue exploring what else is out there and make some coding magic happen!

No comments:

Post a Comment

Learning MongoDB from MySQL Background

Until this point, I've only had experience with using MySQL databases, but I've been wanting to try MongoDB because it has a fu...