Thoughts on Starting Codeacademy’s Learn JavaScript Course

One of the hardest things as a freelancer is keeping your skills up. This year, I’m trying to invest time getting better at the JavaScript programming language. While I’ve tinkered with JavaScript for years, I’ve never been comfortable with it and have usually turned to simplified JavaScript libraries like jQuery to get things done when I have to.

A JavaScript function says "Hello World!"
TBD: Why does Firefox say “undefined” in the console when I do this?

My first step on this learning journey has been Codeacademy’s Introduction to JavaScript course. I don’t know how many posts I’ll write, but I want to at least document a few initial reactions.

I’m an Experienced Novice

I approach this course from a rather specific place. I don’t know how representative I am of the “average” person starting one of these courses.

For starters, I’m not completely new to JavaScript or programming, so the first few lessons were quite rudimentary. During those lessons, I would often find myself thinking “I know there’s a better way to handle this.”

Yet despite my knowledge, I don’t have a particularly strong programming background either. My formal computer science background is limited to a single college course, and I’m otherwise self-taught. It means I’m very proficient in specific skills in PHP—usually relying on WordPress to do the heavy lifting—but not well-rounded by any means.

Upgrading Syntax (But What About Browser Support?)

One of the strangest things early in the course was learning new syntaxes for old things I knew[-ish] like defining a function or declaring a variable. “Arrow functions” and let and const variable declarations are new to me beyond seeing them mentioned previously in the occasional blog post.

This is one of the things I hope to get out of the course, but it leaves me with questions too. What’s weird is that I happen to know those features don’t have universal browser support yet. In the case of arrow functions, Internet Explorer doesn’t support them at all. That’s an increasingly small share of the browser market, but it’s far from nothing.

While I understand the desire not to start a course with caveats on the limitations of what you’re learning, I find it a bit alarming they completely ignore it. I’m waiting to see if and how they’ll address the issue.

As I’ve written before, I’m a web conservative in my tastes for technology and design trends. If it were up to me, I’d rather learn bulletproof foundational ways to code JavaScript and then do a few add-on lessons at the end about future syntax improvements. Learning to develop is the hard part; syntax is easy. (More on that in a moment.)

Jumping Around & Getting Ahead of Itself

With four lessons completed, I also wonder a bit about the pedagogical background of the folks making the course. Don’t get me wrong, it’s an impressive site, and I’m learning a lot already. There are just weird things every now and then.

In Lesson 2 (I think), the instructions suddenly drop the term “refactor.” This means to rewrite code to be more efficient, flexible, or less buggy. It’s a widely known term among programmers, but isn’t this course partly for people who aren’t programmers? Seems odd.

Lesson 4 also suddenly started using concepts like loops and array methods that aren’t covered until Lessons 5 and 6. Again, I’m lucky that I recognized the structure and conceptually understood these things, but I can’t imagine everyone else would. To suddenly introduce code you’ve never seen seems odd. To not even acknowledge the fact seems worse.

What Am I Really Going to Learn?

I’m going to stick with this course almost no matter what. I’ve upgraded to the “Pro” account so I can do the extra activities and take the quizzes. (And to motivate myself since I’m paying for it!) I’m confident that I’ll learn lots of small things from this, and the projects will force me to practice.

In the article “4 Reasons Why You Shouldn’t Learn to Code from Codeacademy”, it mentions something I was really starting to wonder about myself:

The reason why Codecademy is successful is because it takes coding, and transforms it into addictive bite-sized pieces that are easy to accomplish, and offer instantaneous feedback. It’s the candy of coding.

The problem is, learning to be a developer often means that you have to learn about things that are important, but from the offset aren’t terribly exciting, or for that matter, easy. You don’t learn about the theory of programming.

This isn’t surprising, and I’ve had limited expectations for what I’d learn in this first course from the start. I know some of these fundamentals and have a high tolerance for things like troubleshooting. In that sense, I know I can handle this. But I also have large gaps in my foundational knowledge, and I wonder how much this will teach me on that front.

Healthy Skepticism

At the end of the day, I’ve realized I’m lucky in the way I can approach this course with enough understanding to sort through the skills and ideas I do and don’t want to take away from the course. As an example, the code examples feel cramped and could benefit from more vertical white space. I’m also on Team TABs when it comes to indenting. And despite introducing code comments earlier in the course, they’re strangely absent from most of the following code examples, and they tend to be randomly applied and sloppily conceived when they are included.

More than anything, though, I know that to learn to do something you have to do it. In that sense, Codeacademy has been perfect as it’s gotten me writing nothing but JavaScript for a good 5+ hours in the new year already, with hopefully another 40+ to come.

Now on to Lesson 5.

5 thoughts on “Thoughts on Starting Codeacademy’s Learn JavaScript Course”

  1. I recently powered through this course. I often noticed there were new topics introduced in the projects after the lessons. There was one lesson (I can’t remember which one now but was mid-way) that I could not for the life of me figure out the first project. After a few HOURS I finally gave up and skipped to the next project. The thing I was getting stuck on was explained and turned out to be super easy. I was through it in < 20 minutes, went back to the first project and was done with it in FIVE MINUTES! I couldn't believe it. So, if you find yourself super stumped on something try to not beat yourself up about it. :) I think part of it is they clearly have different authors for different lessons (and even within lessons) so there are different styles and voices in the instruction.

    I really enjoyed the course, even though it wasn't exactly what I was expecting. It was fun to take the time to learn/refresh! I hope you post more of your experience/progress.

    1. Teri! Thanks for this really helpful comment. It’s good to know I’m not alone in thinking this stuff, and I’m glad you found the whole course valuable. What’s next for you? Another JS course? The React courses that follow on Courseacademy?

      1. You’re definitely not alone. I had many of the same thoughts as I was going through it. Especially in the later lessons, they could make it clearer what is “new” and what is “old” syntax. Like you, I want to write code that’s going to work in as many places as possible right now. So as I was making my notes I tried to be careful to say which was which and sometimes had to go back to make sure I was clear on it. It’s good to know the old and the new and I’d be much happier if we could just use the new – it seems more intuitive to me – but that’s not the way of the web. ;)

        As for what’s next, I really want to do Zac Gordon’s Master Class at some point but it’s a big commitment and having open enrollment match up with when I can do it – well, that’s the main challenge. Plan B is React from Codecademy, though I’m hesitant because of the WordPress-React… tiff? I would rather focus on whatever framework is going to be a big part of WordPress in the future. Do you know if they’ve figured that out yet?

        1. I think React has been officially blessed in every way _except_ officially with WordPress. Gutenberg development seems to have picked back up when they would otherwise need to be redoing it with a new library. Grrrr…

          I hear great things about Vue and it seems more useful for integrating with smaller projects, so maybe Codeacademy will add a course in 2018. It’s certainly the hot new JS library.

          1. Ah, good to know! Last I really paid attention they were talking about recoding Gutenberg in something else (TBD) and I haven’t been following closely to that part of the story to know if that had already happened and I missed it. Seems like it’s too far along now to start over.

            That would be great. I like options and I do like the Codecademy learning style.

Join the Discussion

This site uses Akismet to reduce spam. Learn how your comment data is processed.