An online friend recently asked me if I could run through the important skills for students to learn if they want to pursue web design or development as a career. It got me thinking, and rather than post a straightforward email, I figured my views (as a professional developer with enough experience to be cynical) might be valuable to others too

HTML and CSS I can’t emphasise this enough. You need to be able to read and write HTML and CSS in a text editor. You need to understand what a chunk of source code is doing, and how to write it in a manner that others will be able to follow.

Semantic Tagging Accessibility is becoming increasingly important. You need to understand the importance of implying meaning through your raw HTML - this will become even more important with HTML 5, which adds a number of important new tags to the mix.

Bitmap Graphics The package isn’t really important (Photoshop is the top of the tree) - common tasks are the things you need to learn how, in whichever software you have. You need to be able to crop to specific pixel sizes, and you need to know about the behaviour of different graphics file types.

Vector Graphics Learn a good vector graphics application - something like Adobe Illustrator, or Xara. You’ve no doubt noticed the resurgence of vector artwork recently on the web. It’s not going away any time soon.

Javascript Websites are increasingly dynamic, and javascript has been the defacto standard for implementing dynamic interfaces for many years now. It’s not going to go away. Knowing the basics of the document object model, and how to modify it on the client-side with javascript is an important foundation to use of JQuery.

JQuery This is important enough to mention separately to Javascript. In a perfect world it wouldn’t be needed - it solves most of the common browser incompatibilities for you, and makes coding AJAX interfaces almost trivial. Learn it. It is your friend.

Webservices This goes hand in hand with AJAX really. It doesn’t matter what language you are using on the server side, you need need to learn about both consuming, and authoring webservices so your client side javascript has something to talk to.

PHP, Python, or Ruby I’m going to choose PHP here purely because it’s the most popular. All we’re really talking about here is a server scripting language. You need to learn about taking a form POST, interpreting it’s contents, doing something on the server (updating a database, perhaps), and rendering HTML, XML or JSON back in response.

SQL The database server you might have on a web server isn’t really that important - knowing SQL is. You’re going to need to know how to fetch, and update information. You’re also going to need to know about building efficient data structures.

Linux You need to at least know enough about Linux to manage files, folders, and their permissions. To deploy your projects you will be dealing with FTP, or SSH. Use virtual machines to learn in safety.

Version Control Learn how to use a source code version control system such as Subversion (SVN). It is your friend, and will prepare you for the professional world where teams of developers rely on source control to work alongside each other. It save your bacon some day.

Virtual Machines Learn about using “virtual machines” for development projects. VMWare and Virtual Box are the most popular at the moment - visit Turnkey Linux, download a few machines, and have a play. Learn what “snapshots” are.

I’ve probably missed lots of other bits and pieces, but those are probably the essentials. The main thing I would also mention that’s not perhaps a learned skill is to keep your eyes open. Look at lots of websites. Read webdesign, and web development blogs. Know what other’s are doing. Pull other websites to bits.

The web is a moving target - some are even arguing at the moment that it’s being deprecated by Application development (I think Google might have something to say about that).

Categories:

Updated: