Reflecting on Javascript and how bad first impressions aren't everything

20 Jan 2017

First Impression…

I have a little prior experience with Javascript, having started learning Javascript properly less than a year ago. Honestly, I was reluctant to do so at the time. I did glance at a few Javascript tutorials and examples prior to that point and was not given the best impression of the language. Keep in mind that I was a beginner computer science student back then: I was good at Java, had exposure to Python and Perl, but didn’t know much else.

Most of the code examples I stumbled on were filled with copious amounts of braces and parentheses within braces within parenthesis, some with semicolons and others without semicolons, functions within functions that called functions from who-knows-where, and all without any indentation system that could help me sort through any of it. Worst of all was “document.getElementByID” which seemed to be all over the place in the tutorials. I didn’t want to have to type that out every time, and how could I even remember a name that long?

Well, it turns out that most of those tutorials were actually trying to teach me jquery, and most of the examples were just bad examples. But, again, I was totally new to computer programming: I figured that people who could code in Javascript were just naturally able to read randomly-tabbed-braces-within-parenthesis-filled code somehow and I was simply not such a person.

Ok let’s try again!

After that first impression, I gave up. But like I said, I started learning it later when I attended the AT&T Hackathon. My team and I were designing an app for the UH van service and we were using the Ionic framework, which used AngularJS. Because of that, I began to try and learn the language so I could use Angular on the project.

UH Van sevice app

As it turns out, a framework adds a whole new layer of complications! Still, it was an extremely valuable experience and I ended up learning and using Angular properly on a side project later on. As for Javascript itself, it wasn’t until I started my job at UH Manoa College of Tropical Agriculture and Human Resources that I used it separately. Until that point it was mostly a means to an end, and I only used it as required by whatever conroller or provider I had to be writing.

I wrote about the site I was working on in my projects’ section

Second Impression…

After using Javascript for the entire semester of Spring 2017 during my Software Engineering class, I can firmly say that my opinion on the language is a lot better than it was before. I certainly like it more than Java and C++, though not as much as Python simply because of how much it is wedded to the web browser.

In addition, I was given the opportunity at work to design a data collection interface and database for a breadfruit research project. I used AngularJS for the frontend, drawing on my experience from building my sideproject. This experience gave me an opportunity to practice in the framework, in that I was implementing features that I already knew how to implement, instead of spending time figuring out how to put them together from scratch.

Finally, as part of my Software Engineering course, we developed an application using the Meteor Framework. As I had experience with the Angular framework, I was able to bring some of the concepts over to my approach in designing the application. Like with my first angular application, there was definitely plenty of time spent figuring out the basics, and if I could defintely see myself improving with more practice.

I think the most important thing I gained from both my experiences with Meteor and Angular in the past few months has been a greater appreciation for web frameworks, as well as a greater confidence in my abilities codign in the Javascript language. I am left with a closing thought, however: given the usefulness of frameworks, perhaps it could be said, after all, that a coding language is a means to an end for bigger ideas.