How can a schlump like me learn PHP in the shortest possible time?
March 12, 2013 4:11 PM

I didn't ask for this! My employer is moving me to a position that will require a working knowledge of PHP development, but my skills are nowhere near up to snuff. "You learn quick, just pick it up" they say! I don't know where they got the idea that I DO in fact learn quickly, but I guess now I have to! So what can a guy like me do to pick up at least a passable proficiency relatively quickly? I can put in the hours, but I would rather put in the hours efficiently, if you know what I mean.
posted by Willie0248 to Computers & Internet (13 answers total) 30 users marked this as a favorite
Are you a programmer?

Find a local PHP user group. Ask them to tutor you.
posted by holloway at 4:17 PM on March 12, 2013


Codecademy just added PHP tutorials, but the track is mostly unfinished. Also available from treehouse. I have used Codecademy (but not for PHP), and it was good. I have heard good things about, but not used, treehouse.

I think a user group will be more helpful if you can get your arms around the basics first and can ask specific questions about things that are tripping you up.

posted by jeoc at 4:36 PM on March 12, 2013


Paid, but this is a good introduction: php Fundamentals
posted by backwards guitar at 4:37 PM on March 12, 2013


Codecademy can be a little YMMV depending on who wrote the course. I did the Ruby course that Eric Weinstein prepared and really enjoyed it... I see he's also the author of the PHP course, but since it only has the intro it probably wouldn't help you much.

As jeoc mentions, Treehouse is one option, and Lynda might be worth checking out too, since they also appear to have some PHP courses. Their offerings don't look as structured as Treehouse's stuff, though. Both sites have monthly subscription fees (minimum $25), but if your employer wants you to do this so badly I imagine you could get them to cover it for you.
posted by Kosh at 5:01 PM on March 12, 2013


Here's what someone who already knows how to program would need to know:
  • Install either XAMPP (along with the development package) or some relevant BitNami virtual machine on your desktop as a practice environment.
  • The php.ini settings for display_errors and error_reporting are important for development; see also ini_set.
  • Look up whatever you need to do in Practical PHP Programming (free and in theory you can learn to program from it, but God help you if that's where you stand), the PHP Cookbook (costs $ but often solves beginner problems by recipe) or PHP.Net (free and the comments people have added are invaluable--often more important than the documentation).
  • When things go wrong in a situation where you have no debugger, the functions phpinfo, var_dump, var_export, print_r, and debug_backtrace are your friends, often sandwiched between the statements "header('Content-Type: text/plain'); ... die();".
  • Try to follow the FIG standards for coding style, etc.
  • If you inherit a complex app with serious problems, XDebug and Firelogger may be useful for figuring out what's up, but they require installing server components.
  • Understand what PEAR and PECL are, because you will encounter them sooner or later.
  • Be aware of what Composer, Zend, and Silex can offer in the way of jump-starting a PHP app or a significant new feature without having to learn very much or do very much. Incidentally, here's a free book on Zend. It focuses on the stuff that will make you appreciate Silex, but Zend is also where you can get a bunch of common library functions, e.g. a decent mailer (avoid PHP's built-in mail function) or GData functions for working with Google APIs.
Hm, that all also assumes you basically already understand the web.

If not, use these resources judiciously:
  • Every web developer should know what the Web Inspector does in Chrome / Safari or what Firebug does for Firefox.
  • Good beginning (even advanced) HTML, CSS, and Javascript tutorials are available at WebPlatform.org and MSDN Channel 9.
  • If you don't know SQL, that may actually be even more important. GalaxQL will get you up to speed in an evening.

posted by Monsieur Caution at 5:31 PM on March 12, 2013


Are you a programmer? If not, the core understanding of how computers and networks interact is almost as important as the PHP syntax. If you are, remember that what ever is thrown at you is a subset of the language and do focused digging (google and stackoverflow are your friends).
posted by sammyo at 5:49 PM on March 12, 2013


If you don't already have an environment setup, get a cheap hosting account with PHP support and then use that to play around with.

When in doubt, Google the exact problem you are having (or cut and paste the error message) and undoubtedly you will find the answer, be it on StackOverFlow or some other PHP support website.

Lastly, don't let Monsieur's valuable, but potentially intimidating post overwhelm you.
posted by thorny at 7:00 PM on March 12, 2013


Lastly, don't let Monsieur's valuable, but potentially intimidating post overwhelm you.

This is a point I should echo as well. :D

What I ought to have asked first is stuff like whether you're getting control of one web form, one WordPress site, a half-dozen small apps, or some huge ugly home-grown app that accreted over the past 10 years, etc. The scale of what you're being asked to take on matters a ton for what "working knowledge of PHP development" means.

But you asked for the shortest path, and that was the shortest path I could think of to being able to handle a somewhat complex existing environment and new ground-up development at the same time.
posted by Monsieur Caution at 7:42 PM on March 12, 2013


What do you know? Regardless, don't freak out, your boss knows.
posted by rhizome at 9:11 PM on March 12, 2013


Thanks for the responses guys! I guess I should have outlined what I know a bit better. I've been on the customer service side of a small operation, which pretty much means I monkey around with html/css and a little bit of javascript to meet minor client requests ("make the doohickey appear on the other side") and troubleshoot their actual hosting problems. One of the designers moved on and now I have to learn how to actually work and develop within their somewhat buggy homegrown CMS, which is all PHP and SQL. The client demand isn't very overwhelming right now, so I guess they thought it was a good time for me to get on my feet with more technical duties. I don't really know any coding language, other than a tiny bit of javascript and python.

Thanks again so much for the suggestions!
posted by Willie0248 at 9:59 PM on March 12, 2013


+1 XMPP

http://www.phpscaffold.com/ will create simple read/write application for you. Pulling these apart & putting them back together is how I got my start with PHP programming, which I taught myself over the past year.
posted by MesoFilter at 11:43 PM on March 12, 2013


This post showed up on Tuts+ Premium after my last post. Again, there's a monthly fee to view most of the content, but it appears to be a nice guide to learning PHP and related items:

The Modern PHP Developer
posted by backwards guitar at 11:57 PM on March 12, 2013


Just as a point of reassurance, I started a new programming job a few years back having never used PHP before. I managed to fake it sufficiently well that, about two weeks into the job, the other developer on the team refused to believe that I hadn't been doing it for a couple of years.

The fact that in your case there seems to be an expectation that you'll need time to get up to speed should be doubly reassuring.

If you can use javascript, you pretty much know the basic syntax of PHP. Beyond the syntax, PHP is really just a massive library of (sometimes inconsistently named) functions and classes. The majority of the functions you'll use will be string and database functions, so it's a good idea to get the useful ones committed to memory (or at least set up as snippets in your chosen code editor).

Above all, keep your code clean and readable, avoid hard-coding values, and use plenty of includes and a logical file structure to keep your code organised.
posted by pipeski at 2:46 AM on March 13, 2013


« Older Birds and Battlefields   |   How to rehearse a (radio) play Newer »
This thread is closed to new comments.