I’m pretty sure there is a gazillion ways to learn how to code, and almost none is right or wrong.
Some may be good for you, some may not. That depends many different factors: your learning style, time available, resources available, your learning skills, and so on, and so on…
What I can tell you is how I’m learning PHP, maybe this is useful to you.
This text is an overview of the learning process I took, with links to some of the most relevant posts in LearningPHP.me.
It will be a living document. I’ll update it as I’m writing posts and as I continue my learning process.
I hope it helps you navigate on my blog and on your learning php adventure.
Ready? Set? Go!
Where was I when I started learning PHP?
If you’re considering learning php by yourself, then I’m sure you have lots of doubts on your mind: are you the right person? Do you have what it takes? Is it doable?
I had all those doubts myself, and I know it’s important to settle them down before you really commit to learning.
How I started learning PHP
The first stages of learning PHP are scary. There is so much to learn, there are so many resources, you want to read everything but you don’t have the time (you can read Is it just PHP? if you want to get a grasp of what is expecting you…)
Each time you read something, you feel you should be reading some other book or chapter to help you understand it; then you go read that and you feel you should be reading something else… and that is pretty much an infinite regression: you’re stuck! Your get paralyzed! Game over…
How to give the first steps and make some progress is a critical issue for the beginner, and I write a lot about that phase.
You may like to read First steps into learning PHP.
I also recommend you to read The things you shouldn’t bother with when giving the first steps into PHP.
After the first steps
After the first steps in learning PHP you start to know the landscape.You won’t know how to do complex functions and loops, but you know what they are and where to go to learn more. The same applies to variables, arrays, objects and many other things.
Now you can make make some progress!
And this is where projects come into place. Simple projects, lots of them.
What project were these?
You can read about the overall method in Learning PHP with simple projects.
I present you some projects that may be useful to you in the early stages in the following posts:
After a while of doing this simple projects, you realize that you now know what the building blocks of PHP are and how to use them. You don’t know all its functions, but you know where to look for them, learn and then apply them. You don’t know how to build a magnificent building, but you know how to put a couple of bricks on top of each other and where to get other bricks.
At this stage you start feeling more confident, you have a good set of resources and know how to navigate them, you start believing that you may actually learn the stuff, that you have the power to tame the beast!
How to progress further
Next steps in learning PHP?
The first idea that comes to my mind is: complexer projects, of course!
But you can’t make much more without a new tool on your belt. You need a database - it’s MySql time!
And that’s one of the hard things of learning PHP (and most other languages, I guess): you need to learn many different tools, and when you think you’re making progress and gaining speed on your learning curve, you need to start all over again. A new technology, a new learning curve, a new beginning.
But that’s what it takes, so let’s do it.
Maybe you like to read First steps into MySql.
Time to get serious – complex projects!
Ok, so now you know your way around PHP and a bit of MySql.
It’s time to put it all together and begin doing more complex stuff.
How to progress from here? Simple: more projects, your first complex project.
Now you have a clear idea of the landscape, you will probably know what tools you need to solve a given problem. So you can design each project to make you study and learn a given tool.
In case you’re wondering, I was at this stage two months or so after starting learning PHP. I think that I spent at least 2 months browsing the PHP manual and developing simple projects, and also giving my first steps into MySql.
What complex projects are these?
That’s what I talk about in A more complex project to learn PHP.
Another great thing to do is small components of a complex project, such as a login process, confirmation email and others.
Here are some suggestions:
- Login system
- Register a new account, with confirmation email
- I’ll update this list soon
Side stuff that you’ll need
When you start working on these more complex projects, you will feel the need of additional tools and knowledge. That is ok, I think that it’s a good thing to study things as we need them, it is much more efficient.
Depending on what kind of web development you want to do, you may want to go deeper on HTML, CSS and other stuff.
Still, I think it’s best to focus on PHP and MySql, and adopt some shortcuts to the HTML things.
Another thing that you will need at this stage is a place to host your apps.
Your first minimum viable product (MVP)
At this stage you will feel that you have a new super power. You know you’re way around PHP, you know where to learn whatever you need to learn, you know how to integrate a database and many other things.
Now it’s time to really learn to code.
You have the world in front of you, you have a map of the territory, it’s you how must decide where to go and how.
Again, I believe that a project is the best way to go: it’s time for you to do your first MVP!
There is a lot to study and learn now: design patterns, frameworks, architecture and much more. I’ll write about these in the future.
At this stage there is a lot you know already, but there is still a lot to learn. One of the things I like about learning PHP and learning to code is that no matter how much you learn, you always have many new things to study and learn. Some may find this demotivating, I like it a lot.
You can learn about frameworks, libraries, server management and many other things, and I’ll write about all those in the near future.