Learning a New Language

19 Jan 2018

Learning JavaScript-

I used the programming language JavaScript for the first time this past summer for my internship. Prior to this, I had only ever used C/C++ and was excited to use another programming language and learn what benefits JavaScript has to offer software engineers. Through practice and by completing the Codecademy JavaScript course, I became more familiar with the syntax of the language. However, the JavaScript files that I was creating all had very similar formats, so I never started writing a file from scratch. Since I only wrote in the new language for a specific purpose, writing the code became repetitive and I wasn’t able to gain experience using many of the functions that JavaScript is capable of. Despite this, I was still able to appreciate the simplicity of the language and how much easier it was to learn than C/C++.

After using JavaScript in ICS 314, I realized that I preferred it over C/C++ and noticed that JavaScript is much more readable and intuitive. I also became more familiar with using var, let, and const to declare variables and learned the uses for each one. One of my favorite things about JavaScript is that one can write a function that can return multiple data types such as strings and integers. Now that I know about global and block scope, I can see how coding in JavaScript could be dangerous if one is not careful with their variable names and where their variables are declared. I can see this causing confusion and hours of debugging frustration; however, the more familiar I become with JavaScript, the less likely I would make mistakes such as those.

Practice makes perfect-

So that cliché saying “practice makes perfect” isn’t exactly accurate when taken literally; conditioning won’t guarantee a fail-safe state of perfection, but it will greatly increase your chances at success. By applying the concept of athletic software engineering, one can do a few generic programming questions a day (i.e. coding workouts of the day) to learn new concepts and ways to solve problems. Even if some problems may seem rather simple, timing yourself to make it more challenging and seeing other people’s solutions (which may be more efficient than yours) are effective ways to become a better software engineer as well as provide opportunities to practice for stressful interview situations.