My Profile Photo

Jenny from the blog

Software Engineer | MSc in Information Security | Co-founder @Authentick

Learning advanced PHP with phpList and Treehouse

The transition from being a student to the world of real work can be quite challenging. But if you are just starting out in the tech industry, combining online learning with contributing to Open Source allows you to develop your skills and gain experience in collaborative software development and management. I am a student and Open Source enthusiast who has contributed to several projects in recent years. During the last two months, I have combined online classrooms and workshops with an internship at phpList to develop my skills and practices. This has been my journey.

Enterprise skills with online learning

Two months ago my most daunting question was which training platform to use to sharpen my PHP skills. It needed to fit my skill level and learning style. There is no single “best” course that fits everyone’s needs; we needed to find a platform which met the criteria. I was looking to extend my existing programming skills with newer and more sophisticated PHP systems and techniques. The courses needed to suit my intermediate level and include coding exercises, as I like to learn ‘by doing’. While I found many PHP courses for beginners, intermediate and advanced courses were very difficult to find. Team Treehouse was the only offering that convinced me because it covered more advanced topics such as Object Oriented PHP and testing frameworks.

How Treehouse works

Treehouse has a library which is a complete catalog of all the content that they offer. You can browse by type, topic or difficulty. Furthermore, there are different tracks to choose from. Each track is a selection of courses with a common theme, like a certain programming language or a aspect of web development. The track acts as a roadmap so you know what to learn next, those are more of a guidance though and you are not forced to pick the courses in a specific order, allowing for a modular mix of topics. A course in Team Treehouse usually consists of video lectures, project code, code challenges and quizzes. The combination of these methods of delivering content is a good means for ensuring that students will retain the knowledge of each course. I absolutely like the Treehouse’s approach to their videos. Most of them are are very short with good pacing.

php coding demonstration PHP coding demonstration in a Treehouse video lecture

Each individual lesson within a course has a video lecture, project code to experiment with, and a “workspace” where you can make changes to the project code and see the results right away. If you have an active pro account, you can download course files such as videos and video transcript for offline learning. Over the last two months, I completed 9 Treehouse courses in all, each chosen for their real-world usefulness and relevance to phpList 3 and 4:

  • PHP Basics
  • Object-oriented PHP basics
  • Extending object-oriented PHP
  • PHP standards and best practices
  • PHP databases with PDO
  • PHP standards and best practices
  • PHP user authentication
  • Integrating PHP with databases
  • PHP testing

I also attended the following workshops:

  • Dependency Management with Composer
  • Basic Error Handling with PHP

Teacher’s Notes

The Teacher’s Notes for each video appear on the left-most tab below the video player. There you can find notes such as a summary of the lesson and useful links provided by the teacher. In my opinion, the links in the teacher’s notes worth the time to read because all knowledge that can improve your understanding is worth your time to read.

Quizzes and Code Challenges

A code challenge question on Treehouse A code challenge question on Treehouse

The quizzes require a certain number of correct answers to pass. The only thing that I don’t like about them is that I’m not told why my answer is wrong, especially for the fill in the blank questions. The code challenges require writing some real code to test your knowledge and skill. There are two components involved in the Code Challenge. One component is the editor interface that you interact with and this is the only component you really see and touch. The other is the component that actually evaluates the code you write to see if it is correct. The code challenges and the quizzes help you to solidify your understanding. If you pay attention to the videos and write down concepts, it makes passing the code challenges and quizzes much easier.


Workspace is a fully browser-based code editor. You can use it to work alongside a Treehouse course. Each Workspace has a total storage limit of 50 MB. Currently, students are allowed to have up to 100 Workspaces created at a time.

Motivational tracking tools

I earned +30 points for unlocking this badge I earned +30 points for unlocking this badge

Team Treehouse really knows how to motivate students to complete their courses. First of all, there are badges. Everybody loves badges. Students get badges for reaching certain goals. There are always new badges being added to accompany new lessons and new courses. Another incentive tool is the motivational email you get from the teacher when you complete the course. Next is the points system. You get points in each area of Team Treehouse by completing courses and lessons. The more lessons you complete in, for example, PHP, the more points in the PHP area you get. Team Treehouse tracks both your points in each area and your total points. You also get points by posting on the Team Treehouse forum. Furthermore, it tracks your progress in percentage system. You can see what percent of the total amount of content in a given track you have completed. This is a really good measure of your progress, and it feels great to see how far you have come. These incentive methods are very good for keeping the student focused.

Treehouse community

Treehouse community is the best place to talk with your fellow students, asking questions, getting your questions answered, answering your fellow students’ questions and making it easier to make connections with like-minded folks going through the same journey as you are.  


The course quality varies from teacher to teacher and the PHP courses are taught by different teachers. Some teachers may be skilled in their profession, but don’t manage to communicate well with students. Also, some of them did not offer coding challenges, but only quizzes. Furthermore, not all teachers sent out motivational emails at the end of the course which would have made for a nicer learning experience.

Getting familiar with phpList

It wasn’t the first time I took an online course, but it’s the first time I’ve been really enjoying it. But during the training time I felt like the coding exercises were not enough for me, so I asked my phpList mentor to assign me some real-world bugs to fix. The phpList source code was easy to find on on GitHub and I registered an account for myself on the project’s Mantis bug tracker. I started off with issues tagged as ‘quick-fix’ – these ones were well described and easy to fix. Soon I was working on the source code and submitting my first pull requests. This way I put my Treehouse knowledge to immediate use and my motivation got quite a boost once I saw my first PRs being merged.

Disclaimer: This article was originally published on phpList blog.