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.
Okay, the test isn’t quite as simple as that.
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.
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.
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 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.
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.
The word you’re looking for is “novice”.
“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.
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.
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.