« You have the talent. You just don’t have the time.

Pass arguments through to your JavaScript functions from setTimeout() (revisited) »

What you need to know if you want a job in Web development

August 10th, 2008 by Brian | 6 Comments »

A List Apart is surveying the Web development community for a second year in a row in order to “…sketch a true picture of the way our profession is practiced worldwide.” I certainly applaud their efforts, but after taking the survey a deep state of ho-hum overtook me. It was a lethargic state of mind that is overpowering, and it led me to the conclusion, eh, well, maybe something good will come of this for someone somewhere. The numbers will be crunched, the data will be examined, and we will all go back to work.

It got me thinking, and I determined that there will be data that is missing altogether that would be difficult to extrapolate with a simple set of questions. The true nature of Web development is a complicated metric to gage without being in the field for many years, and without reading about and listening to thousands who are in the field with you. It can be a frustrating experience for any one person graduating college and starting their career, or wanting to transition into a separate discipline. I decided to try and change that with some personal reflection.

Information Architecture

The examination of how users interact with information on Web sites was first given a name when the book Information Architecture for the World Wide Web was written by Louis Rosenfeld and Peter Morville. Before the IA was born, there was a disparaging lack of data on how best to organize information, and designers were given a great deal of freedom to explore the Web as a medium. After formal user testing procedures were developed, and after much trial-and-error, it was determined that some assemblage of order was required.

Information architects had previously performed the role of business analyst or programmer, but the field has centered fundamentally now around library and information sciences practices. Several veterans began their career focusing on an entirely separate discipline, but graduates entering the field will usually have a strong focus on behavioural sciences like psychology, sociology, or a degree in human-computer interaction. The role is often given to those demonstrating a high capacity for organizing information in a fashion that benefits profiled groups of users.

There has been a further split in the last few years, with user testing and analytics analysis requiring unique skills, and wireframing, profiling and user specifications requiring a completely different set of skills. This depends greatly on the size of the organization, with some individuals being required to perform all of these duties on any given project. It is rare that any information architect will be required to perform the duties of other disciplines, such as design and programming. It is also the discipline, more than any other, that plays a central role in defining core functionality for a Web site or Web application.

Some information architects prefer the title Usability Expert or Interaction Designer, and also focus on areas such as accessibility as it relates to information design and architecture. Usability is a term that has become synonymous with the field, but the meaning is broad as it is applied to Web pages.

Although there are those who falsely believe that information architects deal in absolutes, the best are actually able to think critically from the viewpoints of an entire audience. Much of this has to do with Jakob Nielsen, an unofficial spokesman for the field, who is emphatic about concrete rules surrounding Web design. This has caused an uncomfortable rift between designers and information architects that still exists today. It is a constant fight to balance human-computer interaction with brand integrity.

Resources

Web Design

One of the travesties of this profession is that it is one of the few where so many can claim expertise with very little hands-on experience. The term Web design and Web designer has grown to encompass an abundance of roles and responsibilities, and it is difficult to determine who is a valid authority. Your neighbor’s twelve-year-old nephew is a Web designer because he can use Dreamweaver, as is your classmate because she can wield a brush in Photoshop. It never ceases to amaze me, that second only to our human bond, our next strongest bond is that we are all Web designers.

Yet, among professionals we know there is a greater truth. It even goes well beyond artistic talent, striking a nice balance with usability, practicality and technical feasibility. The best Web designers are well-rounded individuals, who possess knowledge about color theory, typography, cultural trends, market trends, brand and identity conceptualization, video production, information organization, photography and illustration. The majority of Web designers today will have some education in creative and visual arts, whether it be digital or the fine arts.

There is a misnomer in the field that Web designers must be practitioners of client-side programming, standards and accessibility. However, this continues to be the result of an outspoken minority who claim to speak for a vast majority. The reality is that many very successful Web designers understand the medium and the constraints without ever touching code. It is simply that more individuals have chosen to branch out, and there is no indication of competence as a Web designer with respect to client-side development skills.

One other aspect of Web design relates to Adobe Flash. Just like analytics analysis has become an offshoot from information architecture, so has Flash development. There are many individuals who make a living solely through the design and development of fully featured Flash modules and Web sites. Among those, a few are programmers dabbling in ActionScript and other frameworks like Microsoft Silverlight and Adobe AIR, while some are designers who design the composition and contract out the technical aspects of the job.

Web design continues to be a controversial field because designers are often judged on the depth and quality of their portfolio with little regard for anything else. Advancement is difficult unless there is an obvious improvement in style and compositions in peer reviews. However, the opportunities available for Web designers today is probably greater than for any other discipline.

Resources

Client-side Programming

Client-side programming (or scripting) has become a mixed-bag of sorts, and can be masked behind several titles like Front-end Developer, Web Developer and even Web Designer. In the early days of the profession, a basic knowledge of HTML could land you a well-paid position. This is no longer the case, and the best client-side programmers are experts with XHTML, CSS, JavaScript, ActionScript, XML, standards, accessibility, have a very firm grasp of design theory, and often have some basic experience with a server-side language like PHP, Ruby, Java, or C#.

The primary calling card of any competent client-side programmer is the ECMAScript specification, which is the foundation for JavaScript and ActionScript. The language is used in frameworks like jQuery and Prototype, and is also used in conjunction with XML in the Silverlight API and the AIR API. Feature rich functionality on Web sites and Web applications requires a command of the language, and there are still very few who can code custom secure applications from scratch with confidence.

Continuing trends over the last few years for client-side programmers has put an obscene amount of attention on several fronts, including standards support in IE, semantics, CSS 3, the HTML5 specification, and JavaScript 2.0. In some respects the discipline is at a lull while technologies slowly advance, and the social aspects of the Web are now garnering more attention than the programming required for execution. A generous number of books and resources are available, and there continues to be an emphasis on joining camps that subscribe to particular theories of Web development.

Even though some people in the field will deny it, there is an undercurrent of disrespect for client-side programmers. The focus is split because the profession requires an attention to detail on both the design front, and the programming front. This push-pull eliminates the possibility of both creating award-winning design, and developing applications that require knowledge of environments and server-side programming. This can be viewed by designers as an inability to let go of inhibiting standards, and viewed by server-side programmers as an inability to grasp more demanding languages.

Resources

Server-side Programming

There are several titles for this discipline, which include Programmer, Software Engineer and Web Developer to name a few. The field has seen numerous changes over the last five years, and it covers a broad spectrum of languages, platforms, technologies and frameworks. More than any other discipline, this one has the greatest number of passionate voices, who often grasp onto a concept and never seem to let go. It is highly competitive, stressful, and regularly requires “work” outside of work.

Although system administration can be a requirement, knowing an environment is typically confined to how a language or technology works within it. There is an extreme polarization between Windows and Unix programmers, as well as an interest in the many flavors of Linux. The majority of server-side programmers, even though some claim otherwise, spend their time specializing in one camp. The dedication needed to master one language leaves little time for learning all languages at once.

Frameworks are a mainstay, and there is a growing concern that the next generation of developers will know little about a language in favor of using an abundance of APIs. Ruby on Rails, Spring, .NET MVC and Django are a few popular frameworks, but choice is usually determined by demand. Among languages, Java, C#, C++, Ruby, PHP, Perl, and Python are the most widely used, and object oriented languages still have more traction than functional language counterparts. Again, this mostly depends on choice and demand.

Server-side programming also requires an understanding of version-control systems like SVN, CVS or GIT, as well as an ability to architect database schema. Depending on the organization, an ability to program with JavaScript is a nice compliment, since so many applications now require asynchronous calls to server-side code. This has also increased the demand for programmers who can eliminate cross-site scripting and cross-site forgery vulnerabilities, as well as address other security concerns.

Web services have become increasingly important in a new era of development, since the sharing and manipulation of data outside “walled gardens” is constantly emphasized. Overall, the idea of open applications has gained more traction than software as services, since it gives the community an opportunity to inspect an application for flaws before investing time and money.

Resources

Conclusions

Quite honestly, I could have said a lot more than I did about each discipline, but this provides a nice overall summary without giving undo attention to any discipline, theory or technology. I think an important point to consider is that I do believe we are at a lull, or a crossroads in the field. When reviewing all the tools available at our disposal, most are old technologies with a new twist. It seems that the greatest innovations are figuring out how best to recycle those technologies.

Tags: , , , , ,

Posted in: Web Development

This entry was posted on Sunday, August 10th, 2008 at 5:15 pm and is filed under Web Development.

You can follow any responses to this entry through the RSS 2.0 feed.

Both comments and pings are currently closed.

6 Responses to “What you need to know if you want a job in Web development”

  1. [...] this insightful post, Brian Reindel discusses the different disciplines typically associated with “web [...]

  2. SQLDenis says:

    Mmmm, I am having a real hard time figuring out where I fit. I do mostly SQL development. SQL developmentis not design or client-side, I wouldn’t call it Server-side Programming either. Maybe data architecture?

  3. Brian says:

    Hey SQLDenis,

    I would probably put you under server-side development, since any developer wanting to use your schema would be required to program something in a server-side language.

    I would also argue that you are a dying breed if you can survive primarily as a database architect. Any DB I have known (that does nothing else) works for a very large organization, and is one of very few.

    Thanks for the feedback!

  4. I’m wondering where you would include content development on this list. Or if you would? I mean, when I would hire Web writers, I wanted them to know how to write for the Web, not just write.

  5. Brian says:

    Hi Jennifer,

    I think that largely depends on the focus of your Web site. I know a number of Web designers who double as copywriters for headlines, banner ads, and what would otherwise be considered “lead copy”. However, if you want someone to write articles of length, and articles that sell, then I would suggest an individual with a background in marketing. Although a copywriter with Web experience could be just as beneficial, short and sweet copy written by an executive with a traditional marketing background is typically best.

  6. [...] surfing and checking my usual places i found this post on d’bug very interesting. It covers many of the things that a Web developer might do or know [...]