Reflections of a Rookie Athletic Programmer

18 Jan 2019

      The first module of the class reinforced familiar concepts with but also presented new ideas. I am not a novice Javascript programmer by any means, but I am well aware that there is always something new that I can learn, and any practice, no matter how confident I may feel on a topic is beneficial. I do not often contemplate which areas of Javascript I know well and which areas I may have deficiencies, but when preparing for the WOD this week, I realized that I rarely work with Strings in Javascript, so this was an area that I focused on. Additionally, while I have taken online classes in ES6 prior to taking ICS314, I had not really understood when to use let and when to use const and was almost exclusively using let. Now I can see the difference between the two and have begun to go back through the code I have already written to update it.
      There are many things that I like about Javascript as a software engineering language, such as the incredibly dynamic uses for arrays, yet there are many downsides as well, particularly when working on a project with multiple people. Since variable types are not defined in the declaration statement, it is often easy to get confused when reading someone else’s code. I am quite happy with the addition of classes to Javascript, but now there are multiple ways to define objects, and this too can lead to confusion when collaborating. Still, despite all of the shortcomings, Javascript is an approachable language that over the years has grown into a full-fledged programming language that is far more than just a way to add interactivity to web pages. Furthermore, the applications can be run in any browser, on any computer, anywhere and that alone sets it apart from most other languages.
      Yet, this module was more than just an introduction to Javascript. It also introduced the concept of athletic programming, and where I was already familiar with Javascript, athletic programming was completely new. Athletic programming is the idea that programmers can train in the same way that an athlete does. A swimmer would never sit and watch tv all week long, and then expect to perform at a swim meet on the weekend. They know they need to train to succeed and so too do programmers. I am excited to have this opportunity to perform in the WODs each week, as I have always been one to take on a challenge. Furthermore, I understand that the skill of solving problems under pressure is a skill that will be tested in job interviews and for that reason alone, it is worth the effort to improve. Undoubtedly, this semester is going to be one of both intellectual and personal growth and I am excited for what is to come.