Jumping Into Javascript

19 Jan 2022

Javascript Through My Looking Glass

General

Javascript is a language that I have become quite familiar with over the years, from the first time I learned about it in Spring 2019 in my ICS 314: Software Engineering I class, until now. There have been times where I have used it for coding for certain projects, and then there are also times where I have passed on it in favor of other programming languages. My most recent usage of Javascript would have to be as part of the front-end of my Master’s project (found here), where I implement a module based on simulating distributed workflow executions while taking energy consumption and carbon footprint into account. I would say Javascript is one of the languages that I have learned so far that I personally enjoy using, and it is one that just makes sense to me, at least in terms of the basics. With this in mind, every time I touch Javascript, as if I am dusting off old memories from the attic, I seem to notice something that I did not the last time I saw it. In terms of programming, I mean I learn something new when I return to Javascript. In this case, something new I learned about, or rather something that I learned more about, is ES6.

ES6

When I first learned about Javascript, I was not as exposed to ES6 as I am now, though even at this point, I would not say I am even that familiar with ES6. One thing I can say though is that I know more about ES6 now than I ever have before. I have learned about new concepts such as destructuring assignments, Javascript Promises, and more. I have also learned about more ways to do the same things that I would have done a different way when following the ES5 format of Javascript. With that new knowledge, I cannot be certain that I will put it to adequate use right away, especially since I was quite exposed to doing things the ES5 way when I first learned Javascript, but with time, I am sure that the ES6 way will slowly integrate itself into my work, should I put in the time and effort to do so. I think ES6 is very useful, based on what I learned about it so far, and some of the changes presented can be helpful in certain situations.

Judging Javascript: The Verdict

As I mentioned above, I have known and used Javascript for over the course of 3 years now, and I am certain that will extend into the future as I further my career into the field of Computer Science. That sentence alone can surely hint at how I personally feel about Javascript. To put it concisely, I enjoy Javascript and I think it is very relevant in the field of Software Engineering. As far as I know, Javascript has all the tools necessary to be a programming language that supports many things that we need to do in Software Engineering, which is why it is still around and is one of the more recognized & used programming languages to this day. The only real weakness that I have learned about Javascript in my short time of using it is the fact that it does not support multithreading, but every language has something missing; that is why there are so many different languages in the first place. With that being said, I feel like Javascript is more than adequate for use throughout the Software Engineering process due to the dynamics and flexibility that it provides to the developer. It seems not as restrictive and hand-holdy as Java is, but also not as free-flowing and loose as C is. It provides a good mix between the two to be able to extract benefits from both sides of the spectrum.

WODs: Workout Of the Day or Waste Of the Day?

This is my second experience with WODs, with the first one being in ICS 314, as mentioned above. Based on what I recall from ICS 314 and what I have experienced so far here in ICS 613: Advanced Software Engineering, I can say with 100% certainty, that WODs are certainly not a “Waste Of the Day” as I alternatively named it in the subheading. In fact, it is the complete opposite of that; WODs are something that can help reinforce knowledge of learned concepts while also promoting a real-life coding interview environment. By taking part in WODs, whether they are real or just the practice WODs, it allows me to retain the certain concepts that were focused on in the WODs as well as the material that I had looked over. Repetition is one of the best ways to reinforce knowledge into one’s head so this certainly falls in that category. With WODs, one of the main factors is the fact that they are timed, meaning we have to finish the exercise in a certain amount of time. This forces us to think faster on our feet and the added stress factor from the time limit allows me to recall the information faster as I know I need it right at this moment. By putting ourselves in this kind of environment, it simulates being in a coding interview where we are given a question from the interviewer that we have to write the algorithm for on the spot. By doing these WODs, it gives us practice so we know what it feels like to be in that situation before actually being in it, which is something that is very valuable.