In my experience, university web courses are enjoyable, insightful experiences that help you pick up a wide range of skills. The professors are experts in their fields and provide excellent support, the resources and facilities are also usually brilliant, but there are some things that you just don’t learn while completing a degree.
Sometimes, it’s just not possible to cover all the potential pitfalls of web development in the schedule of a course, but more often it’s simply not possible to simulate the pressure of a real working environment. The educational goals of a university means this isn’t possible.
Since leaving university I have discovered countless things about web development, but below are the ten I feel are most important.
Universities tend to release vague specifications for coursework such as ‘build a holiday brochure website’ or ‘build a shopping website’, but it’s important for there to be more detail included in a genuine functional spec. Beginning work on a project while it is still unclear is guaranteed to set you up for a fall and delay your project.
You are aiming to make your website the best it possibly can be, to surpass expectations and not just meet them. The days of scraping a pass by 1% are gone. Passable performance won’t be celebrated by your clients or your boss.
No more cases of ‘the dog ate my code’ or not creating a backup and losing your work. Most businesses will have their own setup to ensure code doesn’t disappear, but the responsibility lies with you.
It’s as good as a fact. While it can’t be statistically proven, I am certain that this is the most likely time that a previously stable website will choose to break down.
Unlike at university, when tasks were set to build a website without outside plugins, not even jQuery or Modernizr, in the real world plugins can really give a website a top-class look and feel. As for re-using code, the more you can use the same bits of code, the faster your site will load. It will also make it easier to work on in the future, or friendly for future developers.
I challenge you to find a web developer anywhere in the world, that has never spent an hour or two in front of a bit of code, in despair as to why something as small as 4 lines of what look like perfectly formed code are not working. You’ll often find one bug that takes around an hour will often lead into finding and fixing another and a third bug and so on. Before you know it, it will have gone dark outside.
There’s no excuse for not doing it. Checking your own code over, reading it through and ensuring that there is absolutely no way of it breaking and causing unsightly errors for your users. At the very least if you know there is a line of code that can or will cause errors, catch the exception and send the visitor to a ‘Sorry’ page, but don’t leave these little pitfalls open for a visitor to fall into. Taking care of users and providing them with a good experience should be the main goal of any website.
A key part of the web development industry is maintenance. Many sites will have additions and see changes over time, and it’s always good to check if there is a more efficient way of writing that bit of code. Think of it as evaluative development.
Lecturers can be very good at comforting you if you’re in a coursework demonstration and you suddenly find your beautiful hand-crafted masterpiece stops working. If it comes to this with a business’ website though, all available manpower works on getting the site running again as soon as possible. After all, it’s about your reputation and other people’s custom!
Say you changed some code to send an email to someone when a form is sent. Test the form. Test it with all the data filled in. Test it without it. Test it with some bits filled in and others not. Test it with checkboxes not checked and checked, with dropdowns selected and not selected. Seriously try and break your form! Keep hammering the submit button to see if that breaks it. Then check out the rest of the site, does it still work? That page that no-one ever visits? Yep, that one. Test that too and make sure it hasn’t broken. Then, to be sure, test everything again. There is no such thing as too much testing!
It’s worth bearing in mind that undergraduate web courses don’t tend to require prior knowledge of development or coding. They are very good at providing a basic understanding of the web, programming and its associated technologies, but they are limited.
Universities shield students from the pressures of a real working environment, the importance of testing and the qualities of third-party plugins as they are responsible for an education, not to provide an end-user with an optimal experience. There’s no problem with this, but graduate developers be warned, you’ve not finished learning quite yet.
Flickr Creative Commons Image: Markus Spiske