Once Bitten

While at my second job as a programmer and still an undergrad I worked on a team that did an e-commerce site. This would've been about 1998-1999. It was for The Library Store. They were good clients. The back end was Java, holy cow I had JDBC code in my JSPs back then.

We had a UI guy that liked JavaScript. He used it at the end of the checkout process.
You know where this is going, right. At some point after the release the customer called our office. My manager wasn't around and I was the most senior person there so I took the call. There was a guy on the other end of the line that had customers that couldn't give him money because of our JavaScript. To me this was no fun and no amount of JavaScript coolness justified a customer being unable to check out. That stuck with me throughout my career.

Full-Stack

Even though I pride myself as a full-stack engineer my JavaScript-fu was weak. I guess by full-stack meant being familiar with:

  • Linux, databases, web-servers
  • SQL, persistence frameworks
  • dependency injection frameworks
  • Java web frameworks
  • HTML, CSS, a tiny bit of JavaScript

It seems that full-stack is something of a thing. And in to credibly call myself a full-stack programmer I have been in need of a tune-up.

"full-stack" Job Trends graph
"full-stack" Job Trends "full-stack" jobs

Late to the Party

At work we have lab weeks, often times I'll do something that is drudgery that needs to get done but this time around I decided that I should dive into JavaScript.

I don't know anyone who learns this way but I ran through a Learning JavaScript Programming video series on O'Reilly. That was useful to get boot-strapped. Then I came up with a manageable little problem to solve. I wrote a 5/3/1 Workout Calculator. It was a good place to start. Some flow control, a bit of math and lots of working with the DOM to add listeners and change values.

I asked my co-workers how to do some things and they quickly directed me to start using jQuery. I assumed that I could get further with vanilla JavaScript but it seems that jQuery is almost a part of JavaScript. I was already finding answers to questions in StackOverflow that directed me towards a solution in jQuery.

Tooling is Good

FireBug and all the similar consoles in major browsers are great to work with. And the JavaScript support in IntelliJ impresses me as well. A colleague said that WebStorm is more light-weight but the IdeaVim plugin isn't available for it and that's one of my biggest productivity boosters. I didn't know selectors were a thing. They're very powerful, they make doing things with jQuery easy.

Next

I'm glad I took the time to get into JavaScript. It has changed how I think the browser can interact with the server. Of course I knew you could do all this stuff but I didn't realize how easy it all is. Especially with frameworks like jQuery my initial bad experiences with JavaScript are less likely to happen since they take care of the browser inconsistencies for you.

From here I guess I need to interact with the server with JavaScript. I also plan on using AngularJS as well.