Starting Anew
Over the last year, my studies have primarily been focused around the world of JavaScript. Of course, I've also spent quite a bit of time on things like HTML and CSS, but I would say 80% of my studies have revolved around some facet of JavaScript. Given that this was my first programming language, it has been a real struggle. I was just thinking back to when I first started out and how much trouble I had with building functions. I just couldn't wrap my head around the whole process. Everything seemed so alien to me, and I didn't have any kind of mental model to clarify things. I think it took me a solid 5 months before I really understood functions, and even now I'm still getting better at working on them daily. I really don't think JavaScript is something you can pick up in a year's time. Just like regular languages, you may be able to understand a language to a certain extent within a year, but to become fluent in that language would take a lot longer. I suppose if you already knew 5 or 6 languages, learning another one may come a little easier, since you might be able to figure out some similarities and relate that language to another, but learning just your second regular language takes a lot of time. Even then, the comparison to learning your first programming language breaks down, because learning your first programming language is the first time you've had to think in this way at all.
I think the turning point for me with JavaScript was taking Will Sentance's courses on Frontend Masters. Up until that point, I was really struggling and just couldn't wrap my head around things, but after those courses, I started to see the light. I still have a long way to go with JavaScript, but I figured I get enough work with it during my day job that maybe I could turn my focus towards expansion in my home studies. I want to be able to have a full repertoire of skills and be versed in more than one language, so I thought I would give Python a try. I picked up Andrei Neagoie's course on the subject on Udemy, and it's a really nice introduction. As I said yesterday, I've taken his courses in the past, and he always does a really nice job of taking it slow and easy. He explains things clearly and doesn't rush to assume you might know something. I think his courses are somewhat limited to the beginner stage of a topic, but that's ok; that's where I'm at with Python anyways. In this course, it looks like we get into some pretty advanced topics, so I'll hold my judgment until then. Also, I took a course of his on React a while back that was really advanced, but I attribute that more to his counterpart in that course than to him.
So far, we're just going over the very basics of the language. In fact, right now, we're just going over the different types in the language. If this were my first language, it might be more difficult for me to grasp these topics. I remember seeing these topics for the first time in JavaScript, and it was not easy. Because I have the base of knowledge now, I'm breezing right through. There are some differences in the syntax itself, like for methods on strings and arrays, you use parentheses instead of dot notation, but overall there are more similarities than differences. Also, some of the keywords have different names, like arrays are lists and objects are dictionaries, but no big deal. The way these things work is essentially the same, and I'm really having an easy time getting through this part of the course so far. I know things are going to get a lot more difficult, but I trust Andrei will pace it out correctly. My only concern is the syntax staying separated in my brain. If I start having to think harder about how the syntax works in JavaScript compared to Python, this is a bit of a net negative. I think I can keep the two languages compartmentalized, but I'm sure this is something everyone deals with when learning a subsequent language. Overall, my excitement for learning has seemed to come back a little bit, and I'm enjoying this course so far.
Until tomorrow!