I’m the lead for front end web development for a rapidly growing consulting firm, SDLC Partners. We do fantastic work, which means consistently delivering our projects on time, on budget and with zero defects, and exceeding our customers’ expectations.
We are able to deliver quality service by being very picky during the hiring process. As the lead for front end web development, it falls to me to do the technical interviews for anyone coming into our group. In this post, I’m going to take a look at the different skills that I think a web developer should have acquired by this point (or be working on) in order to be considered baseline acceptable. You don’t have to be a master of these, but you should have at least touched them and be able to integrate them into an intelligent conversation.
Now, depending on your current job, there might be constraints on what technology and processes you have actually gotten to use in a professional fashion. But here’s the rub: I don’t care. Learning and experimenting with these technologies is free. If you show up and tell me that you have a “passion for web development”, but follow that up by saying you’ve never actually used jQuery because they don’t use it at your job, that’s bad. Experimenting is all free to do at home. The curious, the intelligent, the driven, those who really have a passion for this technology will do their own work finding the standards and best practices regardless of what their employer mandates on the clock.
With that said, here we go:
Here are some resources to get you up to speed:
- The Mozilla Developer Network has a page full of content broken out for beginner/intermediate/advanced, providing great information. It’s also a good way to see where you fall. Find that you’re completely lost reading the intermediate stuff – that should tell you something.
2. Semantic HTML
HTML should be used as the informational structure of the page, not the design, and not to store data points for scripts. Using DIVs for logical grouping is fine, but don’t put them in “just to make some space” or to serve as some kind of visual goal. Likewise, don’t store your data in element properties, like adding a “clicks” property to a button to track how many times it’s been clicked.
Learning: when looking for resources online about this, don’t simply Google “Semantic HTML.” There are actually a set of tags for something called “Semantic HTML” that in general you will never need. It is more the conceptual framework experience that we’re looking for.
3. Styling through CSS
This goes hand in hand with the previous point. You would not believe how many people I’ve interviewed who show up with a portfolio that uses tables for page layout. Don’t do that. Also, make sure that you understand the hierarchy of effect of applying CSS at different levels. What takes precedence: ID, style class, in-line? If you think this is advanced voodoo, you’re going to be in trouble. Folks who already know this, please don’t laugh. There are plenty of people who think that because they can bang out a stylesheet and make the screen look right that they know CSS. A large part of web development in a professional environment consists not only of creating an initial stylesheet for a simple web site, but working with and troubleshooting CSS that others have produced, extending it, and creating well-structured styling work on which others can do the same.
Learning: More than a skill set, this is more of a discipline. You either do your design this way or you do not. I honestly can’t believe that anyone is still not doing this, but if you’re … using … (gasp) … tables for layout… start here.
Now that’s a lot of information! Take some time to think about these first three technologies, assessing your areas of expertise and areas for improvement, and then come back next week for the final 4 technologies needed to master your job as a web developer.
Roland Hess is a Senior Consultant at SDLC Partners, a leading provider of healthcare business and technology solutions. Please feel free to contact Roland at firstname.lastname@example.org with any questions on this blog post or to further discuss web development.