JavaScript: Fresh in the Mind

01 Sep 2021

What is JavaScript?

JavaScript is a coding language that is used for front end work, like web pages. JavaScript is primarily used for making items that users interact with, like buttons, updating content, images, etc.

My Experience with Javascript

I used Javascript for the first time when I was a summer intern. Previously, I had experience in Python, OCaml, Java, and C/C++. I did not feel that it was difficult to learn the basics of JavaScript, but looking back, I wish I would have taken a fundamental course in JavaScript instead of learning on the go. After taking the Basic Javascript and ES6 courses by FreeCodeCamp, I learned about first class functions, manipulating arrays (e.g. push(), pop(), shift(), unshift()), the let and const variable declarations, JavaScript Promise, and some other attributes that are unique to JavaScript. Even though I could code in JavaScript previously, I never really understood JavaScript and its uniqueness as a language.

Usefulness of JavaScript

I like working with JavaScript because I get to work on programs that users interact with directly, such as buttons on a webpage. Programs are shortcuts for our everyday lives. We use computers for group chats, shopping, sending money, and a billion other things. When these tasks are coded, we can do them without leaving our homes. JavaScript is part of what the user sees and interacts with, which is what I think is the most important part of programming. User interactions on a webpage should be intuitive and mistake-proof, so users can always go back and fix their mistakes or change their decisions.

Arrow Functions

A feature in JavaScript is the arrow function. The arrow function allows for inline, nameless functions. Arrow functions are anonymous, allowing for the use of a function without defining it anywhere else in the code. Arrow functions are generally not reused.

const foo = () => "foo";

foo is a function type that takes in zero parameters and returns the string “foo”.

First Class Functions

Functions are first class in JavaScript which allows functions to be used like any other variable, so you can pass functions in as a parameter of another function. If foo was passed in as a parameter for another function, this would using the JavaScript feature of first class functions.

Athletic Software Engineering Pedagogy

Athletic Software Engineering (ASE) is a form of teaching invented by Philip Johnson, an instructor at the University of Hawaii at Manoa (UHM). ASE in his course was used to mimic many real world software engineering problems in just one semester. Johnson describes this form of teaching software engineering as “high intensity, time-constrained, and often stress-inducing.” I am taking this course right now, so I will be able to update you on how accurate that description is. The course is organized in one-week modules. Us students have weekly Workout of the Day (WOD) that consist of coding problems that need to be solved within a time limit. The time constraints are used to determine efficiency while testing the ability to complete a task, instead of discussing the concept.

I have had two weeks of experience with ASE, and so far I do like this approach. The WODs are great practice for software engineering interviews while also practicing my efficiency in this field that I have been studying for three years now. The problems in the WODs have not stumped me yet, but even if one does, it will be a great opportunity for me to effectively move on to the next problem instead of holding back on ideas of the WOD that I did not finish. The first WOD was stressful for me because I am new to using JSFiddle, which is what Johnson requires for the WOD submissions. After getting the hang of JSFiddle, I was able to code easily in JavaScript and complete the problems presented in the WODs.