Landing a PHP job Part 1: Technical Knowledge and Skills
REXML could not parse this XML/HTML: <a style="float:left;margin:0px 10px 10px 0px;" href="http://www.amazon.com/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.com%2Fphp-architects-PHP-Hunters-Handbook%2Fdp%2F0973862165&tag=davedvd-20&linkCode=ur2&camp=1789&creative=9325"><img src="http://davedevelopment.co.uk/wp-content/uploads/2008/09/51jp8ktz0l_sl500_aa240_.jpg" alt="PHP Job Hunters Handbook" title="PHP Job Hunters Handbook" width="150" height="185" class="alignnone size-full wp-image-128" /></a>
After reading this thread, I thought I’d spend some time writing about what I feel are some measures you can take to landing a job in PHP. This first part is going to concentrate on the kind of technical matters I think any PHP developer should at least have knowledge of, if not some kind of experience. A lot of the subjects discussed aren’t specific to PHP, but the focus will be on PHP. It’ll be far from exhaustive (please feel free to flame, but constructive comments would be nicer) and there’ll probably be quite a few references to Joel on Software articles, mainly because I’ve read a lot of them and I can’t be bothered to research the topics further! There’ll be plenty of links to follow, plus the odd dead tree format recommendation.
Programming

This should be a no brainer. Lots of experience of programming in PHP, is not strictly necessary, a good programmer, particularly with experience of scripting languages or programming for the web should be able to pick up PHP in no time.
For someone who is basically a good software developer, learning another programming language is just not going to be a big deal. In two weeks they'll be pretty productive. In two years, you may need them to do something completely different in a programming language which hasn't even been invented.
- Sorting Resumes by Joel Spolsky
Most PHP applications are used in conjunction with an SQL database, predominantly MySQL, so you’re going to need some of this under your belt.
Some knowledge of PHP is essential. Be aware of the benefits, the caveats and if you’re interested, a little of PHPs history, some people really care about it. I think it definitely shows you are passionate about what you do or want to do. Maybe look to PHP’s future, research whats coming up in PHP 5.3, or whatever the next version is at the current time.
Software Engineering
Most PHP roles go beyond just programming, so a good sense of what’s involved in a full project life cycle should help you get that PHP job over the next guy. There are lots of processes and models available, but you don’t need to be familiar with them all. Get a good idea of the 7 stages of the traditional Waterfall Model and you should be able to apply the principles to most methods. They are:
- Requirements Specification
- Design
- Implementation
- Integration
- Testing
- Installation
- Maintenance
Libraries and Frameworks
REXML could not parse this XML/HTML: <a style="float:left;margin:0px 10px 10px 0px;" href="http://www.amazon.com/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.com%2Farchitects-Guide-Programming-Zend-Framework%2Fdp%2F0973862157%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1220909271%26sr%3D8-1&tag=davedvd-20&linkCode=ur2&camp=1789&creative=9325"><img src="http://davedevelopment.co.uk/wp-content/uploads/2008/09/51apwbg78zl_sl500_aa240_.jpg" alt="" title="Guide to Programming with Zend Framework" width="150" height="186" class="alignnone size-full wp-image-145" /></a>
If you are familiar with Object Oriented methodologies, arm yourself with the knowledge of PHP5’s OO capabilities. Once you’ve got that, get a handle of the vast array of PHP frameworks that are available. You don’t have to know them inside and out, just be aware of them and the benefits they give you. PEAR is a huge library of PHP code, check it out
Development Tools
There are plenty of tools available to aid and improve the development process, be familiar with as many as you can handle. I would insist on becoming familiar with, downloading and experimenting with subversion, or some other version control system.
Security
REXML could not parse this XML/HTML: <a style="float:left;margin:0px 10px 10px 0px;" href="http://www.amazon.com/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.com%2FEssential-PHP-Security-Chris-Shiflett%2Fdp%2F059600656X%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1220471983%26sr%3D1-1&tag=davedvd-20&linkCode=ur2&camp=1789&creative=9325"> <img src="http://davedevelopment.co.uk/wp-content/uploads/2008/09/essential-php-security-198.gif" alt="Essential PHP Security" title="Essential PHP Security" width="150" height="196" class="alignnone size-full wp-image-130" /></a>
Security is often a big cause for concern in the PHP world, mainly because it’s not been handled correctly before. PHP is not insecure in itself, most vulnerabilities attributed to PHP are actually simply in softwares written in PHP.
Be aware of security issues in your code such as SQL Injection, XSS and CSRF. Also be aware of configuration directives that can affect the security of your PHP powered web servers.
Web Services
Understand what a web service is and some of the related technologies. PHP is ideal as a glue language, combining web services to consume single web services or create mash ups of several web services, but can also be used for providing web services.
System Administration
I think thats all I can think of for now, I’m sure there’s plenty I’ve missed. If there’s any technical leads, managers or recruiters reading, please pipe up with what you expect from your applicants. The next part in the series will focus on the soft skills required for banking that PHP job.
More in this series
About
Dave Marshall is a Software Engineer living near Hull, England. He works on various personal projects and is the Technical Manager at Childcare.co.uk
Dave specialises in web application development for the LAMP stack, but always tries to choose a tool set that is most fit for purpose.
Dave is a Zend Certified Engineer and a Member of the British Computer Soceity.