Nowadays many people call themselves PHP programmers / web developers as soon as they know a bit of Frontpage or using Dreamweaver to generate the code for them. But are they really good web developers? Here’s my top 10 characteristics of good web developers, feel free to comment.
1. Ability to hand code
Instead of using an IDE where it justs generate a bunch of lines which you don’t understand, why you don’t fire up a text editor such as VI, Emacs, Notepad or Notepad++ if you prefer and start coding right away? There are many advantages of hand coding HTML.
- The code is clean
- You understand what you’re doing
- Easy maintenance and debugging.
I currently use Eclipse PDT as IDE
2. Ability to produce valid HTML.
The W3C has an online tool which checks whether the HTML code you write is valid or not and there’s a debate whether your code must valid or not. IMHO they must be and that’s why :
- Future proof
- Cross browser compatibilities
- Easier to maintain
3. Use Linux as operating system
Why on earth a web developer doesn’t use Linux? It’s free, comes with bunch of applications, you know the internals, you compile from source, you experiment things and most important, you’re more productive. An example, I must edit a file on server A.
On Windows :
Launch WinSCP -> connect to server A -> retrieve file -> edit file -> save -> upload -> ask for confirmation -> wait upload finish
Launch console -> SSH on server A -> open file in VI for editing -> save
Enough said ;-)
I currently use Kubuntu (Hardy Heron)
Have you heard of spaghetti code? If not, it’s mixing PHP code with HTML code. For example :
<body> <p><?php echo 'hi'; ?></p> </body>
This results in nightmare maintenance, a mess of code. Both designer and web developer work in the same file which is a bad mixture of logic and presentation. Fortunately there are templating engines which separate these two things.
5. Database abstraction layer
Your scripts must be database independent, i.e. if tomorrow your boss decides to throw all MySQL away and replace them by PostgreSQL, you don’t have to write the scripts all again replacing all MySQL functions by PostgreSQL one. Also, you just have to learn a single API.
I use PEAR MDB2 as DB abstraction library.
6. JS framework
I prefer YUI library (lots of documentation and exciting future)
Why retrieving the same information from the database again and again whereas you can cache the output to files or in memory. This will reduce the load on your database server. If you use the Smarty templating engine you can use cache groups . Another popular technique is by using Memcache, for high volume websites.
At work I use the Smarty caching system and a little bit of Memcache (for the taste ;-)), and my database load reduced by more than 70%.
8. Must have Firefox extensions : Firebug, web developer toolbar, YSlow
9. Keep reading
Keep reading reading and reading. Find popular programming posts on Digg, del.icio.us and read great magazines like Smashing Magazine, blogs like the YUI blog. Don’t forget to participate actively in forums and ask questions.
I don’t know why it’s like that but I like del.icio.us popular section more interesting and everyday I find lots of interesting stuff via this page.
10. Look around you
Don’t focus only on PHP. It’s OK but have a look around you, there are fantastic things happening, like RoR, Python ;-)
A web developer who hasn’t heard of RoR is NOT a good web developer.