Hello, my name is Geoff and I am a web designer. At least, that’s what I tell people I do for a living, because it’s what most people understand.
The truth is, I am a front end developer. If you read this blog with any sort of regularity, then I don’t even need to bother explaining that job title.
Or do I?
I get a sense that we likely have different definitions for what it means to be a front end developer. I bet the job description you would write for me varies a ton from what I actually do on a day-to-day basis. You may even expect that I know certain programming languages that I, in fact, do not.
In other words, some of you may not consider me a developer at all, or a poser at best. Many hold the opinion that front end development is not development at all. That used to hurt my feelings.
I found myself recalling those hurt feelings recently when Lara Schenck shared her story of missing out on a UX job because she wasn’t familiar with the programming test FizzBuzz. The fact that she didn’t get the job didn’t bother me as much as the number of snarky comments her story got, mostly from people who don’t consider front end development a form of development.
My Tale of Being a Non-Unicorn
I design for the web, and often code those designs into the stuff that people interact with on the front end.
I didn’t always write code. In fact, I never thought I would ever write a single line of it when I first started designing sites in 2005. Designers worked in Photoshop and developers worked in whatever they worked in — I didn’t know because it never seemed relevant to ask. We were all cogs in the machine, at least at some of the places I worked at.
But over time, I found myself not only asking those questions, but trying to answer them for myself because it became a necessity. If my designs were not pixel perfect (remember when that was a thing?) on the screen at the end of the day, I wanted to know why. In the end, that led to learning HTML, which led to CSS, which led to jQuery, which led to JavaScript. I even found myself gaining a basic understanding of PHP solely for the ability to write WordPress filters.
Am I excellent at all of the above? Absolutely not. I definitely get by, but I still find myself navigating Stack Overflow forums for what might be totally obvious answers to other developers.
That’s the abridged story of how I became a front end developer. Or front end designer. Or just plain designer. Whatever.
But You’re Still Not a Developer!
This is where I get a little hippie-dippy on things because I think the role of development is an evolving concept. Is development just about programming? Or can development be design as well? Because, if it’s all about programming, then I’m definitely not a developer.
The truth is that development has a lot to do with both design and programming. They’re not mutually exclusive. Trying to divide them in a cage match over who owns the term is as useless as Santa Cruz and Huntington Beach fighting over Surf City, USA.
How I Cope With the Criticism
I tend to deal with the criticism that front end development is not “real” development simply by not worrying about semantics. Honestly, I don’t care what people think my job title is. In some circles, I am seen as the designer. In other circles, I’m seen as the developer (for lack of a better word, I guess). Heck, as I type this, Chris Coyier sees me as the writer. Where does that fit into anything?
I called myself a web designer at the beginning of this post and that is my default answer for what I do. Some of my work happens to involve designing layouts. Some of it happens to involve coding prototypes. Some of it even requires me to write functions. All those pieces are what work together to develop a website, which is what I’m trying to do at the end of the day regardless of if I am seen as a designer or a developer.
Where Do We Go From Here?
First off, let’s make love and not war. I’m not really a fan of name-calling and snarky online comments because it’s unproductive.
Secondly, I think the door is wide open to talk honestly about the need for better job descriptions. The point of Lara’s post is not that FizzBuzz is the epitome of evil, but that the job she interviewed for was out of scope from what was written in the job description.
Lastly, let’s accept that our industry changes rapidly and that includes the scope of the work we do. We need to have an expansive and evolving baseline understanding for what front end development encompasses and that the meaning of *development* may shift from time to time or even project to project.
OK, time to stop writing and start designing. Cheers!
You are so totally on-point here, and if you read This Quora post, and some of the follow-up between myself and Chase Adams, you’ll see it really is more of an issue with Job-titles; and occasionally businesses, or developers attaching themselves to terms like “Front-end Engineer” ambiguously, because they think that is what they have to ask for to achieve their goals, or it is the most succinct way for a Front-end developer / engineer to set themselves out at what they do, as I would guess is the case for you?
Oh, for what it’s worth, I definitely think development is more than coding now, as the syntax for languages and structure like HTML, CSS & JS is at the point now where some people are literally inventing meta-languages like SCSS and CoffeeScript to generate structure and rules, to produce ever more impressive, interactive and in some cases stand-alone apps, widgets and element; that wouldn’t work without them!
It’s very hard to define roles in this field, especially when you don’t work as part of a group of developers and don’t necessarily have a fixed speciality.
I think it’s also part of a broader issue with technology. As time has progressed, a CV needs to be more specific as roles diversify. Eg. CV’s have evolved thusly:
Computers > Web design > HTML, CSS, Javascript > Front-end developer > CSS Widget UX interactivity specialist
Yes, I’m being a little simplistic and more than a bit facetious, but I think the pace in this field can be brutal and snobbery around job titles and skillsets is not only unhelpful, but ludicrous when the way we build websites and create content is changing so quickly.
I am what they call a “Full Stack” developer, as much as I hate the term, as I am both a Front-end and Back-end developer. Being that I’ve seen both ends of the spectrum I still agree that you are indeed a developer. If you can write HTML/CSS/JS then you’re a front end dev, I don’t care if you aren’t an expert in it.
Honestly I wish more web designers took the time to learn HTML/CSS or at least to understand how layout on the web works. That would solve 90% of my issues.
Hat’s off to you and your brethren.
Thanks Brian! It’s definitely nice to walk in each other’s shoes every so often. Even if it doesn’t lead to learned skills, it should build empathy and understanding which is equally important in a team environment. We ought to appreciate what each person brings to a project and learn how we can work together to build great stuff.
Hi there! Though it’s a simple podcast but was worth reading, encouraging and enlightening!! Full of honest opinions..I guess and, enjoyed reading it. Feels good!!
This is so awesome, thanks for sharing! I’ve been thinking a lot about a solution for the mismatching titles/descriptions issue, and have concluded that it’s some sort of standardization in titles. Not so standardized that we are pigeonholed into certain tasks – e.g. a designer that’s great at front-end shouldn’t be limited to designer roles – but more like a personality test that shows a spectrum of where our skills are strongest. You can then take re-take the test as you like, and your title updates accordingly. Myers Briggs for web people.
Those terms could then be accompanied by a structured form for posting jobs, so that it will be impossible to post mismatching titles and descriptions. In my efforts to better learn JS following this FizzBuzz business, I prototyped an idea for what it could look like.
Ah, looks like I’ve gotten a start on the blog post I’ve been meaning to write for three weeks. More soon! And thanks again for writing.
Lara, you are so rad! I love that you’re developing (see what I did there?) tools that provide solutions like this. That’s an awesome prototype for a form and I could see that being super useful for employers to articulate what the requirements of a specific position will be.
It’s definitely true that standardization could be causing more harm than help here. Perhaps we shouldn’t be striving for an all-encompassing job title for front-end development, but do a better job of defining a project’s requirements and letting applicants explain what tools and skills they have to help.
I can’t thank you enough for sharing your post and feedback here. It really struck me in a meaningful way and I love the conversation that is coming out of it. You rock. :)
Hey Geoff, I think this is an interesting read. In my experiences, I remember we all called ourselves web designers 15 years ago when static sites were the thing. Then at some point after lot more programming started happening on the front-end and the industry needed a term that differentiated those who programmed from those who did design – thus web developer. At the time there was a big difference and I think the separation was somewhat necessary. Designers didn’t do much programming then (I’m talking pre-jquery days) and backend programmers started dabbling in front-end but knew nothing of design. At the time there seemed to be a distinct separation. Then when clients learned of these terms they used them against us and honestly they still do. Like you I came from design and learned to program. Now I make a living a the programming part and actually do little design. I’ve had the situation of calling myself a web designer only to confuse the client who wants to know “designer? but can you program also?”
These days the lines are blurred. I do feel though that someone aught to do some programming to be considered a web developer though. Perhaps my opinion is brought on by social conditioning. My wife has a nice camera and sometimes I take pictures with it. I think calling myself a photographer would be silly and would undermine the real photographers out there. I feel the same about someone doing a tad of HTML/CSS and calling themselves a developer. There just my thoughts. I enjoyed the read. Thanks Geoff
For the past seven years I’ve been a front end developer, I started with a book on CSS and learned things from that place up.
It wasn’t until recently though, when I took the initiative to improve my JS skills, that I really felt like I was learning programming.
The difference between manipulating DOM elements for UX benefits, and writing a fully executable program is where the line between developer and programmer might be.
I’m sure that FED’ers will again fragment further like almost every aspect of web culture. Some will become animation and javascript specialists while others will concentrate on API’s Ajax and Node. there’s a lot of ground to be covered out there, easy to carve your territory out. When people need you they’ll come looking.
Agree on what you say, the problem at the root isn’t the fact a UX/UI designer should know how to code (or viceversa a Dev should know how to design)
Basic concepts of the other complete side of your job are defo a plus thing to know but not required, the problem are the so called HR/recruiters and generally how the hiring process works. They have no clue what they are looking for and they also have no clue how to write a proper job spec.
This is not because they are lousy at their job, it is just because they don’t possess the accurate knowledge to look for and evaluate a potential candidate.
A good HR should know this and should ask for assistance from someone who covers the same role they are looking for. An HR (or management or whatever) should guide a potential candidate through different phases of the hiring process and not take lead of it.
I’ve been referred myself for a position of Front-end development in a very known and big multinational financial firm, after the first 2 cognitive assessment tests I’ve been slapped in the face with several questions about economy and financial calculations, mainly based off spreadsheet charts. Needless to say I have failed the test and been told to “please do not reapply for the next year or so”.
Was the right thing from them to ask? Maybe, if you work on a financial firm it assumes you should know about economy basics. Was it clearly defined in the job spec? Absolutely not.
The job spec simply asked for a Front-end Developer with a list of skills I fully covered, however I had to deal with financial calculations even before my job skills were put at a test.
If I want to hire an accountant to work in a web agency should they know work with loops, conditional statements or how to design a website? If they do probably it is a good thing for their personal knowledge only but definitely not required for their job.
It was a waste of time? Definitely yes, probably I both wasted mine and their time (which converts into company’s money) just because their hiring process is incredibly faulty.
It is 2015, tools and knowledge of our jobs changed. Tools and knowledge to hire someone are stuck at 1995.
If you are an HR/recruiter/whatsoever and reading this, please start considering to call your developers to review the tests and sit at the same table with you when interviewing someone. Your team know more than everyone else what figure they desperately need.
I love this article! So honest….so true….so much snobbery in the industry and a lot of the positions I’ve applied for as a “front end developer” are like a santa wish list by the employer! let’s face it a lot of designers get into code but it’s like the modern day front end developer needs to be onto everything…node.SASS.etc…this framework etc…And I do roll my eyes when people have the job title Front End Engineer! And I have also known a lot of front end engineers(JS Programmers) who aren’t great with design either so I roll my eyes at that too….let’s face it everyone’s trying and progressing and learning….I’m not a js gun and it seems I wouldn’t get certain roles because of this yet when I look at the companies website it’s often pretty terrible so I feel like their missing out and have lost the point. Moving from one end to the other isn’t easy so hats off to you.
I can understand you very well. Website coding is a hobby for me, but my profession is ‘computer scientist’. Can I help you using Windows or Office? Maybe a little, but my work description is software engineer, software developer, software systems architect and this kind of stuff. But people don’t understand these names, so I’m still a ‘computer scientist’. By the way: Good programmers don’t just code but still have a piece of paper on their desktop, all the time. And they use to draw designs before they start implementation.
Because I can do html/CSS/WordPress I called myself a front-end developer for a long time, but found out that was ‘wrong’ because I don’t do JavaScript. (I like to keep my own websites simple and free from animations and deedly-bobs!) So instead I started calling myself a designer, but I found that to be ‘wrong’ too because I hadn’t studied at a graphic design school. sigh Well I had to pick one basket or the other, and now I am studying at design school. It hasn’t been easy, but I think I’m enjoying it. I wonder if I can really call myself a ‘web designer’ after all of this…
Well, that’s a bit dismissive of the role of JS. Sure, keeping things simple is an admirable goal, but sometimes using JS can help towards this end. And to add yet another dimension to this whole discussion, when you get into the realm of web apps rather than web sites, JS becomes pretty much a fundamental requirement.
In this case I’d say whoever told you that you were wrong was very much mistaken. If you have a strong portfolio and you’ve made the effort to educate yourself on design principles and history, it shouldn’t make any difference whether you’ve been to design school or not, although I realise the real world doesn’t exactly fit this ideal, sadly.
You should probably dive into JS. Otherwise you might get in to trouble finding a new job sometimes in the future. Apart from that JS animations are quite powerful. Unfortunatrly JQuerys subpar animation library has led developers to believe that animation with JS are somehow bad.
This sounds like a similar story for myself, I’ve merely kept chasing down the rabbit hole of technology until I’m sometimes called a “Full-stack” person. Although the more towards the back and business end of things I go, I always come back to the UX – and simply manipulate the back-end to produce better front end experiences. I’d also like to mention the difficulty in titles or descriptions can be pointed at HR folks, needing to label things, and often not getting correct information on what to hire for – thus major confusion in recruiting, and talent searching.
Keep on with the technical creativity :)
Being a FED (encompassing all that is front-end) is really, really hard in so many ways these days. Anyone who thinks otherwise is ignorant or a genius. Although it has a low barrier to entry, it is extremely difficult to master. If there is confusion in defining titles within the field then those in HR or the general public have no hope. It would be great if new titles could be born which would help delineate concerns. However with such rapid change they might be outdated before widespread adoption. Maybe I’m just too old.
I think you’re spot on skube–thanks for sharing! In fact, I think there is enough fodder to support the claim that front-end dev is “real” dev because of all the tools and resources (i.e. Grunt, Sass, Javascript, etc.) that have become necessary components in our tool belts. And the variance between what is in one person’s tool belt versus another may very ell warrant a differences in titles.
As annoying as it is to try to match your skills to a specific title in this industry(probably others too), it’s still a useful tool. I think the community really needs to work towards agreeing on this, even if we never fully agree. I’m just getting tired of seeing job listings for front-end developers that include site design and job listings for web designers that require knowledge of a front-end framework.
In my opinion if you are developing/coding sites you are a front-end developer, and if you are designing sites or specific parts of site then you are a designer(web designer, UI designer, UX designer, whatever…). If you are doing both then you have two titles, you are a front-end developer and a designer. Of course there’s always going to be some overlap, but at some point you stop just being a designer or a front-end developer and start being both. There’s nothing wrong with having two titles.
This is interesting because I think there are a lot of designers who were forced to learn code and a lot fewer developers who felt they needed to learn design.
And to what extent can you really “learn” design anyway? It’s like being a musician – not everyone who plays an instrument is a musician.
I can organize information effectively and I know how to lay out a web page to make it better. And I know good design when I see it. That doesn’t make me a designer.
On the other side, how important is it really to know every development framework. If I use grunt, does that mean I’m not qualified for a position where they use gulp? That’s ridiculous.
Unfortunately, outside of your personal network, all recruiting is done by a computer program which sorts through thousands of resumes based on keywords. So if the job description says “gulp” and I know “grunt”, my resume never even makes it to the HR person.
If I knew grunt and they want gulp, there is a great chance I would get an interview, as a result of my typos. I am equally likely to to type one or the other, regadless of which one I mean.
If something can be programmed, I can program it, provided I have access to Google for looking up answers to my questions.
I cannot create graphic art. To me, that is where the line has to be drawn, between programming and visual art.
I work on whatever part of whatever system needs attention to give my clients the results they need. Call me a full stack developer I am going to offer you a glass of wine and direct you to the museum of modern art (where all the art is ridiculous, as proven by Yoko Ono’s “art”) and then I am going to get back to work.
Yesterday, I had to figure out how to place images of any aspect ratio side-by-side on any sized screen, so they can be compared and voted upon. I call that front end design and development.
Last week, I was logged in as the root user on a linux server, implementing domain keys and dkim, because the emailed reports going out of of an app on that server were getting bounced by some of my client’s mail servers, and the mail administrator could not figure out how to white list the sending domain. I call that back end infrastructe and covering my butt for a colleague who should have made that server work unnecessary by whitelisting our domain.
Last year, I wrote tons of SQL to get data into right tables and fieldswhen it was move from one database to another. Sounds like a
data adminstration or database developent to me.
Front end developers think I am a hack, because I am not informed on all their techniques. Server administrators tell me I should not login with the root account if I have to ask some of the questions I ask. Php programmers think I am a beginner, even though I have been doing since they were little kids. I was insulted as being not up to date, because I don’t use Composer to manage 3rd party libraries in my projects, by a 22-year old who doesn’t see a problem with Google’s recaptcha code example linking to 1100 files in eight libraries with 5 different vendors, when exactly zero them are used to make recaptha work. The reason for the external libraries is that Google’s internal project tema needs those libraries, because recaptha is part of a bigger project inside google. That made my job, of implementing the “I am Human” checkbox for a client’s shopping cart checkout, a lot harder, and all they wanted to tell me was that it hard for me because I am inexperienced in the relvant technologies. They could not understand the technologies were not relevant so they should be excluded from the public release. I guess that made me archtitect.
It seems that job name snobbery is not recognized for what it is – stupid and ugly.
I have been making a living as a programmer or IT manager since 1984. Before that, I graduated from MIT with a degree in engineering. When I say my education, training and experience have led me to conclude WorkPress is a haox, none of my qualifications or titles matter. No oen wants to know why I think that. All that matters is that people who think WopdPress is ok think I am a nut, and people who don’t like WordPress think I am a breath of fresh air, finally “an IT guy” not taking out his rear end.
I am a computer programmer. That is what Bill Gates had on his passport for his occupation when was running Microsoft. I don’t like using Windows Servers, and I prefer a Mac with its linux foundtion to Windows on a laptop, but I still it is cool that Bill Gates called himself a computer programmer, and I call myself that too.
I listen to what people want and I show them what I have done to provide what I understand about what they want. If they need artwork, usually I can get what I need from someone else’s website, change it enough to make the plagerism not obvious, and everybody is happy. If they need a logo and seriously well done branding, I tell them those costs start at $10,000 for a small business, to cover the artwork and the quadrupling of time it takes to code a completely new design.
All those role names are crocs of BS, invented by Human Resource managers who procure and terminate people. They can have my middle finger, the one I am showing them.
I’m right there with you – except my degree is in Electrical Engineering.
I’m convinced the reason I am not a “programmer” today is because my first basic FORTRAN class required the use of punch cards. :^P (The last in the history of UofI to do so.)
Basically I create web sites using whatever tools and technologies make sense to me. Web professional sounds about right.
Give the 22-year-olds some time to learn that they aren’t omniscient – the more arrogant they are, the harder the lesson will be. (Take it from one who was pretty arrogant herself at 22.)
Personally I’m content working in state government largely because I don’t have to deal with people young enough to be my children telling me what to do.
Just a side note, OSX is based of of unix, not linux.
Jorge, osx is based on unix and not linux? That is a joke, right?… maybe not a joke, but an explanation of why it is sort of anemic?
I’ve resorted to just calling myself a Web Professional anymore. It’s a little generic, amorphous, and maybe a tad pompous. But I think it sets up the right expectation for what I do for the projects I am a part of and those that I want to work on.
For a while I tried telling people I was a “Web Devigner”, almost no one found it humorous, and they got even more confused about my role.
Everybody here mentions HTML/CSS/JS, all needed but PHP is also a must, whether we like it or not.
Ha! I remember trying the same thing with very similar results.
PHP has certainly becoming important and it can be super useful for streamlining the front-end workflow, even with just a “sprinkling” of understanding: https://css-tricks.com/sprinkling-php-server-side-techniques-help-front-end-tasks/
I don’t think that PHP is a total must have these days anymore. I feel like that requirement was changed to something like “Needs to have a good grasp of OOP Javascript and be familiar with built tools like gulp”.
Yeah, PHP is definitely not a must (as I think can be said of other proficiencies such as Sass, Grunt, etc.) but it can be helpful in our front-end toolkits and perhaps build a better working relationship with programmers who might also be working on the same project.
No PHP is not a must. PHP is used for alot of websites but there are also different languages to write websites.
I got for example 7 years of experience in writing front-end stuff with C# .NET as backend. (C# .NET <3 so much nicer then php as a front-end dev.)
I do agree that it is handy that you know the basic stuff of the backend language you are working with.
I’m not sure what planet you live on, but in my world PHP is a must, since it powers WordPress, Drupal, Joomla!, MediaWiki, etc.
Popular sites using PHP include Facebook, Twitter, Wikipedia or Baidu.
According to W3Tech, in 2015 PHP is used by 81.9% of all the websites whose server-side programming language they know. Some revealing stats at the link below:
Usage of server-side programming languages for websites
I’m not sure what planet you live on, but in my world PHP is a must, since it powers WordPress, Drupal, Joomla!, MediaWiki, etc.
Popular sites using PHP include Facebook, Twitter, Wikipedia or Baidu.
According to W3Tech, in 2015 PHP is used by 81.9% of all the websites whose server-side programming language they know. Some revealing stats at the link below:
Usage of server-side programming languages for websites
@Ian good for you that you live in the PHP world but here not that much. All the big projects that i know of are being build in .NET. The largests IT company’s are developing in .NET.
Twitter: Scala (was Ruby on Rails)
Yahoo: php (transitionning to node.js)
Linkedin:java, scala
ebay: java
Amazon: java
Stackoverflow: asp .net
Google – Java (Web), –C (indexing).
And if you look at job opportunities here around 50% ask for front-end devs with experience .NET
So no PHP is not a must. Knowing how backend works and im not talking about syntax is a plus.
And where exactly in the Galaxy is “here”? Just curious.
Over here, on Planet Earth in 2015, PHP is used by 81.9% of all websites whose serverside programming language being monitored by W3Techs, quite a reliable source, at least among IT Humans:
http://w3techs.com/technologies/details/pl-php/all/all
Only the WordPress Platform powers 25% of websites in this World.
Seems to me like people look on php as if it is too dangerous and difficult for normal people. I am like “wha? I will tell you what is difficult, is making a system do what you want when you can’t use php in the templates! “Our templates do not require you to be a programmer, because instead of php, we have these half-assed short codes to use, which are much simpler than php!” (and I never have seen them before and they do most but not all of what php does… and they are 100% as much a programming language as php, but that just shows I don’t know anything and this stuff used to make me insane.
Yea, I really like this article… hits an nerve. One that used to hurt a lot.
Here = The Netherlands.
If you are an developer and your expertise is with WordPress, Joomla, Drupal then yeah having an understanding of PHP is a must. But you can’t deny that PHP is the only language. .NET is growing in market share (my location). NodeJS is growing.
There are so many different server side languages. And the only understanding you need to learn is how back-end works and in lesser extend the language it is written in.
And if i look at myself i recently started to work with PHP and i have very limited understanding of PHP but i can work perfectly fine with it because i have a basic understanding how backend in general works.
Just out of interest LinkedIn is running node.js not Java they moved accross relatively recently….I read it in “Leaning the MEAN stack” ….which I’m getting into atm…..PHP is important but just as important as any other language and not really a necessity for a fed although nice and often required in some positions. I’m beginning to come across more asp.net used in enterprise rather than php but yes there are lots of languages….really as a fed it’s a matter of working around this rather than necessarily developing with the code block, not matter what language is used and I assume a more senior delevoper will be across the stack…..
Here is the book….sorry it’s not actually called what I mentioned above…..it’s title is =
FULL STACK
JAVASCRIPT
DEVELOPMENT
WITH MEAN
BY ADAM BRETZ & COLIN J. IHRIG
I am in no way affiliated…just thought I’d mention it because I’ve found it pretty good for node.js beginner like myself ;)
I related so very much to Lara’s article and was shaken by the amount of snark it received. I couldn’t help but read them all as the receiver of said snark because of how closely I related to her words. I’m glad I wasn’t the only one. I just wish I could care a bit less like you, Geoff, but I find that I can’t do it if I need to correctly sell myself to someone.
But yeah, to a layman who I’m not trying to accurately describe my work, web designer does work best.
I definitely feel you here, Coz. I would probably find myself caring a lot more if I was in a position where I had to market myself more and had to define those skills to get new business. I remember feeling very awkward about how I positioned myself when first diving into freelance and it took quite a bit of time to strike that right balance.
In my experience with Job interviews I came across broad range of employers that doesn’t even know who are they looking for. Simply because they didn’t have enough experienced project manager, that could tell what kind of work power the development team needs. That applies even for big international companies. So most of the time. I was sitting in more than one chair doing tasks that would in some other company be spreaded across multiple people.
Very refreshing article and exactly the problem(s) I face today since I’m looking for a job as a front-end (WordPress) developer.
I’ve decided to call myself a ‘Digital Media Designer’ since that is what I graduated in at the Utrecht School of Arts.
I’m aware of the shortcomings of this view and some gray areas, but this is just how I see it… I use the terms in a descriptive sense.
Developers build things. Designers make things look and feel a certain way.
Front end is client-side. Back end is server-side.
If you use JavaScript to alter content/structure on a website, you’re a front end developer. If you use LESS, you’re a back end designer.
Having said that, I think that skills are more important than terms and titles. Lumping a set of skills together and calling yourself a designer tells me very little about what you actually do… Maybe you use jQuery for animations, or maybe you only know how to use Photoshop.
I sense the criticism that ‘front end developers are just designers who learnt html and css’ among my friends. I ignore them most of the time because they come back for help later on, then… i smile.
I think of these more as job titles. I think the titles come into play when companies are trying to determine a skill-set for a position.
At the end of the day, I think if you are doing any sort of programming for the web, you are a web developer. I would suggest that HTML and CSS wouldn’t fall into “programming” (small technicality). So, if you are just working in Photoshop, HTML/CSS, then I consider you a web designer.
I find that is really rare to see someone that is a “front end developer” that is comfortable with JavaScript, yet never touches PHP or some other server-side code. Currently, I have a job as a Frontend Engineer. I work with PHP nearly every day (Phalcon).
I will also say, that this is something that maybe a more seasoned, or advanced developer doesn’t really care about. You start to realize that you can’t really classify your work, and we are all just web developers (with different levels of proficiency).
Interesting! I like the ideal of matching the requirements of a job with the right skills, regardless of what the job title is.
On what basis do you say that html and css technically is not programming? I would mark that as false but am very willing to say, “oh, I didn’t know that, thank you for learning me something.”
The bottomline here is that it all comes down to getting hired to do a job you’re comfortable and happy with, so I will ramble on a bit based on my experience…
If I were to write your title on your resume for prospective tech companies, I would write ‘UI/UX Designer/Developer’. Its not a clean or pretty title but it includes everything you seem to do in priority order. It seems like your skills lean heavily towards the design side, dip moderately into UI development and shallowly into server-side. It sounds like that if the job required it, you would be comfortable digging deeper into JS and give up more of the design part of your roll. Whether you’d be happy doing that is another thing altogether.
I was once a designer, then an Art Director, then a Web Designer, then Web Developer, did a brief stint as a “UI Engineer” (a title which borders on Oxymoronic), and now bear the title of UI Developer. When marketing myself I use the title “Senior Front-End Developer”. “Senior” because I have been doing this a long time and am comfortable picking up a project and taking the lead, and “Front-End” because I associate that more with development than “UI”… Honestly, I don’t think “UI” belongs in a title before “Developer”, but that’s the title my company gave me, so whatevs. I still do some UI/UX design work, but I primarily write modular JS for a large Angular App, and wrestle with Java and SQL when required.
I have interviewed and receive offers for multiple front-end developer positions over the last few years and most of the jobs out there that I see labeled “Front-End Developer”, “UI Engineer”, or some other combination of those words are looking for someone who is first and foremost extremely comfortable with Javascript. Not just DOM manipulation and CSS class-swapping, or even building complex UI components that are driven by JS but someone who can build and extend a single page application, whether the technology is Backbone, Angular, Ember, etc.
These companies are also constantly interviewing designers who know a bit of jQuery (not saying that’s you, or trying to be a jerk), and they come up with litmus tests like the aformentioned FizzBuzz to check for basic knowledge of flow control and iteration, which are used constantly in application development. They know that if you can’t do that, or at least attempt to figure it out, that not only are you not qualified for the position, but you’d be very unhappy in your work if hired.
I agree that designers and developers throwing around titles and claiming supremacy of some kind amongst each other is idiotic and unproductive. However, I am not sure its really productive to say designing is kind of like developing, or attempting to redefine it to try and fit in with people you feel are being “snobby” anyway. Again you have to look at the bottomline, the interview, the job description, your skill set, and as a job seeker and someone building a career you need to know what companies are looking for when they post a job.
When I job hunt, I usually read anything that says Front-End or UI, and skip right to the section that describes the technology stack used in their projects. If I feel comfortable with the front-end (HTML/CSS/JS/jQuery/Angular) stuff they are working with and mildly comfortable with the backend (Node/Java/PHP), I then scroll back up and read all the fluff about the company and their “game-changing” products. To me, “Knowledge of Photoshop/UI design is a plus” is a bit of a red flag that they aren’t looking for someone heavy into coding, but more of a utility player to can design, write CSS and knows some jQuery. I personally want to be focused and neck-deep in web application code every day to keep my skills sharp, so being a utility player would make me unhappy professionally.
If you get into a situation where you’re sitting in an interview for a job you’re not comfortable taking on, the best thing to do is to be honest with yourself and the potential employer. Blaming a job title that you don’t think matched the description or dismissing the interviewer as some snob who just doesn’t understand you is being dishonest with yourself prevents you from learning from the experience. Deciding whether you’d be happier being the nerd writing JavaScript everyday and knowing the solution to FizzBuzz off the top of your head instead of designing and building beautiful UIs is what’s really important.
So, I don’t know if anything I said above means anything to anyone, but ultimately I feel that design/development is more of a spectrum than a list of titles, and usually your skills fill in and gravitate more towards one side of that spectrum. I don’t think titles matter beyond the ladder they present for you to climb professionally and financially. I also believe that to be truly happy with your work you want to only go for a job description you’re comfortable taking responsibility for.
Yeah, I’m a utility player and borderline depressed. I am trying to not be any more but finding it hard to just run in any direction and tell the next person, who in their first sentence says they are not computer literate and in their second says they think it will take two hours, that I can’t help them. I censored myself so as to be nice.
Yeah, so often I see nonsensical job titles like “Front-End Ninja” or “Web Rockstar” and they all mean different things to different people.
Some of the responsibility has to be on employers (or recruiters for that matter) to properly articulate the expectations of the job so that a more relevant crop of applicants are coming in.
The other end is certainly the way you nicely summed it up as going applying for anything you feel comfortable with and not fooling or stretching yourself one way or another. Nice points!
Geoff, since you’re experienced at both UI design and front-end development, I’m curious whether you still have an expectation for “pixel-perfect” implementations of a design, or whether you allow developers to be more flexible.
I like to look at things like this: there are front-end developers, and then there are front-end developers who are also programmers (i.e. full-stack developers).
The first kind comes from a design background. They either know about design or are designers, and they’re generally pretty good at HTML, CSS, and Sass/LESS/Stylus. JavaScript on the other hand, not so much. They know how to do basic operations with jQuery (show, hide, click, animate), but cannot write a custom jQuery plugin, for example.
The second kind comes from a programming background. They’re not designers, and they generally do not have an eye for design. They’re experts in their server-side language of choice, and usually great at HTML, CSS, Sass/LESS, and JavaScript. They know what prototypical inheritance and closures are. They can write a jQuery plugin. They can utilize AngularJS, D3.js, and any other sophisticated JS library.
Note that there should not be any stigma associated with the first kind of front-end developers, as long as they do not misrepresent their abilities. If the only JavaScript you know is jQuery, then you don’t know JavaScript. Don’t put JavaScript on your resume, and don’t apply for a job for requires some level of development in JavaScript.
Basically, you need to focus less on the job title, and focus more on the job requirements.
I totally would agree, IF the job requirements were accurate at all, too.
I’ve seen every combination possible in job postings. A Designer title with Developer desired skill-set, vice-versa, and everything in between. No one knows anymore — but the people that SHOULD know (ie. HR/hiring managers/head-hunters/temp agencies/the people who are looking for us) are perhaps the most clueless.
I have no point to this… because I have no good solution. But I think the trouble stems more from them than us.
This text it’s a really good explanation between the difference of the front-end roles.
http://drewbarontini.com/articles/the-front-end-spectrum/
Loved this. Thanks.
Thanks!
I keep hearing people getting called unicorns. What does that mean?
It’s a ‘mystical creature’ that can do it all, in reference to web development. Graphic Design, UX/UI, Front/Back end development, server, and drink coffee.
LOTS of coffee. ;^)
It’s really no secret that working on the web means lots of different headgear. My path followed yours rather closely. Originally, I was just someone who knew Photoshop and Dreamweaver. WYSIWYG all day. Then I got frustrated with the generated bloat and started learning HTML and CSS so I could control my own designs. Then “hmm, need a bit more functionality than this.” So began my long dive in JavaScript.
Eventually, as my interest and curiosity with technology grew, I looked up one day and realized I was doing serious programming. Not by intent, but by progression. As the web bloomed in complexity, and we found ourselves in need of better methods and techniques, web programming grew in scope.
I suspect the reason we often don’t know where we fit as front-end developers is because the web itself is expanding into greater domains and we simply follow the terrain. Technology itself moves fast, but the web is quicksilver. A traditional programmer can pick a domain and have some certainty that for all its growth, there won’t be a major uprooting of their skillset in the next few months, if not weeks.
Not so with the web. A cursory glance of its development over the years shows that it’s almost an infinitely malleable domain: changing form to fit the intent. From plain text and Usenet to rich media and the most ubiquitous social network in the world. From being confined to bulky CRTs to cradling our wrists. Our fridges will be web enabled and blur the lines that much more.
Not to romanticize it, but in order to work and build, we ourselves must be malleable. In contrast, the domain of systems is incredibly dynamic, but you can go away from it for a while and trust that you will still be somewhat relevant. The web simply won’t let us sit still long enough for the atomic level of specialization that occurs in other domains.
Not only that, it’s young. Compared with development as a whole, the web is a fussy infant. To use another analogy: developers in other domains still treat web technologies like volatile prototypes and we probably look like ranch hands wrangling cattle to them. Web development has the stigma of not being “real” development because we’re still developing our own idioms and standards. Even though any of us in the trenches knows how real this shit gets.
Though, personally, the question of whether web development is real development isn’t worth considering. Just because web development hasn’t yet gained the stability of other technology domains doesn’t undermine the sophistication of its growth or the new techniques we’ve had to learn just to keep up.
I also suspect that the reason web design and web development are so closely coupled (to the point they’re used interchangeably) is because the web itself evolved from a textual medium to a visual and interactive medium. Design is how something looks and works, and I’d argue that no medium demonstrates that truth quite like the web.
Web design and development is all text. Sometimes generated text, but everything from markup, to style, to functionality is a collection of text files. It’s not surprising there’s confusion between the roles. Web design, in many respects, resembles web development. It seems to just be a matter of where on the stack of creating a web product we are.
In this respect, our dilemma is natural. There aren’t any clearly drawn lines now. There may have been when we tried our very best to make the web resemble more familiar media, but the demands of the web as its own creature have mostly erased them.
It used to be that a web designer was someone who designed a site in a PhotoShop, and a web developer was the person who translated design to the web and implemented functionality to make it breathe. However, the evolution of the medium and its increasing ubiquity meant we couldn’t consider the web in a single context anymore.
Thus, our roles had to change. Now we have to wear many hats and our skills are on a spectrum. It’s not a matter of whether we design or develop anymore, but how much and how often we swing to either side of the pendulum. We have this dilemma because the web forced our hand.
Finally, as you said, even in more traditional development, design is a significant concern. Good design and architecture not of only the code, but the interface, is so integral to the quality of software and systems that attempting to separate them would be decapitation.
I’ve worn so many hats since I started my dive into technology that I’ve just decided to learn to love wearing hats. :P
Well said. It all comes down to experience in the end. It doesn’t matter which hats you’ve worn over the years as long as you continue to learn new things and approach new challenges every day.
Thanks so much for sharing your story, Chatman! I really like the idea that we have to be open to wearing lots of hats in a fast-moving environment like the one we’re in.
Love this:
This article is perfect for me, I am currently attending school for a degree in Interactive Media and Web Design, which is about as bland of a degree as you can get. I focus mostly on web design, whereas 90% of my classmates are graphic design. Whenever I am in class, everyone always says I’m a back end programmer. I agree with that, but that’s not all I do. They seem to think since I’m skilled in PHP / MySQLi that that is all I can do. They are always taken by surprise when I design mock ups or out duel the “front end guy” at his own game. I may be a “back end programmer,” but I sure as hell don’t take it to heart. I like to do a little bit of everything. Great article.
Love that sign off. :)
It’s true, I see so many titles being used to fill this roles, or many other roles. Some know only CSS, some lean more towards JS…Front End Developer/Desginer, UI/UX Developer, even just, “Web Developer.”
The way I like to look at it?
I “Build” Websites. Programming? We need to know it, at LEAST in it’s fundamental aspects. Especially if you’re jumping into JS. Sure, it’s not the hardest language in the world. But it’s the concepts that are most important. OOP. Etc…
I can pick up any programming book, and there are new things I can learn about each language. But MOST start with: If, If Then, Loops, Variables, etc…
We may not know 20 different legacy languages, and the likes…
But I bet you don’t know how best to get a user to click on a specific item.
Which words will really stand out to them and grab their attention.
How to market a site really well.
We’re in a realm where we must know many different things about every part of the web. I feel. Server Languages, Browser issues, Social Media, Design, Computer Sciences, User Interaction and Behavior.
You may not consider me a programmer.
But I AM a knowledged Master of Manipulation.
Aw man, good stuff. Why can’t people just do what they like to do without snob Bob providing his two cents? Just do you.
So many comments! Not surprising that everyone has their own thoughts about this.
Being a bit of a jack-of-all-trades I experience the phenomenon of miss-naming and miss-understanding roles more than I’ve witnessed them make sense.
Luckily, my current client decided that rather than try and figure out what label to use, he just went with ‘Web Ninja’ and then described what his goals were. After he (disappointingly) made it clear that there were neither sneaking around in spider man outfits or nun-chucks, we both understood what he wanted, and that I could do it.
For clarity sake, I think we should simply avoid labels and talk about goals. We continue to argue over if it’s an em, i, span, p, div, or whatever else that suits the current project, and we’re surprised that we can’t get job titles right?
Once one cuts through the labels and says “I want the word Developer to stand out” I can ask the questions needed to find out exactly what they want and can decide how best to deliver it for them.
I my opinion the JS MVC’s that started this mess. The back-end is now pushed through to the glass with JS and hardcore Javascript developers are now considered the new front-end developers.
And yeah why not, throw in a bootstrap theme and crank it up with Angular and you got yourself a website. Might not be a quality site, but hey if they are all equally bad nobody will notice (Only us “glass” front-enders, a dying breed).
And there you go, Legos definition of a Front-end Developer:
HTML5/CSS3, JavaScript based MV* frameworks, wire-framing
Translating visual designs into HTML and CSS
Responsive design and browser optimisation
Mobile First
Experience with CSS preprocessors (LESS/SASS)
Automated functional and acceptance testing
MVC Design Patterns and Single Page Application
Seems like a pretty big plate to me. Remove the RWD, SASS, and browser optimization and you got yourself a good javascript app developer imho.
I almost feel ashamed to have called myself front-end developer if thats the new definition.
This issue is driving me crazy lately, I’ve changed my LinkedIn title multiple times in the last year ;) I’m sticking with HTML & CSS Developer for now.
A couple of months ago I came to the conclusion that “developers are your prepress folks”, it’s funny Chris mentioned this a week ago. There are two types of desktop publishers, technical and creative. Whereby creative desktop publishers work at graphic studios laying out pages and technical desktop publishers work at printing houses preparing files for print.
Front-end Developers will/should fragment further, something like:
Javascript Developer (API, Ajax, Node etc. / a.k.a. Technical Front-end Developer)
HTML & CSS Developer (responsive, sass etc. / a.k.a. Creative Front-end Developer)
Animation Developer
This is just My OP…take it with a pinch of salt…
Web Designer minimum knowledge:
‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
CSS, Sass/ Less, a CSS framework, HTML, Accessibility, basic SVG, basic DOM manipulation via JavaScript or jQuery, can design cross browser compatible web pages, design with vector software such as Illustrator or Inkscape.
Front-end Developer minimum knowledge:
‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
CSS, HTML, Understand the fundamentals of JavaScript, know at least one major JS lib (animation lib/ MVC framework/ jQuery etc). Can develop interactivity via either the browser or server.
Modern developers + designers:
‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
The above plus at lest one or many of: HTML animations, Canvas animations, SVG animations, WebGL animations, audio/ video presentation.
Suicidal designers/ developers:
‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
I’m not learning ______ or ______ because (insert BS lazy reason here)?
HTML animations….I laughed, guess its my age because
<marquee>Weee animating html</marquee>
Was around when I created my first homepage ;)
I think the big difference between web designers and web developers is not whether they can do both, but a matter of whether they spend more time designing or developing.
For example. I’m a full stack developer. I’ve done some projects where I did the designs and UX for it. Does this make me a web designer? Quite possibly, but I only consider myself a developer.
Meanwhile a friend of mine does UX/design. He knows how to do HTML/CSS/Javascript. He can create quick prototypes, but he never really considered himself a developer.
Are there overlaps between design and development? Absolutely. But it’s these overlaps that make it easier for designers and developers to work together more efficiently
Great article! I’ve struggled with the terms Front End Developer, Web Developer, Software Engineer, Full Stack etc. on a personal level very recently myself.
My background is actually Electrical Engineering and after 25+ years and my fourth time as part of a “RIF” (Reduction in Force), I decided to pursue my passion of what I called Web Development.
With a strong background in programming, a love for web standards and a newly acquired certificate in Design Communication Arts from UCLA Extension, I attended Hack Reactor remotely to brush up on my JavaScript.
Let me get one thing straight though, I am not a designer and don’t consider myself good at graphic design or web design or any kind of design to be honest. I know what looks good and what doesn’t look good, but when it comes to doing anything like that myself, I freeze up. I like coding!!
When I finished up Hack Reactor in January and it was time to find a job, I had (and still do) have a hard time knowing what to call myself. I equate Web Developer and Front End Developer with those who can and do design as well, whereas I equate Software Engineer (either Front End, Back End of Full Stack) with those who write the code.
While looking for a job, I had prospective employees see my certificate in Design Communication Arts and assume I’m good at design and I had to explain that I completed the certificate because I wanted to know where designers were coming from and to know the basics behind good design. I even had one interviewer show me his site and tell me to “make it look pretty”. Ugh!!!
I also found a difference in the companies depending on whether they were looking for Developers or Engineers. Mostly those looking for Developers expected design experience, where Engineer positions were looking for coders. I receive one job offer that was advertised as a Web Developer, but offered to me as a Software Engineer!
I ended up taking a position that was advertised as a Software Engineer and that’s what I tend to call myself to try and steer away from people expecting good design from me! I still do things like responsive design, but I am not a unicorn! ;-)
Great post. I, for one, am glad that there seems to be room for “people who like JavaScript but have never opened Photoshop even once in their lives”.
Hi Guys! I tried to edit my comment on here……
You really need editing & deleting options available on posting.
Thanks
Sometimes i feel like other languages, Css generated error on wrong semantics etc.., so that it wouldnt appear trivial for an outsider.
I know how you feel. I guess my title would be system engineer, and includes both front-end and back-end programming. Since I mostly develop for the web, people still calls me web designer.
I know how to design, but I’m not great at it. Like you describe your programming skills I guess.
As a “devsigner”, I’ve accidentally made a living gaining proficiency in HTML, CSS (and the meta abstractions we love), plain old JavaScript, jQuery, AngularJS, ExtJS, Flash (AS2/AS3), PHP (Drupal/Wordpress) over the past twenty years. I too was tricked into the quest for pixel-perfect renditions of my designs. “If you want the job done right, do it yourself.” OR, at least become proficient enough to speak the same language as your developer brethren.
I dabble (again, accidentally) in C# during my day job. Let’s not forget JAVA at the last place… Long story short, I have no clue what to call myself. When people (like grandparents) ask what I do for a living, my response is always just “computers…”. I cracked up over Lara’s job title generating pen. It’s fantastic and should be shipped off to every HR department under the sun.
If you can take one thing from my rambling, just take it upon yourself to acknowledge trends and shifting in the overlap of roles and responsibilities. Your value increases ten-fold. In time, you’ll (accidentally) solidify higher level architectural concepts that folks who went to school for Comp-Sci probably learned in introductory classes. Talk to, and befriend those folks. Stop copying and pasting, start extending base classes. If you don’t you’ll have countless “a ha” moments when your architecture breaks down at scale.
Alright, back to Sketch and invision this morning. :)
I feel ya…
I started off in the same place you did: learning the HTML and CSS as and extension of my Photoshop and other design skills mainly to help promote a friend’s band.
I’ve since, over the course of the 10 years or so in a professional environment, built upon those skills and call myself a “front end developer” or “UI developer” but have learned other back-end type languages like Java so I can be more useful when developing for the front end interface. One of the jokes around my field is that the super smart back end developers just don’t know HTML and CSS and can’t design UI/UX. I understand that because I sometimes just don’t get a lot of what they do.
I’ve moved on to Ruby on Rails lately and have a better understanding of front and back end coding, but enjoy working with the user facing design of the site. I feel like knowing how both parts work make me a better developer overall. However, when I was interviewing for jobs at one point, I found that calling myself a “front end developer” was selling myself short in the end.
I find some back-end and full-stack developers, however they want to differentiate themselves from front-end, are super touchy but who does and doesn’t get the shiny “Developer” badge. I don’t see why it matters, as long as there’s clarity in the skills we’re talking about. Front-end developer – you develop.. the front-end… visuals, and the coding that makes those visuals. Maybe a little OOP here and there, rails or something.js.
Have you found that IT professionals in general are quite elitist? I have, although it’s not a great sample group. I wonder why it is. Maybe it’s the high-demand for their/our skills and usually the high intelligence that comes with being good at it. Although, of course, for every noisy developer arguing semantics and protecting their “dev” suffix jealously, there’s a fantastically talented person who shares with the community and is generally open to discussion and learning. ¯_(ツ)_/¯
You know what the biggest issue here is?
The biggest issue is SPAs ( single page applications ). Why do I say that?
Because front-end development is getting increasingly harder since you’re now expected to know these, and SPAs dig deep into software engineering.
If you’ve dabbled into HTML, CSS and JS on the front-end side for the purpose of making your websites interactive and beautiful, you’ll soon realize how different this is from programming SPAs.
You see, with SPAs, it’s all about data managment and data flow, which is completely the opposite of making things beautiful for the user.
And this is why we’re having such a big problem with naming our profession.
If you were to ask me, it would go something like this:
Front-end web developer – UX design, HTML, CSS, JS ( jQuery ).
JavaScript developer – SPAs.
what do you mean front-end developer?
Geoff,
I consider myself a Front-End Designer/Developer. Why? Because for 8 years, I have designed and developed exclusively in Photoshop and WordPress, and in doing so, have learned some PHP and JS, but only when it was called for. I, too am a student of Google learning and Stack Overflow.
Now that I am back in the job market, I am finding that someone in my position needs to not only know HTML/CSS (which I do), but jQuery, JS, HTML5/SASS/LESS, etc.
WordPress design jobs aren’t plentiful and I am spending my downtime (between job hunting/interviewing) forced to learn programming languages in order to apply for the front-end dev jobs. Maybe developing in WordPress has been a hindrance, since I never needed to fully learn these front-end programming languages, but now I have no choice but to embrace it and bite the proverbial programming bullet.
I’ve had a similar conversation with Lara, and I think she hit the nail on the head with the design/dev spectrum. I definitely think I am a stronger coder than designer, but not a strong a programmer (though I am learning!). Where do I fit?
This is not because they are lousy at their job, it is just because they don’t possess the accurate knowledge to look for and evaluate a potential candidate.http://vijaytamilserial.com/