[nycphp-talk] About Formalizing an Enterprise PHP and the PHP+ Developer
Peter Sawczynec
ps at sun-code.com
Thu Apr 24 05:35:52 EDT 2008
Now this roll up (redisplayed below) from Time Lieberman is excellent
and elegantly captures what a real PHP+ programmer would be. And in
reality and based on my own experience too, this skill set is exactly
what is most often needed and even silently tacitly expected when you
step into an advanced PHP programmer job OR you will likely need all
this knowledge if you are independently consulting and taking on entire
web site design, development and maintenance.
--------------- START: T. Lieberman advanced PHP+ rollup ------------
I want someone who can (among other things):
- Administer UNIX-like servers. Including some basic understanding of
package management, and also (especially?) compiling from source.
- Can at least make their way around a windows/IIS type system.
- Understands version control systems (for me, CVS + SVN, but you'd
probably need to understand VSS in the cert exam).
- Knows how to program. Understands how to optimize (and when).
Understands recursion.
- Has a good knowledge of object-oriented things.
- Knows their way around major design patterns (MVC, Singletons,
Factories, and so on)
- Understands SQL -- you might be a PHP-expert, but if you're writing
bad SQL your app will suck (unless it eschews SQL entirely -- how often
does that happen).
- Understands XML parsers.
- Understands some common XML-based standards (SOAP, RSS)
- Knows how to write a cron job that will actually work.
- Can manually interact with an SMTP server (via telnet)
--------------- END: T. Lieberman advanced PHP+ rollup ------------
I would suggest to any average PHP programmer who is looking for a hot
list of "what do I need to know" to really get ahead. Then you can use
the above list almost like bible, the above knowledge set (with or
without a cert to test you) is a very good full tool kit of skills that
will make you a very valuable and versatile member/manager on most any
PHP job -- full time/part time/freelance.
My list below, I would suggest then, is very good knowledge set for a
beginner/intermediate level.
--------------- START: P. Sawczynec beginner/intermediate PHP+ rollup
------------
-- State/cookies/sessions
-- Database related
-- Email
-- Forms
-- File handling and uploads
-- Internet/SOAP/CURL
Educate yourself roughly committing time to concepts in these
percentages shown below:
5 % -- Package(s) and install
5 % -- PHP .ini
15 % -- Security
20 % -- Functions
25 % -- Classes
5 % -- Error Handling
5 % -- RegExp
10 % -- PEAR/PECL
5 % -- Version Control
--------------- END: P. Sawczynec beginner/intermediate PHP+ rollup
------------
Well, well something quite good has already come of this thread.
Peter
-----Original Message-----
From: talk-bounces at lists.nyphp.org [mailto:talk-bounces at lists.nyphp.org]
On Behalf Of Tim Lieberman
Sent: Wednesday, April 23, 2008 10:09 PM
To: NYPHP Talk
Subject: Re: [nycphp-talk] About Formalizing an Enterprise PHPand
thePHP+Developer
Certifications about particular technologies are dumb, unless there's a
certain amount of built-in complexity that justifies them (or not, but I
don't know what Cisco certifications are like, etc). PHP is a small
enough system that it doesn't warrant it.
Any competent programmer can become satisfactorily proficient in a
language in less than two weeks (assuming the language is of a common
langauge class -- C to lisp is hard. Perl or C to php is simple. Also
see C++ to Java, PHP to ColdFusion, Java to C#, etc). Given two or
three months, that programmer who gained some proficiency can become
fairly expert.
If you want a certification, it should be wider.
As someone who's in a position to hire, I'd love to see a really strong
certification that I could count on. This would require conceptual
knowledge, not particulars about a language.
I want someone who can (among other things):
- Administer UNIX-like servers. Including some basic understaning
of package management, and also (especially?) compiling from source.
- Can at least make their way around a windows/IIS type system.
- Understands version control systems (for me, CVS + SVN, but you'd
probably need to understand VSS in the cert exam).
- Knows how to program. Understands how to optimize (and when).
Understands recursion.
- Has a good knowledge of object-oriented things.
- Knows their way around major design patterns (MVC, Singletons,
Factories, and so on)
- Understands SQL -- you might be a PHP-expert, but if you're
writing bad SQL your app will suck (unless it eschews SQL entirely --
how often does that happen).
- Understands XML parsers.
- Understands some common XML-based standards (SOAP, RSS)
- Knows how to write a cron job that will actually work.
- Can manually interact with an SMTP server (via telnet)
Knowledge of PHP's syntax just simply pales in comparison to the
importance of this stuff. PHP is *easy* to learn if ... wait for it ...
you know how to program your way out of a paper bag. ($bag.exit();?
exit($me,$bag);? $this.parent = null;? ... maybe it's harder than I
thought ... getting claustrophobic!)
All this stuff (together) is hard to test for, and it's hardly an
exhaustive list. It's also just the start of the list that *I* want --
some people might not care about version control, for instance.
But a much better place to start, IMO, is not a PHP certification, but
some kind of overall web-development certification.
I care a LOT more about a candidate having a good understanding of
relational databases than I do about them understanding PHP. I also
want my subordinates to be clear on good semantic markup, and have a
good, solid understanding of Javascript (these days).
_______________________________________________
New York PHP Community Talk Mailing List
http://lists.nyphp.org/mailman/listinfo/talk
NYPHPCon 2006 Presentations Online
http://www.nyphpcon.com
Show Your Participation in New York PHP
http://www.nyphp.org/show_participation.php
More information about the talk
mailing list