Where did all the PHP programmers go?
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.

June 5th, 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
June 5th, 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.
June 5th, 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.
June 5th, 2008 at 4:35 pm
Why not just ask for a code portfolio?
June 5th, 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.
June 5th, 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);
June 5th, 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?“. [...]
June 5th, 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.
June 5th, 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.
June 5th, 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.
June 5th, 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.
June 5th, 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.
June 5th, 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€.
June 5th, 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.’
June 5th, 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.
June 5th, 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…
June 5th, 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.
June 5th, 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 :)
June 5th, 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!
June 5th, 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.
June 5th, 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.)
June 5th, 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.
June 5th, 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?
June 5th, 2008 at 10:51 pm
Koen,
I do ask for code portfolio, but often all of their code belongs to some other company.
June 5th, 2008 at 10:55 pm
You still havn’t fixed the attrack spelling error. Great article however!
June 5th, 2008 at 11:02 pm
toto and Chad Crabtree,
thanks! I’ve corrected the mistakes.
June 5th, 2008 at 11:05 pm
Russ Brown,
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.
June 5th, 2008 at 11:09 pm
Morris Harrison,
I’d say you are more of an exception than a rule. :)
June 5th, 2008 at 11:17 pm
Nico,
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…
June 6th, 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.
June 6th, 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.
June 6th, 2008 at 9:08 am
Limbo,
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.
June 6th, 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
:D
June 6th, 2008 at 10:49 am
PrettyCoder,
now that is one good advice :)
June 6th, 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 [...]
June 6th, 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.
June 6th, 2008 at 4:48 pm
Little Mo YinYang,
you are trolling. Please stop.
Things for you to think about:
June 6th, 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 [...]
June 6th, 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.
June 6th, 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!
June 6th, 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.
June 7th, 2008 at 12:05 am
MonkeyT,
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.
June 7th, 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!
June 7th, 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 [...]
June 7th, 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?”
June 7th, 2008 at 1:25 am
MonkeyT,
thanks a lot! Your tips are much appreciated.
June 7th, 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?
June 7th, 2008 at 2:35 pm
PaulG,
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.
June 7th, 2008 at 5:07 pm
[...] Where did all the PHP programmers go? – Are you a PHP programmer? [...]
June 7th, 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.
June 7th, 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 [...]
June 8th, 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.
June 8th, 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.
June 8th, 2008 at 1:12 pm
Anon,
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.
June 8th, 2008 at 1:15 pm
thedewd,
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.
June 9th, 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 [...]
June 9th, 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 [...]
June 9th, 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.
June 9th, 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.
June 9th, 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.
June 10th, 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.
June 11th, 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
June 11th, 2008 at 1:30 am
I think this is becoming quite a nice thread of comments.
Leonid
June 11th, 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.
June 11th, 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.
June 11th, 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.
June 14th, 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ú [...]
June 17th, 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 [...]
July 13th, 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!
July 30th, 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.
August 27th, 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.
October 5th, 2008 at 10:27 am
I didn’t review all the comments (so not sure if this has already been said), but if you listed experience with CakePHP or Wordpress code as a preferred job criteria in the job description then that could be a good cause of getting substandard PHP developers. I don’t want to sound like too much of a snob, but personally if I was looking for a job and that was in the job description I would pass and I bet many experienced PHP developers would do the same.
October 5th, 2008 at 10:35 am
As a follow on to my previous post, I’m not insulting either Wordpress or CakePHP per say, but saying your environment is heavily rooted in both means a new hire would have to “like” developing in either/both to want to work at your company. An experienced developer knows that in any well established project/company, getting an existing team to radically change direction is very difficult, if not impossible in some cases. Being that I can’t name a single person off the top of my head out of the several hundred PHP developers I know who would want to work in a CakePHP/Wordpress based shop, I would say that probably radically limits your playing field.
October 5th, 2008 at 10:50 am
Jeremy Johnstone,
it looks like you don’t know anyone from either WordPress or CakePHP communities. :)
As for the job itself, you are partially right. We do work a lot of with CakePHP right now. WordPress has been changed to Drupal. And we have SugarCRM. And a few other PHP system, some of which are home grown and written from scratch. So, by just mentioning CakePHP and WordPress I don’t mean that the job is ONLY about these two. There are other opportunities as well. But it’s an interesting point that a job listing like that would make you pass on the job. Thanks for sharing.
P.S.: What’s wrong with either WordPress or CakePHP as development platforms?
October 6th, 2008 at 9:20 am
Leonid,
Nothing per say. They both serve their intended purposes and like anything opensource, they both have their fans and naysayers. It’s just neither are how I work and I think many (but certainly not all, and maybe not even most) experienced PHP developers would say the same (hoping I don’t sound too redundant here).
I run Wordpress for my personal blog even, but not because I endorse it as a product (quite the opposite actually), but because it mostly fills the need and I haven’t taken the time to do something better. Wordpress’ codebase leaves a lot to be desired and makes me cringe every time I have to dig into it’s code to fix something. That said, people don’t use it because it’s a well written app. Nobody ever said PHP was a clean language (Terry Chay has a few choice sound bites in this area) and Wordpress is a solid example of that. But it gets the job done at the end of the day and thus why it’s popular.
As far as CakePHP, I haven’t used it personally and really don’t have any desire to either. As far as generic one-size-fits-all frameworks go, I’ve heard good things about it, but that said, for the work I do a framework not custom built and tailored to the task at hand would never fit my needs. While I definitely don’t see eye to eye with Rasmus on everything, his comments on frameworks in general I whole heartedly agree with (easily findable in any search engine). I also will be the first to point out that the scale of websites I have built / build are in a different league (my largest is over a quarter billion PHP requests per day) than most people and so what works for me is probably very different than for others, so obviously YMMV.
At the end of the day, use the tool which you are comfortable with and serves your needs. But don’t be surprised when others feel differently than you do and possibly even shun you for it. As you learned it seems, this can be most obviously seen when trying to fill positions adding onto an existing team with more people.
October 6th, 2008 at 9:45 am
Jeremy Johnstone,
I got your points. Thanks for sharing.
October 24th, 2008 at 1:13 pm
i have been a web programmer for 10 years, ASP is my first step as it was very famous at that moment, then I used Perl bcz the company requested me to use it, then I changed job and new company was using PHP. Since that, I grow w/ PHP. In between, I also used Java and .Net.
I can say is, PHP can be ugly, but it can be beautiful too, depends who make up for it. Even for old PHP code in which OO doesn’t exist, it can be beautiful if you manage the code well by grouping common functions and seperate different functions into different include files, rather than put all code into a single files. I think a good programmer is always think about re-useable coding and easy-reading coding structure, right?
Now, PHP 5.x w/ zend framework look like java more or less, it is well organized but it is pretty difficult for starter.
And I define a good programmer base on their “logic” in their mind. A good programmer can learn every kind of programming languages fast and got the main difference between each kind of languages. A good programmer can get things done no matter how the environment change, eg one can write code in notepad but also in dreamwaver. A good progammer can debug fast based on their experience and knowledge. A good programmer can tune himself/herself to suits the boss needs, rather than insisting their working habbit.
But here, in Hong Kong, sometimes bad coding is expected by the boss… they always expect fast coding and asked us NOT to do documentation bcz time is $. they don’t want to use $ on something they can’t understand and they think it is not important. They think coding ugly is not a problem as long as u can do it really fast, they think u are good programmer. In order to keep my job, sometimes i has to do what they wants.
Abuot open-sourced libraries, personally I don’t like to use, because most of the case they don’t suit corporate’s needs and you have to modify 50% of it, but before it you have to use time to study it also!
But I will study them, eg magento, joomla, as an asset of my porfolio, on another hand, i can learn their technology if they are good.
I think structured coding is not always equal to GOOD coding, for small company who needs simple function, simple PHP or simple ASP is enough, blindly using update technology on ALL application is meaningless and stupid.
January 21st, 2009 at 1:22 pm
Ok, i may be biasing but i read your article just until you said pen and pencil, i don’t know if its me, but on my esperience of somewhat half a dozen jobs everybody who asked me to make write code on paper were lousy employers… kind of XIX bosses. and i don’t say it because i think its hard to write code on paper, i don’t like and i’m a lousy programmer too, but i did tests way harder in a computer screen…
now i’m going back to read the remaining ;)
January 22nd, 2009 at 1:26 pm
Hi guys
I read this articles along with some of the posts and I am really sorry for you. Yes I am from Cyprus and i am a php programmer which I start doing programming usig Java and the C# and Visual Basic and now Php with Mysql. I ‘ve been working with some of the best Web Developers in Cypus using PHP and the knowledge I gained is too much. Before you start programming or even do a review about a language is good to know the language. You start a discussion without having a good background knowledged about PHP. A very good and flexible OO language with a huge range of capabilities and a great future. You can create a class or a function pretty much like any other programming language.
As far as one of the questions you made to the candidates looking for a job, you asked them about Stacks and Queues which happens only programmers to have a good knowledge about because most web programmers do not have a background knowledge of good data structures or not at all as the start building web sites using basic html and php functions not even OO programming.
Also you asked about open source applications like Word Press and CakePHP. This kind of applications I believe are mostly used by people that do not know web programming and looking for the easy and fast way. From the other hand if you are a good web developer you create your own classes and functions which is more easier to customize if the coding is yours.
Anyway my point is that PHP is one of the best languages on the Web which can compete many other without any difficulties.
January 22nd, 2009 at 4:45 pm
Andreas,
thank you. Your comment illustrates my post quite well. :)
January 22nd, 2009 at 5:27 pm
I just had another experience that validates my general assumption that the vast majority of PHP developers have no solid grounding in CS principles.
I had to extend a Joomla plug-in built by one of the TOP Joomla development houses. This component allows you to extend the user registration module of Joomla with custom fields. It was so poorly designed that code flow follows this pattern:
1) Retrieve all custom fields with two queries (rather then using a join). Discard most of this data.
2) For each field retrieve issue THREE queries, one of the to get some of the data that could have been retrieved in (1).
This results in (3*n)+1 queries. When n rises it rapidly falls apart from a performance perspective. I easily revised this code to do the entire process in 2 queries total for a O(1) solution.
Additionally, because PHP does not encourage an MVC pattern code at all levels is doing SQL, not sharing data and not encapsulating anything. Code at the presentation layer is directly changing the model that is used at lower levels.
Its just a mess and these idiots are making MONEY off of this code. Good for them but its not well built.
Thats the problem with PHP. Can PHP developers be great engineers? Absolutely. Are they? Not usually, PHP is amazingly democratizing in that anyone can come play but as with all democracies, not everyone playing is qualified and it often supports our baser instincts rather then our more noble aspirations.
January 22nd, 2009 at 5:33 pm
And for anyone that says ‘Structured code is not always good code, especially for a small company’ has a very small world-view and casually throws out 30 years of CS knowledge, an arrogant position at its best.
Code ALWAYS lives longer then you expect it to. I have multiple systems that have lived for almost a decade and if they had not been properly structured they would have never lasted the test of time. Comments such as this blindly assume that you will always be around to manage the app and that it will disappear in a year or two. NOTE: Structured code does not mean a structured language (these examples are all perl based), it means following 30+ years of CS knowledge. What they are really saying is ‘Shortest path from A to B’.
Please do not confuse the ‘RIGHT NOW’ decision with the RIGHT decision..
February 3rd, 2009 at 3:51 am
Very interesting thoughts….
I’m not entirely sure about how it is in other countries, but in Malaysia, I believe that it’s a matter of survival… Technical people here are not paid very well, compared to other professions such as business/management/doctors and especially marketing…
It is a fact that you can earn only so much being a programmer ( be it whatever language you do it in ), hence the lack of motivation to excel in this field…
As the capabilities of computer programming evolve from only HTML to PHP, then to Javascript, XML, SOAP, CSS.. to frameworks, and the ever increasing feature of databases, it is just too much burden to invest so much time into something that has very little returns.. and not to forget global competition from countries like India that brings the salary scale down to new lows…
For those like me who have programmed for the last 20 years.. well, it’s more of a hobby or second nature to satisfy my curiosity in AI, math, and of course.. we try to develop websites and hope to derive income from advertising revenues instead of selling our services directly…
Anyway, do come by my website, it’s done entirely in PHP and has taken nearly 5 revisions to get it optimized to the maximum.. ( in terms of memory and cpu utilization ).. If you like what you see, maybe you can offer me something to do…. ( But I can’t write code with a pencil… just frontpage and ultraedit )..
Cheers,
YC Wee
P/S: Oh yes, a bit on pencils and code on paper…I believe that there is so much to learn that people like me who do PHP/Perl/ASP/C/C++/Linux systems dev/SOAP/JS, yada yada.. just do not have the time to memorize code that we are able to cleanly write it on paper..it feels awkward.. Put a computer in front of me, and the completed project is immediately visualized in my mind… Doesn’t mean that I’m poor at my work.. but the mind has evolved in that sense.. and I believe true programmers can just produce any sort of software needed, without being able to code a simple example on paper..
February 3rd, 2009 at 9:57 am
I wonder how the perspective of hand written code will change, if I substitute “pen” with “marker”, “paper” with “whiteboard”, and “interview” with “team discussion”. Am I the only one to ever participate in the team discussion that happened nearby the whiteboard, and people actually wrote short snippets of code by hand?
February 3rd, 2009 at 10:10 am
I think:
Short snippets of code by hand illustrates the ability to express oneself using the tokens of the tools that are chosen for a given project.
Snippets are the expressive sentences that allow us to understand and prove larger contexts.
Syntactical correctness in a snippet is not required or even desired although it should be roughly correct.
Conceptual correctness in a snippet is mandatory. A snippet should be easily made syntactically correct to ensure that the proven context is possible.
Conclusion: It is critical to be able to write short snippets of code by hand and on the fly so that you can prove or illustrate your concept correctly. Writing entire syntactically correct software on a whiteboard is not a required skillset, thats why we have compilers..
February 3rd, 2009 at 10:14 am
John,
well, I never asked anyone to write “syntactically correct software on a whiteboard”. :)
February 3rd, 2009 at 10:20 am
Dude… that’s mincing with words…
February 3rd, 2009 at 10:20 am
Leo, thats because you know what you are doing !
People who can’t write short snippets of roughly correct code by hand are in the same camp as people who demand others write syntactically correct software on a whiteboard. Neither will be able to obtain good results..
As with all things its all about being reasonable which is a great synopsis of this entire thread. PHP, like all languages, is great if you are reasonable and have a good understanding of what you are doing.
Off to bed.
February 25th, 2009 at 8:59 pm
due to being laid off and in the middle of transitioning to a more employment friendly area, i have lost my websites and since i hosted them myself on a linux server using apache php and mysql i cant provide a portfolio but i prefer using notepad2 to a pencil and paper technique (people still use those?) i need to get used to using a pen again for filling in applications. i write my websites in php and i dont care how people say php is ugly or inefficient or whatever as i use it and it accomplishes my goals perfectly. i use database and non database applications such as using a list of images in a folder to create a gallery of images and html to make an image clickable to call another script to view the image in a larger form. i created a file/folder listing script so i could browse my folders and remove files/folders i no longer need or to download a file i forgot was there and the script would be able to traverse the folders seamlessly. of course i would hae to use password authentication to that script and my scripts that i used to upload files are dangerous when left unchecked.
i enjoy php and will continue to use it for a long time. LAMP for LIFE!
March 21st, 2009 at 3:46 pm
Why would you need to remember PHP syntax when you have Google and PHP docs? Even Eric Schmidt says that memorizing is a waste of time and energy. Knowing how to look for it is more important. IMHO, you should have asked the senior people for a pseudo-code or more general questions instead… Intelligent people do not necessarily have sharp memory.
March 22nd, 2009 at 6:21 pm
Christos,
Why do you need to remember English words? After all, there are dictionaries all over the place …
Well, taken out of the context it could mean a billion different things. I’m quite sure he was talking about something else. And even if not, well, I am not Eric Schmidt and I don’t work for Google, so things that apply there don’t necessarily apply here.
When hiring a chef, wouldn’t you ask him to cook something for you? When hiring a driver, wouldn’t you ask him to go for a ride? I would … and the same applies to hiring a programmer. Programmer that remembers the syntax of the language can write much faster and much better code than the programmer who needs to look up every function name.
March 25th, 2009 at 1:29 pm
Don’t get me wrong, of course it is better if someone remembers a language inside out. However, here is some food for thought: Would you hire someone that just started learning programming, and it just so happens that he started with PHP so everything is still fresh in his mind, or would you hire a very intelligent C++ programmer that also happens to know another 12 programming languages but has not used PHP in 10 years?
The answer is that if both of them are sufficiently intelligent (with only the senior C++ programmer having a record to prove it), it doesn’t really matter. The C++ programmer is likely to catch up immediately, where the novice PHP programmer will take a bit longer but because he is intelligent, he will eventually get there. Even if someone is not very intelligent but is very determined or has big incentives to learn, he can become even better than what you would expect him to be (this is the Einstein case, who has learned to speak at 4 years old, learned to read at 7 years old, but because of curiosity about physics, he was very determined to master math even after failing them at school).
Most companies understand this, you can see a relevant 10 minute video about it here: http://www.youtube.com/wa...&a.....annel_page “Grow Your Stars — Don’t Buy Them”. Companies like Google, Microsoft etc have their own training programs with an aim to create employees that learn everything in the company, so as to achieve maximum employee efficiency.
Here is one of my favorite quotes:
“In looking for people to hire, you look for three qualities: integrity, intelligence, and energy. And if they don’t have the first, the other two will kill you.”
— Warren Buffet
CEO, Berkshire Hathaway
I think that this is one of those linux-vs-windows-style posts where you can find another million reasons to debate, so let me just say that this only my personal opinion on the matter based on some experience that I had when working in teams with smart programmers. I understand that your syntax memorization requirements may be absolutely necessary for the job, so it is different from case to case.
March 25th, 2009 at 1:48 pm
Christos,
growing hires is an expensive and slow process. Few companies are interested in it and few can afford it. As for Google, Yahoo, Microsoft, etc – yes, they do grow potential hires, but when it comes to actual hiring, you’ll see hard selection with multiple technical and non-technical interviews in the process.
Oh, and I really doubt that Warren Buffet is doing a lot of technical interviews. He is a business guy from what I hear. Hiring process for business people is very much different from technical people. I’d say I’m closer to Joel Spolsky on this one, with looking for people who are “smart and get things done“.
March 26th, 2009 at 11:26 pm
I really wrote this down on paper before I tried it. Honest! I just wanted to see if given the same task in an interview, would I have been able to do it. It took me about 5 or 10 minutes, and more than one sheet of paper.
class Person
{
private $m_name;
private $m_age;
private $m_gender;
public function __construct($a_name, $a_age, $a_gender)
{
$this->m_name = $a_name;
$this->m_age = $a_age;
$this->m_gender = $a_gender;
} // end __construct
public function get_name() { return $this->m_name; }
public function get_age() { return $this->m_age; }
public function get_gender() { return $this->m_gender; }
} // end Person
$person1 = new Person(‘Zachary’, 34, ‘male’);
$person2 = new Person(‘Albert’, 40, ‘male’);
$person3 = new Person(‘Sherry’, 35, ‘female’);
$ppl_list = array(
$person1->get_name() => $person1,
$person2->get_name() => $person2,
$person3->get_name() => $person3
);
ksort($ppl_list);
foreach ($ppl_list as $person)
{
if(‘male’ === $person->get_gender())
{
fwrite(STDOUT, “\n”);
fwrite(STDOUT, ‘Name: ‘.$person->get_name().”\n”);
fwrite(STDOUT, ‘Age: ‘.$person->get_age().”\n”);
fwrite(STDOUT, ‘Gender: ‘.$person->get_gender().”\n”);
fwrite(STDOUT, “===============================\n\n”);
}
}
March 27th, 2009 at 10:43 pm
Eric,
here is a somewhat short and simpler way:
// Data $people = array( array('name'=>'Leonid','age'=>30,'gender'=>'male'), array('name'=>'Alex','age'=>18,'gender'=>'male'), array('name'=>'Olga','age'=>31,'gender'=>'female'), ); // Get the dudes $males = array(); foreach ($people as $person) { if ($person['gender'] == 'male') { $males[] = $person; } } // Custom sort usort($males, 'cmp'); // Print out names foreach ($males as $male) { print $male['name'] . "\n"; } // As simple as string comparison function cmp($a, $b) { return strcmp($a['name'], $b['name']); }July 20th, 2009 at 2:37 am
If you need a PHP developer there are plenty around, just ask on Twitter or your local PHP Meetup group on Meetup.com or log into freenode.com IRC and go into the #PHP channel (requires registration). If you need help on a specific application, SugarCRM has its own forum, CakePHP has its own Google Group and also #cakephp on IRC.
My first language was Commodore BASIC! ha! :) Then came Apple LOGO.. 6th grade. haha But personally I like PHP because its made for the web and its open source, unlike ASP. My first PHP was a “contact us” form. I’ve done some freelancing but mostly code for my own interests. Thank god PHP adopted OOP! That’s another thing, PHP is progressive! And you don’t have to pay for upgrades. PHP has roots in several other languages and there is more than one way to express a thing, so a developer can code in his/her own style.
August 3rd, 2009 at 9:15 pm
[...] propósito, lembrei-me também de outro artigo que fala sobre a falta de capacidade de alguns programadores de PHP em relação a conc…. Trata-se de um responsável de uma empresa que pretende contratar um programador de PHP e, ao [...]
August 27th, 2009 at 9:52 am
I had to drop a comment here. Great post btw.
I’m on the other side of the fence here in Vancouver, Canada. The majour barrier I’ve had in finding any programming jobs is the qualifier “CS Degree Required”, I often hesitate when posting to these because I know the first person to read my CV/resume is almost always not going to be anyone who understands the technical information provided on it – not that a CV is very useful for passing along such information anyway. They are going to toss it in the trash because it does not contain “Computer Science Degree at Some School”. I’ve once considered putting “Computer Science Degree at Google University”. On top of this, my job as a field technician pays more than an entry level programming position, at least in PHP, in this neck of the woods. Besides, I can always write code in my free time.
I’ve found this to be the case from my personal experience, based on the lack of call-backs for job opportunities I’ve felt comfortable with such as Firmware Programmer, Web Developer/PHP/MySQL, Network Administrator, .NET Programmer, and many others. I would personally love to get an interview with someone like yourself, it’s pretty much the only way for me to prove to you that I know what I’m talking about. Unfortunately, I never pass the University Filter.
So instead, out of the sheer love for programming and computer science, I use my free time to program microcontroller projects, build desktop applications, hack around in GNU/Linux and shell scripting, building niche distros, and learning as many technologies as possible. I have no real frame of reference (professionally), but based on what I’ve seen on blogs, IRC, and other Internet sources of programming information, I think I’m above average in at least a half-dozen of the twenty or so languages I’ve used for various reasons.
Sorry for being so long winded, but what I’m getting at is, do you have any recommendations for someone like myself, who doesn’t meet the Human Resources requirements of having a university/college degree, but would pass one of your interviews with flying colours? How can I “get a foot in the door” when the door is already closed to me? The obvious answer is to get a University degree, but it’s next to impossible to do that (at least here) without going into majour debt, or having rich parents. My day job is mildly interesting, but I would still love to do something I love for a living.
I look forward to hearing your opinions and advice on this, if you would be so kind.
For the record, although I’m not a huge fan of dynamic typing, I find PHP, when used properly, to be a great language. The OOP implementation is a bit clumsy, but has more or less everything you need to serve the purpose. I’ve been using PHP a lot in shell scripts lately, instead of Python, mostly because I have trouble with Python’s non-C-style syntax. I find I can write up scripts with far fewer lines of code than I could in say Bash/Shell scripts and it’s easily twice as readable as something written in Perl, at least for me. I’ve also been messing around with the GTK bindings, which odd as it may seem, feels less naughty than it should. That’s my two cents.
Again, cool post, and great comments.
August 27th, 2009 at 12:05 pm
Matthew,
back when my CV was really empty, what helped me a great deal were online certifications. I remember there was Techmetrics, which, if I remember correctly, was later on renamed to or by bought by Brainbench. What they do is have a whole lot of online tests, which you can pass. Once you do so, they send you a printed certificate. Like a “Certified PHP Programmer” or something like that.
Most of these services allow you to pass the tests for free, but charge a tiny fee for printing and mailing the certificate. Certificates are usually pretty nice and look impressive.
Not as good as a college/university diploma, but still better than nothing. Plus you can always pass several of those tests and get a certificate for each.
As for the experience, open source project participation always looks good on the CV. List the projects you participated in, and provide a brief explanation about which part of the project you were involved with.
Hope this helps. :)
August 27th, 2009 at 3:55 pm
No degree? Do stuff. Put your projects on your resume. Do some significant things that matter or that are very hard and have a tangible result. Half completed projects don’t count unfortunately. Contribute to opensource projects. Get a presence going.
This will not get you past the HR filter but in orgs where the reviewer is the tech manager you’ll get a callback if your as good as you say you are.
I know, I hire engineers all the time and they often have no formal degree.
August 28th, 2009 at 3:18 am
Great suggestions Leonid and John. I have several certifications already, but more certainly couldn’t hurt.
I’ve thought many times about participating in open source projects, but I’ve always been intimidated because I’ve never worked on a team like this before and like I said in my comment, I have no real true way to compare myself to other programmers.
John you are absolutely correct about the half completed projects. I have so many of those laying around on my drives that I’ve lost count. Many are extremely good ideas and I’ve done countless hours of work on them, but being a lone coder, I often bite off more than I can chew or move on to something else even more interesting.
I think I will try and get on board some open source projects, at least one to get my feet wet for now. Even if it doesn’t help me get past the HR dept., it’s invaluable experience, and I would get the chance to give back to the community that has given me so much.
Thanks for the time and advice guys.
August 28th, 2009 at 3:49 am
Hi Leonid,
Is this what you were talking about?
http://www.brainbench.com...sc.....center.xml
If so, you think it would be worthwhile spending the time and money on these? I’m always up for a challenge!
Thanks
August 28th, 2009 at 9:33 am
Mathew
A CV/Resume with good “experience” on it will get you through my door, but if you want a job then you have to impress me with your code, ability to grasp problem and come up with solution.
I’d expect to see code written purely by you, that demonstrates Object Orientation, clearly shows you understand patterns and re-usability, the best way of doing this is coding up your own set of libraries.
Since the code would be relatively small, its all your own work it, its much easier for them to review.
August 28th, 2009 at 9:52 am
Matthew,
yes, that’s the one. I did a few of the myself, however it was the time during the special offer, when they were sending certificates free of charge. I didn’t pay anything for it and got a few.
This were pretty handy when, as I said, there wasn’t much that I could put on my CV. Together with open source projects in experience it gave me something. Plus the certificates were quite useful when I was getting the work permit from the Ministry of Labour and arranging my immigration paperwork. Those guys didn’t know much about IT certification, but sure loved every shiny paper. :)
August 28th, 2009 at 4:28 pm
There is no substitute for practical work and being a contributor to open source project or having started and shipped your own open source project. If I can see and verify that you’ve done either of these it means you get an interview with me every single time regardless of anything else on your resume.
I’m interested in shipping quality software on time more then certs, degrees and buzzwords. Most technical hiring managers are.
If a candidate has things like brainbench, CCNA, Microsoft Certifications, Redhat certified, A+ certified etc on their resume it detracts from them and I often will not call them back. Most hiring managers don’t want certs, they want proven results. We also have found a correlation between number of 3rd party certifications and how badly a candidate does in our interview process… If I wanted to judge someone’s test taking ability I’d value these things more..
August 28th, 2009 at 10:08 pm
John,
I understand what you are saying. However, that’s a very “technical” view. While techies, myself included, are more interested in practical experience, there is an academic and certification side to it too.
HR clerks, managers, and all sorts of government institutions, such as immigration authorities, are often more interested in education, certifications, and such. Totally avoiding this on the resume might harm as much as not having any real experience.
For example, here in Cyprus, when citizens of certain countries apply for working permit, they need to be able to prove to the immigration authorities that they possess a certain skill set and are suitable for the job more than any of the possible local candidates. And immigration authorities being what they are, they have no clue about technologies and open source projects. They pay attention to papers only. And the more papers you have, and the more stamps and signatures on them, the better candidate you are.
Same often applies to executive directors and supervisors of different levels. Being a technology person you might see the potential of the candidate. However you still need sometimes to prove or explain to such a supervisor/executive why this particular candidate is chosen. Education and certification help in this regard.
August 28th, 2009 at 10:20 pm
I do have a very US centric point of view which can be summarized as :
1) Degree from a ranked institution: Great, lets talk
2) Real experience that matters: Fantastic, I REALLY want to talk
3) ‘Certification’ without any real experience: Go home, it just means you could not complete a university degree, have no functional knowledge and are trying to backdoor a qualification
Certifications not backed up by real experience are looked VERY much down upon. They are basically purchased certifications.
BTW: I have been a Director of Engineering for 4 years and a VP for the last 2 and before that was a technical manager and software engineer. Certifications without valid experience are viewed the same at all levels unfortunately. HR managers pass may pass them through but we usually will not talk to them.
Bottom line: A certification for the sake of a certification is harmful in my worldview. But I am not trying to immigrate and I do not deal with bureaucratic processes that you may see if you are looking for a job in gov’t etc. Certifications may matter very much in that environment, your mileage may vary.
Other Bottom Line: Finish those side projects, completion matters more then education. Am I going to hire the guy with CS degree but who has had a different job every 3 months and never completed a side project or am I going to hire the non-CS degree person who is a committer to an Apache project and built a Tesla coil for fun and wants to tell me all about it…? Tesla Coil guy is getting the job every time.
August 29th, 2009 at 2:35 am
Great information here guys. I just wanted to follow up:
K, good idea about polishing up some of my libraries. I have a handful of useful little libs I’ve written for various things, mostly wrappers around linux apps/libs and web APIs. Most are quite short, and I take great pride in my code, so they’re almost all fully documented and well formatted. I’m going to get some of these posted on my website ready for potential employers to download/view. I have a couple things up on codeproject already and a fairly successful program on download.com.
Leonid, I did a free C# test on that website just to see what kind of quality they were. It was actually relatively difficult, since it was mostly memory stuff, and concepts not often used in C# as far as I’ve seen. I did quite well. You can tell a C++ programmer wrote the C# test :) I may look into a few others, even if just for the personal challenge. I already have a bunch of Microsoft certs and some Comptia stuff. Unfortunately, I’ve found these certs more or less useless when applying for jobs, since I don’t have any real experience yet or a university degree. I don’t see how the certs can detract from my CV, but without the others, they haven’t helped me much.
John, while I have no doubt that you are correct in many cases, my biggest problem is getting past that first person in HR that weeds out all the resumes that don’t have a university degree on them, since almost every job I apply for has that as the main qualification to be considered. On top of this, many people who attended university don’t understand how anyone can learn without attending. That’s why I’ve completed all these certifications, in hopes of getting past that level in the process. I have no doubt in my mind that if I could get straight to the technical manager, or equivalent, I would at least be considered. Like you and K have said, at least having my projects completed shows follow through. I have a massive directory on storage full of nearly completed apps and big bin in my lab full of completed custom circuit boards, etched by hand, programmed by hand in C/ASM that I should take some time to document and photograph and put on my website.
I still won’t pass the university filter, but at least I’ll have something to show for all my work. And if I were to meet the technical manager on the street, I would have something to show him that might lead to a job.
I’m going to be looking into some of my favourite open source programs to see if I might be able to contribute my efforts. This way the “Experience” section of my CV will have something besides irrelevancies.
Thanks so much guy for taking the time to give some advice to someone who needs it.
August 29th, 2009 at 2:47 am
I just wanted share a humorous anecdote from my experiences:
When I lived in London, Ontario I applied for a Junior Network Administrator position at a large insurance corporation. I was fresh out of school, that is, I had just spent the last 6 months completing Microsoft network certifications. My uncle was the Chief Executive Officer of the entire corporation and he was pleased to allow me to put him as a reference on my CV. Not even a recommendation from the CEO himself can push one through the University filter, especially in a city like London, which has a large and well recognized university, with lots of graduates looking for work.
Anyway, I just wanted to share that since it illustrates my problem perfectly.
September 11th, 2009 at 9:58 am
I took the challenge right away when reading the article, and this is what I came up with:
#!/usr/bin/env php
$value)
{
if ($value[1] == M_MALE)
echo “$key\n”;
}
Pretty simple stuff, really. But I hope using the name as a key, thus making them unique isn’t considered cheating.
September 11th, 2009 at 10:01 am
I think wordpress ate my script (everything between <?php and > in the foreach expression seems to be missing), so I’ll just post the code without the usual boilerplate:
define (‘M_MALE’, 1);
define (‘M_FEMALE’, 2);
define (‘M_BOTH’, M_MALE & M_FEMALE);
$people['John'] = Array (16, M_MALE);
$people['Alice'] = Array (24, M_FEMALE);
$people['Bob'] = Array (32, M_MALE);
ksort ($people);
foreach ($people as $key = $value)
{
if ($value[1] == M_MALE)
echo “$key\n”;
}
September 11th, 2009 at 10:04 am
the expression in the foreach line is wrong, but wordpress ate that > So I’ll just repost with html entities here, OP, you may delete the other comments.
I took the challenge right away when reading the article, and this is what I came up with:
#!/usr/bin/env php
<?php
declare (encoding=’UTF8′);
define (‘M_MALE’, 1);
define (‘M_FEMALE’, 2);
define (‘M_BOTH’, M_MALE & M_FEMALE);
$people['John'] = Array (16, M_MALE);
$people['Alice'] = Array (24, M_FEMALE);
$people['Bob'] = Array (32, M_MALE);
ksort ($people);
foreach ($people as $key => $value)
{
if ($value[1] == M_MALE)
echo “$key\n”;
}
Pretty simple stuff, really. But I hope using the name as a key, thus making them unique isn’t considered cheating.
September 19th, 2009 at 9:45 am
Sensational- in a bad way.
September 26th, 2009 at 9:28 pm
If you really want to see how a PHP framework should be structured look at my OpenCart project. http://www.opencart.com.
October 4th, 2009 at 2:10 am
Good read, and agreed wholeheartedly. If you look for any tool in PHP (such as, oh, a staggered database backup script – I can’t be bothered with sending a copy of my ID to my site’s cheap host), you’re bound to encounter:
* Something with ‘class’ in its name, such as ‘Database backup class’. It seems that, when it comes to PHP, ‘class’ (and ‘oop’) has become a marketing term, instead of a programming paradigm like it’s supposed to.
* Numerous sites that ofttimes offer ‘php classes’ for a thousand and one applications, which are horribly styled, require you to log in, and/or require you to vote or rate something, and/or fill in your own.
* When you do finally find what you’re looking for, it’ll either:
* Look very promising, but the download doesn’t work
* Look like it’s what you’re looking for, but doesn’t work
* Be something that, in terms of code, resembles something written by a… wait, I believe this kind of code is its own analogy – PHP code written by a dedicated PHP scripter.
I’ve seen lots of things. Database classes, (i.e. class Database or, in some cases, class DB) whose name itself already indicates the programmer doesn’t halfway know what a class or OOP actually is. Heaps of echo and HTML code in a class (‘yeh my code is 100% object-oriented! hire me for $50,- an hour!’ – and the thing was, people actually hired this one for that amount), etc.
I have to be frank here: I started out with PHP. It was my first language, I made a class Database, I’ve asked the $50,- hour programmer to help me out with generating a list of a hundred checkboxes (and couldn’t understand the triple foreach loops he produced), etc.
But then I got an education. We first got Pascal, but I hardly remember anything from that. Then a bit of PHP, which was a breeze. But in the second year, we got Java, and I learned how to program. I learned to program even better during my first internship, when I had to make a full-blown web application in Java alone. That got me into contact with how to glue numerous libraries together, teached me the value of good documentation, clean code, unit testing (which in turn teached me how to write code properly, i.e. testable and whatnot), etcetera.
I later applied that to a PHP project of mine, in combination with Zend Framework (which, imo, is the best PHP framework I’ve encountered so far, written by Real Programmers). Clean code, proper application of OOP, etc.
PHP isn’t the best language out there. I particularly dislike it because of the thousands of self-proclaimed expert programmers in that language, the tens of thousands of flat out bad examples on the internet defined as the Ultimate Truth and Best Way To Do It, andsoforth.
However, I’ll not deny that it’s slowly starting to mature. I’ll also not deny that it IS possible to write good code in it. It’s just a matter of knowing what the hell you’re doing.
The last thing I did in PHP was write a handful of very simple tools – one that checked a website’s uptime (called every 5 minutes by a cronjob), that kinda thing. Didn’t need classes, as it’s fifty lines or so of simple, straight, and logical code. From my point of view, that’s still the main type of programming anyone should do with PHP.
And I’d love to see alternative programming languages and environments get as much cheap hosting as PHP does. And no, I’m not referring to Ruby on Rails, I’ve tried that, but I quit when it turned out my then-host didn’t let me restart the Ruby instance and reload something as basic as the database configuration – which I got wrong the first upload, and I got locked out of changing it since then. Not a good thing.
Blargh.
October 4th, 2009 at 2:15 am
@Daniel Kerr:
I’ve taken a quick look at your code, and I facepalmed a little.
* Usage of a registry instead of the preferred and cleaner method of Dependency Injection, see http://martinfowler.com/articles/injection.html.
* Class MySQL. function Query($sql). Terrible. Try class MySQLConnection extends (or implements) DatabaseConnection, function InsertQuery(Query $query), etc. Also, one would expect something like that to use PDO by now, mysql_query is sooo 2000.
I’m being anal, I know, but I can be very critical about things like this (i.e. logical OO design).
October 18th, 2009 at 3:43 am
It does seem other countries care more about certifications and degrees than the US does.
I think when I was in the US, it was easier to make a career change too. Career change as in moving from a data analyst to software testing or business analyst.
Where I am now, it seems to be all about how many pieces of paper you have and it is very easy to be pigeon holed into one niche and difficult to make a change.
I have shunned certificates as most of them are just money making schemes for the certifying “authority”. Some are so easy you could read over a weekend and pass the test and not ever having been working in that area at all.
I think the problem with asking people to solve technical problems during an interview is that it is unnatural to how most people work. I am not a professional interviewee. I am a professional IT person.
December 31st, 2009 at 1:52 pm
Read your article. The problem u faced is not new to me because you are at the other side of coin.
Basic problem is that you want to test the programmer. And this is the funniest part. Because the role of tester is with programmer (if no tester is available which is wrong) to test the program. Programmers generally program and test before giving it to tester.
Best Programmers are worst Theoriticans. The theory is one thing and actual work in life is different. Most of the theories are encapsulated in functions, methods of classes and a programmer is not bothered unless he is writing in assembly language. PHP does not require a programmer to know what is FIFO or LIFO or similar terms. Dont worry if at all it is required, we learn then and there where required and then forget it.
Driving and Knowing Driving by theory is different. We do not remember how we drive when drive. Fingers and Mind they work together to do driving where as we are busy in either watching traffic / signal etc or in our thoughts.
If you ask how you drive and what is the difference between handle and cluch or break (theoretically or how it works), its not important. My leg automatically presses the break or clutch and hands automatically turn the handle. (Perhaps a beginner requires to care all these not an experienced driver).
As experienced driver perhaps wants to compete with ShueMachor (i am not sure about spelling) , a programmer wants to compete with best of all times (perhaps billgates) and wants to teach you how the world of actuals work. Where as you have doubt on his skills about basics of the PHP.
Dont Insult experienced people like this. If someone says he is experienced, just accept him and does not get you desired result, just say sorry to him but dont assume he is fool. He is good but he is beyond you.