{"id":11290,"date":"2008-06-04T12:26:56","date_gmt":"2008-06-04T09:26:56","guid":{"rendered":""},"modified":"2008-06-05T23:00:22","modified_gmt":"2008-06-05T20:00:22","slug":"where-did-all-the-php-programmers-go","status":"publish","type":"post","link":"https:\/\/mamchenkov.net\/wordpress\/2008\/06\/04\/where-did-all-the-php-programmers-go\/","title":{"rendered":"Where did all the PHP programmers go?"},"content":{"rendered":"<!-- google_ad_section_start -->\n<p>During the last six month or so, I&#8217;ve been looking to hire a PHP programmer for at least three companies.\u00a0 I have spoken to quite a few people on the phone, reviewed a bunch of resumes, and even interviewed a few.\u00a0 Out of all those candidates I recommended to hire exactly zero.<\/p>\n<p>Before you start bashing my high standards, let me explain.\u00a0 I wasn&#8217;t looking for a rocket scientist or anything remotely similar.\u00a0 Not even a senior PHP developer.\u00a0 Someone with enough knowledge to take over maintenance of a couple of projects, both of which are based on famous open source software &#8211; <a href=\"https:\/\/mamchenkov.net\/wordpress\/2008\/05\/29\/toolbox-wordpress-cakephp-sugarcrm-rt\/\">CakePHP and WordPress<\/a>.<\/p>\n<p>I can understand that not everyone have worked with or even heard of CakePHP or WordPress.\u00a0 I can understand that getting used to that source code and going through documentation might need some time.\u00a0 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.<\/p>\n<p>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.\u00a0 What I cannot undertand is how a &#8220;senior web developer&#8221; with years of PHP experience and team leading becomes useless when his Dreamweaver is taken away.\u00a0 What I cannot understand is why people with more than one Bachelor Degree in Computer Science recommend using bubble sort.\u00a0 What I cannot understand is why programmers start teaching the potential employer about the interviewing process instead of answering technical questions.\u00a0 And what I don&#8217;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.<\/p>\n<p>If you are wondering what sort of questions I&#8217;ve been asking, here is an example.\u00a0 A simple questions would be something like: &#8220;<em>What is the difference between the stack (also known as FILO) and the queue (also known as pipe, also known as FIFO)?<\/em>&#8220;.\u00a0 Most of the answer is already in the questions, isn&#8217;t it?<\/p>\n<p>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: &#8220;<em>Using PHP programming language, create a list to store information about people.\u00a0 For each person you&#8217;ll need to store name, age, and gender. Populate the list with three sample records.\u00a0 Then, print out an alphabetically sorted list of names of all males in that list. Bonus points for not using the database.<\/em>&#8220;.\u00a0 Each candidate was given a piece of paper, a pen, and unlimited amount of time.\u00a0 And in the last six month I haven&#8217;t seen one candidate who could write the code to solve that problem.<\/p>\n<p>We&#8217;ve been through all job sites, newspapers, local and foreign forums, and recruiting agencies, trying to find the candiate.\u00a0 We haven&#8217;t found even one.\u00a0 At least three are needed right now.\u00a0 More will be needed in the nearest future.<\/p>\n<p>Hopefully, by now you will agree with me on that the situation with the human resources on the island of Cyprus is disastrous.\u00a0 There is more demand than there is supply, and it&#8217;s not getting any better.<\/p>\n<p>Those of you who argue in favour of Cyprus being a small, unimportant country in the middle of technological nowhere, might want to wait.\u00a0 Last year I&#8217;ve been in Greece at the Greek Blogger Camp.\u00a0 This year I&#8217;ve been in Amsterdam at The Next Web Conference.\u00a0 At both events I&#8217;ve chatted with a lot of people from all over Europe and the USA.\u00a0 I&#8217;ve also been all over forums and job web sites both local and foreign.\u00a0 And the feeling I&#8217;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.<\/p>\n<p>While still spending a lot of time looking for a PHP programmer, I was thinking about the roots of the problem.\u00a0 PHP seems to be quite a popular language.\u00a0 So, why is it such a problem to find a good PHP programmer? (note: &#8220;good&#8221;, not &#8220;great&#8221; or even &#8220;very good&#8221;) Thinking about the roots of the problem, I got this theory, which isn&#8217;t even a theory yet, but rather a raw chain of assumptions and conclusions.\u00a0 Here is how it goes.<\/p>\n<p><strong>PHP is an ugly language<\/strong><\/p>\n<p>I know a few good programmers personally.\u00a0 I also read blogs and comments of a few more good programmes on the Web.\u00a0 And even though many of them use PHP often, or even on a daily basis, I don&#8217;t remember anyone of them every saying that they enjoy PHP.\u00a0 If given the choice of a programming language for a new project, they&#8217;ll pick anything &#8211; Java, C, Python, Perl, Ruby, Haskell&#8230; Anything, but not PHP. PHP has its pros, but being a beautiful or convenient language is not one of them.<\/p>\n<p><strong>PHP is newbie safe<\/strong><\/p>\n<p>One of the reasons for why PHP is so popular is because it is newbie safe.\u00a0 You don&#8217;t need to know much about anything to start programming in PHP.\u00a0 Most of the hosting companies will provide you with a PHP enabled hosting account for just a few dollars a month.\u00a0 You can write PHP in any text editor, so you won&#8217;t need a high end machine or expensive IDE.\u00a0 PHP.net web site has all the documentation and examples that you&#8217;ll ever need, so you don&#8217;t need to study hard in college or pay for subscription to developers&#8217; network.\u00a0 All of these make PHP very attractive to beginner programmers.<\/p>\n<p><strong>PHP avoidance<\/strong><\/p>\n<p>Most of the good programmers that I know, have learned PHP to some degree.\u00a0\u00a0 Most of the bad programmers that I know, have also learned PHP to some degree.\u00a0 But for good programmers PHP was either not the first programming language under their belt, or they&#8217;ve moved forward to some other programming language.\u00a0 Most of the bad programmers that I know, only know one programming language &#8211; PHP &#8211; and they don&#8217;t know it good enough.\u00a0 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.<\/p>\n<p><strong>PHP is rich with secondary reasons<\/strong><\/p>\n<p>There are many reasons for why PHP is so popular.\u00a0 It is free.\u00a0 It is open source.\u00a0 It is easy to setup.\u00a0 Most hosting companies offer PHP-enabled packages, as well as a lot of PHP software pre-installed.<\/p>\n<p>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.<\/p>\n<p><strong>PHP is getting mature<\/strong><\/p>\n<p>PHP started off as a handy Perl library for web development.\u00a0 It grew and expanded over time.\u00a0 And so did the projects which were written in PHP.\u00a0 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.<\/p>\n<p><strong>The moment of conflict<\/strong><\/p>\n<p>And here comes the moment of conflict.\u00a0 The complexity of PHP applications is growing higher and higher (see above).\u00a0 And the language is not beautiful enough to attract good programmers and make them stay (see above).\u00a0 The result?\u00a0 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).<\/p>\n<p><strong>Questions?<\/strong><\/p>\n<p>How can we attract good programmers to PHP development?\u00a0 What are really the reasons for using PHP all that often, if it shares the biggest problem with the other languages &#8211; impossibility of finding qualified personnel.\u00a0 Is there any other programming language that can solve this problem?\u00a0 Is there any solution at all?<\/p>\n<p><strong>Solutions<\/strong><\/p>\n<p>These, of course, I don&#8217;t have, as usual.\u00a0 But.\u00a0 I am looking with interest at hosted application services.\u00a0 The ones like from Amazon and Google.\u00a0 I think these will mature of the next few month and years.\u00a0 And there will be a few more (Yahoo, Microsoft, and IBM maybe?).<\/p>\n<p>The way I see hosted application services is like this.\u00a0 They will split the programmers into two categories.\u00a0 The first category will be all those novice programmers, who don&#8217;t know how or don&#8217;t have the resources to take care of everything.\u00a0 They&#8217;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).\u00a0 Hosted application services will (not yet though) make it easy to cover the ignorance and help to make a few bucks here and there.\u00a0 Exactly like PHP has been doing it for years now.\u00a0 The good programmers though will mostly participate in in-house projects and customization developments, which won&#8217;t be fitting into hosted application services, and will require additional knowledge and experience.<\/p>\n<p><strong>Summary<\/strong><\/p>\n<p>If you are a PHP developer looking for a job in Cyprus, please <a href=\"https:\/\/mamchenkov.net\/wordpress\/contact-me\/\">let me know<\/a>.<\/p>\n<!-- google_ad_section_end -->\n","protected":false},"excerpt":{"rendered":"<!-- google_ad_section_start -->\n<p>During the last six month or so, I&#8217;ve been looking to hire a PHP programmer for at least three companies.\u00a0 I have spoken to quite a few people on the phone, reviewed a bunch of resumes, and even interviewed a few.\u00a0 Out of all those candidates I recommended to hire exactly zero. Before you start &hellip; <a href=\"https:\/\/mamchenkov.net\/wordpress\/2008\/06\/04\/where-did-all-the-php-programmers-go\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Where did all the PHP programmers go?<\/span><\/a><\/p>\n<!-- google_ad_section_end -->\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"_links_to":"","_links_to_target":""},"categories":[1,22,18,62],"tags":[38,540],"keyring_services":[],"class_list":["post-11290","post","type-post","status-publish","format-standard","hentry","category-general","category-cyprus","category-programming","category-technology","tag-php","tag-vacancy"],"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":16391,"url":"https:\/\/mamchenkov.net\/wordpress\/2012\/07\/09\/cakephp-2-1-4-2-2-and-a-pick-into-3-0\/","url_meta":{"origin":11290,"position":0},"title":"CakePHP 2.1.4, 2.2, and a pick into 3.0","author":"Leonid Mamchenkov","date":"July 9, 2012","format":false,"excerpt":"There's been a stream of good news from the CakePHP headquarters recently. \u00a0If you are as slow as me on catching up with these things, here is a quick summary. CakePHP 2.1.4 has been release, and that'll be the last release for the 2.1 branch. \u00a0It's time to move on.\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":42852,"url":"https:\/\/mamchenkov.net\/wordpress\/2019\/07\/19\/enjoying-some-cakephp\/","url_meta":{"origin":11290,"position":1},"title":"Enjoying some CakePHP","author":"Leonid Mamchenkov","date":"July 19, 2019","format":"image","excerpt":"Enjoying some CakePHP","rel":"","context":"In &quot;Instagram&quot;","block_context":{"text":"Instagram","link":"https:\/\/mamchenkov.net\/wordpress\/category\/photography\/instagram\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/07\/enjoying-some-cakephp.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/07\/enjoying-some-cakephp.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/07\/enjoying-some-cakephp.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/07\/enjoying-some-cakephp.jpg?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/07\/enjoying-some-cakephp.jpg?resize=1050%2C600&ssl=1 3x"},"classes":[]},{"id":28376,"url":"https:\/\/mamchenkov.net\/wordpress\/2018\/02\/11\/zeal-vim-offline-cakephp-and-other-documentation\/","url_meta":{"origin":11290,"position":2},"title":"Zeal + Vim = offline CakePHP (and other) documentation","author":"Leonid Mamchenkov","date":"February 11, 2018","format":false,"excerpt":"As any long time Vim user, I'm constantly looking for ways to tweak and improve my text editor configuration, and make me even more efficient.\u00a0 Today, I came across a very handy addition - Zeal\u00a0- an offline documentation browser for developers. (Thanks to this blog post, which also mentions Dash\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2018\/02\/Zeal-CakePHP-Inflector-500x265.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":22103,"url":"https:\/\/mamchenkov.net\/wordpress\/2014\/07\/01\/cakephp-3-here-we-go-again\/","url_meta":{"origin":11290,"position":3},"title":"CakePHP 3, here we go again.","author":"Leonid Mamchenkov","date":"July 1, 2014","format":false,"excerpt":"As some of you might know, I'm a big fan of CakePHP framework. \u00a0I've used it on numerous projects since the beginning of times. \u00a0I've built projects small and large, migrated existing native PHP codebases to CakePHP and even survived a few major CakePHP upgrades - 1.2 to 2.0 comes\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":27421,"url":"https:\/\/mamchenkov.net\/wordpress\/2017\/03\/17\/cakephp-3-remove-shell-welcome-header\/","url_meta":{"origin":11290,"position":4},"title":"CakePHP 3 : Remove Shell Welcome Header","author":"Leonid Mamchenkov","date":"March 17, 2017","format":false,"excerpt":"CakePHP 3\u00a0has an excellent support for command line Shells, Tasks, and Console Tools. \u00a0There are a few that are bundled with the framework itself, and that come from a variety of plugins. \u00a0And, of course, you can have your own commands, specific to your application. There is one tiny little\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":27405,"url":"https:\/\/mamchenkov.net\/wordpress\/2017\/03\/10\/using-requirejs-with-cakephp\/","url_meta":{"origin":11290,"position":5},"title":"Using RequireJS with CakePHP","author":"Leonid Mamchenkov","date":"March 10, 2017","format":false,"excerpt":"https:\/\/www.slideshare.net\/StephenYoung6\/require-js-cakephp","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_sharing_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/11290","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/comments?post=11290"}],"version-history":[{"count":0,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/11290\/revisions"}],"wp:attachment":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/media?parent=11290"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/categories?post=11290"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/tags?post=11290"},{"taxonomy":"keyring_services","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/keyring_services?post=11290"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}