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.
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
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.
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.
Why not just ask for a code portfolio?
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.
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);
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.
Cent percent correct about the PHP resources available in markets, Even in India also the same story.
– Xavier Raj Antony Samy.
@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.
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.
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.
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€.
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.’
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.
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…
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.
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 :)
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!
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.
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.)
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.
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?
Koen,
I do ask for code portfolio, but often all of their code belongs to some other company.
You still havn’t fixed the attrack spelling error. Great article however!
toto and Chad Crabtree,
thanks! I’ve corrected the mistakes.
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.
Morris Harrison,
I’d say you are more of an exception than a rule. :)
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…
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.
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.
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.
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
PrettyCoder,
now that is one good advice :)
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.
Little Mo YinYang,
you are trolling. Please stop.
Things for you to think about:
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.
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!
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.
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.
“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!
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?”
MonkeyT,
thanks a lot! Your tips are much appreciated.
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?
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.
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.