
Where did all the PHP programmers go? - edw519
http://mamchenkov.net/wordpress/2008/06/04/where-did-all-the-php-programmers-go/
======
geuis
A lot of people would disagree with me about this. Take that as you may.

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.

~~~
mechanical_fish
_Do you paint with crayons?_

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.

~~~
thorax
Maybe it's a bit like asking a cook to write down step-by-step, the recipe and
directions for a meal they've never cooked before. Without access to their
learned abilities to improvise with given ingredients, smelling/tasting the
mixture, comparing notes with similar recipes they have, etc.

~~~
rcoder
Nope. Another miss.

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.

------
mdasen
I think it's that the term "programmer" is so loose in the PHP community that
good programmers have gone away from PHP. I know that it makes looking for
jobs intolerably annoying.

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.

~~~
sosuke
guess and check is a surprisingly good skill to learn and one that many people
cannot master without years of doing it. employees with guess and check skills
will help in fringe cases of development where one or more of the senior
developers does not have any experience, instead of reading docs the tend to
take a sledgehammer to the problem and can tend to bang a working version out
very quickly in any given environment. guess and check hackers that are truly
good will be the fastest to adapt to any changing situation in a faster paced
development schedule and you might see them flounder in boredom in larger well
outlined projects where they can't find problems to try and fix

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.

~~~
jrockway
Let me provide a counterexample. Recently, I needed to do a rather complicated
SQL query (via an ORM, so not as painful as it sounds). Anyway, I didn't know
how to solve the problem, so I wrote a test case and tested various versions
of the query. I had no idea what I was doing, really, and it took me a day to
get the query to work. Then I realized that the test case was wrong (!) and I
was back to square one. I read up on some more relational theory, thought
about my problem a bit more, and then had the answer in an hour.

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?

------
brandon272
If I were given a piece of paper and a pencil and expected to start writing
out code, that, to me, aside from just being annoying, would raise serious
questions about how well that employer was planning on treating me. If they
can't even supply a cheap computer for me to write some code, what else won't
they provide once I actually have to work there? Yikes.

~~~
lux
While we had a lab full of computers in high school comp sci, we did all our
main work on paper and on the chalk board, and all tests were on paper too. We
had to learn to think things through in our heads. At the end of each year was
a 3-month development window where we had to write a complete app (game,
whatever) start to finish, so we did do some serious code for our age (this
was 8-9 years ago now).

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.

------
shaunxcode
I don't know if anyone else read the article who still actively "has" to
develop in php.. but the problem he is asking them to solve with pencil+paper
should be totally doable in a few minutes; even for someone fresh to the
language as other than maybe the strcmp function you would need no real
"library" knowledge.

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.

------
neovive
PHP gets a lot of bad press (some deserved, some not) -- but you can't fault
the language. When PHP was first released, it was a major advancement over
PERL and SSI which prevailed at the time. With the growing adoption of PHP5
and the upcoming release of PHP6, PHP should be back on par (or at least close
to) many of its 'high-class' peers.

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.

------
ii
Where have all the PHP guys gone?

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

------
alexk
Here is the answer: don't look for PHP programmers! Look for good software
developer (Web experience will be a bonus), and this guy will easilly handle
all these tasks and even more :)

~~~
mechanical_fish
Which brings up the obvious question underlying this whole article: Which kind
of talented software developer is _easy_ to find in Cyprus?

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.

------
henryw
he's probably not paying enough.

