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.
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
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.
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.
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.
Now on to Lesson 5.