Why I love being a web developer

I’ve been a web developer for 4 years now. Here is why I enjoy it so much and found it to be my passion.

Background

To start this off, my background is in Java. Iowa State’s computer science program is almost purely done in Java. Of course, there are a few classes in assembly, C, C++, Lisp…but the go-to language is definitely Java.

I got hired for a Java position right out of school. I was excited because I got a job in the career field that I wanted! Everything is great, right? Not exactly…

Why I didn’t enjoy backend systems

I found within the first year that I really, really did not enjoy Java. It was overly verbose, best practices involved using everybody else’s code to do the interesting problems, build process was slow and tedious, and on top of all of that, the problem set never changed.

My job could boil down to the following: take an input from an endpoint, convert it into objects your system understands, hit a database, build a response and send it.

Each and every system I worked with followed the above. I was insanely bored.

Enter Wicket

I got voluntold to work on the interface for my first Java project. The company used wicket for their UIs, becuase Java developers could do it! It was a pain! Infinitely nested objects, weird quirks, no control over UI interactions without hitting the server…It really was terrible, in my experience.

jQuery and how I fell in love with Web

My next project was a customer landing page. It was written in jQuery on top of a Java portal system called Liferay. I very rarely had to deal with that part, luckily. I spent the first month rewriting the prototype that had been handed down to me. I didn’t really understand javascript at the time. I noticed so much duplication and eliminated it.

As I did that, I learned. More and more I understood interactions in the UI and the quirks of a dynamically typed language. I was able to take a 3300 line script and bring it down to 1800, while adding features. The initialization speed tripled and every aspect was noticeably faster.

Then our business partners decided they wanted to redesign the app. They kept throwing out ideas. Left and right. For days. Eventually, we were told ‘this needs to stop.’ However, I wanted to make sure people were happy. I was able to produce 3 different prototypes matching the leading design ideas within a week. Simply replacing CSS produced two of them. It was so easy! I enjoyed the reactive nature, the speed of development, and the ability to communicate ideas through code changes.

And it continues

The world of web development has taken a huge step (I won’t necessarily say forward, many would say it’s not!) in the recent years. Transpilers and Node have transformed the way we work. There’s a build process now, which is not great, but the things we can do is amazing! SASS, ESNext, Pug, Typescript, Elm, so many things can now be done to solve the same purpose.

It is that much faster to see your changes. The expressiveness of our languages has increased due to the syntactic sugar added to the language, but also the new languages that have come out. Our IDEs can remain light (a.k.a. not Eclipse, IntelliJ), but give us amazing power with linting tools like ESLint and JSHint. We can test our UI, and keep the tests out of our production code.

I love the speed at which web technologies advance. I love being on the bleeding edge to figure out how to best solve my day to day problems with new approaches. Something I rarely got in the Java world.

At Home

The added benefit of Web development is, I can do it at home. I don’t need any special hardware. In addition, with the advent of NodeJS and its frameworks, I can create simple backends quickly, and in a language I’m familiar with. I’m writing a blog on a UI that is running on Node and I can modify how it looks with a simple modification to the templates.

When I would write Java applications at home, I always had to interact with the command line in order to see my results. I couldn’t really share them the way I wanted to (with people who aren’t Developers).

But, with web development, I can take an idea, prototype it and serve it on a $25 raspberry pi. That pi can then be accessed by the entire internet. It is such a cool thing to be able to do.

Challenge

I will also say that web development has near constant challenge. With the new technologies, the problems we encounter (think browser compatibility, responsive design, bad APIs, asynchronous actions…etc), we are constantly facing new things. Learning the solutions, debating the solutions, it’s exciting!

Conclusion

I’m going to wrap this up before it hits 1000 words. I know there is more to say about why I am a web developer. We all have our own drives and passions, mine is web development. You’ll see it on my blog, you’ll see it in my work. It’s quite a huge part of who I am.