What is a front-end developer?
What exactly is a front-end developer? how is it different from a back-end developer? And where does a web designer fit in all this?
I ask this because most front-end developer positions require that you know a lot of different server-side languages like Python, Ruby, PERL.
And why is Object-oriented scripting so important?
21 comments
[ 4.8 ms ] story [ 52.3 ms ] threadInteresting question though and I look forward to seeing some of the responses.
[Edit] I just asked one of our front-end contractors and she said it's not usually a requirement but most job advertisements she has replied to have said it would be desirable to at least know one (depending on their stack). So, I stand corrected.
So this raises the question again. Are your UI/UX designer considered web designers? or is your front-end developer a web-designer?
How does this: Events, Remote Data, DOM, Object Prototypes, Data Types and Scope, understanding of application side security models, client side app hardening, XSRF, etc.
Apply to the daily function? What is it that the developer is building that he/she is required to know all of this? Aside from DOM, the other skills are more related to dynamic languages like JS or Rails/Python. How is this different then what a back-end developer does?
Also: Help the UI/UX team to create visually attractive and highly usable web interfaces
Shouldn't that be the sole purpose of a UI/UX team?
My take on it is that a web designer is your Photoshop/Illustrator "Graphic Designer" guy, who loves the ins and outs of CSS and HTML, Layouts, and knows the newest CSS3 features, etc. Sometimes they might go a little into Javascript but usually not to any really deep levels.
The Frontend Developer, in my mind, usually kind of takes off where the "Web Designer" fades out, handling complex Javascript Apps / UI, and AJAX. Besides deep AJAX/JS skills though usually the frontend devs skills start dwindling when it comes to enterprise level PHP / m2m in the DB, etc and thats where your Backend guys come in.
Of course, that's all how I 'imagine' it conceptually, the fact is, unless your working for a large company, I think most web developers do all the above, and call themselves according to whatever area they like the most :)
First is the designer, who's responsible for all the graphic work/creation (most likely in photoshop). This is the main UI/UX role where they're responsible for, as you said, creating a visually attractive and highly usable interface.
Next up is the frontend engineer who takes that and codes up the equivalent html, css, and javascript to interface with the backend, which would obviously be built by the backend engineer.
Now of course some of these responsibilities may overlap in some cases, for example I'm a front and backend engineer, but usually don't handle the actual design work, and there are some awesome designers out there who can also actually code up their work.
My conundrum is that employers are actively seeking "Front-End Developers" without understanding what that really means.
I've seen many job postings where Front-End Developers are just HTML/CSS luckily this seems to be changing to include scripting languages, which I favor. Generally the database, server work is handled by the Back-End Developers and with communication the business logic is handled by both but more commonly by the back-end developer or general programming guys. (Depending on company size of course)
Design belongs to designers (but really, more often than not, upper management). At this stage in the game, good designers can give you HTML/CSS, great designers can give you scripting work as-well. But their are also great designers who can't write a line of HTML/CSS, but that's more of a experience/working as-a-team thing. I would much prefer to work with a designer who can't code, but understands basic limitations of the web and is a fantastic mockup/layout-guy, then I would with a semi-decent mockup and semi-decent coding guy. (Let's face it, if you have time and it doesn't match your usual style, you generally try to make it conform as best as possible)
Anyways, like all answers...it depends.
Keep in mind too if an ad is looking for just a HTML/CSS guy; knowing how to script may be a bonus and may come off as such, until you sit-down and the 'coder' already in place, doesn't want you touching anything. Oh, silly politics.
With that said, I think it's really our fault that there's really no clear distinction between the front-end (client side) vs. the back-end (server-side.) I've seen senior "front-end developer" who only uses jQuery because he doesn't know JavaScript. And it's funny that you bring up politics, because that guys would get mad at me because I would show him a easier way (in jQuery, mind you) for traversing the DOM.
Sometimes, I wish there's was a certification process to be able to call yourself a "designer", "developer", or "programmer". I think it would make finding job/candidates much easier.
Don't worry about the job description, if you think you're skilled for the job just apply anyway and lie about the stuff you don't know but you think you can learn. The problem with these job descriptions is that they're written by HR people that just copy/paste keywords and call it a day. Just make sure to put as many keywords as you can (in a smart fashion), because most of the entries will be processed by a computer first before reaching an actual human, at least on big companies.
To answer your question, a front-end or back-end developer is someone who (erroneously) sees development as sort of blue collar labor like a plumber or a electrician. A web designer is someone who decided they could just do all the easy, fun stuff while getting to decide everything and prefers to work with trade-type developers for the un-fun bits.
Object oriented scripting is important because without some sort of organization of code, you end up with a huge mess of code and variables. Without encapsulation you never know when and how it's safe to modify data or what side effects it might have or what code is allowed to modify what data.
Heck, even CSS has SASS/LESS/bootstrap/CSS3/browser-specific declaration and don't even get me started on JS libraries.
And I don't understand your condescending tone of what a "web designer" does. What makes that job any less important than a programmer?
I certainly find web design very difficult, whilst programming is something I am comfortable with. This may be more down to experience than anything else though.
A senior-ish front-end developer will know at least a few templating languages and possibly a bit more programming in addition to that.
They ask for knowledge of JavaScript/Ruby/PHP/Drupal, etc. I've stopped looking for jobs under the title "developer" because of how often it varies in what skillsets they're actually looking for.
That being said, all of the designer jobs I find expect you to mock something up in Photoshop and hand it over to someone to code. I personally hate having other people code up my stuff because that means I have to do additional interaction write-ups I can just code myself, so I don't really know where I fit in.