Landing a PHP job Part 1: Technical Knowledge and Skills
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
I like UML for design and documentation, so worth knowing about even if you haven’t practiced it.
Libraries and Frameworks
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.
Joel Spolsky has what he refers to The Joel Test. Later in this series, we’ll discuss interviews, and I will recommend asking at least one of these questions at an interview, so you need to understand what they all mean and why they might benefit a software development team.
Security
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
In my opinion, developers should be capable of administering the full stack they develop for, usually in this case, the LAMP stack. There can’t be many potential PHP developers out there who don’t have a spare computer or hard disk lying around that they can’t install Debian on and follow a simple LAMP installation tutorial. If you’ve not got a spare hard disk, download VmWare Player and a debian appliance
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
Tags: PHP, php jobs, php skills, recruitment












September 8th, 2008 at 11:15 pm
[...] Landing a PHP Job (Part 1) Posted by Federico Filed in PHP [...]
September 9th, 2008 at 7:42 pm
You’ve given some excellent books as recommended resources here, but I’d like to add how important I think it is to be exposed to any technical events that are near enough to do so, such as user groups. In the same vein, I hope you’ll consider a trip along the M62 for PHP North West later in the year! http://conference.phpnw.org.uk
September 9th, 2008 at 7:47 pm
Hey - Great Post - I agree - knowing only one of those skills will not be able to land you a good job. I would also recommend “php and mysql development for dummies” they cover basic industry terms and break everything down for newbs
September 9th, 2008 at 9:04 pm
@Lorna
Hey Lorna, I’m planning on writing a part purely on Networking, will definitely make sure the user groups get their shout outs.
I’ll be there at the conference for sure, I’m even considering making one of the meet-ups depending on what they get lined up.
September 10th, 2008 at 9:38 am
I’ve just landed myself a new LAMP developer job in London and would say that Dave has pretty much everything covered with regards to what skills/knowledge will get you into interviews.
I think that AJAX is a pretty important technique to know though. Although I use the YUI library I found that recruiters were really keen on JQuery, which isn’t necessarily a problem…I think it’s important that you have some experience in one but then know the benefits of the others on the market just in case you need to choose them as your tool of choice.
Oh and I was asked about the development blogs I read, think that shows that you keeps up-to-date with the goings on in the PHP world and end up coming across useful articles like this :)
I would recommend using a feed reader to keep all of your feeds in one place (I use Google Reader) as opposed to your browser at work/home.
September 10th, 2008 at 9:54 am
@Carlton
Good point about the AJAX, should probably give it a mention under the Web Services heading.
With regards to blogs and such, I hadn’t really considered it, but I think I’ll stash that under the the Networking Part and try and encourage people to comment on said blogs. You commented on my blog, I’ve subscribed to yours, so I’d call that networking?
I’ll be posting a part on Interviews, if you’ve recently been interviewed, let me know drop me an email with anything that might be interesting.
dave(_nospam_)mastergeneral@gmail.com
September 10th, 2008 at 12:20 pm
Good points. A little shameless plug; you mention the lifecycle but don’t list a book there. My php|architect book on Enterprise PHP development covers exactly those topics.
September 10th, 2008 at 1:14 pm
@Ivo
Your book is about a foot away from me as I write this, but I haven’t started reading it yet!
For anyone else, I’ve skimmed some chapters and I like what I see so far, so go buy it.
September 11th, 2008 at 11:42 am
[...] Dave Marshall hat einen kurzen Artikel darüber verfasst was ein PHPler können sollte (Hard Facts), mit einigen weiterführenden Links auf joelonsoftware.com der sich immer wieder mal mit dem Recruiting von PHP-Programmierern befasst. [...]
September 14th, 2008 at 10:29 pm
[...] Landing a job in PHP – Some tips on what to do and learn to grab a job in PHP [...]
September 17th, 2008 at 12:23 am
[...] part one of this series, I discussed the technical know how I think will help get you your next PHP job. [...]