Final Thoughts on Front-End Development

As I dive headfirst into server-side development with C#, I wanted to take a moment to reflect on what I’ve learned over the past three months, and what I hope to accomplish with the last half of my Nashville Software School career. While I’m sure this is only the beginning of my engagement with front-end development (I mean, I’ve only just dipped my toe into the water here), my experience with Javascript has given me some expectation of what to expect on the server-side.

After a few weeks studying Javascript at NSS, I began to wonder exactly what server-side development would answer. It seemed like I was getting a really full toolbet for developing software. What else was there that Javascript in the browser couldn’t do, but C# on a server could? In retrospect, that was a fairly naive assertion, but one that set my brain in the right direction.

As I was neck-deep in my final front-end project and started dealing with fairly large workloads, I started wishing I could hook up to a back-end to handle some of that processing and provide a more consistent experience. I ran into errors more than once on my capstone that I chocked up to performance hiccups and solved by haphazardly refreshing the page. I wonder if having a persistent backend environment would alleviate any of that unpredictable behavior.

At the very least, having a fully featured backend would help modularize my application and provide better separation of concerns. Front-end code could focus on front-end concerns exclusively, and the back-end could do more than just persist information.

One thing I’ve been told to expect about C# is a far greater rigidity. At first glance that sounds scary, but could also be comforting to have a shorter list of acceptable solutions to a given problem, framing our developing minds a little more consistently. The flexibility of Javascript can be both elegant and exhausting. When faced with a problem in Javascript, there can be as many as twenty different solutions or more. And it’s very easy to choose a solution now that spirals downward dramatically into a much larger problem later on, all because I didn’t fully consider and track all twenty solutions available to me.

I’ve also heard that there’s a longer path to results. It’s not longer as easy as refreshing the browser window to witness the fruits of your labor at any point in time. Maybe more “blind coding” is necessary, writing lines and lines of code before being able to test. That doesn’t worry me too much, I like thinking through problems and can usually write logic I need blindly without having to pause for a console.log every two steps.

More than anything, I am expecting a very different environment, and am looking forward to the challenge.

Leave a comment