10 starting signs of a good web developer (php version)

by asvin

web developer

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

Valid XHTML 1.0 Transitional
Validate your code



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

On Linux:
Launch console -> SSH on server A -> open file in VI for editing -> save

Enough said ;-)

I currently use Kubuntu (Hardy Heron)



4. Templating
Have you heard of spaghetti code? If not, it's mixing PHP code with HTML code. For example :

 
<body>
 
<?php echo 'hi'; ?>
 
</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.

The most popular one being Smarty which I currently use. Have the crash course if you haven't already.



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
Javascript is everywhere nowadays together with the AJAX buzz word. Good web developers must have an overview of all the js frameworks available and choose the best one for his task. Popular frameworks include the YUI library, Prototype, jQuery, MooTools, Dojo Toolkit and Ext JS to name just a few.

I prefer YUI library (lots of documentation and exciting future)



7. Caching
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

These great firefox extensions will help you greatly whether to debug some javascript, fix some CSS issues, increase your site performance. These are must-have for web developers, all three of them.



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.



Read more here