When I first encountered computer science, I thought that Java was the abbreviation of JavaScript. Now I understand that they are two completely different languages. Although I wouldn’t get too ahead of myself and say that I’m an expert on these languages. The truth is that I only know a few of the many differences between the two languages. I am still new to JavaScript, so I often find myself relating it back to my first programming language, Java. The syntax of the languages are very similar, so it’s easy for me to pick up, but also confuse them at the same time.
I noticed a major difference in the flexibility because Java is more rigid and JavaScript is more relaxed. I was surprised when JavaScript didn’t require a specification for variable type in the parameters of the a function. I enjoyed the flexibility because I didn’t have to worry about variable types and I could return the necessary variable type as needed whether it was an integer or a string. Because of this flexibility I think JavaScript is a good programming language. Software engineers can worry about the bigger issues like time and space complexitiy rather than the smaller insignificant bugs like the variable types getting all mixed up. I also noticed that in JavaScript we can create objects without needing a base class for it to stem off of. In Java, I remember having to make a whole class every time I wanted to make an object, but in JavaScript it is much simpler. It is almost like making an object out of thin air! This is helpful to software engineers because they are able to use the prototypal object oriented coding from JavaScript and more fluidly create objects whenever needed.
While doing the practice WODs I found myself applying the same thinking I use when I type in Java even though I was using Javascript. After completeing the WOD for today’s class I realized that the problem solving thinking is generally the same. It’s all about patterns. I need to identify and break down the patterns in a problem to solve it. When Professor Johnson showed his code using a simple auxiliary function that he can call on both arrays instead of typing double the code for each array, I realized that although my solution worked I did it in an inefficient way. I hope that throughout this class as I do more WODs and learn more Javascript I can make my code more efficient.
These WODs are extremely useful in working my mind to move fast. I enjoy seeing the professor’s solution at the end because I get to see a different way to solve the problem. I like to give myself a little test where I pick the better solution and explain why it’s better. It’s a fun and exciting way to practice problem solving on a smaller scale. We work in partners, so it’s fun to talk about the problem and hear my partner’s take on the problem. It is also difficult at the same time because I have a hard time putting my ideas into words. I often have a hard time explaining my code, so the WODs are perfect for improving this because I can practice explaining my code and putting it into terms that other people can understand. When I go to meetings at my future job, I’ll be able to confidently explain my code and ideas to the larger population!
I look forward to the future of my ICS 314 class where I can experience more WODs and learn more about JavaScript and other languages!