The transition from student to the world of work can be challenging, but if you are just starting out in the tech industry, working on an open source project allows you to develop your skills, learn new things, and gain experience working on a collaborative software project. I am an open source enthusiast and in the last years, I have contributed to different open source projects. My latest involvement into open source is phpList.During the last 2 months, I have been working with phpList as an intern and the main focus during this time has been improving my PHP skills and knowledge.The most daunting task before starting the training program was finding an online course that is right for my needs and my learning style. I think that there is no “best” course you’ll find recommended by others, but you’ll have to figure that out yourself based on your needs and criteria. It depends on what point you are currently at and what you are looking for. Do you have any programming experience or you are a total beginner? It all depends on what you are trying to achieve. I was looking for an affordable PHP course that offers intermediate level and that includes exercises. The issue with many PHP online courses that I found is that they are for beginners and there are no intermediate or advanced courses. Team Treehouse was the only one that convinced me because it gathers more intermediate courses and covers Object Oriented PHP and PHP Testing as well. HOW TREEHOUSE WORKSThere are different tracks to choose from. Each track is a selection of courses with a common theme, like a certain language or a certain aspect of web development. The track act as a roadmap so you know what to learn next, but you are not forced to pick the courses in a specific order, though.The tracks that Team Treehouse offers include PHP Development and other programming languages. 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. The quizzes require a certain number of correct answers to pass. The code challenges require writing some code. 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. Last two months, I took some PHP courses such as PHP Basics, Object Oriented PHP Basics, PHP Functions, Extending Object-Oriented with PHP, PHP Standards and best practices, PHP& Databases with PDO, Integrating PHP with Databases, PHP User Authentication, and PHP Testing. I attended some workshops as well such as Dependency Management with Composer and Basic Error Handling with PHP. I knew the basics of programming, but I really enjoyed revisiting the concepts of programming in a PHP way and learning new concepts. I feel that this sure is a very great foundation course in PHP.Teacher’s NotesThe Teacher’s Notes for each video appear on the left-most tab below the video player. There you can find useful links provided by the Teacher. 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. WorkspacesWorkspace is a native text 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.Treehouse community Treehouse community is the best place to talk with your fellow students, asking questions, getting your questions answered, answering your follow students’ questions and making it easier to make connections with like-minded folks going through the same journey you are.Motivational tracking toolsTeam Treehouse really knows how to motivate the student to complete their courses. First of all, there are badges. Everybody loves badges. Students get badges for fulfilling certain goals. There are always new badges being added to accompany new courses and new lessons. 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. It also 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.ConsThe course quality varies from teacher to teacher and not all the PHP courses are taught by the same Teacher. Some teachers may be skilled in their profession, but could not communicate well with the student. Teacher notes were poor by some teachers. Also, some of them did not offer coding challenges, but only quizzes. Not all teachers sent out motivational emails at the end of the course. 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.During the training time I felt like coding exercises were not enough for me, so I asked my mentor to assign me some others. The phpList source code is on GitHub and it uses Mantis bug tracking system. My mentor assigned me some issues and in addition to training, I had the opportunity to get to know more about phpList and to contribute to small things. That way I put my knowledge into practice. This probably slowed down a bit the course at Treehouse, but my motivation was greater when I created Pull Requests.