Web developers are software engineers, too
When I went to college I knew I wanted to work with computers but I didn’t know what exactly I wanted to do. I had fallen in love with a Packard Bell “multimedia” computer with a Pentium processor and a (gasp!) CD-ROM drive. I spent every waking moment on that computer doing nothing in particular but constantly building little tools and tweaking the system. It was all I could think about doing, and I knew that this was my career.
In college I took the requisite courses. Computer Science I and Computer Science II taught in Pascal. C for UNIX. C++. Smalltalk. Prolog. Assembly. Data structures and algorithms. Databases. All that stuff that requires you to sit in front of the terminal and type furiously to get a result. I found that really boring. I’m a very visual person, and staring at an endless stream of text all day drove me insane. That’s when I started experimenting with the web.
I’m dating myself here, but during my first year in college (1996) I set up my first webpage on AOL. I set it up mostly to keep in touch with high school friends and before I knew it I was spending a lot of time on that page. I was constantly updating and tweaking and trying to add new functionality. After a few months of doing this, I wanted to find a way to turn it into a job. My college, however, had zero classes on web development in the curriculum. It was just too new. So I learned mostly on my own, and got myself an internship at a startup doing web development.
It’s been over 15 years since then. Business has shifted to the web and with it the demand for web developers has steadily increased. What is surprising to me is what hasn’t changed: the perception of web developers as a whole.
In most companies, both large and small, web development is seen as some sort of gross amalgam of design and engineering. It’s not unlikely to see web developers in strange organizational groupings. Sometimes they are under design, sometimes they’re under product management, sometimes they don’t exist at all. I’ve spoken with a lot of web developers who have expressed this frustration to me. It’s hard for them to get any respect in the organization for what they do. And that starts with the organization as a whole.
My last job in Massachusetts was at VistaPrint. I really enjoyed going to work every day because the people there were so fabulous. I made a lot of really good friends there and always looked forward to being in the office around everyone. What I didn’t like was that I, along with anyone else who wrote code, was a “software engineer”. And every software engineer did everything from writing database queries to writing backend code to writing HTML, CSS, and JavaScript. It really didn’t matter if you had a particular skill in one of those areas, you still ended up doing everything. I tried to make the case several times for a different class of engineer, one who could spend her time focusing on client-side issues, but to no avail. So while I sat by and watched ugly templates being created and pushed to production, I was too busy writing SQL scripts to do anything about it. I really don’t like this setup as it enforces a “jack of all trades, master of none” mentality.
One of the things that drew me to Yahoo was that I would be able to focus on HTML, CSS, and JavaScript. I would be able to leave the backend stuff to somebody else, and just focus on the things I love. Yahoo was really one of the first companies that grokked web development. They started out by creating a new role called “web developer” and hired on an amazing array of developers very early on to help lead the company’s march into this new era: Thomas Sha, Eric Miraglia, Nate Koechley, Mike Lee, and more. From top to bottom, this was an all-star lineup and a tremendous way for Yahoo to take a step towards being serious about web development.
Shortly after that, led by these first few web developers, Yahoo decided that all of those talented individuals were actually software engineers. Every single “web developer” became a “front-end engineer” overnight. They were now officially part of engineering, where they should have been all along. What followed was, in my opinion, the development of the greatest front-end community in the world. This was before Google became the place to work and long before Facebook and Twitter entered into the minds of engineers. A lot of the best practices we have today, especially in the realms of performance, progressive enhancement, open APIs, and accessibility, come directly from the work that was done at Yahoo during this period. By the time I arrived at Yahoo in 2006, the front-end community was vibrant and thriving, transforming Yahoo into a company that took incredible pride in crafting Web experiences. I was honored and privileged to be able to contribute to that community and work with all those people.
Some of the amazing engineers that came out of that community went on to do great things. Thomas Sha founded YUI and got the organizational support for it to thrive. Eric Miraglia went on to become vice president of product at Meebo, which was just acquired by Google. Nate Koechley became an internationally recognized authority on CSS and front-end development. Mike Lee went on to found and co-found several startups. Douglas Crockford formalized JSON and became a worldwide authority on JavaScript as well as an author. Steve Souders became a worldwide authority on performance, published the first performance data from a large company, created YSlow, wrote two books, and co-founded the Velocity conference. Bill Scott set about creating front-end communities as VP of UI Engineering at Netflix and Senior Director of UI Engineering at PayPal. Nicole Sullivan became an internationally known authority on CSS for her OOCSS approach and a highly sought-after performance consultant. Stoyan Stefanov took over development of YSlow from Steve, became an authority on performance and the author of several books. Isaac Schlueter created npm and became lead of Node.js. Chris Heilmann became an internationally known developer evangelist. Scott Schiller became the leading authority on web based audio through his SoundManager 2 project. I could go on and on and probably fill up several pages of front-end engineers from Yahoo who have made significant contributions to the world of web development. Suffice to say, building a great front-end community attracts great people.
Many of the front-end engineers from Yahoo can be found at companies large and small all around the world, helping to bring the same level of professionalism to other companies.
Yet in so many companies there is still a lack of respect for web development. Quite frequently we are labeled as “not engineers”, and sometimes even shunned by the “real” engineers. What I know, what I learned from Yahoo, is that what we do matters (this actually comes directly from Nate Koechley’s required “How to be a front-end engineer at Yahoo” class during my orientation). We may not have the same training and skills as traditional software engineers, but that doesn’t mean we aren’t software engineers. Yes, anyone can be a coder, because that just means you write code. What makes you a software engineer is that you’re paid primarily to write code that ends up being used by your customers. The fact that your code isn’t Java or C++ doesn’t make you any less of an engineer than someone who uses those every day.
(Note: I’m intentionally skipping over the typically arbitrary distinction some make between “developer” and “engineer”. As far as I’m concerned, they mean the same thing.)
Yes, we might not know all the sorting algorithms, or how to hand code the linked list, but we don’t need that in our day-to-day job. On interviews, I always told people up front that if they wanted an expert in algorithms, I’m not that person. I am the person who can create really nice, performant, accessible web interfaces that make the product more enjoyable to use. I am a software engineer, and what I engineer is web interfaces. Other software engineers engineer databases or servers. We are all engineers.
The key to making a difference in the perception of web developers is to act like we matter. Don’t let anyone even hint that you’re not a software engineer. The best way to do that? Make sure your title reflects what you do. I’d like to see less “Web developer” positions and more “front-end engineer” and “UI engineer” positions. Naming is important, which is why Yahoo changed everyone from a web developer to a front-end engineer. And please, shun titles like, “web ninja” and “web rock star” and the like. That doesn’t reflect your value to the company (and it just looks silly on a resume). Titles are often negotiable because, to some, they’re meaningless. But they do have meaning insofar as it communicates your value to the company.
The next part is a bit harder. Front-end engineers should be part of the engineering organization, period. We are all engineers, we should be working with other engineers, and we should be honing our craft like other engineers. All engineers should be treated equally, and their level should reflect their skill. The fact that some engineers have specialties in different areas doesn’t make them any less engineers. If your company has a database architect or network architect, then there’s no reason not to have a front-end architect. Such titles connote a certain level of skill, rigor, and accomplishment in a particular area of software engineering. These all cut across specialties evenly. Here’s how I tend to think software engineering titles:
- Junior engineer – just beginning, perhaps out of college. Needs significant training and mentoring. Capable of taking on small jobs with oversight.
- Mid-level engineer – several years of experience. Doesn’t require significant oversight and is capable of doing medium-sized tasks on her own. There is a level of trust that she will do most jobs well.
- Senior engineer – experienced and shows leadership qualities within the team. Capable of taking on tasks completely and performing superbly without oversight. Takes responsibility and others on the team look up to her for advice and guidance.
- Principal engineer – very experienced and shows leadership qualities that extend outside of the team. Capable of owning complex tasks as well as delegating and managing others. Rock-solid interpersonal skills that allow her to influence direction both within and outside her own team.
- Architect – very experienced and shows leadership qualities across teams. Organized and a good communicator with a good understanding of systems. While capable of implementing, likely spends most of her time designing and overseeing implementations as well as mentoring others. The go-to person for tough problems.
As you can see, all of these positions are much more about personal capabilities than they are about a particular set of technical skills. You should be able to apply these conditions regardless of an engineer’s specialty or area of focus. A senior front-end engineer should be, level- and skill-wise, quite similar to a senior back-end or database engineer. Things like code conventions, best practices, and systems design are learned on the job, not at school, and are equally important for all engineers to understand. Setting up appropriate leveling really makes the case that front-end engineers are on par with any other engineer in the company.
If your company isn’t setup this way, it’s time to make the case. Web developers are software engineers and should be treated as such. The overwhelming success of the front-end community at Yahoo serves as a lesson to all companies: when done right, you can attract a phenomenal amount of talent and do amazing things. Yahoo’s recent struggles aren’t a reflection of the front-end community, and as mentioned earlier, there are a lot of former Yahoos who are now trying to build proper front-end organizations in other companies.
Almost all of the “top companies” you can think of right now are thriving because of the contribution of front-end engineers. There’s still an arms race going on among Google, Facebook, and Twitter, trying to find and hire more and more front-end engineers. Make no mistake, this is our time. So the next time someone asks you what you do, simply answer, “I’m a software engineer.” Then you can explain that your focus is on making web applications.
Disclaimer: Any viewpoints and opinions expressed in this article are those of Nicholas C. Zakas and do not, in any way, reflect those of my employer, my colleagues, Wrox Publishing, O'Reilly Publishing, or anyone else. I speak only for myself, not for them.
Both comments and pings are currently closed.




27 Comments
[...] fantastic article by Nicholas Zakas (@slicknet): Yes, anyone can be a coder, because that just means you write code. [...]
Why web developers are software engineers, too | Tilo Mitra on June 19th, 2012 at 8:28 am
Indeed, I’ll make sure to tell people that. It’s so hard to tell people, once you come right from college, what you really do and specialize in, unlike many other fields. But nonetheless, another fantastic post!
Chris Thomas on June 19th, 2012 at 8:43 am
I can’t agree more with this post. In my current position I interview a lot of new recruits and everyone has a different idea of what a front-end engineer does. Separating the people that can “code” a webpage and can inlcude jquery from the people that actually develop for the web is taking up a lot of time.
What I would like to add is this. I have my roots in what you might call “traditional” software engineering and transitioned to web development at some point. What I find lacking in a lot of web developers is a bit of discipline and attention to supportable code, coding guidelines, etc. Once I explain and show the benefits of this old school type of discipline they usually come around. Developers who’ve done some strong typed language stuff usually get this faster.
I’m not saying all front-end engineers lack discipline and old school people don’t. If anything the old farts can be a bit too rigid (is that me? Yikes I’m not that old). Everything in moderation I guess but I just wanted to add my observation.
But isn’t it an exciting time to be a front-end engineer
Markus on June 19th, 2012 at 9:08 am
@Markus – I also come from a traditional computer science background and agree. I would say, however, that the level of rigor you’re looking at is something that is frequently learned on the job rather than in school. I see the same issue with inexperienced back-end engineers.
Nicholas C. Zakas on June 19th, 2012 at 9:11 am
@Nicholas – School is like getting your driver license. You know how to start the machine but only experience on the road will make you a good driver.
I have a motto I go by: Developing is a skill and the language is a choice. Pick the language that fits your eco-system or is best suited to fix your specific problem (type). To the man wielding the hammer everything looks like a nail.
People who get this have a much greater chance of getting hired. In the end good engineers will write good code. However you can learn to be a good engineer if you care enough about improving yourself.
Markus on June 19th, 2012 at 9:30 am
Another great blog post. I’ve always felt the “scripter” and “developer” monikers that are given to us from “traditional” Engineers are just a snub due to their own ignorance and hoity toityness.
Richard on June 19th, 2012 at 9:50 am
Another great post Sir Nicholas!
And if we go by the book:
“An engineer is a professional practitioner of engineering, concerned with applying scientific knowledge, mathematics and ingenuity to develop solutions for technical problems. Engineers design materials, structures and systems while considering the limitations imposed by practicality, safety and cost.[1][2] The word engineer is derived from the Latin roots ingeniare (“to contrive, devise”) and ingenium (“cleverness”)” – Wikipedia
Talk about ingenuity and cleverness, you won’t find that anywhere else other than web today.
After reading this, I just got a new title, A Front-end Engineer.
Thanks again for an awesome read!
Joel on June 19th, 2012 at 10:24 am
Unfortunately, there are a *lot* of people out there doing HTML/CSS and JQuery who are most definitely not software engineers. They do not understand object oriented programming, scalability and other important aspects of web development necessary to build good websites/applications. As a result, ALL front-end engineers get labelled as “web developers”. Although unfair, I can see where that point of view comes from!
Amit Behere on June 19th, 2012 at 6:40 pm
@Amit – you don’t have to understand OO or scalability to be a software engineer. What you’re describing is an inexperienced front end engineer. Everyone is inexperienced at some point.
Nicholas C. Zakas on June 19th, 2012 at 6:43 pm
I’ve learnt everything about Front-end Engineering while on job and learning from this guy ‘Nicholas Zakas’. Many many thanks. Recently I designed the front-end for a web application for my company. Everything was perfect, but whenever somebody asked me why I decided to it this way, I found myself searching for theory behind my practical decisions. Then I just gave them this link http://www.slideshare.net/nzakas/scalable-javascript-application-architecture and not only they stopped asking further questions, they thanked me for sharing the link.
I always wanted to do something to gain the much deserved respect for our Front-end Engineering community and again, I can just forward this post
Nicholas, just one thing about Yahoo! May be I should say Yahoo! India – One and half year back I went through the rigorous rounds of technical interviews (7 of them) with Yahoo! Bangalore for a front-end post and was rejected after the final round for not knowing enough of PHP and algorithms.
Web UI Architect on June 20th, 2012 at 12:14 am
Spot on Sir!!!
The “Jack of all……” is what most of the companies expect from an “Engineer”. Sad, but little can anyone do until organizations realize that its not just about getting the work done by calculating the man-hours required.
Rajshekar on June 20th, 2012 at 1:54 am
I think that being considered and engineer should have to do with if you went to an engineering school through an engineering program or not. Most web developers did not go to engineering school. Furthermore, I think that people who did go to engineering school do not like to refer to those that didn’t as engineers because of the hardships that engineering school puts people through.
Also, is there no difference between writing a photoshop image editing algorythm vs. creating a business application?
Business apps and typical web programming is easy. Get data from database, show on web page. Edit data, save back to database is just about all I do all day long using C#. But the folks who are writing C#, the folks writing the stuff under that, and under that and so on are typically computer engineers that went to a real engineering school right?
Perhaps not but that was always my understanding.
I work for the US Army in a chemical and biological engineering office. I am surrounded by chemical engineers, mechanical engineers, civil engineers, computer engineers, electrical engineers and more. All I do is store the data they use in a web page backed by a database. Sure UI is important but no one here would dare put me at the level of all these REALLY smart people who went to engineering school.
I think of myself as more of an artist than anything. And I am OK with that.
kid on June 20th, 2012 at 10:57 am
@Kid – I don’t think you can logically put the constraint that someone has to have formal training in order to be considered an engineer. Almost all front-end engineers are self-taught primarily because what we do isn’t taught in school. I give more credit to people who make a career out of something they learned on their own vs. someone who had formal training. The former shows enthusiasm and persistence while the latter is just par for the course.
And yes, you are trivializing web programming a lot. Sure, it’s easy to throw up a web page on AOL or something of the like. That’s what hobbyists do. If I asked you how do you keep a site running when millions of people are using it from all around the world, you’d probably have a hard time answering that. In any field there are tasks that are simple all the way through tasks that are complex. You can’t base your perception of an entire industry on just one slice of those tasks.
I can also assure you that I’ve also worked with REALLY smart people in my field. Some even had PhDs. Until you’ve spent some time in our industry, you really don’t know of what you speak any more than I could make a claim as to what a chemical or biological engineer is capable of doing.
Nicholas C. Zakas on June 20th, 2012 at 11:10 am
“I really don’t this setup as it enforces a “jack of all trades, master of none” mentality.”
I think you a word here.
Nick Brown on June 20th, 2012 at 11:38 am
Great post again, you are very inspired these days
I think this problem is due to the fact that software engineers in general are not well aware of what the future of software is, and school courses don’t have the time to adapt to what’s going on especially for the web where everything evolves really fast and reinvents itself all the time; there are no UI or performance or scalability courses in CS. So some engineers remain with an old conception of software that is mainly not about the web, not about the interface, and just about algorithms and design patterns.
Fortunately other engineers adapt to the future, learn by themselves and create new roles for themselves like “UI engineer” and invent new fields and new techniques. If SEs knew better where software was going, they would know that the interface is the big thing happening right now. The UI is what makes the difference between applications, after all, GUI revolutionized operating systems, GUI made the Mac what it is today, and if GUI is not software I don’t know what is.
On the web Ui means usability, speed, design, everything that makes an interface great or not, and that’s what front-ends do. I think that’s the contribution that front-ends make to software : they build great interfaces that let people interact intuitively with machines and even invent new interfaces, be it through a screen or why not something else. In the web this contribution comes through as building great web interfaces, but in general UI is this layer between us and the machine that delivers the information. UI really is a part of engineering but it requires a different set of skills than just algorithms. For example it requires a great deal of geometry, browser knowledge or even psychology or script writing. Hopefully someday CS courses will evolve to integrate UI courses.
I call myself a UI engineer, I prefer it to front-end engineer to highlight both the designing and the building of the interface. Big thanks for your post because this issue has been eating my mind ever since a (former) google engineer told me I was not a “real” engineer as she arrogantly put it just from the information that I’m in UI and I don’t code in JAVA. Shame. I don’t think she was aware of what you can do in Javascript. The ironic part is that I have been relearning Java after that, and I find Java really so damn easy to understand and implement compared to Javascript where you have to create and invent all the structure yourself.
Regarding this problem (feeling like an underdog software engineer because I’m in ui) I reassure myself by realizing that UI is something new emerging in software especially on the web and great news, I can be part of it. Front-ends just need to continue what they’re doing and build great interfaces. The recognition that UI is completely part of engineering will come naturally as a consequence of their great achievements. But it will happen with time, the timescale in technology is just too short for it to happen right now as it’s still inventing itself. Front-ends are the engineers of the future, so proud of it !
Elodie on June 20th, 2012 at 12:08 pm
I think this is a fascinating discussion, I thank you for taking the time Zakas! Please don’t stop doing what you do! It is very important to us!
@Elodie
I too have been scoffed at by Java experts for only writing Javascript. I have had a Java programmer look me in the eye and say to me… “Javascript is NOT a real programming language”.
OUCH!
So beyond trying to be accepted as an engineer, I have faced many struggles in even calling myself a programmer!!!!
Sheesh!
So I looked up Engineering on Wikipedia and it says this…
“Engineering is the discipline, skill, and profession of acquiring and applying scientific, economic, social, and practical knowledge, in order to design and build structures, machines, devices, systems, materials and processes.”
This says nothing about a degree in engineering but later on it says…
“One who practices engineering is called an engineer, and those licensed to do so may have more formal designations such as Professional Engineer, Chartered Engineer, Incorporated Engineer, Ingenieur or European Engineer. ”
To give some extra context, also lookup ‘doctor’, and ‘programmer’ on wikipedia if you are interested.
Based on this, I think I agree with you here Zakas!
kid on June 20th, 2012 at 1:10 pm
A great post sir !!
I really feel proud that I am a Front-end Engineer after reading this article.
I especially enjoyed reading these lines :
“On interviews, I always told people up front that if they wanted an expert in algorithms, I’m not that person. I am the person who can create really nice, performant, accessible web interfaces that make the product more enjoyable to use. I am a software engineer, and what I engineer is web interfaces. Other software engineers engineer databases or servers. We are all engineers.”
I think its high most of the web based companies really understand this and try to hire engineer based on their expertise which would help build their engineering organisation too,rather than looking for all specialities in an engineer.I have seen even companies like you have mentioned in your post still don’t see the difference ,and they seem to have a generic interview rather than looking at the candidates expertise level or field of interest level.
I hope this blog brings some amount of change in other organisations who expect Front-End Engineers to know more about algorithms rather HCI patterns and optimization from a Front-end perspective.This way engineers like us would have more respect for what we specialize in !!
Thanks for this post once again sir !!
sindhuja on June 20th, 2012 at 1:13 pm
You’re on fire with these last two. Gotta say these have been the most interesting posts to come out of your blog in a long time!
You’ve inspired me to compile a post about my recent interviewing experiences here in the valley, as well as the general attitude towards hiring FE engineers in general.
Alex Liu on June 20th, 2012 at 4:27 pm
@Alex – long time, eh?
Nicholas C. Zakas on June 20th, 2012 at 4:30 pm
There is a reason why web developers are thought of in a confused manner in the organization. Your post primarily takes on the persona of organizational leadership or the business segments not understanding web developers apart from other technologists. Part of the problem comes from technology leadership and a legacy of crap.
Historically the term web developer was a programmer, of some sort, that wrote in some traditional programming language for a web server that responded with HTML output. This goes back to the 90s and early 2000s. A web developer at my company during this era was a TCL programmer, for example. HTML was just output. In this era stylesheets were not used and the beneficial qualities of markup languages were completely ignored in favor of appearance. This flavor of web developer did not know or care about web standards.
There was a flavor of people who in this early era did care about web standards and did write code, but they were just referred to as designers. HTML, regardless of the standards and regardless of its purpose, was used in business as a presentation language. If you could not make it look good, often using HTML tables, then you would be replaced by somebody that could. The result is that HTML was abused and the browsers would render anything no matter how crappy or abusive to the syntax. The value of things like accessibility or semantics were not commonly understood. From a business perspective any monkey could write HTML, but the real work was in the programming. This is the difference between a developer and a designer.
Fast forwarding to the current day…..
Today the technologies are still full of sloppy crap respective of the earlier era where the technologies were not valued. It is much better now than it used to be, but you can still perform a large amount of self imposing damage from the resident sloppiness. JavaScript is notorious for retaining, for backwards compatibility, its unnecessary sloppiness. Because this sloppiness is still present its a hard fight for actual client-side developers to be thought of as actual software engineers.
The only reason why client-side web developers are now considered software engineers like Java developers has nothing to do with technology or passion or anything else rational. Strong client-side developers are nearly impossible to replace. It all comes down to market economics only. You can learn C and Java in college. While you can do stupid things in these language there is still a clean and uniformly understood idea of what works and what doesn’t. These languages can be taught uniformly and leave behind a legacy of products and transcend time. These technologies are respected and the developers in these technologies can easily be replaced.
I am a JavaScript developer. JavaScript is the only programming language I know. Because I know JavaScript well and simultaneously have a legacy of understanding of what markup languages are really for I am difficult to replace. It is challenging for me to hire a sidekick. Because of the unit economics around my role and the inability to back fill my position I have value and stature. In order to maintain my stature I just have to continue to not suck at what I do. While this puts me in a very comfortable position with my employer and the greater industry it does my employer no favors. Honestly, this is not a solution to the problem. Its the problem evolved from a matter of complete disrespect into a horrible business monster out of control and preventing some established companies from moving forward.
It shouldn’t have to be this way. I don’t want to be honored for merely sucking less at my job than the general pool of potential candidates that are competing for my job. I want for the technologies to suck less and be respected for the potential I know they contain. I want to be able to tell if a potential candidate is a disrespected mindless code monkey or an actual client-side software engineer by looking at their resume. I want to be confident that the technologies I work in allow me to concentrate of authoring creative solutions to problems opposed to merely being a badass for learning how to tip toe around the landmines. In my opinion I still cannot do these things.
Austin Cheney on June 22nd, 2012 at 2:11 pm
[...] recently wrote a piece about the rise of the front end engineer (FE) as a legitimate engineering discipline in the age of [...]
The State of FE Interviews | mobicrave on June 22nd, 2012 at 2:32 pm
I have to second Alex here: great post Nicholas!
It inspired me to dig up and read one of my older posts on the topic that I had written way back when I was a “freshman” at Yahoo! Europe:
Where does the Frontend end?
And re-reading that, I realized that lots (or many) of the things I complained about I had to do that I didn’t exactly feel belonged in the realm of a Frontend Engineer, I _have_ to do these days. Why?
Compared to 2006 (or even 2007 when I started with Yahoo!), the things that we do with JavaScript these days are vastly more complex and arguably require more “old-school” Computer Engineering skills than, say, 5 years ago. In times where we have established patterns and best practices for writing code in an object-oriented fashion for the web and are able to execute JavaScript on the server and even to write whole frameworks in pure JavaScript (e.g. Yahoo!’s own Mojito), we have expanded beyond event listeners and DOM manipulation.
To me, over the last five years, JavaScript, as in “what we can do with it”, has evolved so much, that the scale that holds creativity in one pan and engineering skills in the other (that makes up a Frontend Engineer) has been tipped towards the engineering side. Especially when you throw things like Node.js into the mix, it requires you to have a big piece of the mindset and skillset of a Software Engineer that is no different from someone who writes code in C++, Java or PHP and has to create a framework. The only difference is that you are using JavaScript. But the complexity of the problems are the same.
My point is we are doing much more with JavaScript these days than attaching event handlers and doing DOM manipulation. So. Much. More. And with that increasing complexity in our field, Frontend Engineers (if they want to stay ahead of the game), need to understand/brush up on a lot of things that might not be familiar to them or that they have never learned in the first place. Because the background that brought them into the Frontend Engineering field might have been more creative than technical.
I see it as a big challenge that because of that increasing complexity, Frontend Engineers these days are expected to “own” (in terms of code, feature and task responsibility) much more than 5 years ago. If we continue at that pace, where we can own almost the complete stack from data retrieval to rendering (again, see Mojito), we might not need “Backend Engineers” at all in the future, except for providing us with an API URL we can call. Although, if that turns out to be true, then we need to redefine what “Frontend Engineer” actually means. Once again.
Klaus on June 22nd, 2012 at 4:41 pm
Perhaps I should rephrase and say, most “passion inciting posts”! For one, it definitely inspired me to end my blogging hiatus
Alex Liu on June 22nd, 2012 at 6:52 pm
What you say inspire me to be a UI engineer even though My major is not computer.But I really interested in HTML CSS and JavaScript,and want to design the best web page which can attract more people.
MeiYuchen on June 25th, 2012 at 11:13 pm
But your book is entitled “Professional Javascript for WEB DEVELOPERS” :p
Mark on June 26th, 2012 at 5:02 am
I’ve got to say that JavaScript has actually helped me understand the “traditional” object oriented software languages better. The first book I read on OO programming was a 900 page Java book and it was completely overwhelming with the concept of importing classes, packages, static and private variables, mutable and immutable Arrays and the like. There were so many things that had obviously evolved into the language along the way or from it’s predecessors to make it easier, more disciplined and convenient for developers that just seemed odd and confusing to me. It wasn’t until I learned JavaScript and read your book Professional JavaScript that the pitfalls and reasonings and purposes for many of these oddities in the other languages became apparent and the pieces of the puzzle started to fit together for me. Being a human compiler certainly forces you to learn a thing or two.
Joel G
Joel G on June 26th, 2012 at 8:01 am
@Mark – Indeed! Sadly, until everyone changes their titles, the publisher wants that.
Nicholas C. Zakas on June 26th, 2012 at 9:27 am
Comments are automatically closed after 14 days.