I'm a freelance web designer and developer.

I've very strong on the front-end (HTML/CSS/JavaScript), but need to work on my PHP skill-set.

As I work from home and independently, its up to me to develop my skills including a structured learning path - the problem is, as a freelancer running a business, it seems overwhelming and I don't have time, nor the money to invest in expensive course.

I'm looking for guidance on a structured learning path that I can spend 1 or 2 hours a day, that will take me from a novice PHP Programmer to 'PHP Cutting-Edge Master' over the next 2 to 3 years.

How should I approach this?

What should I learn, in what order, and what software and tools should I get familiar with?

Any helpful tips?

How many hours a day is sufficient to set aside (is 1 or 2 sufficient?) and how long should it take before I can advertise myself as a Custom Application Developer?

The answer I'm looking for is a 'high-level outline' that Freelancers working from home who are strong on the front-end but want to get good at PHP can follow, and eventually add those service offerings to their Web Design and Development businesses.

  • I'm not a fan of posting link-only answers, but I highly recommend PHP: The Right Way as a good high-level outline. Jan 6, 2015 at 15:11
  • 4
    This question appears to be off-topic because it is about learning to program
    – user152
    Jan 6, 2015 at 20:23

2 Answers 2


You should start by learning the basics of PHP and MySQL. For all available resources go on Google: the basics of php.
It is about learning the basics. What PHP and MySQL are, how they work, a bit of history.

What else you shoold keep an eye on is Git and Composer (are two essential tools you should know about later on).
Both BitBucket.org and GitHum.com offer good user manuals and learning resources.

Next, you need to understand what Unit testing, MVC and a PHP Framework is. Unit testing is a complicated subject so, if you don't get it, leave it for later.

In meanwhile you should strengthen your MySQL skills.
Here, consider both PhPMyAdmin and Doctrine. I recommend you to learn Doctrine as fast as possible.

When you are familiar with both of them, try CodeIgniter (is the easiest PHP Framework to learn). After that, jump directly to Laravel (it is very easy to learn) or, if you think you can, Symfony. I will not recommend other PHP Frameworks then this three (especially the last two) because of various reasons.

As today, I find Laracasts.com to be a very good learning source.
Beside the fact that is for learning Laravel, the good thing with Laracasts is that will also teach you about good practices, solit PHP OOP and will introduce you to concepts and trends that are new and used by the best developers.

I don't recommend using CMS's like Joomla, Drupal, Wordpress. Not if you wanna become a PHP Cutting-Edge Master.

What tools you should use?

  • NetBeans is a good IDE (I bought PHP-Storm but I still use NetBeans).
  • Git is a must (Here you can find a very good book).
  • Don't forget Composer.
  • Some text editor.
  • A local server (XAMPP is a very good idea).
  • PHPMyAdmin (included with XAMPP).
  • MySQL Workbench (but I recommend you to stick with Doctrine).
  • A terminal.

Starting from scratch is not easy. You will need patience and hard work.

My advice to you is to stick with the manual. The PHP Documentation, Symfony cookbook, & manual, Doctrine instructions manual. Then, be consistent and keep yourself up-to-date with current technologies as PHP and PHP Frameworks are continuously evolving.


There isn't a course that will make you an expert. Even if you would take the best course in the world it will not define you to be an expert in programming php.

Try to make some application and you will see how much you will learn. So only by experience you can get the proficiency you need. There is tons of options. Create plugins for open-source cms and offer it for free or even sell them. This is the only way to get better in php!

If you don't have time like you said, start making something simple...

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.