Where did all the PHP programmers go?
mamchenkov.net
mamchenkov.net
To talk about the issue of an interviewee not being able to write out code with pencil and paper: Do you paint with crayons?
If you are an amazing digital artist in Photoshop, say Burt Monroy for example, then you should be able to paint with crayons right? If you work for Lucasfilms as a top-tier 3D artist who works in Maya, shouldn't you be able to chip Michelangelo out of stone then?
What most NON-CODERS, which I am assuming includes you, do not realize is that a programmer's brain is wired to work in a certain environment. We have learned for years how to code in particular ways, whether via a straight text editor(Textpad for me!) or an integrated IDE(Eclipse or Visual Studio for example).
So you take someone who's already stressing about making a good impression during an interview and then ask them to write down code on a piece of paper. That's the absolute worst thing you can do. You're asking the person to use a different part of their brain to tackle a problem that hasn't been trained for that job.
Put the person in front of a computer, such as a laptop in the interview room put there for specifically this purpose, and THEN give them a problem to solve.
If the person still can't pull code out of their ass at this point, then you're right. They're morons. Otherwise, you will be surprised at what some of these people can do that you've looked over.
Writing code without being in front of a computer is different in that you don't expect your napkin application to run and you won't list include files or even real functions in outlining a potential plan, does this detract from the usefulness of the napkin? No I wouldn't think so as it gives your brain a predetermined map to try and follow when finding the real functions to use or loops to create when solving an outlined problem.
For years I have had candidates code with pencil and paper and never had a single objection.
The purpose of the coding exercise was never to see what they would come up with or how well it ran, it was to learn more about them in the discussion afterward. And I have found that this was best accomplished with a big sheet of paper and 2 pens, (one mine, one theirs). I imagine a white board would work as well, but for 2 people it's not necessary.
I also found that they were more relaxed working off-line, where nothing could be judged or examined. It was just me and them and something specific to talk about. That's all.
You need a better metaphor. I cannot imagine a painter who, when handed a crayon and told to draw something, couldn't at least produce a simple sketch. I just can't think of a single example.
Good cooks can imagine flavors and guess at timing and ingredients for food they've never tasted (much less prepared) just as good painters can visualize a work in their head before ever putting brush to paper.
Programmers should be able to work the same way.
The blogger is not talking about major pieces of code, he's talking about fundamentals. So, yes, the programmer should be able to do it on paper. And I bet if you ask a Lucas Arts 3D artist to draw on paper a basic shape, he/she will blow you away with what they produce.
I do interviews on occasion and I usually ask for some source on the whiteboard. Generally I only do that with people interviewing for junior positions, though.
I usually ask for a quick implementation of the fibonacci algo in their favorite language. I also tell them that sloppy is OK - so brace placements, etc are not relevant.
I hardly think it's too much to ask for a candidate to implement a simple, standard algo in their language of choice on paper/whiteboard.
PHP programmers tend to do very poorly in this area, unless they are programmers who also do PHP. The problem to me seems to be that the PHP environment doesn't encourage experimentation with algorithms, data structures and low-level optimization. Add to that the more-or-less haphazard manner in which most PHP code is organized and you've got a scripter who'll freeze when asked to do a piece of mathematics on paper in their language. Also, most PHP programmers tend to be framework-users. And while using frameworks is good, using frameworks without automating elements of your problem domain (by creating your own little framework-on-a-framework) is generally bad because you end up repeating yourself a lot.
PHP is not a bad language, but it's a very, very bad language to have as your sole programming experience.
It makes me also ask the question, are people who use interpreted languages really programmers? The code I write is conceptually programming, but I don't think in terms of how its compiled, but rather how efficiently its interpreted and ran by the web server.
a potential hire better be able to show me an approximation with a bowl of cheerios it's such a simple task.
In interviews, you're talking about programming as people who know how to customize WordPress talk about how they can do whatever needs to be done in PHP. Heck, look at WordPress itself - it's a blog engine that takes 10x longer (or more) to render simple pages than it should. And that's the problem. A PHP programmer can simply be someone who knows how to make bad decisions and hack WordPress a little - and the salaries are often reflective of that.
So, while you may pay more, so many of us have just left. Yeah, there are bad design decisions (like having a million functions in the global namespace), but it isn't as big a deal as many make it out to be (since, as a web-only language, it's limited to web functions and they're usually quasi-namespaced as, for ex., mysql_*()).
The fact is that, because PHP programmers can be idiots who know how to guess and check, real programmers have left - the jobs available, money around, codebases to work with, coworkers to work with, etc. all reflect the fact that so many PHP programmers are really guess and check hack artists.
this isn't to say that you, mdasen, doesn't find good guess and check hack artists, but just to put a positive spin on what otherwise looks like a negative comment to developers that don't have their language of choice memorized.
To make a long story short, writing code that you don't understand is a bad idea. It may appear to work, but it's probably broken and you just don't have the understanding to know why. If you don't understand code when you write it, what's the chance that you'll ever be able to maintain it?
To this day, I bring a notebook everywhere and jot in pseudocode on the bus, in meetings, anywhere I can. I'm certainly able to think through problems better because of that. Programming is a written language, you don't need a computer to speak it, just to interpret it. And pseudocode is a great art to get good at. Highly recommended if you're looking to pick up a new language, just learn to program on paper and in your head instead.
So what they're likely looking at with the paper and pencil test is simply to see whether you can actually think in general, and not just debug your way through an assigned task.
I think it's clear that there are two kinds of "solid" php developers. The ones that have moved on to other languages/paradigms and love it (thus answering "where have they gone") and those who have moved on but still make their bread and butter in php but apply those new paradigms best as they can (cake php, fluent expressions, correct use of OO etc.). The problem with hiring the latter is they are most likely gainfully employed or more interested in doing their own thing.
Maybe you should try hiring people with aptitude and providing crash course training as well as further education incentives.
The slow migration to PHP5 by web hosts has definitely been a major bottleneck for the language. It's too bad that the extreme popularity of many PHP4-based apps is what prevented hosts from upgrading, thus giving developers little incentive to upgrade.
The good news is that the popularity of Rails and MVC has inspired a broad selection of excellent MVC frameworks for PHP5 (ZendFramework, KohanaPHP) and with PHP6 on the way and new web hosting architectures on the rise, there may very well be a resurgence in PHP.
Long time passing
Where have all the PHP guys gone?
Long time ago
Where have all the PHP guys gone?
Gone to Python and Ruby everyone
Oh when will they ever learn,
Oh when will they ever learn...
Cyprus is only slightly more populous than Vermont, where I'm told it's also very difficult to find development talent, despite the fact that it's a lot closer to a startup hub.