So You’re a Professional Web Developer Are you?


Over the past few months, I’ve been helping out with recruitment for one of our offices by putting together a coding test and then marking the results. It’s been eye-opening. Also part soul destroying and tear inducing. At one point I stopped to look for the hidden camera, expecting a ghostly Jeremy Beadle to appear from the ether before I woke up.

Quality has not been great.

A cat, PC and a pair of pants. Circle the computer.

I’m not going to set out the test here in detail since (to use a Buffy phrasing) potentials might stumble across this here blog and use that for extra prep but here’s a summary:

You have a small Twitter clone that has a form with an input field and a submit button. There’s also a list of messages. You need to make some updates to the page to limit the number of characters than can be entered, alter the way the list displays, intercept the POST with JS and then bung some info onto a map.

And you get three hours to do it. And questions are encouraged since you have me on Skype if need be. What could possibly go wrong? A huge amount, it would seem.

From candidates who’ve introduced complete dependencies on JavaScript (progressive enhancement, anyone?) to candidates who have changed all dates in the database to strings so they could format the date (wat?), the levels of bizarre things people do is unbelievable.

I’ve also been interviewing for a couple of other positions we had available (sorry, recruitment consultants, the roles are now filled) and, as well as talking to some top-notch people, I also had the delight of asking technical questions of people whose grasp on fundamentals were… lacking.

So, in my humblest opinion (I am no development guru), here are some things I think you should consider if you’re venturing out into the job market and you consider yourself a professional web developer.

HTML

You might find this idea completely bursts your noodle, but the things that you’re building rely pretty heavily on HTML. If you don’t know how to write markup or understand how to organise content then just stop right now and go and learn that. Everything you do hangs on this as a framework so get it right.

Yes, browsers are very forgiving in what they’ll display. You can bung just about any mishmashed markup in a page and browsers will render it without so much as a syntax error. That doesn’t mean it’s okay. You need to know when something is done to an acceptable standard.

Here are some warning signs to look out for:

  • You find yourself putting a few <p></p> or &nbsp; items in to space out elements
  • You type the attribute style= or font=
  • You find yourself wanting to use the <center> tag

If you do any of those, seek help.

JavaScript

For a start: JavaScript isn’t jQuery (as awesome as jQuery is). And it isn’t just that thing you copy and paste in for form validation.

And it is not adding onclick=”” within your HTML. If you’re one of those people, go and find a book on web development written in the past 5 years then mend your ways.

If you describe yourself on your CV as a JavaScript expert and you don’t know what anonymous methods are, why putting functions in the global namespace (or not even knowing what that means) is bad practice, or know what RequireJS, AngularJS, Ember or such are, then don’t call yourself an expert.

The word you’re looking for is “novice”.

Complex interaction on the web has been competitive in the past: Java applets, Silverlight, ActiveX, Flash. Guess what – JavaScript won. It’s the VM that runs in every browser. Learn how to use it and you’ll open up so many possibilities for things you can create.

CSS

“I don’t need to know CSS – I’m not a designer!”

Good for you. Now be quiet. You don’t need to be an expert in CSS but you need to understand how it works and how it relates to the DOM.

If you’re working with a designer who’s responsible for the CSS, having a good grasp of how it works is going to lead to much better collaboration between you.

Did you know those animations you’ve been writing in JavaScript could just have been done in CSS? Learn what tools you have available to you and know when to use them. CSS is one of those tools.

Device and Response Size

When you create a website and put it online, your users have to download that content to view it on their device (yes, that’s device, not PC). Now more than ever, your users are consuming your website on a variety of devices and over a vast range of connection speeds.

“Oh, but my website is just aimed at desktop users so it doesn’t need to be small.”

Good point. Oh, wait, no: that’s a completely invalid assumption. What about Bob, travelling home from a conference on the train, using his shoddy 3G dongle to try and view your 5Mb website on his laptop?

Never forget to question and justify every byte you send down the wire.
Craig McPheat

You can’t dictate how users view your content so make sure it’s as lean as possible. There will always be a trade-off between page size and features but the important thing is to fully understand this trade-off. Adding jQuery to a site just so you can dynamically change the colour of an element is needless. As is including something like Modernizr if you’re not using it. These things all add up.

The smaller you make your site, the faster is becomes and the better it’ll handle load. There’s no reason not to make this a priority.

Be Inclusive

Not everyone interacts with the web in the same way and not everyone is capable of doing so. Understand how you can write code that helps people with different abilities consume your content.

The usage of page structure and additional metadata on your site not only helps those people but also pushes you towards creating better content.

Understand the basics and pick up the rest as you encounter problems. Download a screen reader or just use a Chrome plugin, turn your monitor off and see how easy it is to navigate around your site.

A Moving Target

If you’re working as a web developer, it’s unlikely you just fell into the job. It’s not cold calling people to sell roof cladding (I used to do that and was terrible at it). At some point you decided that this was what you wanted to do.

The web and the technologies around it are constantly moving and changing and the pace is only going to increase. New frameworks pop up frequently and there are always discussions on how to best solve problems.

You don’t need to learn every new piece of technology that comes out but be aware of trends and what exists. Try things, hack them and make up your mind about whether you think they’d be useful to you.

You can’t let your work/life balance fall towards your work side but the more you let progress pass you by, the less you’re going to understand and the less you’re going to enjoy your job. We got into this business because we like the innovation and the ability to create – embrace that.