How to learn PHP professionally
If you have found this article, you were probably a lot like me just a few years ago. I knew I wanted to learn web development. Unfortunately, I did not have any experience, any schooling, know much about programming or have any clue where to start. For over a year, I spent countless hours sifting through many articles online, hanging out at barnes and nobles reading PHP books, and watching video tutorials. If you are in the same boat as I was, I believe this guide can cut out much of the time spent searching for the right way to learn. This is the guide I wish I had when I first started learning.
Why PHP?
If you have not already decided for sure on a language, I will outline the main reasons why I think PHP is a great first language to learn. There are many good server side languages, and you can spend way too much time trying to compare and contrast. It is important to pick a language and stick to it at first. Mastering a primary language makes it much easier to learn a new language in the future.
- PHP is the most popular server side web development language. A Netcraft survey from January 2013 shows that PHP is used on 244 million websites. http://news.netcraft.com/archives/2013/01/31/php-just-grows-grows.html Because of this, there is tons of documentation and virtually every possible issue or problem you will run into has been solved and documented somewhere on the web.
- PHP is open sourced and free and has an active and passionate community.
- PHP is often used for newer start-ups and web based applications. Other languages like .NET or Java many times are the language of choice for older, less agile, businesses and can make professional development in these languages a drag.
- PHP is lightweight and flexible and can be used for many different types of web applications and scripting.
- PHP is easy to learn and get started quickly.
What you will need to know as a PHP developer.
The basic stack of a php developer is known as LAMP. This stands for: Linux : the web server’s operating system Apache: HTTP server that runs on linux that handles serving up you page to the web (and much more). MySQL: A database that easily integrates with PHP PHP : You server side programming language.
For front end you should also be familiar with HTML/CSS and the basics of javascript and jQuery eventually. The resources below will help you get started with all of these.
Getting started. Set up your development playground.
Hosting companies lease web servers that come out of the box ready to get started quickly with PHP development and can be super cheap. If you already have hosting skip to the next section. If not, I have researched and tried out many different providers and recommend going with Bluehost. They have hosting that is quick, reliable, cheap, and their server stack very standard in enterprise settings.
Training websites and video tutorials.
The best way by far to learn PHP I have found is through training sites. Many books use outdated versions of PHP or web server set ups, and have programming typos or syntax errors that cause more headache than they are worth. It is also hard to find books written by current web developers that are actually skilled in PHP or have professional experience. Most of the books I found are written by technical reviewers, retired programmers, or professors of some sort. I am not saying that good sources don’t exist, but you will spend way too much time trying to find the right content and sifting through what is relevant. Most of the best content that is written by accomplished developers is in an online format, and best of all the most of it is interactive which speeds up the learning curve.
The best two websites I have found for learning php easily are www.codecademy.com and www.teamtreehouse.com. Codecademy is a free training website that takes you through the basics of the programming language in a way that allows you to write your own code alongside the tutorial and win badges along the way. It is an incredible website that will help you start a base of knowledge and develop good programming habits from the start. Teamtreehouse has a similar learning style but takes you through video tutorials that have more of practical application to what you have learned. These two sites are all you need to learn enough to develop enough of a base understanding to get started your first application. For more practical applications, I recommend http://net.tutsplus.com/category/tutorials/php/. Most of the tutorials here will take you through start to finish building some basic web applications.
Try and set aside a couple hours a day to going through the material and a couple hours to working on a project. These websites are also great resources for learning front end and design as well.
Learn by doing.
It is important to spend the majority of your time actually programming. Programming is about experience solving problems. The best way to learn is by actually doing it. There is no substitution. Jump in headfirst and come up with an application that you want to build. It can be as simple as a to-do list, inventory tracking for your refrigerator, or an event calendar. Plan out the application and start programming. It can be a daunting task at first, but nothing is more satisfying than launching a completed app that you have created and showing off what you have done. It is impossible to learn or master a programming language without actually programming.Quick reference websites.
Bookmark the following sites as reference points for quick lookups and quick questions- www.w3schools.com - quick reference for css/html/php/mysql
- www.stackoverflow.com - just about anything
- www.php.net - php manual
- www.phptherightway.com - great php practice guide