I have a career of 12+ years as a full stack web developer, and for the last few years I’ve been trying to focus on the front end part of this stack. Why? It’s a long story…
Topics in this article
How full stack of a developer was I really?
I’ve always been able to code my way through all the layers and make a fully functional web app. But in all honesty, I’ve always been more focused on the back end, and my front end was pretty lame. As was most of the web back in the days prior to the Web 2.0 explosion. And that’s because most of the developers were like me. And still are! But why?
Being a front end developer is hard
Don’t get me wrong! I’m not dismissing the difficulty of server-side development. I know that pain very well.
But it’s important to acknowledge the problems that come with working client-side. A front end developer does most of the work in HTML, CSS and JavaScript and that work runs on a browser.
So let’s look at the scenario:
We have at least the following browsers to develop for: Chrome, Firefox, Opera, Safari, Internet Explorer, and now Edge (not to mention each browser’s past several releases, which should be considered for compatibility).
Each of them has its own “interpretation” of what needs to be done when parsing the same HTML, CSS and JavaScript code.
Each of them has its own unique bugs and limitations.
There are limited tools for working around these bugs.
HTML and CSS are very static and hard to work with. Who here has never tried to do such a simple thing as horizontally center something on the screen? Things like {margin: auto; width: 60%; padding: 10px;} or {position: absolute; right: 0px; width: 300px; padding: 10px;} or {float: right; width: 300px; padding: 10px;} WTF?! What about using a simple word: center
And don’t even get me started on JavaScript fatigue.
But wait, there’s more! There’s more to front end than just development. It isn’t just about the code. It’s about how the code interacts with the user. Poor design can easily become a roadblock between the product and the audience. A good front end developer needs an understanding of design, web performance and user experience. I would go as far as saying that a good front end developer even needs to have an understanding of marketing.
What a chaos! So why embrace it?
Sex Appeal
There is an entire universe of integration software that connect systems and does not need to be concerned with user experience. But at the endpoints of those systems we always have human consumers that will need user interfaces and that will only love them if they are beautiful and exciting to use, if they have sex appeal.
I’m a software developer but I’m also a user. On a day-to-day basis I’m probably interacting with more software that the average user because I’m a developer. I’m more open to it because of being a software developer. And as a user I’m the most severe critic of poor designed interfaces and poor user experience. How can I be two different persons at the same time? That’s right, I can’t.
These 12+ years of experience as a developer have taught me many things and one of these things is that my job is never going to get easier, so why run from the chaos… I think we developers should make a point on doing great software and great user interfaces no matter how hard it is to do it. It’s our mission to make the world run smoother through software and for that to be true people need to love it. Plus, if they don’t love it they won’t buy it!
Ok then! Where do we start?
Actually, we’re in luck. There as never been so many tools, frameworks and design resources available out there for front end developers as there is right now:
We have front end and CSS frameworks like Twitter Bootstrap, Windows like Metro UI, Google’s Material Design and many others.
HTML5 is bringing a new life to the game.
We have Web Components to save us from the staticness of HTML.
We have JavaScript MV* frameworks almost as good as we have them for the languages of the back end universe: AngularJS/Angular 2, Backbone.js, Ember.js, Aurelia, ExtJS, etc.
The JavaScript language itself is evolving in what seems to be a good direction.
Browsers are starting to line up around standards and what seemed to be the never ending support for past versions is finally ending.
And maybe we can try to have an alternative perspective on JavaScript fatigue…
Let’s do this.
David Santos
Software Engineer at Polarising / Big on technology helping and supporting people’s lives.