Front-end programming is one of those unfortunately over-looked and underrated disciplines that really deserves more in life. I’m not saying this just because it’s something we focus on, but because it’s really hard to find qualified candidates and I think a different attitude towards it would change things.
First, what is front-end programming?
Front-end programming (or developing) is traditionally programming focused on the user interface of software – what people see and interact with (the front-end). On the web, it’s synonymous with client-side programming: *code that’s executed by the user’s browser*, versus the server.
Because consistency is important to me, we don’t include Flash/ActionScript programming or client-side Java programming in with our definition of “Front-end Programming.” Really, they are significantly different skills – especially Java.
The changing challenge of front-end programming.
Anyway, the upshot of this is that front-end programming is becoming more application-like in its design and development processes, with the added fun of different operating environments (browsers).
Changing requirements for front-end developers.
It used to be that it was pretty easy to be a front-end developer. Buy “Learn HTML in 21 Days,” and you were good to go. I never bought into this, but it still influenced a web-generation (as opposed to a true generation) of designers and programmers. As a result, when we’re looking for people to be front-end developers we almost always get one of two types:
* *The web developer that secretly wants to be a designer.* They don’t have the design chops to make the transition in any big way, but really doesn’t like to program, so they never get really good at it.
* *The back-end engineer that knows how to code for the front-end.* This person’s focus is on the back-end, so they generally regard front-end programming as something simple they can do in their sleep. Ah, how wrong they are, particularly because back-end programming doesn’t need to take into account massive differences in execution environments (browsers).
Obviously, a good front-end programmer needs to know about design and about server-side programming, but that shouldn’t be the focus. And designers need to know about programming, and server-side engineers need to know about front-end programming.
But the point is that front-end programming is really coming into its own.