tags:

views:

742

answers:

11

What would you guys suggest that I do to improve my skills as a PHP programmer? I want to develop high quality web apps and I chose PHP programming as my niche. I want to really hone my skills to be one of the best. What do you think I should do?

+3  A: 
anishmarokey
A: 

nail down the fundamentals. you should have fun with PHP.

A: 

You can read up on my blog http://thephpcode.blogspot.com/ i do loads of crazy testing and so on - including speed tests of php codes, optimization, codes tips.

Also, as basics of all programmers, we should learn to format our codes properly, comment as needed and so on.

On top of that, brush the manual frequently as they are updates and so on. Do read the user comments on the pages of the PHP manual as there are tips and useful functions that you might want to take note off.

You should also take note of good PHP programming practices. Because PHP is so dynamic, you will need to be strict and enforce yourself to follow certain rules and so on. Set rules for yourself - for example a standard Naming Convention, standard coding format and so on.

Last but not least, get yourself involved in loads of PHP coding. that way with constant practice, you will be able to program as a good PHP programmer.

thephpdeveloper
These are little things that don't really make you a better programmer... just not a horrible one that everyone hates. Formatting code and commenting... that doesn't require any skill or intelligence, and only really matters if you're working in teams. Problem-solving skills are what you need to build; these are a given. And you get problem-solving skills by solving problems (building apps) not by indenting lines of code.
Mark
+1  A: 

Two challenges:

  1. Understand PHP and its ecosystem. For this reading the books and blogs helps. I think that attempting to answer StackOverflow questions tends to take you down the byways of the subject. Attempt to answer questions, you will probably need to research things, hence by answering you learn. You may well get it wrong, or more likely give one of several possible answers, so study the other answers and corrections.

  2. Designing good systems, writing good code. This is where issues such as maintainability, decoupling, testability etc. come in to play. For this you can cast your net wider than just PHP. Try to follow a few newsgroups or blogs where experienced developers discuss alternative design approaches. anishmarokey's quite from Fowler is a great reminder to consider code quality.

djna
+20  A: 

The best programmers don't usually tie themselves to a single language. In fact, most of the skills you need to be a great programmer are completely language-agnostic, and can be used no matter which language you choose for the job.

Programming is about solving problems. If a client/boss/co-worker comes to you and says "I need a web application to do _", you need to be able to model the problem, come up with a design for a solution, and then program it. You should be able to do this regardless of whatever language you might choose to program in. In truth, once you understand the fundamental concepts of most modern programming languages, you'll probably find it easy to write good code in any of them!

Code is just a by-product of design. The more you analyze structure and flow, and the more you practice designing and implementing your designs, the more you'll find patterns and commonalities and be able to come up with clean, modularized code.

Since you have an affinity for PHP, by all means, do this in PHP. For practical suggestions, I would say you should do as much as you can to continue learning:

  • Download well-established code and see how other people and teams do it. Check out Zend Framework, and Codeigniter, and some of the forum software out there. Dig into class structures and look for clean, easy-to-use code that is obviously well-designed, and see if you can apply it to anything you've done.
  • Look into modern coding practices, such as Test Driven Development (TDD).
  • Google for best practices. Every language has it's own unique characteristics, and PHP is no exception. There are hundreds of tips that you can incorporate into your own coding.
  • My favourite learning tool at the moment is actually Stack Overflow. Trying to answer other people's questions constantly challenges my skills and exposes me to things I would never try otherwise.
zombat
Y'know, it's funny. Some of the most popular apps have some of the worst code. You have to be careful what you're learning from... take it all with a grain of salt and decide for yourself what works best. Try to figure out why one solution is better than another.
Mark
@Mark - That's actually very, very true. Wordpress (for example) is a nightmare. Codeigniter works well from a user point of view and has great docs, but the code was written to be PHP4 compatible, and is pretty crazy internally. You really do have to be careful about what you're looking at.
zombat
+4  A: 

Familiar yourself with all the 3rd party tools. jpGraph, PHPMailer, CakePHP, etc. When someone comes up to you and says "I have this here problem..." You should be able to tell them the best solution, which hardly ever involves "rolling your own". Truly mastering a language means knowing how to use the whole language to its fullest and that includes the community contributions.

Looking back, it wasn't until I really started using other people's code (via these libraries) that I started really understanding what the language was capable of.

nbv4
I give you +1 for suggesting using other people's code. Beginners like to roll out all their own code because they think they can do it better, or more efficiently... but then you find yourself wasting countless hours for the tiniest performance gains at best. A good programmer knows when he can thief code and when he can't. That said, this isn't necessarily the best for learning how to program... only good for producing better, more robust apps, in less time.
Mark
+1  A: 
  1. Read books about PHP - security, XML and web services, design patterns, OOP, PEAR
  2. Familiarize yourself with at least one framework
  3. Familiarize yourself with PEAR
  4. Attend PHP conferences
  5. Listen to PHP podcasts
  6. Participate in PHP forums
  7. Subscribe to Planet PHP
  8. Try developing modules and themes to popular CMS like Drupal and Joomla
  9. Write about PHP in your blog
  10. Write a useful application in PHP
  11. Look out what open source PHP projects are there. Try to contribute to them
  12. Subscribe to PHP mailing lists
  13. Join ##php on irc.freenode.net

Best of luck.

Sudheer
A: 
  1. First learn the language fundemantals from a good book that suit you
  2. Then start with small project that both satisfy you and your needs
  3. Then if you hava bigger project make some research about similar open source ones and read code(that really show me good style of writing php code)
  4. And then do some brain storming and create new project that nobody done before(this part show you if you hava skills at php)
Burak Dede
+1  A: 

10,000 hours of practice.

moogs
A: 

Well one needs to constantly research in the field of interest. A good programmer should always be capable of fine tuning codes written by oneself & others. Basics & fundamentals are priority in any language. An inquisitive mind will also help that is an urge to constantly better oneself. Good Luck!!!!

Salmani Khan
A: 

Well PHP is the most widely accepted and used programming language. These days to be master in programming one has to excel in PHP programming. Of course getting a basic familiarity with PHP is not difficult, but if we don’t understand a few key elements we will find it difficult to work with.

Php Programmer
If that's all you have to say then I can't see you as being any sort of expert.
Ignacio Vazquez-Abrams