Fiddling with JavaScript

19 Jan 2018

Learning New Languages

Learning a new language is always a struggle. For example, currently, I am learning Japanese at the University of Hawaii at Manoa. I am currently at the 202 level and we are expected to be fluent in Hiragana and Katakana (the basic writing systems), and know over 200 Kanji. While I did grow up taking Japanese classes from elementary school, it took a couple of years of really practicing with it before I could say that I was confident in my ability to be able to write the Hiragana and Katakana tables. Out of about 200 Kanji we are expected to know, I can probably only write about 100 or so without having to look up the translations. Learning a new coding language applies the exact same way to learning a new speaking language.. The first time I learned Java in ICS 111 it almost seemed foreign. Learning all the quirks about programming and learning all the syntax to make the code work almost seemed impossible. After working with it for about a year and a half, I can say that I am very confident in my abilities with the language now. Currently I am learning Javascript, and with so many similarities to Java, it is surprisingly very easy.

Javascript vs. Java

Javascript is almost exactly like Java, so learning it is very simple. One of the biggest differences is that variables don’t need a type (like int or String), which is actually very convienient. There are some other differences from Java (mostly terminology and initializing variables), but otherwise because it is so similar, it was very easy to pick up and learn. To start writing Javascript code, I used JSFiddle. JSFiddle allows for a simple way to write and compile the code. With the click of a button, it is easy to view the result of the Javascript code in the browser’s console. Also, JSFiddle is very user friendly and even provides a tidy option to help with brackets. One of the main difficulties I had was trying to figure out how to output information. I had rarely used the browser developer tools before, and as JSFiddle has its own console, I assumed that is where the console.log function would print the data too, as I was expecting it to work like System.out.println from Java. However, after some googling and experimenting, I was able to figure out that it prints out to the browser console.

One thing Javascript has that Java doesn’t have is the use of libraries, such as underscore, that allow faster and more efficient programming. This is very useful in programming, as it eliminates the use of loops, which is something that was emphasized so heavily in previous programming classes. Javascript is also a language that is intuitive - it knows what you are declaring and how to represent it. It is a very smart language, almost like combining key concepts of many different programming languages into one!

Software Engineering Implications

From a software engineering perspective, I think that Javascript is a good language because it is easily learned and is very similar to the Java programming language. By looking around on the internet, many web applications are all designed through Javascript. Javascript also has “better genes” in the fact that it derivates from better systems than other programs language. It is also one of the fastest growing systems, allowing for more common use between programmers.

Javascript is taught in ICS 314 Software Engineering 1 at UH Manoa. One of my goals for this course is to learn how to perform well under pressure. Dr. Philip Johnson’s, the instructor for the course, has developed an athletic software engineering concept which is very useful for that. Using Javascript as the base language for the class, he has developed weekly modules and has a bunch of programming assignments for each module. On the last day of the module, there is a cumulative in class Workout of the Day (WOD) that tests your ability to incorporate the skills for the particular module in a timed programming exercise. Throughout the semester, I have found that my anxiety and stress levels have decreased dramatically, as I feel prepared for every WOD by practicing the practice WODs repeatedly. As Javascript is such an intuitive language, it probably already knew that I would decrease my stress levels dramtically by practicing repeatedly with it.