During the last six month or so, I’ve been looking to hire a PHP programmer for at least three companies. I have spoken to quite a few people on the phone, reviewed a bunch of resumes, and even interviewed a few. Out of all those candidates I recommended to hire exactly zero.
Before you start bashing my high standards, let me explain. I wasn’t looking for a rocket scientist or anything remotely similar. Not even a senior PHP developer. Someone with enough knowledge to take over maintenance of a couple of projects, both of which are based on famous open source software - CakePHP and WordPress.
I can understand that not everyone have worked with or even heard of CakePHP or WordPress. I can understand that getting used to that source code and going through documentation might need some time. I can understand that not everyone is familiar with open source software development model and that not everyone has worked in groups, so familiarity with version control software, documentation tools, and bug tracking was never a requirement.
What I cannot understand is why a person who have (according to him) developed more than two dozens of web projects with PHP and MySQL cannot write the simplest piece of code with pen and pencil. What I cannot undertand is how a “senior web developer” with years of PHP experience and team leading becomes useless when his Dreamweaver is taken away. What I cannot understand is why people with more than one Bachelor Degree in Computer Science recommend using bubble sort. What I cannot understand is why programmers start teaching the potential employer about the interviewing process instead of answering technical questions. And what I don’t understand is why technical people with years of team work, get pissed off or burst into tears when you ask them a technical question, and a simple one at that, during the job interview.
If you are wondering what sort of questions I’ve been asking, here is an example. A simple questions would be something like: “What is the difference between the stack (also known as FILO) and the queue (also known as pipe, also known as FIFO)?“. Most of the answer is already in the questions, isn’t it?
Those of the candidates who were boasting about their years of experience and prevoius projects, were given a simple programming task, which could be something like: “Using PHP programming language, create a list to store information about people. For each person you’ll need to store name, age, and gender. Populate the list with three sample records. Then, print out an alphabetically sorted list of names of all males in that list. Bonus points for not using the database.“. Each candidate was given a piece of paper, a pen, and unlimited amount of time. And in the last six month I haven’t seen one candidate who could write the code to solve that problem.
We’ve been through all job sites, newspapers, local and foreign forums, and recruiting agencies, trying to find the candiate. We haven’t found even one. At least three are needed right now. More will be needed in the nearest future.
Hopefully, by now you will agree with me on that the situation with the human resources on the island of Cyprus is disastrous. There is more demand than there is supply, and it’s not getting any better.
Those of you who argue in favour of Cyprus being a small, unimportant country in the middle of technological nowhere, might want to wait. Last year I’ve been in Greece at the Greek Blogger Camp. This year I’ve been in Amsterdam at The Next Web Conference. At both events I’ve chatted with a lot of people from all over Europe and the USA. I’ve also been all over forums and job web sites both local and foreign. And the feeling I’ve got is that the problem is not Cyprus specific, although, of course, Cyprus has it a bit worse than others, due to its position in the technology world, as well as geographical location.
While still spending a lot of time looking for a PHP programmer, I was thinking about the roots of the problem. PHP seems to be quite a popular language. So, why is it such a problem to find a good PHP programmer? (note: “good”, not “great” or even “very good”) Thinking about the roots of the problem, I got this theory, which isn’t even a theory yet, but rather a raw chain of assumptions and conclusions. Here is how it goes.
PHP is an ugly language
I know a few good programmers personally. I also read blogs and comments of a few more good programmes on the Web. And even though many of them use PHP often, or even on a daily basis, I don’t remember anyone of them every saying that they enjoy PHP. If given the choice of a programming language for a new project, they’ll pick anything - Java, C, Python, Perl, Ruby, Haskell… Anything, but not PHP. PHP has its pros, but being a beautiful or convenient language is not one of them.
PHP is newbie safe
One of the reasons for why PHP is so popular is because it is newbie safe. You don’t need to know much about anything to start programming in PHP. Most of the hosting companies will provide you with a PHP enabled hosting account for just a few dollars a month. You can write PHP in any text editor, so you won’t need a high end machine or expensive IDE. PHP.net web site has all the documentation and examples that you’ll ever need, so you don’t need to study hard in college or pay for subscription to developers’ network. All of these make PHP very attractive to beginner programmers.
PHP avoidance
Most of the good programmers that I know, have learned PHP to some degree. Most of the bad programmers that I know, have also learned PHP to some degree. But for good programmers PHP was either not the first programming language under their belt, or they’ve moved forward to some other programming language. Most of the bad programmers that I know, only know one programming language - PHP - and they don’t know it good enough. So, for good programmers, learning and using PHP is more like a temporary state, while for the bad programmers using PHP is more like a constant state.
PHP is rich with secondary reasons
There are many reasons for why PHP is so popular. It is free. It is open source. It is easy to setup. Most hosting companies offer PHP-enabled packages, as well as a lot of PHP software pre-installed.
With primary technical reasons (execution speeds, required resources, development speed, etc) not being very different from many other programming languages, PHP wins a lot of popularity with its secondary powers.
PHP is getting mature
PHP started off as a handy Perl library for web development. It grew and expanded over time. And so did the projects which were written in PHP. If, before, most of PHP scripts were doing the simplest of things, such as contact and registration forms, visitor counters and some templating, then now most projects are closer to full scale applications with user management, financial operations, high availability and load balancing setups, etc.
The moment of conflict
And here comes the moment of conflict. The complexity of PHP applications is growing higher and higher (see above). And the language is not beautiful enough to attract good programmers and make them stay (see above). The result? More and more applications are written by underqualified programmers, and it becomes harder and harder to find qualified personnel (the complexity of your own projects are growing too).
Questions?
How can we attract good programmers to PHP development? What are really the reasons for using PHP all that often, if it shares the biggest problem with the other languages - impossibility of finding qualified personnel. Is there any other programming language that can solve this problem? Is there any solution at all?
Solutions
These, of course, I don’t have, as usual. But. I am looking with interest at hosted application services. The ones like from Amazon and Google. I think these will mature of the next few month and years. And there will be a few more (Yahoo, Microsoft, and IBM maybe?).
The way I see hosted application services is like this. They will split the programmers into two categories. The first category will be all those novice programmers, who don’t know how or don’t have the resources to take care of everything. They’ll be using hosting, databases, libraries, and programming interfaces provided by hosting application services. (Of course, good programmers will be using these too, but they will have a choice, not like the newbies). Hosted application services will (not yet though) make it easy to cover the ignorance and help to make a few bucks here and there. Exactly like PHP has been doing it for years now. The good programmers though will mostly participate in in-house projects and customization developments, which won’t be fitting into hosted application services, and will require additional knowledge and experience.
Summary
If you are a PHP developer looking for a job in Cyprus, please let me know.



71 responses so far ↓
1
toto
// Jun 5, 2008 at 3:45 pm
Great article. I at least can attest to PHP being an ugly language.
It has no feel, no structure and no vision. Of course I’m a (mostly) ruby programmer, so I have to say that.
Which leads me to a quick correction. The programming language is called Ruby. Ruby on Rails is a framework much like (although very unlike) CakePHP.
Cheers!
toto
2
Eric DeLabar
// Jun 5, 2008 at 3:56 pm
Personally I’d run screaming from a developer that has done only PHP professionally. PHP is one of those great copy-and-paste, somebody’s-already-done-it type languages that not only allows, but encourages poor programming practices. Honestly, if you want to hire a PHP developer, look for a Java, Ruby, or .Net developer who has some PHP experience, test them on their programming skills not their PHP skills, and then give them a week to ramp up on PHP. Trust me, they’ll do fine, and they’ll be a much better investment for the money. (However, they will probably cost more, but again, you get what you pay for.)
Another tip, stay away from the pure CS-type questions like “implement a bubble sort,” or which sort is better. A newly-graduated college student may be able to answer these questions, but anybody with experience simply knows they exist, knows how to find the right solution when its needed, and also knows that most languages have some library that has it already implemented and therefore it’s not worth the brain-space to memorize it.
Honestly, my favorite, an most useful interview questions are on traversing trees and recursion. They’ll weed out the people who slept through their CS degree and are still very useful concepts in the real world.
3
Russ Brown
// Jun 5, 2008 at 4:20 pm
I suggest that you take your pencil and paper test, file it under T and instead give them a tougher task to do in their own time. Something that will actually test their logic and programming skills rather than their ability to remember function names and parameter lists.
The trouble with pen and paper tests is that they are totally unnatural. Part of being a good programmer is knowing where to find information fast: there’s simply no need to remember the name and parameter list of each and every function, especially in a language like PHP.
Fully agree on some of your other points though.
4
Koen
// Jun 5, 2008 at 4:35 pm
Why not just ask for a code portfolio?
5
Chad Crabtree
// Jun 5, 2008 at 4:57 pm
Hey great article. This is well written but you consistently misspelled one word ‘attrack’ should be ‘attract’. I’m just letting you know since I would like to be told.
6
John
// Jun 5, 2008 at 5:08 pm
I’ve said some of these same things before and get laughed out of the room or accused of being Anti PHP but it is generally true, ‘programmers’ who learn PHP first generally trend towards having less of an understanding of CS basics and thus more prone to crazy mistakes.
The only reason this is unique to PHP is that its really the only ‘Programming Language as Markup’ going. By this I mean ‘Looks like it runs directly in your browser’. This automatically removes the requirements to understand things like classes, objects, hierarchies, code flow, systems organization or even the base understanding of the CGI concept and how software impacts the server. It really abstracts you from the underlying activities. Once again, a positive thing in many ways but negative in others.
My favorite PHP story comes from helping a guy a few years ago. He had an ad server he wrote that would randomly lock up. He upgraded his database, bought a new base server (the usual rookie “Its CPU bound”, thanks Intel..). I took a look at his code and figured it out immediately.
He was generating a random number from 1..n (where n was his ad set) and trying to pull that record to display the ad but his n space was not full. To compensate for that he just wrapped it in a loop until he got a hit. I don’t think he ever understand how I fixed it, he just took the solution and went along his merry way.
Could have happened to anyone sure but it was EASIER to happen in PHP.
s/php/perl/g if(perl_could_run_like_it_was_a_markup_language_easily);
7 Follow-up to “Where did all the PHP programmers go?” - Blog of Leonid Mamchenkov // Jun 5, 2008 at 5:29 pm
[...] Posted in All, Programming, Technology on June 5th, 2008 · No Comments This is a quick follow-up to yesterday’s post - “Where did all the PHP programmers go?“. [...]
8
Alex
// Jun 5, 2008 at 5:50 pm
I like programming in PHP, expecially through Zend Framework. I do it professionally, but also code in Python and I am studyng Vala. I used programming in C some years ago, but don’t do it anymore.
@Eric
I agree on the interview questions, but don’t agree on picking up Java developers to code in PHP. Or, better said: it depends only on the person.
Where I work we had a Java developer who made the worst PHP (and Java…) websites and database structures I have ever seen, and a couple PHP developers who coded in PHP3/4 sites that are still working in PHP5.
I think you both had bad experiences with PHP developers.
I agree on PHP tending to create bad developers and giving false views on self capacities, but I think it all goes down to who wants to code well and who only wants to get the payment.
Sorry for my bad english.
I hope you understand what I mean.
9
Xavier Raj
// Jun 5, 2008 at 6:03 pm
Cent percent correct about the PHP resources available in markets, Even in India also the same story.
- Xavier Raj Antony Samy.
10
Eric DeLabar
// Jun 5, 2008 at 6:11 pm
@Alex
I know I’m arbitrarily lumping programmers together based on what languages they work on, of which there will always be exceptions to. I guess my main point is programmers who work with a more pattern-oriented language generally make better architects (and produce less spaghetti code.) Also, as you pointed out, I guess I should have said a great Java, Ruby, or .Net developer.
11
Ryan Faerman
// Jun 5, 2008 at 6:15 pm
I didn’t even realize there was such a problem with PHP or people who claim to know it. I started on PHP as my first language about 8 years ago. Sure, I know many other languages, but PHP is my first love. I finally got the chance to write something fairly complex and do it in PHP and I jumped at the chance.
I think it is more of an issue with the entire tech industry than just PHP programmers. It is easy enough to sound like you know your material, but a majority really just can’t cut it.
12
William Murray
// Jun 5, 2008 at 6:31 pm
I will agree with those who say that learning PHP first leads to poor programming practices, using myself as an example. I do not have a CS degree, but I did take a few classes in C++ and Java. When the web was young, I did some programming in Perl, but eventually moved to PHP exclusively. For the past two years I’ve been doing a lot of Actionscript programming, and after using an object-oriented language on a regular basis, I went back and realized how bad my PHP code was. Of course, PHP is not object-oriented in the way that Actionscript is, but there are still some best practices that you learn with an object-oriented language that can be applied to PHP.
13
Thorsten
// Jun 5, 2008 at 7:12 pm
I actually like php.
After doing some 5 years of VB and Java, I did it for 6 years and you can do amazing stuff with it.
I also wholeheartedly agree that 90% of the php code out there is NOT amazing.
It’s also not ugly, if done right.
The problem is just that around here the going price per hour of php is around 20€-30€, .NET & Java clock in for about 50€-60€.
14
Anon
// Jun 5, 2008 at 7:13 pm
I dabbled with Java, C and Jade at University years ago and found the PHP job I landed difficult quite simply because of the spaghetti code and the lack of object orientation at the time. PHP5 has made quite a few improvements now, and implementing an object oriented design I don’t find difficult at all. Playing around with architecture, applying a pattern if necessary is all fairly straightforward I find, an MVC framework makes life a lot easier than traditional php spaghetti. I also don’t have any problem with recursion.
What is most difficult for me is understanding usage of memory, optimising an application, relevancy of the OSI model etc. This was outlined to me in recent interview questions such as explain dns, where does the hosts file live on linux, name the layers and functions of the OSI stack.
For instance, although I wouldn’t have approached the problem in this way, I would like to know the underlying reason why this was crashing the server:
‘He was generating a random number from 1..n (where n was his ad set) and trying to pull that record to display the ad but his n space was not full. To compensate for that he just wrapped it in a loop until he got a hit.’
15
John
// Jun 5, 2008 at 7:23 pm
Anon, you asked :
“For instance, although I wouldn’t have approached the problem in this way, I would like to know the underlying reason why this was crashing the server:
‘He was generating a random number from 1..n (where n was his ad set) and trying to pull that record to display the ad but his n space was not full. To compensate for that he just wrapped it in a loop until he got a hit.’”
In a sufficiently large space of an ‘N’ element table that is sparse (not fully populated) you are not promised a hit. No hit == recursive call to generate a new number, hit the database and hopefully get a hit.
Small example. I have 5 total ads but only 2 are populated
1 = null
2 = null
3 = Ad
4 = Ad
5 = null
have a 2 in 5 chance of getting an ad on any given random number generation. Random events are discrete so that 2/5 does not go UP with each iteration, it stays constant. Take that individual problem, scale it with load and voila, boom.
Its a randomness thing. There are many ways to solve the problem that vary depending on the expected size of ‘N’, I forget what i did, it was awhile back.
The point is that when people learn programming as a mark-up language they lose track of the basics. This can happen in any language but things like PHP make it a lot easier. In this example the original author knew about recursion but built something on top of a flawed understanding of randomness. Don’t ask me how he figured out the recursion, I think it was on accident.
16
Anon
// Jun 5, 2008 at 7:36 pm
Thanks for the explanation. I guess my approach would have been to eliminate the nulls from the result set to begin with.
But just one last question and this probably isn’t the forum but, even if you are making a lot of requests to the db and not getting any results back why does this lock up or crash the server. A request is made, nothing is returned, you make another request. Obviously there is something residual being left behind on each iteration which affects the server which I’m missing…
17
Morris Harrison
// Jun 5, 2008 at 7:42 pm
Sorry, but this is nonsense. I’ve been programming for 25 years in many languages, have a PhD in Computer Science, am happy writing assembly, and have taught data structures and algorithms at postgrad level.
And yet… when putting together web applications, PHP is my tool of choice. I know *exactly* how my PHP code is being implemented behind the scenes, be it sessions, memory management, or the multiple forms of array optimization. I use PHP out of knowledge, not out of ignorance, because I find it the most comfortable tool for the job.
Sure, trying to remember the right function name is a minor inconvenience. But a 3 second search in the function list on php.net (which has a great spelling suggester) solves that one.
The main thing you need to do is stop looking for a “PHP programmer”. This is a classic hiring mistake - to filter resumes by language or technology keywords. A good C programmer who understands OS architecture and has some web experience will be able to pick up PHP in a matter of days. I know I did.
18
John
// Jun 5, 2008 at 8:00 pm
You are thinking in a single load context, not a systemic context. Lets look what happens
1) Page loads
2) sql call made (database attached)
3) recursive call made (GOTO 2)
All of those connects and disconnects start to add up when you get hit with 25 requests a second. Then things start piling on, apache starts blocking, mysql starts blocking and things can come down in a hurry. This was also years ago, Pentium 3 / 512MB ram sorts of things..
I don’t remember the specific details of it, I just remember the dumb recursion
19
PHP Lover
// Jun 5, 2008 at 9:07 pm
I use to develop in VB and SQL Server, starting with v. 3 and moving into the Dot Net era. I now only develop in PHP and MySQL and I love the language, in every respect. “OO” or not, the PHP code that I write works perfectly, it’s perfectly maintainable, perfectly scalable, and my clients are very happy. And no “spaghetti” required.
LONG LIVE PHP!
20
John
// Jun 5, 2008 at 9:53 pm
No one is saying that PHP can not be used well. I think the general direction here is ‘PHP is more easily used badly and many of its practitioners do so.’
Its not the weapon ,its the person who wields it.
21
Eric DeLabar
// Jun 5, 2008 at 10:17 pm
I think a lot of people learn web programming on PHP by hacking with it, which works perfectly for making functioning websites. These sites work great for the 20k hits they may get in their lifetime; the problem is seen when somebody writes an app that becomes popular in PHP and then never fixes it, just hacking on top of hacks until the whole thing comes down like a house of cards.
The real “problem” is that the people with the great ideas aren’t always the greatest programmers. (If they’re programmers at all.)
22
Nico
// Jun 5, 2008 at 10:33 pm
Hi, Leonid.
Web programming is a kind of programming that isn’t well paid. If you know how to program, you will try to find a job where you’re paid more, usually Java, C++ or .NET. So if demand is growing, there’s a point where better (than a certain level) people is either working in a better paid language or looking for one of those jobs.
I think the problem is that when you lower enough that “certain level”, you don’t find people that are “not so good”. You find people that doesn’t actually know how to program at all.
23
Tristan Bailey
// Jun 5, 2008 at 10:50 pm
I think your right for brighton, uk at the moment any way I have worked with great people and now I want to employ some one at my new company I can’t find any one. When were the days everyone wanted to be a web developer? not so long ago?
24
Leonid Mamchenkov
// Jun 5, 2008 at 10:51 pm
I do ask for code portfolio, but often all of their code belongs to some other company.
25
Mark
// Jun 5, 2008 at 10:55 pm
You still havn’t fixed the attrack spelling error. Great article however!
26
Leonid Mamchenkov
// Jun 5, 2008 at 11:02 pm
thanks! I’ve corrected the mistakes.
27
Leonid Mamchenkov
// Jun 5, 2008 at 11:05 pm
pen and paper test will put you into writing 5-10-20 lines or so. I strongly believe that any programmer of any language should be able to do that without any of his regular tools. Plus I’m tolerant to syntax errors.
28
Leonid Mamchenkov
// Jun 5, 2008 at 11:09 pm
I’d say you are more of an exception than a rule.
29
Leonid Mamchenkov
// Jun 5, 2008 at 11:17 pm
you bring up an interesting point. PHP development is often assumed to be web development. However, now that PHP 5 is out there, more and more people use PHP for more than just web. Large and complex applications require experienced, knowledgeable developers. And they are hard to find.
I guess most people are still using other languages for non-web-centric development. Maybe it will change. Maybe it will not…
30
Limbo
// Jun 6, 2008 at 2:18 am
Your problem is the questions you are asking on the technical side. Asking someone to sit down with a pen an pencil to write code like and get extra points if they don’t use a DB? What a waste of time.
Any decent programmer would walk out on you right then realizing you are just trying to be “smart” showing how the old days and arrays are so great. Gimme a break. Thats like me telling you to not use a calculator to do things or spreadsheets. Why? Those are the tools we have and we use and we are not going back to the stone age - if we did, we wouldn’t need your web app.
I consider myself an advanced developer and could code PHP in my sleep if I wanted, however if you asked me some of those questions you are asking I would stand up, thank you for your time, and tell you I am not the guy you are looking for.
31
I hate programming
// Jun 6, 2008 at 5:15 am
First, your coding problem is not all that simple when not using a database. Selecting only males and sorting them by name. I guess you could first do a sort of all records by name then iterate over them, processing only those that are male, or first selecting only males, putting them in a new array, then sorting that. Not a big deal. Either way, storing the name as the key then doing a ksort() will do the trick. Hmm, I guess it is pretty simple after all.
Your comment on CS grads saying to use bubble sort is puzzling. What context is this in? If this is in the context of the three record problem, and you don’t want the developer to use ksort(), then bubble sort may be the best method. If you were speaking in a different context, such as millions of records, then ya, bubble sort wouldn’t be good.
32
Leonid Mamchenkov
// Jun 6, 2008 at 9:08 am
once I get someone who actually stands up and leaves when asked to use the pen and paper, I’ll probably reconsider the test. Until now though I’ve been getting people who try to write 5 lines of code with pen and paper, and most of them couldn’t. I see anything - Delphi code, ugly C, and even pseudo-code.
A couple of people did PHP just fine. But their data structures and algorithms were so out of reality that my decision was not to hire.
33
PrettyCoder
// Jun 6, 2008 at 10:37 am
This post reminds me of a conversation with a single woman in her late 30-ies about marrige:
Her - Oh, where did all the “good” men go?
Me - We’re all taken. You can:
a) get the “best of the rest”,
b) or ignore the taken part and “steal” a good one
34
Leonid Mamchenkov
// Jun 6, 2008 at 10:49 am
now that is one good advice
35 oneangrydwarf » Blog Archive » In Response to ‘Where did all the PHP developers go?’ // Jun 6, 2008 at 10:55 am
[...] response to this post by Leonid Mamchenkov about the lack of good PHP developers in Cyprus I thought I would share my [...]
36
Little Mo YinYang
// Jun 6, 2008 at 4:25 pm
Dear author,
your problem finding a good PHP developer is rooted in yourself. Good programmers don’t touch PHP and are not interested in jobs where they have to use PHP. So unless someone really desperate comes along, all the applicants you will be able to get are kiddies (sometimes kiddies can grow well into their 40s, especially technical people) and these kiddies naturally cannot answer your technical questions because they are not real programmers but mostly started out as web designers who took on “coding websites” because they understood that “making cool websites” is not a real career.
But - why do you need a proper programmer for maintaining Wordpress / CakePHP projects? We cost a lot of money and would be totally overqualified for such a job. That, and also we would rather work for a serious company who doesn’t use crap like CakePHP.
What you could do is hire a proper programmer, pay him what he asks for and he’ll port your projects over to a proper language / framework that’s not based on PHP. Then everybody wins. You will get a website that’s not 10 years behind the technology trend, and you will be able to ask your cute questions about sorting etc.
Bottom line: Don’t have that superior attitude when it’s not backed up by the company you’re hiring for. using CakePHP in a serious company is unforgivable.
Sorry if I sound too harsh.
37
Leonid Mamchenkov
// Jun 6, 2008 at 4:48 pm
you are trolling. Please stop.
Things for you to think about:
38 This Dev For Hire » Blog Archive » Next response to “Where did all the PHP programmers go?” // Jun 6, 2008 at 6:32 pm
[...] It’s a very interesting read, so take a moment and get back to me when you have finished - Where did all the PHP programmers go?. Now, those are very good points but I have to admit that I too have been interviewed on paper too [...]
39
Timur Asaliev
// Jun 6, 2008 at 6:58 pm
Little Mo YinYang,
“Good programmers don’t touch PHP and are not interested in jobs where they have to use PHP.”
Very biased opinion. I don’t say I’m “Good”, but I’m definitely not bad. And I worked as a PHP developer. And it was great.
A company that codes from scratch for every in-house project? I haven’t seen one yet but I’d sure would like to.
40
Rashaud Teague
// Jun 6, 2008 at 11:30 pm
So a large part of this post is… “Programming Languages don’t kill apps…programmers do”.
Right?
Anyways all I can say is this…forget the language and syntax(that can be quickly learned on Google or in a book or someones blog etc)… We all just need to follow the patterns on how stuff gets done. Because I’m pretty sure languages matched up against each other can do most of the same things…yep just follow the patterns.
But contradicting my point about forgetting the point (yes contradicting my point). Language of choice is a key I guess on which one is the easiest learn (some) syntax and be done with objectives, but once more I will stress the is …Follow the patterns, system design!
41
MonkeyT
// Jun 6, 2008 at 11:45 pm
EVERY good PHP developer can spare one evening a month to help teach their local PHP User Group what’s important to good PHP developers. If they can’t manage that, they’re too short-sighted to deserve good help.
Any company that wants to be able to hire good PHP developers should see that it is in their best interest to contribute to the local user community - not by giving away code, just by giving away experience. Not only do they get a better informed pool of applicants, they get the opportunity to recruit from developers that are actually interested in learning new skills.
The company gets the reputation of being a place where good PHP developers become great PHP developers. (Generally, that will expose you to better qualified applicants)
Beginning and moderately skilled PHP developers get the benefit of direct contact with the best developers in their community. Two hours of Q&A is worlds more effective than a few messages on a blog or a mailing list, or reading “go read this book”.
Developers of all skill levels get to take part in real discussions about best practices and marketable skills - they start to understand what’s really important.
And if the User Group gets the reputation of actually caring about an educated PHP community, the job market in the area takes PHP far more seriously. Everybody wins.
42
Leonid Mamchenkov
// Jun 7, 2008 at 12:05 am
you bring up an excellent point. Complaining about the lack of good developers is one thing. Doing something about it is another. Perhaps we should organize some seminars or tech.talks or something around here…
I’ll speak with other guys about this. Thanks for the idea.
43
Rashaud Teague
// Jun 7, 2008 at 12:07 am
“Not only do they get a better informed pool of applicants, they get the opportunity to recruit from developers that are actually interested in learning new skills.” - MonkeyT
AGREED!
44 Majlab tribune » Blog Archive » Dobar savet: Uzmi najboljeg me?u lošima, ili ukradi oženjenog // Jun 7, 2008 at 12:33 am
[...] ?lanka o pove?anoj potražnji web programera, naleteo sam na analizu tog stanja od strane jendog web preduzetnika sa Kipra. Jasno se vidi da je (iz ?iste, meni poznate muke) duboko razmišljao o svemu… a evo i po [...]
45
MonkeyT
// Jun 7, 2008 at 1:18 am
I can tell you (as co-organizer of DallasPHP) that it’s not an instant fix, but it’s much faster than you’d think. Seminars or talks are good, but recurring events, even simple ones are best. It’s about local, face to face interaction, not celebrity or exotic topics.
We meet once a month for an informal presentation (discussion and questions during the talk) usually aimed at complex topics, and a small meeting on the following saturday morning for an informal, open topic Q&A, aimed at less experienced developers. A good easy to find location is more important than decked out facilities. Fortunately, once companies take interest, you can often find a good compromise of both or at least someone willing to donate the use of a projector.
We find that aiming most presentations at the more experienced, professional user rather than the beginner creates a larger, more stable and sustainable population. Try to push simpler topics like “Welcome to PHP” or “Introducing AJAX” at the beginning of college semesters. I suggest a “Fight Club” mentality - if you are have experience, you HAVE to speak. The sooner the better. Stay casual - it makes it much easier for people who don’t want to speak.
Just about any topic can and will lead to discussions of professionalism and work habits, which is the precise information members figure out that they CAN’T learn on the internet. Don’t be too concerned about cutting edge tech presentations: They’re fun, but our best attended meetings are often Open Mic or “What are you working on?”
46
Leonid Mamchenkov
// Jun 7, 2008 at 1:25 am
thanks a lot! Your tips are much appreciated.
47
PaulG
// Jun 7, 2008 at 11:52 am
I enjoyed your article, but being a PHP only programmer, now feel a bit inadequate, but hey ho - more motivation to learn something new - just for the fun.
I liked your summary about hosted applications, do you know where the bus stops are for that particular bandwagon please? That’s one I would like to get on.
BTW, I am trying to work out if your interviewees went to Cyprus for their interview and if so, did it involve a tele-interview first, where maybe they faxed your their doodlings?
Or do you travel Europe interviewing as you go?
48
Leonid Mamchenkov
// Jun 7, 2008 at 2:35 pm
sorry for making you feel inadequate, but if it gives you more motivation to learn, than I am all for it.
For hosted applications, I am still looking around. It’s seems like a very interesting direction in hosted services, but I haven’t dug deep enoug. Yet. Stay tuned for more posts on the subject.
As for the interviews, I was interviewing in Cyprus. All candidates were already in Cyprus - I didn’t invite them to travel. But many of them were non-Cypriot, since Cyprus is such an international place.
For the current company, we are considering going to developer conferences, summits, and tech shows to find candidates and talk with them on the spot.
49 Weekend Link Roundup: Week 11 // Jun 7, 2008 at 5:07 pm
[...] Where did all the PHP programmers go? - Are you a PHP programmer? [...]
50
inferiority complex
// Jun 7, 2008 at 8:18 pm
Confessions of a high-school drop out who’s been developing sites with PHP for the last 5 years:
Obviously never took any kind of CS class.
Never used version control (my brain is too stupid)
About 30 projects in my portfolio (20 of them being what I’d consider ‘big/complex’)
I can write code in plain old notepad if I have to but I haven’t even seen a pencil in at least 3 years and I only use a pen to sign the back of my paycheck.
I’ve never heard the term “bubble sort”.
I keep coming across the term “stack” but still haven’t bothered to look into it enough to figure out what it is and how it relates to my writing php. Not familiar with queue either. I somehow knew that FIFO is first in-first out. I don’t know how or why I know that or what use it is to me. So I guess FILO is first in-last out?
If I had to do the example about storing info about people and printing the alphabetic list I’d probably need 3 sheets of paper. Gonna need to write some functions that let me use a folder full of text files to store the info and request it using syntax similar to sql (select * from people.txt where gender=male). Then I’ll need to use the returned array to make another array consisting of just the names of the males and their original array keys, asort() that array and use the key info of the sorted array to show the original array (with all the info) in the proper order.
I don’t see the point of not using a database. Using a system of reading a folder full of text files is essentially the same thing but more work and probabaly slower.
Considering that I can’t understand my own hand-writing I’m actually going to need 6 sheets of paper. 3 to write the program. 3 to re-write it so I can read it. Wait, make that 9 sheets. I’ll need another 3 to re-write it so you can read it too.
Actually, in the process of rewriting it I’ll probably wind up refactoring some of it so I’ll actually need 12 or 15 sheets of paper.
LOL I can imagine how someone like me would disappoint.
I feel your pain about your island situation. Over the years on our island we’ve tried starting web design meet up groups, php user groups, sql user groups, a .net user group just started with only 7 people (4 of them with little to no experience and nearly empty portfolios), it sucks.
Somone needs to explain this “ugly language” thing to me. I’m looked through opengl, c#, asp, perl, lua, mel, python, asp, and other books at the bookstore they all look like “programming languages” to me.
I find php very convenient. Doing web design I have to write my fair share of javascript and there are lots of useful things in php that I can’t find a javascript alternative of.
Yes, PHP.net web site does have all the documentation and examples that you’ll ever need. I have never seen another documentation site that is as useful.
I probably am a “Bad Programmer” but it’s not because I don’t know PHP well enough. I just don’t know programming/computer science well enough. Lots of the same concepts exist in all languages and all languages can be used to accomplish almost anything. It’s knowing how to accomplish the task that matters and I’ll probably never have the know-how to write something like apache, photoshop or BitTorrent.
51 Who is the book aimed at? | PHP Job Hunter’s Handbook // Jun 7, 2008 at 10:06 pm
[...] harder for people to bluff you, but if not, this book may serve as a good starting point. This blog post has a good discussion on the problems of finding good PHP developers, and bluffing or inflating [...]
52
Anon
// Jun 8, 2008 at 8:07 am
If its such a bad language, why are you hiring people and basing these projects on PHP? Recommendation: move to Windows, i bet you can find tons on Windows programmers that will meet your antiquated programming needs.
53
thedewd
// Jun 8, 2008 at 11:35 am
Leo,
You have got lots of good feedback from people, and this is good. So sorry you are having trouble finding someone to work in beautiful Cypress. Please also take my comments as constructive criticisms.
Interviewing people, evaluating people for any job is hard to do well. People adhere to their camps, ideas and fallacies about what is the right way to evaluate people and all methods are flawed. You have already seen many people who had the skills and ability to take on your job, but from your point of view, they didnt make it.
Not that many people around are going to know what you know, and in the way you want it. Yes, shoot the people who cant work without dreamweaver, etc. But I havent needed to make a bubble sort since I was in high school.
Really, technology skills take a long time to acquire and do well. And there are so many Technology skills to learn. Nobody knows which way it is all going to go either, and cant plan their learning for what your needs are.
Why dont you give more of yourself? Find people with good core skills and train them, get them certified, work with them.
As it stands, employers have incredibly specific demands in their developers, but give nothing in terms of real support or any loyalty. So dont be surprised if it is so hard to find someone to fit your bill.
Some of us have done very well for having learned what we have on our own. But formalities in programming are likely to trickle down to our level only later. We are really trying to do so much by ourselves, and would like that hand up to real projects. I have been involved in a php user group for years. Discussion is an excellent nurturing tool, but real training should not be left out of the equation.
So find someone with the aptitude, and then nurture and develop them.
54
Leonid Mamchenkov
// Jun 8, 2008 at 1:12 pm
the choice of language is not always up to me, and even if it was, sometimes it makes sense to use PHP, even if I personally don’t like.
55
Leonid Mamchenkov
// Jun 8, 2008 at 1:15 pm
in the previous company we did a lot of training. It was something on the scale of 4-6 hours per week. Topics varied from the basics of programming to specific tools and applications that were utilized by the company.
In the current company we don’t have this luxury (yet). But I think maybe it’s time to take it out of the company and do in terms of talks, meetings, PHP user group, or something along those lines. Somehow I haven’t thought of it until it was suggested in this thread.
56 Silly SQL query, not-so silly thoughts « Glorified Geek // Jun 9, 2008 at 7:00 am
[...] guy wasn’t a newbie programmer, he have in the company for over a year. This reminded me of a blog post I read very recently. Is the ridiculous simplicity of PHP is a curse rather gift, as it attracts [...]
57 Dove sono finiti tutti i programmatori PHP? : phpblog.it // Jun 9, 2008 at 8:14 am
[...] professionisti per delle aziende non ha ottenuto risultati soddisfacentinegli ultimi sei mesi. Leonid precisa subito di non avere standard di ricerca altissimi, ha bisogno di qualcuno abbastanza preparato per la [...]
58
Jani Hartikainen
// Jun 9, 2008 at 12:50 pm
This is pretty interesting… Over here I’ve had the exact opposite: I’m a PHP developer, and very good at it too. But the problem here is that there are no PHP jobs! I’m completely overqualified for most “we want a guy to update our website once a month, need PHP knowledge” type of jobs that pop up here.
59
Kelv1n
// Jun 9, 2008 at 1:51 pm
I’ve program PHP for the last 4 years (prior to that I did Java for 3 years) , but I’d agree PHP is an ugly language, I’ll give the example of not including things such as namespaces etc, so people tend to use ridiculous class names - I hoping PHP 6 will help to address the balance.
60
3raser
// Jun 9, 2008 at 4:43 pm
I would be unable to answer your example question.
I threw out Dreamweaver 6 years ago and I’ve been coding by hand ever since. I share in your distaste for it.
I’ve only been doing this for 3 years and I know that I can only answer 50%-60% of your questions if I got lucky. You’re looking for someone who can answer 100% of them, without any reference materials, off the top of their head, cold, in an interview, with a pen and paper, without syntax highlighting (he he he)…
Yeah, good luck. If you’ll kindly refer your cast offs my way I would happily hire someone who knows the other 50% that I do not.
61
hittlle
// Jun 10, 2008 at 11:50 am
Programming languages are nothing but tools. So are guns and knives. I don’t think some guys who use knives know more and do things better than those who employ guns. TOOLS ARE JUST TOOLS. My point is that it is the user rather than the tool that makes things done as expected. Why should we waste our time ‘attacking’ languages themselves? TOOLS can teach people nothing.Knowing how to use a tool makes nonesense. The question is why you use it and how.
62
Jason Medland
// Jun 11, 2008 at 12:46 am
This was written the first day of the post so a lot of discussion has happened since
———————–
Some interesting comments and the situation is the same in Toronto Canada. The last 3 companies I’ve worked for have had great difficulty finding PHP programmers, part of it was poor renumeration packages (hmm, why don’t these seniors want to work for less than juniors) the other part was poor candidates.
We have a similar test at my current company and many of the juniors aren’t able to answer 3 out of 5 of the test questions and like your example the questions are very basic.
At one company we started looking for Java programmers willing to learn PHP. They should have good discipline to start with and PHP’s OOP/OOD is following Java’s model more all the time.
——————–
Fact of matter is that the web wouldn’t have grown as it did if PHP didn’t exist, part of that is great, part of it sucks, but that is much the same with any technology, the technology itself is neutral its the implementation/application where value is assigned.
From what I see in some of the responses I see the programmers biggest liability…attitude.
People in general (IMHO) are not “self-reflective”, in that they don’t examine/try to improve themselves on any level, why should it be any different in programming.
Most of us with out formal education in the area learn by school of hard knocks, and you only really learn by making mistakes…well if you’re “self-reflective” you will.
If dealing with spaghetti code and change management nightmares doesn’t give you incentive to improve then nothing will.
To be fair much of the worst PHP code I’ve seen has been written because whoever was paying the bills cheaped out on time. Good design takes time to work out and it comes back to the:
[] cost
[] quality
[] time
choice, no matter how much you might fantasize you only get to choose 2
63
Tristan Bailey
// Jun 11, 2008 at 1:30 am
I think this is becoming quite a nice thread of comments.
Leonid
64
Tristan Bailey
// Jun 11, 2008 at 2:14 am
I think this is becoming quite a nice thread of comments.
Leonid
Can I ask if you have any opinions of showing code. I started as a Graphic Designer at Uni but have been in Web for 10 years now and a PHP Web Developer for 5. So self taught and working in several different teams most code is shared development, and directed by a Senior Techie so if they do not want nice code architecture or any cutting edge or more technical projects the work is hard to show at interview. The shared work makes that examples question the hardest in interview. A question I could do in my sleep in a Design interview.
Also I could answer your interview questions though I do not know how to write sort algorithms. I have found it really hard to learn Programming skills and Application architecture. That is the problem with PHP some newer books are better but most PHP lessons are quick samples and how to use all the functions not how to build a site.
65
Tristan Bailey
// Jun 11, 2008 at 3:21 am
Just wanted to answer the No database question that seems to have an easy option to me.
Create a list to store information about people.
>Creat an array
For each person you’ll need to store name, age, and gender.
>$array = array(0 => array(’name’ => ‘Dave’, ‘age’ => 23, ‘gender’ => ‘M’));
Populate the list with three sample records.
> .. repeat last with more data.
Then, print out an alphabetically sorted list of names of all males in that list.
> multi dimentional array sort for ‘name’
> foreach $array as $key => $val
> if $val['gender'] == ‘M’
> echo $val['name'] . ”;
Bonus points for not using the database.
>You do not need to use a database but if you did you could do a db select at the begining and make the array from the results.
I do not think this question or the others were too much to ask. The main problem is PHP developers being self taught they do not get asked many Programming questions just ‘Can you put all the stories from the DB on this page’ , maybe cut paste last time I did that and tweak.
66
Kelv1n
// Jun 11, 2008 at 11:10 am
I think Tristan Bailey has a point about many so called “PHP developer” being self taught, this was an issue I ran into when recruiting earlier this year - too many of the candidates had no formal training or idea on how to approach problem solving, they see 1 or 2 years worth of developing Database->Page sites as qualifying them for $50k jobs.
Out of 20 (or so) candidates, only 3 of them really had enough experience to qualify in my book, and only 1 of them had excellent skills.
67 Linky na víkend 62 - depi.sk - ešte lepší blog // Jun 14, 2008 at 8:01 am
[...] Where did all the PHP programmers go? – bloger z Cypru h?adajúci skuto?ných PHP programátorov, ktorý akosi neexistujú [...]
68 Coding Your Fingers Off – Hand Tools, Power Tools, and Programmers at Eric DeLabar // Jun 17, 2008 at 6:53 pm
[...] have read quite a few posts recently on the lack of quality programmers, web or otherwise, available in the current market. I’ve even written a post myself on some [...]
69
edpratomo
// Jul 13, 2008 at 11:43 am
besides being clueless, another characteristic commonly found in PHP community is arrogance. this is just one example: http://blog.timbunce.org/...pe.....-the-edge/ (check comment #8 out).
clueless + arrogant. what a great combination!
70
xwisdom - PHP, CSS & Javascript Tips & Tweaks
// Jul 30, 2008 at 5:54 pm
PHP is a great language. It does have some pros and some cons.
I hope the PHP dev team will improve on it’s weakness to make it the best language around.
71
Yhoshi
// Aug 27, 2008 at 4:20 pm
I think it all depends on where you start.
I have a CS degree and used primarily C. I know use php for all my web tasks (big projects).
For me, php is a great language. Ugly? Is C ugly? I think it is fine. A newbie could make bad ruby code just as easily. Of course the ruby code would be 200% slower and lock up most servers.
Regarding tests, most good programmers don’t memorize enough to pass your test.
I think you could easily find someone to do your work online. I think perhaps the problem is the move to cyprus? Nothing against cyprus at all! but it would be a big step for most people. Perhaps you are just getting applicants with nothing better to do?
I would advise you spec out what you want and hire someone to work remotely for you.
Leave a Comment