Yet Another Language Learned

19 Jan 2022

Another One For the Record

When I first decided I wanted to learn how to code, I never imagined that there were so many different coding languages. I always assumed that coding would be straightforward to learn, maybe with a few different types of code. Several years of classes later, I’ve learned Python, Java, C, C++, and now JavaScript. I’ll admit that a few weeks before writing this, I didn’t know that Java and JavaScript were two different languages. I assumed that Java and JavaScript were one and the same, and that by learning one I would learn the other. But as I’ve come to realize, I should never assume that things will go the way I expect them to. After all, for someone who thought they would learn one or two coding languages at most, I’m starting to learn a fifth language.

Challenges of Learning a New Language

As stated previously, I’ve had years of classes and I have been practicing code on and off when not taking one. So one would expect that learning an additional language would be simple for someone with experience in several of them. That person would be both correct and incorrect. Certain parts of the learning process were simplified thanks to experience. The logic behind certain pieces of code were straightforward enough to follow due to either being similar to other languages, and the despite being a different language is similar enough to others that adjusting was simple. However, that similarity also proved to be an issue. Since the classes I took all use different languages, it can be hard to keep track of what I learn in which class. Certain aspects start to blend together, and I find myself attempting to use code that would work in a different language. The print function in particular took me for a loop. Despite seeing it many times in some example code, I still find myself typing system.out before realizing that I’m not coding in Java. Still, despite this setback, I’m confident that I’ll get the hang of it soon.

Learning New Things, Evaluating Old Ones

While the similarity between old and new are throwing me off a little, the thing that excites me the most is the parts that are completely new to me. Recently I’ve learned the features introduced to JavaScript with ES6. Some of them are familiar to me, like importing functions, while others are completely new to me, such as rest parameters. Whenever I’ve made a function in the past, I’ve always had to strictly define what parameters they can take. I’ve spent many hours in the past troubleshooting problem with my code because the parameters don’t match with the input, either because it’s the wrong type or there are too many of them. Now suddenly, I can make the number of parameters varied instead of having to either adjust the input or create an entirely new function with different parameters. It’s because of such past issues one would assume I prefer JavaScript over other programming languages. Honestly, while I think JavaScript is much simpler than other languages, I also haven’t had time to test the limits of what it can do, so I can’t say if I prefer it at this time. I’ve learned that each coding language has an advantage over others, so we’ll see how JavaScript compares to them.

Learning Under Pressure

Another thing that separates this experience from others is that I’m practicing athletic software engineering at the same time. I normally take my time with coding, so having to solve coding problems under a time limit is an adjustment for me. My experience so far has been fairly easy, which is surprising. An issue I try to work on is overcomplicating problems. Sometimes I see what I think is a problem and create this overly complicated solution for it, only to realize that the issue either didn’t exist or had a very easy solution. While it did happen once already, for the most part I’ve been able to work efficiently. That’s not to say that it won’t happen again, but doing these problems and managing my time helps me keep things simple. I think continuing like this will be beneficial to my learning, and I expect these problems to help me become a more confident and efficient programmer. Then again, my expectations aren’t always accurate, so we’ll see how everything plays out.