<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Where did all the PHP programmers go?</title>
	<atom:link href="http://mamchenkov.net/wordpress/2008/06/04/where-did-all-the-php-programmers-go/feed/" rel="self" type="application/rss+xml" />
	<link>http://mamchenkov.net/wordpress/2008/06/04/where-did-all-the-php-programmers-go/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=where-did-all-the-php-programmers-go</link>
	<description>You just stepped in a pile of posts.</description>
	<lastBuildDate>Fri, 12 Mar 2010 07:42:07 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Rajesh</title>
		<link>http://mamchenkov.net/wordpress/2008/06/04/where-did-all-the-php-programmers-go/comment-page-3/#comment-144070</link>
		<dc:creator>Rajesh</dc:creator>
		<pubDate>Thu, 31 Dec 2009 11:52:52 +0000</pubDate>
		<guid isPermaLink="false">#comment-144070</guid>
		<description>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.</description>
		<content:encoded><![CDATA[<p><!-- google_ad_section_start -->Read your article. The problem u faced is not new to me because you are at the other side of coin.</p>
<p>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.</p>
<p>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. </p>
<p>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.</p>
<p>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).</p>
<p>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.</p>
<p>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.<!-- google_ad_section_end --></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tree</title>
		<link>http://mamchenkov.net/wordpress/2008/06/04/where-did-all-the-php-programmers-go/comment-page-3/#comment-143339</link>
		<dc:creator>Tree</dc:creator>
		<pubDate>Sun, 18 Oct 2009 01:43:17 +0000</pubDate>
		<guid isPermaLink="false">#comment-143339</guid>
		<description>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 &quot;authority&quot;. 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.</description>
		<content:encoded><![CDATA[<p><!-- google_ad_section_start -->It does seem other countries care more about certifications and degrees than the US does.</p>
<p>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. </p>
<p>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.</p>
<p>I have shunned certificates as most of them are just money making schemes for the certifying &#8220;authority&#8221;. 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.</p>
<p>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.<!-- google_ad_section_end --></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Cthulhu</title>
		<link>http://mamchenkov.net/wordpress/2008/06/04/where-did-all-the-php-programmers-go/comment-page-3/#comment-143255</link>
		<dc:creator>Cthulhu</dc:creator>
		<pubDate>Sun, 04 Oct 2009 00:15:58 +0000</pubDate>
		<guid isPermaLink="false">#comment-143255</guid>
		<description>@Daniel Kerr:

I&#039;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&#039;m being anal, I know, but I can be very critical about things like this (i.e. logical OO design).</description>
		<content:encoded><![CDATA[<p><!-- google_ad_section_start -->@Daniel Kerr:</p>
<p>I&#8217;ve taken a quick look at your code, and I facepalmed a little.</p>
<p>* Usage of a registry instead of the preferred and cleaner method of Dependency Injection, see <a href="http://martinfowler.com/articles/injection.html" rel="nofollow"></a><a href='http://martinfowler.com/articles/injection.html'>http://martinfowler.com/articles/injection.html</a>.</p>
<p>* 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.</p>
<p>I&#8217;m being anal, I know, but I can be very critical about things like this (i.e. logical OO design).<!-- google_ad_section_end --></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Cthulhu</title>
		<link>http://mamchenkov.net/wordpress/2008/06/04/where-did-all-the-php-programmers-go/comment-page-3/#comment-143254</link>
		<dc:creator>Cthulhu</dc:creator>
		<pubDate>Sun, 04 Oct 2009 00:10:41 +0000</pubDate>
		<guid isPermaLink="false">#comment-143254</guid>
		<description>Good read, and agreed wholeheartedly. If you look for any tool in PHP (such as, oh, a staggered database backup script - I can&#039;t be bothered with sending a copy of my ID to my site&#039;s cheap host), you&#039;re bound to encounter:

* Something with &#039;class&#039; in its name, such as &#039;Database backup class&#039;. It seems that, when it comes to PHP, &#039;class&#039; (and &#039;oop&#039;) has become a marketing term, instead of a programming paradigm like it&#039;s supposed to.

* Numerous sites that ofttimes offer &#039;php classes&#039; 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&#039;re looking for, it&#039;ll either:
   * Look very promising, but the download doesn&#039;t work
   * Look like it&#039;s what you&#039;re looking for, but doesn&#039;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&#039;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&#039;t halfway know what a class or OOP actually is. Heaps of echo and HTML code in a class (&#039;yeh my code is 100% object-oriented! hire me for $50,- an hour!&#039; - 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&#039;ve asked the $50,- hour programmer to help me out with generating a list of a hundred checkboxes (and couldn&#039;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&#039;ve encountered so far, written by Real Programmers). Clean code, proper application of OOP, etc.

PHP isn&#039;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&#039;ll not deny that it&#039;s slowly starting to mature. I&#039;ll also not deny that it IS possible to write good code in it. It&#039;s just a matter of knowing what the hell you&#039;re doing.


The last thing I did in PHP was write a handful of very simple tools - one that checked a website&#039;s uptime (called every 5 minutes by a cronjob), that kinda thing. Didn&#039;t need classes, as it&#039;s fifty lines or so of simple, straight, and logical code. From my point of view, that&#039;s still the main type of programming anyone should do with PHP.

And I&#039;d love to see alternative programming languages and environments get as much cheap hosting as PHP does. And no, I&#039;m not referring to Ruby on Rails, I&#039;ve tried that, but I quit when it turned out my then-host didn&#039;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.</description>
		<content:encoded><![CDATA[<p><!-- google_ad_section_start -->Good read, and agreed wholeheartedly. If you look for any tool in PHP (such as, oh, a staggered database backup script &#8211; I can&#8217;t be bothered with sending a copy of my ID to my site&#8217;s cheap host), you&#8217;re bound to encounter:</p>
<p>* Something with &#8216;class&#8217; in its name, such as &#8216;Database backup class&#8217;. It seems that, when it comes to PHP, &#8216;class&#8217; (and &#8216;oop&#8217;) has become a marketing term, instead of a programming paradigm like it&#8217;s supposed to.</p>
<p>* Numerous sites that ofttimes offer &#8216;php classes&#8217; 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.</p>
<p>* When you do finally find what you&#8217;re looking for, it&#8217;ll either:<br />
   * Look very promising, but the download doesn&#8217;t work<br />
   * Look like it&#8217;s what you&#8217;re looking for, but doesn&#8217;t work<br />
   * Be something that, in terms of code, resembles something written by a&#8230; wait, I believe this kind of code is its own analogy &#8211; PHP code written by a dedicated PHP scripter.</p>
<p>I&#8217;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&#8217;t halfway know what a class or OOP actually is. Heaps of echo and HTML code in a class (&#8216;yeh my code is 100% object-oriented! hire me for $50,- an hour!&#8217; &#8211; and the thing was, people actually hired this one for that amount), etc.</p>
<p>I have to be frank here: I started out with PHP. It was my first language, I made a class Database, I&#8217;ve asked the $50,- hour programmer to help me out with generating a list of a hundred checkboxes (and couldn&#8217;t understand the triple foreach loops he produced), etc.</p>
<p>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.</p>
<p>I later applied that to a PHP project of mine, in combination with Zend Framework (which, imo, is the best PHP framework I&#8217;ve encountered so far, written by Real Programmers). Clean code, proper application of OOP, etc.</p>
<p>PHP isn&#8217;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.</p>
<p>However, I&#8217;ll not deny that it&#8217;s slowly starting to mature. I&#8217;ll also not deny that it IS possible to write good code in it. It&#8217;s just a matter of knowing what the hell you&#8217;re doing.</p>
<p>The last thing I did in PHP was write a handful of very simple tools &#8211; one that checked a website&#8217;s uptime (called every 5 minutes by a cronjob), that kinda thing. Didn&#8217;t need classes, as it&#8217;s fifty lines or so of simple, straight, and logical code. From my point of view, that&#8217;s still the main type of programming anyone should do with PHP.</p>
<p>And I&#8217;d love to see alternative programming languages and environments get as much cheap hosting as PHP does. And no, I&#8217;m not referring to Ruby on Rails, I&#8217;ve tried that, but I quit when it turned out my then-host didn&#8217;t let me restart the Ruby instance and reload something as basic as the database configuration &#8211; which I got wrong the first upload, and I got locked out of changing it since then. Not a good thing.</p>
<p>Blargh.<!-- google_ad_section_end --></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Daniel Kerr</title>
		<link>http://mamchenkov.net/wordpress/2008/06/04/where-did-all-the-php-programmers-go/comment-page-3/#comment-143213</link>
		<dc:creator>Daniel Kerr</dc:creator>
		<pubDate>Sat, 26 Sep 2009 19:28:14 +0000</pubDate>
		<guid isPermaLink="false">#comment-143213</guid>
		<description>If you really want to see how a PHP framework should be structured look at my OpenCart project. http://www.opencart.com.</description>
		<content:encoded><![CDATA[<p><!-- google_ad_section_start -->If you really want to see how a PHP framework should be structured look at my OpenCart project. <a href="http://www.opencart.com" rel="nofollow"></a><a href='http://www.opencart.com'>http://www.opencart.com</a>.<!-- google_ad_section_end --></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: sean ruiz</title>
		<link>http://mamchenkov.net/wordpress/2008/06/04/where-did-all-the-php-programmers-go/comment-page-3/#comment-143183</link>
		<dc:creator>sean ruiz</dc:creator>
		<pubDate>Sat, 19 Sep 2009 07:45:12 +0000</pubDate>
		<guid isPermaLink="false">#comment-143183</guid>
		<description>Sensational- in a bad way.</description>
		<content:encoded><![CDATA[<p><!-- google_ad_section_start -->Sensational- in a bad way.<!-- google_ad_section_end --></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Henk</title>
		<link>http://mamchenkov.net/wordpress/2008/06/04/where-did-all-the-php-programmers-go/comment-page-3/#comment-143149</link>
		<dc:creator>Henk</dc:creator>
		<pubDate>Fri, 11 Sep 2009 08:04:16 +0000</pubDate>
		<guid isPermaLink="false">#comment-143149</guid>
		<description>the expression in the foreach line is wrong, but wordpress ate that &gt; So I&#039;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
&lt;?php
declare (encoding=&#039;UTF8&#039;);

define (&#039;M_MALE&#039;, 1);
define (&#039;M_FEMALE&#039;, 2);
define (&#039;M_BOTH&#039;, M_MALE &amp; M_FEMALE);

$people[&#039;John&#039;] = Array (16, M_MALE);
$people[&#039;Alice&#039;] = Array (24, M_FEMALE);
$people[&#039;Bob&#039;] = Array (32, M_MALE);

ksort ($people);

foreach ($people as $key =&gt; $value)
{
    if ($value[1] == M_MALE)
        echo &quot;$key\n&quot;;
}

Pretty simple stuff, really. But I hope using the name as a key, thus making them unique isn’t considered cheating.</description>
		<content:encoded><![CDATA[<p><!-- google_ad_section_start -->the expression in the foreach line is wrong, but wordpress ate that &gt; So I&#8217;ll just repost with html entities here, OP, you may delete the other comments.</p>
<p>I took the challenge right away when reading the article, and this is what I came up with:</p>
<p>#!/usr/bin/env php<br />
&lt;?php<br />
declare (encoding=&#8217;UTF8&#8242;);</p>
<p>define (&#8216;M_MALE&#8217;, 1);<br />
define (&#8216;M_FEMALE&#8217;, 2);<br />
define (&#8216;M_BOTH&#8217;, M_MALE &amp; M_FEMALE);</p>
<p>$people['John'] = Array (16, M_MALE);<br />
$people['Alice'] = Array (24, M_FEMALE);<br />
$people['Bob'] = Array (32, M_MALE);</p>
<p>ksort ($people);</p>
<p>foreach ($people as $key =&gt; $value)<br />
{<br />
    if ($value[1] == M_MALE)<br />
        echo &#8220;$key\n&#8221;;<br />
}</p>
<p>Pretty simple stuff, really. But I hope using the name as a key, thus making them unique isn’t considered cheating.<!-- google_ad_section_end --></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Henk</title>
		<link>http://mamchenkov.net/wordpress/2008/06/04/where-did-all-the-php-programmers-go/comment-page-3/#comment-143148</link>
		<dc:creator>Henk</dc:creator>
		<pubDate>Fri, 11 Sep 2009 08:01:33 +0000</pubDate>
		<guid isPermaLink="false">#comment-143148</guid>
		<description>I think wordpress ate my script (everything between &lt;?php and &gt; in the foreach expression seems to be missing), so I&#039;ll just post the code without the usual boilerplate:

define (&#039;M_MALE&#039;, 1);
define (&#039;M_FEMALE&#039;, 2);
define (&#039;M_BOTH&#039;, M_MALE &amp; M_FEMALE);

$people[&#039;John&#039;] = Array (16, M_MALE);
$people[&#039;Alice&#039;] = Array (24, M_FEMALE);
$people[&#039;Bob&#039;] = Array (32, M_MALE);

ksort ($people);

foreach ($people as $key = $value)
{
    if ($value[1] == M_MALE)
        echo &quot;$key\n&quot;;
}</description>
		<content:encoded><![CDATA[<p><!-- google_ad_section_start -->I think wordpress ate my script (everything between &lt;?php and &gt; in the foreach expression seems to be missing), so I&#8217;ll just post the code without the usual boilerplate:</p>
<p>define (&#8216;M_MALE&#8217;, 1);<br />
define (&#8216;M_FEMALE&#8217;, 2);<br />
define (&#8216;M_BOTH&#8217;, M_MALE &amp; M_FEMALE);</p>
<p>$people['John'] = Array (16, M_MALE);<br />
$people['Alice'] = Array (24, M_FEMALE);<br />
$people['Bob'] = Array (32, M_MALE);</p>
<p>ksort ($people);</p>
<p>foreach ($people as $key = $value)<br />
{<br />
    if ($value[1] == M_MALE)<br />
        echo &#8220;$key\n&#8221;;<br />
}<!-- google_ad_section_end --></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Henk</title>
		<link>http://mamchenkov.net/wordpress/2008/06/04/where-did-all-the-php-programmers-go/comment-page-3/#comment-143147</link>
		<dc:creator>Henk</dc:creator>
		<pubDate>Fri, 11 Sep 2009 07:58:35 +0000</pubDate>
		<guid isPermaLink="false">#comment-143147</guid>
		<description>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 &quot;$key\n&quot;;
}

Pretty simple stuff, really. But I hope using the name as a key, thus making them unique isn&#039;t considered cheating.</description>
		<content:encoded><![CDATA[<p><!-- google_ad_section_start -->I took the challenge right away when reading the article, and this is what I came up with:</p>
<p>#!/usr/bin/env php<br />
 $value)<br />
{<br />
    if ($value[1] == M_MALE)<br />
        echo &#8220;$key\n&#8221;;<br />
}</p>
<p>Pretty simple stuff, really. But I hope using the name as a key, thus making them unique isn&#8217;t considered cheating.<!-- google_ad_section_end --></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Matthew</title>
		<link>http://mamchenkov.net/wordpress/2008/06/04/where-did-all-the-php-programmers-go/comment-page-3/#comment-143116</link>
		<dc:creator>Matthew</dc:creator>
		<pubDate>Sat, 29 Aug 2009 00:47:47 +0000</pubDate>
		<guid isPermaLink="false">#comment-143116</guid>
		<description>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.</description>
		<content:encoded><![CDATA[<p><!-- google_ad_section_start -->I just wanted share a humorous anecdote from my experiences:</p>
<p>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.</p>
<p>Anyway, I just wanted to share that since it illustrates my problem perfectly.<!-- google_ad_section_end --></p>
]]></content:encoded>
	</item>
</channel>
</rss>
