But—it isn’t all that hard to comprehend…if you have the right teacher.
Case in point: I began the learning process through W3Schools’ swath of chapters on HTML, CSS, JS—everything—and it began well. I nailed things down, I breezed through some of the sections with relatively little difficulty, but when I landed on JS, I hit a wall. I became stuck. And as best as I was able to figure, it was the site’s way of explaining what it was it wanted me to do—and why—that really slowed me down.
To their credit, I am new to all of this. I have little to no background in this field and what W3School was teaching me was pretty near the entire knowledgable base I had earned so far. People in my position picking up JS could be returning to it after years of having studied other programming languages. They may not be first timers, but—and this is a big but—something about the way W3School chose to teach that section was different from how they’d taught me so far, and the way it was taught, while perhaps working for someone with experience, simply went over my head. Sometimes, I would read a chapter only to be left flipping through sections unable to make heads or tails of the why for what I was doing.
That was perhaps the largest question I had while beginning JS. HTML and CSS, and the lessons I began learning them through, easily conveyed the reason for the things they were.
Want to change the color? Change the color value. What about the font size? Change the font-size value. Edits are clear and the reasoning is simple, but JS, as it was shown to me, was not quite as crystal.
I think when I became genuinely lost for the first time was when every new chapter had a section that went about like this:
Data was typed in, the “typeof” value was returned. For what reason? I don’t know, and as best as I was able to tell, it was never really explained to me. I understood the concept, but the why behind it never made sense, and every time I hoped a concept may begin to be explained, it seemed to be dropped for another concept entirely, one that, okay, I could type in but, again, made little to no sense with regard to the reasoning.
I don’t know. Maybe it’s my fault. I’ve been burning through some of this stuff so quickly that maybe I missed some vital information as I made my way through JS, but I don’t think so. Sure, a read back through (or 20) may help, but I still would be lacking the why. That’s why I’ve gotten really into the way Codecademy has been teaching. Here is one of the first pages in the JS section:
It isn’t that the information was never presented to me before, but—I don’t know. Programming is a complicated beast. There’re a lot of moving pieces, a lot of language that can be quite easily thrown around to confuse a person when used out of context, and I really appreciate a lesson taking the time to slow me down and say, “Hey. Understand this first, then we’ll move on.” Programming is not simply a string of letters, numbers, and phrases with nonsensical punctuation sprinkled in, but rather—it is a charge to solve a problem, to identify in what way a problem can be solved and do it in a way that not only makes sense to you, but to everyone involved. Coming to understand the language is well and good, but lacking a working knowledge for the why behind the words is, more than likely, what would keep anyone—would keep me—from ever being a programmer.
I’ll be sticking with Codecademy for awhile. What it’s teaching me isn’t vastly different from what I was learning elsewhere, but the way it lays out the information, the way it breaks it down, works for someone like me who is only just beginning.