My Path to learning JavaScript: The story so far…

It’s been a lean period for this blog and plans to add extra sections and improve the design has been pushed to the back – way back. So in the meanwhile I thought I’d reflect on the path that I’d taken on learning JavaScript:

Often the road(s) taken to learning something is usually clear cut, unless if you happen to undertaking becoming a programmers (aka developer, coder, coffee conversion engine). Even with a particular language or technology stack that is not often quite as linear as one would hope.

In this case I want to focus on just a language, which happens to be the main topic of this blog (how dare I). So usually, people tend to become what they are either through planned coincidence – studying to be become a software engineer – or through some other non traditional ways.

I want to elucidate on how I have approached JavaScript as in the steps, tools and systems which have helped me – as far as I can remember and any pitfalls or fog of war that I may have encountered. So these are what I can retroactively recall –

Codeacademy

This is probably the earliest one where I started learning JavaScript. Most of you might be familiar with this – an in browser tutorial which walks you through the fundamentals, syntax and usage of JavaScript. It has a host of other languages and used to be completely free; currently offers a mix of free and paid PRO courses which lets you gain verifiable skills in a particular category.

My experience

I have had completed the full web dev fundamentals i.e HTML, CSS, JavaScript. But after the first run came out feeling like I’d gained or retained nada after it was done. I’m pretty sure most people do.

Fog of war anecdotes

One complaint I hear from beginners is how they tutorial, book, site etc they are using has come to an end and most inarguably feel like they’ve not learned anything. This is the experience of most, usually ones who’ve not had previous exposure to programming or similar… er, experience. It is normal, you can’t and shouldn’t expect to grasp something, let alone master it, after just one pass. Most of the pratice was having to complete a few lines of code with the rest being auto generated or copied from previous lessons.

Take away

What this should be is a primer, nothing more than an introduction to the topic. Browser based systems are great for on the go, quick stab at a tutorial or solving a few algorithms, but for the most part, everything is setup for you – the environment, files etcetera.
You aren’t going to be able to retain much where you only altered or added very little in terms of new content or ideas. But don’t downplay it, it’s meant to be an easier way for beginners to get used to the terminology and ways. Use it for what it is.

JavaScript in 24 hours

I’m pretty certain I’ve used SAM’s 24 hour series, at this point can’t remember if it was Java or JavaScript, pretty sure it’s JS. Either way, the outcome was I didn’t stick to it, wasn’t motivated, wasn’t appealing not sure what it was. It was the book’s fault, yeah that’s what it was 😉

My experience

Having had no prior proper experience to learning programming or computer science, I think I might’ve just glossed over it and couldn’t maintain the enthusiasm for this tome. Mind you this was back when there weren’t all the cool frameworks, ide’s, udpates to JavaScript, heck don’t even Node was barely even released yet. Mind you it wasn’t the wild unruly west of JavaScript days, but it wasn’t where it is now

Fog of war anecdotes

There was nothing but fog of war with very low visibility in all directions and the radius of view very small.

Takeaway

Often times you will come across books and material which aren’t exactly great and would have grandiose titles such as learning something in 24 hours – the print version of click bait. But it serves to remind that this is the nature of the landscape. I can’t definitely say if this book is good or not as I haven’t gone past probably the first half of chapter one so you’re intrepertation might vary.

One skill you need, apart from being able to learn to shorten the time to learn and absorb new things, is that you will inarguably also have to separate the wheat from the chaff.

Microsoft JavaScript book

Now this is probably the first one that I came across that had substance. It seemed content heavy but did delve into aspects and nuances of the language which would lead to more than just a superficial glance.

My experience

The step by step nature, as the title suggests, does walk you through not only the explanation but also practical demonstrations which helped to see what each concept was referring to.

Fog of war anecdotes

As a standalone take on a language, that is a much misunderstood as  reviled, this was starting to lay down solid foundations for future development, pun intended. Atleast I was able to see what JavaScript was at this point as opposed to the all previous attempts and stil coming away thinking the JavaScript was just an ephemeral, ethereal notion which I still couldn’t even manage to get a tenuous grasp on.

Takeaway

Regardless of what my previous experiences were and having only made miniscule advances and understanding from this book, it is key to note that only through persistence and repeated effort can one sometimes understand something, let alone master it. In terms of a free floating language as JavaScript this is more so.

 

Free Code Camp

If codeacademy was the drive down to the nearest village to get supplies, this is the trip up to the basestation of K2 to get started.

My experience

A very noble effort to not only instill the basics but also almost all concepts and theories that would be required to become a full stack developer.

Fog of war anecdotes

This site has given the best in terms of the lay of the land. The Curriculum section showcases the entire journey, broken down by sections and a rough estimate of the amount of time taken to complete them. Each section builds upon the previous one and has a very good section on JavaScript and Algorithms. A highly valuable resource for learning and practicing.

Takeaway

This site also suffers from the “I’ve completed it yet don’t know what to do next or remember next to naught” syndrome. The caveat is as usual with  code along sites – everything is setup for you and you might only be required to change or update certain parts.

There are projects at the end of each, some of which might seem insurmountable to those with very little experience or problem solving aptitude/attitude.

The algorithms challenge is strictly solve it yourself and has taken me atleast two iterations to be able to actually be self assured to be able to approach and solve them. The very first time I broken through 4-5 and then was stuck beyong relief. The next time I came back I was able to more easily break down, assess and try and solve it. Words of wisdom – console.log is your friend, for anything you think is happening, usually it’s not.

There was an issue of content updates inbetween sessions – usually for the slower of us who take several weeks, if not months, to accomplish each section as opposed to those who just seem to be able to complete it anywhere from 3-6 months, while also taking care of a business, children, side taco truck business, enrolled in med school, computer science undergrad, painting and this site.

So the problem was you would either have to go back to complete the newly added bits (for those of us who hate having an unticked box in the midst of other ticked boxes). Or there would be a complete revamp of the site (atleast 2 that I can remember) or even a completely different beta site which seems more coherent and worthwhile. End result being you switch and completely ignore the one you started. At this point in time I have probably restarted, from scratch, atleast 3 times (including projects) and one attempt at beta which seems to have been locked down so had to come back to the original. Ending ramble now.

JavaScript: Understanding the weird parts

This is one worthwhile course lesson which ‘takes a look under the hood’ of JavaScript. This isn’t a primer, but shouldn’t be considered so advanced that a novice can’t understand it. It focuses on concepts such as closures, dynamic typing, prototypal inheritance with brief primer to ES6 and finally ending in creating your own javascript framework.

My experience

Certain aspects will aid immensely in how you start programming or handling tasks, but that is in comparsion to practice you’ve been putting in. The content of this subject to the same as  all others, you can’t just breeze through – consistent practice and repeptition is needed.

You will need to take notes, try out the topics mentioned and revisit to reinforce the concepts mentioned here – I actually blog about topics to get my head around them and as references later on [1, 2, 3]. Especially when it comes to topics such as bind(), apply() etc which you might not readily see their utility or how you might incorporate into your repertoire, especially if you’ve never programmed at this level before.

Fog of war anecdotes

In terms of fog of war, this one would seem to shrink whatever increases in sight you have gained as the topics mentioned might not seem entirely relevant to whatever you might have encountered so far. But that’s just misleading as you’ve not yet experienced such advanced usages and capabilities. So the myopia you experience is only because you have levelled up and into an expanded realm where your latent abilities seem lacking in comparison.

Takeaway

Prior to learning all the fancy frameworks or even JavaScript on the server, i.e. Node.js, this is one very crucial area of the language that needs to be learned. I’m somewhat surprised that this isn’t mandatory part of learning JavaScript. Taking this, or similar courses, which delve deeper into how JavaScript functions from the perspective of its engine will serve well into any application of JavaScript.

Conclusion

This is just choice parts of my journey in learning JavaScript. There are various others that I plan on taking and will need to take, but hopefully this can serve in some way to guide others who might be starting their journey or stuck at particular stages or frames of mind.

By being consistent and journey through, even though where you are right now doesn’t make much sense what needs to be done and where to go will get clearer.

“One does not accumulate but eliminate. It is not daily increase but daily decrease. The height of cultivation always run to simplicity.”  Bruce Lee.