Worked at Outside Magazine · Upvoted by , M.S. in Computer Science, working at the intercept of computers and chemistry and , M.Tech Mechatronics & Front-End Web Development, Vellore Institute of Technology, Vellore (2013) · Updated 7y ·
It use to be very simple... so to answer your question, I think you need a bit of a historical context... Web development use to be simply just HTML (here is quite possibly one of the earliest examples of a web page: Tags used in HTML)
Three of the main reasons front end development is so difficult today:
- Browser/Device Proliferation – Back in the early 90's there weren't that many options for browsers thus the complexity & testing of websites were much simpler. Then came Browser wars 1 where new browser starting popping up quicker than hipsters at the apple store. Each of these new browser gave a slightly different rendering of the same HTML and new features were also being added out side of the early HTML specs. This gave way for the creation of the World Wide Web Consortium (W3C) which claimed to be the "one ring to rule all of the web technologies" or at least uphold a standard.
Javascript came on the scene by way of Browser wars 1 as well as CSS and eventually AJAX. But the critical piece to all of this rapid web evolution was that there were now multiple browsers that the web populace were using. So browser testing became important and believe it or not, Internet Explorer was one of the more forward thinking browsers during this time and introduced concepts (albeit proprietary ones) like "filters" and "vectors" way before the HTML5 equivalents. Internet Explorer's biggest competitor, Netscape, eventually lost out but sort of went into a deep hibernation only to be reborn as FireFox during Browser Wars 2.
Between the wars front end development kind of hit a slump and Macromedia Flash emerged as the tool for multimedia web experiences. Then there was that whole Dot-com bubble thing and although there were multiple browsers to test for, most websites were being viewed either on a desktop or laptop computer.
With Browser Wars 2 the tables were turned on Internet Explorer and front end technology started exploding again. FireFox, Safari and then Chrome started to gain popularity. But everything got flipped on it's head with the advent of Smart Phones (read the iPhone). Steve Jobs and Co all but killed the might Flash and created a whole different category of web capable devices (lets be honest, anything before the iPhone wasn't exactly 'web capable'). All the while, he made the job of a front end developer infinitely more complicated.
So today, we don't only have multiple browsers (which still render HTML differently) but also multiple devices which create very different experiences and input options (think hover vs swipe). This aspect alone makes front end development very tedious and If history is any teacher, it looks like devices and browsers will only become more varied (e.g. smart watches). - Skill-set Complexity – As mentioned before, the skills need to be a front end developer in the early days was proficiency of HTML. B/c of Browser/Device proliferation and the evolving web standards, knowing HTML is only the first step in a list of proficiencies needed today.
HTML, CSS, JavaScript are considered the core of front end web technologies but those are only vague terms which can translate into much more more...
HTML is the soil in which all other web technology grows but its a pretty complicated mixture of reference and technique. Consider that you have validation, browser rendering & SEO tactics all converging at this level. Yes they should all compliment one another, but that is historically not the case. Throw in Micro formats, Accessibility, moving specs (Hey who removed <hgroup>?) and you've got plenty to stay up on. HTML5 API's could be mentioned here but lets save that for JavaScript.
CSS and the concepts utilized in modern web design have come to mean more than just 'styling'. It's a fundamental shift in how we build web pages. Yes I'm talking about responsive design but I'm also talking about animations & 3d transformations once only reserved for Flash. And then there's that whole web font thing. And on top of all this, we now have OOCSS. You had better jump on the CSS preprocessor bandwagon or get left in the dust... So while knowing the CSS syntax is one thing, the concepts derived from this area of front end web development are beastly!
JavaScript was once the laughing stock of the CS world but now people are running servers with it (Node.js)! Knowing JavaScript typically also means that you know a JavaScript framework (Angular, React, Ember, jQuery) as well, sometimes being proficient in multiple frameworks is necessary. Also, knowing build systems (gulp, grunt) and package managers is now essential for the portability and rendering of your code when working in teams. Couple the fundamentals of JavaScript with the wackiness of the Document Object Model and the emerging HTML5 API's and you've got good reason to never again want to be called a "front end developer"... I mean, you could spend months just developing in WebGL... And then there are those who think it's a good idea to abstract the JavaScript language into more beautiful syntax like CoffeeScript - Evolving Job expectations – Now on top of both the above reasons, another contributing factor to the difficult of being a front end developer is also the expectation of having an aptitude for User experience design and often design in general. Yes Front End Developer and UX Designer are different job descriptions, but they overlap technologies. So understanding UX can infinitely increase your marketability as a front end developer. In fact, any design capabilities will not only increase your marketability, but will help you understand the "why" behind your presentation layer.
In summary, front end development (web or otherwise) is evolving at an exponential rate and straddles the fence of Applied Computer Science and Behavioral Science, thus requiring additional skills than it's more logic centric counterpart, back end development.
293.9K views ·
View upvotes
· View 4 shares
· 1 of 60 answers
Something went wrong. Wait a moment and try again.