Get updates via the RSS Feed Add to Google

Friday, September 3, 2010

How to learn the Web development skills that will keep you working

Posted by Doug on October 24, 2008

Photo: batega

Photo: batega

There was a great article recently over on NetTuts called “10 Most Sought-after Skills in Web Development”–very helpful information for those of us who are trying to make it as freelance Web developers. But are those skills really within reach for someone who may not necessarily have a programming background?  The answer is a qualified “yes,” if:

  • you have a working knowledge of HTML and CSS
  • you know your way around PHP enough to make simple modifications to a script
  • you’re willing to take some time to study and experiment
  • you’ve got patience, determination and a desire to learn something new
  • you know where to find tutorials, references and examples to learn from

And although you’re more or less on your own for the first four of those bullet points, this article is intended to help you with the last one.  This is Part One of a two-part article on where to find the information and resources you need to acquire some of the Web development skills that can make you a better developer and equip you to keep working in challenging economic times.

According to the NetTuts article, the 10 most sought-after Web development skills are:

  • Framework knowledge
  • Widget development
  • Custom CMS themes
  • CMS customizations and plugin development
  • PSD to XHTML services
  • Javascript plugin creation
  • Facebook/MySpace applications
  • iPhone applications
  • Ecommerce integration
  • Flash and Actionscript knowledge

Part One of this article will cover the first five, and we’ll take up the last five in Part Two.

Photo: kansas_city_royalty

Photo: kansas_city_royalty

Before we dive into the list, here’s one more thing to chew on: most of those of us who do this stuff for a living do it partly because we love the challenge of learning new technologies.  But if you’re already a busy Web nerd, it’s going to be difficult to find a lot of time for learning new stuff. I would suggest that you give yourself plenty of time to learn something new, so that it doesn’t become frustrating to you when you have to be busy with other things for a while.  Be realistic about how long it takes to learn this stuff.  In some cases, your prior knowledge will be such that you can learn some of these skills very quickly, and that’s cool.  But don’t set yourself up for failure by expecting to learn something like Django in a week’s time when you’ve got three other project deadlines coming due next week.  Be reasonable, take your time, and do it right.

Now let’s take a quick look at each of these technologies and some of the best places to find information, tutorials and other resources.  And by the way, all of the resources that are listed here are available on the Web for free.  We may also compile a good list of books on these topics at some point, too.

1. Framework knowledge

Photo: oskay

Photo: oskay

A framework, in this context, is an application framework–it’s sort of like having the basic structure of your application already built for you, and your job is to flesh it out with functionality.  The idea is that you, as the developer, won’t have to spend your time working on the standard stuff that is essentially common to all applications–you can invest your time on the specific functionality of your application.  In my early days as an Apple II programmer, if my application needed a menu interface of some sort, I had to write it, pretty much from scratch.  Now with Apple’s Cocoa framework, for example, the appearance and operations of things like buttons, toolbars, application “drawers” and such are handled by the Cocoa framework in pretty the same way for any Cocoa application–that work has been done for you.  In general, the use of a framework makes application development faster, easier, and more consistent.

Here are some popular frameworks and resources for learning how to use them:

CakePHP

CodeIgniter

Django

Rails

Symfony

2. Widget development

Photo: whiteafrican

Photo: whiteafrican

There are all sorts of platforms that are ripe for a huge variety of widgets–Mac OS Dashboard widgets, widgets for Wordpress or other blogging or CMS platforms, Google widgets, Yahoo! widgets, Vista sidebar gadgets and more.  You can get a feel for the variety and scope of the widget market by visiting the Widgipedia site, among others. Here are some places you can find information about how to develop widgets for several different environments:

MacOS Dashboard widgets

Wordpress widgets

Google gadgets

Yahoo widgets

Vista sidebar gadgets

And check out this general article on Widget Best Practices.

3. Custom CMS Themes

Photo: geishaboy500

Photo: geishaboy500

Okay, so there are already thousands of themes out there, but there will always be a need for more, and for custom theme creation.  If you can learn to create and manipulate themes for Wordpress, Drupal, or other blogging and CMS platforms, you’ll stay busy, and you’ll make money.  Here is where your CSS skills will really come in handy.  Here are some resources:

Wordpress theme creation

Drupal theme creation

Joomla theme creation

4. CMS customizations and plugin development

There are many platforms and applications that use plugins as a way to extend functionality and customize.  Developers are writing custom plugins for Wordpress, modules for Drupal, JQuery plugins, extensions for Expression Engine, and other platforms.

5. PSD to XHTML services

A quick search will show you that there are a lot of people out there making money doing this, so be prepared to be good and to compete in the marketplace.  But a lot of Web designers do site design mock-ups in Photoshop because it is a relatively quick way to show a client how things could look, and it’s relatively easy to tweak the design before you translate it into style sheets.  The ability to start with a Photoshop document and turn it into a Web document is not that difficult to learn, and here again, your CSS chops will help you get the gig.

Go to Part 2…

In Part Two we identify resources for learning

  • Javascript plugin creation
  • Facebook/MySpace applications
  • iPhone applications
  • Ecommerce integration
  • Flash and Actionscript knowledge

In the meantime, if you find any other great resources in any of these areas, please add them via comments.  And if you want to make sure not to miss the next installment, why not subscribe to Underpants Office?

Thanks for reading this article!

You won't miss the next one if you subscribe to the RSS Feed

  • How to learn the Web development skills that will keep you working–Part 2 | Underpants Office said,

    [...] you missed the first part of this two-part article, go read it now–it contains a wealth of links that you don’t want to miss!  –Doug) Photo: [...]

  • ilovephotoblogs said,

    Great resource. There are many new skills I would like to learn/develop to create a web presence which is unique from the crowd. I do have a far bit of programming experience, but need to focus my energies to become more adept with PHP, AJAX, and CSS. Thanks again for a well written post and helpful links.

  • Doug said,

    @ilovephotoblogs: Thanks very much–glad it was helpful. I need to spend more time learning new skills, too–so much to learn, and so little time, it seems…

  • Pete White said,

    Learning Drupal was the best thing I ever did.

  • Doug said,

    @Pete:
    Drupal is very cool, indeed. Haven’t spent enough time figuring out version 6 yet, but I installed it locally and like some of the user interface enhancements very much. I manage a Drupal site now that is still on 5.3, so I need to get moving…

  • Jon said,

    Some very good pointers on the top skills to have… but to say that all you require is that “you know your way around PHP enough to make simple modifications to a script” is at the very least over-optimistic and at worst just plain wrong.

    There’s a big difference between changing the counter on a site from saying “visitors” to “visitors since this site opened”… and being able to modify and work with one of the fantastically complex frameworks around. Programming knowledge, perhaps not. Architechture (and I don’t mean being able to spot some fine Georgian pillars from 800 yards), design and good style are the important parts.

    Anyone can throw a few bits of PHP together and get something that works quite nicely… I’ve done it myself, I’ve watched 12 year olds do it. A little PHP (or any other language) won’t get anyone a long term job… there are far too many 15 year olds who can call themself proficient in PHP/ASP for that. It’ll be decimated by script kiddies within hours of launch, but anyone can do it…

    Which, at length, is where my point lies… a knowledge of the underlying systems is the important aspect. Whether you know PHP or not doesn’t matter, it can be learned in under 2 months (again, I’ve just watched 200 students learn java in 2 months… half with nothing more than a GCSE in ICT). Programming can be learned quickly, by anyone. Good design: that gets, and keeps you, a job.

    Jesus, I didn’t ‘arf ramble there. I hope you get my point anyway, if you cut out the repetition and blab :-)

  • Doug said,

    @Jon:
    Good point, and I don’t disagree that there’s much more to this stuff than just tweaking a script or two. What I meant to suggest (and perhaps I didn’t do it well) was that the “price of admission,” so to speak, is not high, and that there are enough resources available on the Web that a reasonably intelligent person with some aptitude, some drive and some direction can figure out the nuts and bolts of this stuff in time. But I also agree that an eye for (and skills for) great design are often the key piece. In my experience, it’s a rare person who has both great technical skill and great design sense. Thanks for your comment!

  • Free CSS Templates said,

    Great article. I have most of the skills. The only one that I don’t have and really need to get into is widget development. Just never had the time for it.

  • howto web develop said,

    My Top 1 list of how to be a web developer:
    1. Develop on the web.

Add A Comment

home | top