Learning PHP

I’m always saying how I wish there were more women developers in the WordPress community (specifically, contributing to core). I submitted a couple of patches for 3.0 with text changes to the help screens, but I’ve never been a backend programmer. HTML/CSS/JavaScript was in my wheelhouse about ten years ago, and there was a brief stint of coding ASP when I worked for Microsoft, but in general I’ve stayed more on the design, user experience and content side of things. I expect that will continue, but I thought maybe it would be a good idea to pick up the skills necessary to become a WP dev, just so I could say first-hand how much work it entails. I’ll be chronicling my progress through 4 PHP courses from O’Reilly. I make no promises, but I’ll do my best to stick with it.

Today I did the first lesson. It was the usual orientation assignment to test the turn-in mechanism, but there was a short reading assignment about the nature of PHP and a 4-question quiz. The reading assignments are copyright protected, but I don’t think they’d mind if I posted the quiz questions to show the progress of what their courses teach (it may inspire other people to sign up for them, after all!). Here’s today’s quiz and my answers (if I got any wrong, too bad):

Question 1: 

In your own words, describe the difference between a Client side language and a Server side language. Give examples of each.
A client side language does all of its work/rendering in the browser, such as JavaScript or HTML. A server side language does the work at the server and sends the results back to the browser, such as PHP.

Question 2: 

In your own words, explain the difference between a parsed language and a compiled language. What are the advantages and disadvantages of both?
Parsed languages like PHP are interpreted real-time each time you run the program, while compiled languages like C++ or Java are interpreted (to binary so the computer can understand it) when the code is compiled rather than when the program is run each time. Compiled languages can be faster since it doesn’t have to do interpretation on the fly, but parsed languages are more flexible and dynamic.

Question 3: 

What’s a technology stack? Give a few examples.
The stack is the group of technologies that power web applications. In our case, as in the case of WordPress, it’s the LAMP stack:
Linux server, Apache web server, MySQL database, and PHP. Other stack examples would be the M$ .net platform or Java/J2EE.

Question 4: Tell us something about yourself. Any particular reason you’re learning PHP:
I’m the UX designer and community lead for the WordPress open source project. I want to be able to write my own patches for UI stuff, so I don’t have to wait for one of the guys to do it. I also want to encourage more women/girls to get into PHP programming, and being an advocate for doing something I haven’t done myself seems incongruous.

Stay tuned for my ongoing progress!

29 thoughts on “Learning PHP

  1. Wow, great you are taking this on! I’ve been meaning to ‘get’ PHP myself — maybe this will be the inspiration I need so I can be a ‘real’ developer. I have a big fat book somewhere…

  2. Good luck! I wanted to get more involved w/ WP dev this year but honestly I just don’t know where to start. It seems like too much of an inaccessible old boys club.

    • Hi Heather. If you tell me what your background/skill set is, I’d be happy to help you get more involved. All of computer science and especially open source has a bit of that old boys club, but I think the WordPress community would be welcoming. It’s very meritocracy based, which is great, but I’m hoping that we can do a better job of mentoring/nuturing newcomers. We’re working on some ways to make that happen, so if you want to be a test case, let me know!

  3. You’re going to have a blast. PHP is my favorite programming language. I love combining the power of php with the aesthetics of HTML and CSS.

    It’s so cool to see the final product appear in a browser and to make beautiful dynamic websites.

    Have fun and feel free to hit me up if you have any questions @professor (on twitter, I teach this stuff🙂

  4. Thanks Jane:

    Always appreciate a little inspiration. It is on my own list, to learn more about PHP, so will look into the O’Reilly offerings.

    Focusing on the possibilities…
    Bethany

  5. It’s a strange those questions don’t use the nomenclature.
    1. The common terms are client side scripting, and server side scripting. Suggesting it is a property of the programming language is common, but also not as accurate, take Java for example.

    2. Interpreted language is the common term, not parsed language. In this case, “parsed language” is an infrequently used term.

    But I’m sure you know this, and were being a good student😉

  6. The O’Reilly certification looks really thorough. I’m getting to love php but I’m using it in conjunction with mysql and I would love to know its true capabilities. What else can be done with php outside of the realms of databases? Does anyone know?

  7. I’m not sure if you have heard of http://phpwomen.org. It might be something you join to gain further support on your journey.

    I think it is great that anyone wants to learn programming to better their position and life.

    If I had a choice, I would rather people didn’t start learning how to program PHP with a project like WordPress or at least not the object-oriented programming. There are many parts of WordPress that other open-source and closed-source projects can learn from, plugin model, theming, robust API, etc.

    There are also many bad techniques that WordPress also has that beginners should not pick up lest it keep them from the proper way of development. The objects in WordPress follow many anti-patterns, which is unfortunate, and are extremely difficult to correct.

    I do wish you a great journey learning PHP. Mine at least has been a lot of fun. Much better than learning programming with C/C++.

  8. I’m with you on this Jane, I started a little late on the course but I got going today on these questions myself. Great answers, couldn’t put it any easier.

    I was asking the crowd on Forrst about taking courses like these, seems the consensus was you needn’t do courses as if you contribute to the code community and learn from it then you’ll be gaining your ranks there than on paper.

    I’m warming to the idea that this course, rather than DIY from a book, provides a better structure for learning🙂

    Good luck!

  9. I’m reading a book from SitePoint, Build Your Own Wicked WordPress Themes right now. Once I get through that and feel I know my way around PHP at least that much, I do plan to pick out a book to learn PHP. Mostly for myself and my own site designing. I’ve got the end goal in mind to create a plugin for a WordPress web directory the way I want it. I’ve looked at other plugins and none are just what I want for function and user experience. Anyway, there are women in the technical area, even if we are quiet, careful dabblers. I used to write my own IRC scripts. PHP seems to have something in common with that.

  10. Jane, I’m thinking I’ll start to learn PHP with great passions. But, why don’t you learn PHP from Matt, matt is expert🙂.

  11. Hope that the course continues to go well Jane. I also fully back your call for more women programmers; I have two daughters so have a vested interest in women moving forward in the tech world😉

  12. I enjoyed it post as one of the hardest things to achieve is understanding how the different technologies interplay and this can only be done with practice. It is good to see someone trying doing this. No matter what the sex.

  13. Hi, this post was really valuable for me. I also have wondered about having more women developers.
    I am all in for learning php and other languages.
    Waiting eagerly for your next post.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s