[56K WARN] What makes a good PHP developer

Not for 'how-to' coding questions but PHP theory instead, this forum is here for those of us who wish to learn about design aspects of programming with PHP.

Moderator: General Moderators

parenthesis
Forum Newbie
Posts: 1
Joined: Thu May 24, 2007 10:58 am

Come on, what really makes you a good *PHP* developer?

Post by parenthesis »

If I'm attempting to revive this thread, that's because I didn't quite find the answer to my question when I googled myself up to this page.

So, I'll reiterate the question: what makes a good PHP developer?

I already know that being a good developer is a really good start, but as far as PHP is concerned, what, in your opinion, do good PHP developers know and do that some newcomer from a different language might be unaware of?

I've been programming for a while in PHP and have been writing Web application since a much longer time. I notice I can do pretty much what I want using the language, providing I educate myself about the new features that I need, but I'm a bit shy about calling myself an expert, even though I do have the skills to tackle most programming challenges intelligently. So, I wonder how differently I would program in PHP if I felt completely at home in this environment.

Why would you say you're an expert in PHP? What makes it that you "get it" better than, say, some .NET, python or Java guy? Any ideas?

I'm looking forward to your answers.
User avatar
RobertGonzalez
Site Administrator
Posts: 14293
Joined: Tue Sep 09, 2003 6:04 pm
Location: Fremont, CA, USA

Re: Come on, what really makes you a good *PHP* developer?

Post by RobertGonzalez »

parenthesis wrote:what, in your opinion, do good PHP developers know and do that some newcomer from a different language might be unaware of?
Though this has been talked about pretty well in this thread, what the heck, I'll bite...
  • Knowledge:
  • Understand network and server architecture and structure
  • Understand OS's and the affect they have on PHP (and vice versa)
  • Understand and use load balanacing, data normalization and optimization techniques
  • Understand that just because the app shows what you want to see doesn't mean it's 'working'
  • Understand security principles and code in defense of potential breaches
  • Understand the concept of modularity, granularity and singleness of purpose of objects
  • Understand that the world does not always use the LAM part of the LAMP stack
  • Actions:
  • Code with the expectation that the code will be used enterprise wide
  • Code with an end result in mind
  • Code according to a well thought out application architecture
  • Code with the knowledge that PHP might not be the best resource for the job
  • Code clean, with a lot of comments
  • Use code control tools and collaboration tools, even if the project is one developer right now
  • Use multiple environments for development, testing and deployment to production
  • Remain teachable and willing to help
User avatar
Christopher
Site Administrator
Posts: 13596
Joined: Wed Aug 25, 2004 7:54 pm
Location: New York, NY, US

Post by Christopher »

Although BDKR claimed that "dead serious OO shops don't seem to care much or know much about the whole "Shared Nothing" concept." I think that Shared Nothing it the basis for the problem solving style that is essential to being a great PHP developer.
(#10850)
User avatar
Ollie Saunders
DevNet Master
Posts: 3179
Joined: Tue May 24, 2005 6:01 pm
Location: UK

Post by Ollie Saunders »

What makes a good PHP developer is largely the same as what makes a good developer in C++, Java, or SmallTalk etc.
This is an excellent read

Are there concepts in PHP OOP that I don't even know about, that I should?
Yes
Should I be using constructors on all the classes I create?
No. There are guidelines for making such decisions.
Does a good PHP developer use switches instead of if-statements?
Both switches and if..else chains are a design smell. They indicate a piece of code that can only be extended by adding additional logic, and restrictive logic at that. That said a switch is better than an if..else chain.
While loops instead of for loops?
Code is nearly all decision making based on knowledge and which loop to use is just one example of that. There is no blanket better or worse loop type. If there was surely we'd get rid of the bad one.
Should a PHP developer worth their salt know all the differences between PHP5 and PHP4?
Yes. It doesn't take long to learn this really.
Does a good PHP developer use tools already created, as opposed to creating them him/herself (ie PEAR, PHPBB, all the other things I don't use)?
A good developer learns to identify a good library or framework and writes his own code when he can't find one.
User avatar
Jenk
DevNet Master
Posts: 3587
Joined: Mon Sep 19, 2005 6:24 am
Location: London

Post by Jenk »

A good developer does not compare the abilities of other developers on their choice of language, for a start.
User avatar
Maugrim_The_Reaper
DevNet Master
Posts: 2704
Joined: Tue Nov 02, 2004 5:43 am
Location: Ireland

Post by Maugrim_The_Reaper »

Well, that's because a good PHP developer should know those other languages ;). It's one thing I'd certainly look for - a good developer is agnostic. They'll learn a few languages so that if PHP goes downhill tomorrow they can switch to something in the same space (like Ruby, though Ruby is still not a huge job driver).
User avatar
Kieran Huggins
DevNet Master
Posts: 3635
Joined: Wed Dec 06, 2006 4:14 pm
Location: Toronto, Canada
Contact:

Post by Kieran Huggins »

A friend of mine once remarked (quite rightly) that a good developer was a good developer, and the language was merely the expression of this ability. Incidentally, he runs a very successful rails shop.

My experience has been that there is more demand for rails developers than there is supply at the moment, I know several people considering learning rails specifically for marketability reasons. Personally I'd like to learn rails because it seems like a cool system ;-)
User avatar
Jenk
DevNet Master
Posts: 3587
Joined: Mon Sep 19, 2005 6:24 am
Location: London

Post by Jenk »

Kieran Huggins wrote:A friend of mine once remarked (quite rightly) that a good developer was a good developer, and the language was merely the expression of this ability.
That's better than I could have put it :)
User avatar
RobertGonzalez
Site Administrator
Posts: 14293
Joined: Tue Sep 09, 2003 6:04 pm
Location: Fremont, CA, USA

Post by RobertGonzalez »

Kieran Huggins wrote:A friend of mine once remarked (quite rightly) that a good developer was a good developer, and the language was merely the expression of this ability.
Very well put, this friend of yours.
Kieran Huggins wrote:Personally I'd like to learn rails because it seems like a cool system ;-)
I am almost at this point. I want to learn it so that when people bash PHP in favor of it I can respond with some amount of knowledge (either pro or con). That is why I wanted to learn C# and CF. Well, mostly. I also want to be a marketable developer when I go private, and it can only help to know more than the average Joe. ;)
alex.barylski
DevNet Evangelist
Posts: 6267
Joined: Tue Dec 21, 2004 5:00 pm
Location: Winnipeg

Post by alex.barylski »

IMHO a good developer is one that gets the job done. A great developer is someone who gets the job done and done right (no lazy hacks, poor docs, etc).

That said, I look for the following characteristics when analyzing source code:

1) Structure and organization (both at the source level and file system)
2) Comments. Are they commenting for the sake of commenting or do the comments serve a semantic purpose
3) Consistency. Random variable names and ad-hoc function declarations drive me batty.
4) Clear, concise and explicit coding technique. Many advanced developers have this notion where hard to read code is cooler. Personally I like KISS. No magic tricks or language specific techniques. This makes it doubly difficult for someone coming from another language to pickup quickly.

Basically a conscience effort to make the source code maintainable/extendable and above all enjoyable to work in.

Cheers :)
User avatar
Christopher
Site Administrator
Posts: 13596
Joined: Wed Aug 25, 2004 7:54 pm
Location: New York, NY, US

Post by Christopher »

I understand the whole "what make a good/great developer" in general, but I believe the OP and parenthesis were asking what things do you need to embrace to be a successful PHP developer. Different languages, and even application types, use different methods to solve similar problems. I believe there are some things that you need to embrace to be a successful PHP developer that are different from other language systems.
(#10850)
Post Reply