What is a front-end developer?

9 points by peterchon ↗ HN
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 ] thread
None of our front-end developer positions require knowledge of any server-side languages. I suppose it would be an advantage, but it's certainly not something we look or advertise for (example of a recent front-end role we recruited for http://goo.gl/ZP6ZL [howareyou.com])

Interesting 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.

Thank you for replying. I see that the advertised position require a lot of programing knowledge (not language specific)

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 turn! What is a web-designer?
I don't know, I feel like that's a antiquated, almost a derogatory term used by people who do not know any languages beyond HTML/CSS.
I agree and I'm just as confused. I got told off the other day for putting CSS/HTML in one of our RoR job descriptions, evidently a 'good/senior' RoR developer is back-end only and should not be expected to code HTML/CSS as that is now the domain of the front-end developer. I guess this is probably true, but just shows – I'm learning!
But is a web designer a visual/graphic designer as well?
I think it used to. Now I really don't know too many people who uses that term.
thought I'd just pitch in here :)

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 :)

In my view, there are three main domains in the tech side of web development.

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.

It's interesting that you consider yourself a front & backend engineer - does that mean you would apply for both jobs? or Do you concentrate on either?

My conundrum is that employers are actively seeking "Front-End Developers" without understanding what that really means.

(comment deleted)
As someone who wears all 3 hats, print/web/graphic designer, front-end developer, and back-end developer, I generally apply to whichever description seems the most relevant to my skill-set and what I would LIKE to be doing at the company(ie. which I would come off strongest in during an interview).

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.

That's the thing - I currently am the design/web guy. But I would rather concentrate on a single area then be the guy who can do it all. Sure, it's nice to know every aspect of development, but I rather be REALLY good at one thing then be average across the border.

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.

I think the distinction between all these terms is becoming annoying and unnecessary. A Web Developer or Web Engineer if you will, is the correct term for either Fron-End or Back-end. What used to be the "web designer" is a "UI/UX designer" nowadays which is fine I guess, but IMO a "web designer" that doesn't know at least HTML and CSS is no longer useful in the industry today. PSD2HTML is not the standard anymore.

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.

I disagree - I think as websites & web applications become more and more complex, we NEED to distinguish the 3 separate discipline: design/client-side/server-side.
I really don't understand how someone can be only a front end developer or a back-end developer. Why would anyone want to learn just one thing when the thing that is valuable is delivering actual applications. Who wants to have to depend on someone else to accomplish anything and make a living?

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.

Because we can't all be an architect AND a forman/plumber/electrician/roofer. How can you be really good at something if you don't practice and learn it constantly? I'm guessing you've mastered or actively learning HTML/CSS/JS/PERL/PHP/Python/RUBY/Rails/.NET/JAVA/C/C++/MySQL/Casandra/Go/ActionScript/etc? I mean, where do you stop?

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?

Because web design is quite easy when put next to other jobs such as programming.
I believe a cursory look at the majority of websites on the internet would provide ample evidence to the contrary.

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.

Someone who specializes in HTML and CSS, with a bit of JavaScript (mostly jQuery) and ActionScript thrown in, for the most part.

A senior-ish front-end developer will know at least a few templating languages and possibly a bit more programming in addition to that.

As a designer that writes HTML/CSS and a tiny bit of jQuery, I don't consider myself a front-end developer because none of the job listings I see consider me a front-end developer.

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.