Create accounts on these websites:
They give you programming challenges to solve. Once you have a solution you can submit it to their website and it will be tested against a set of test cases.
There are easy, medium and hard challenges. I think this is an excellent way to improve yourself everyday, step by step.
Good. irrespective of language you are learning, I suggest you to go through - http://www.norvig.com/21-days.html . This article helped me re-focus and become a better developer. It's really important to pickup good habits from early stages. Happy coding.
- First, obligatory learn those topics very well: HTTP, cookies, sessions, caching, gzip, OSI model, DNS, SMTP, HTTPS, HTTP2
- Understand Web Standards, HTML, CSS from W3C and MDN
- Go though official PHP7 documentation on php.net
- Read about Computer science, data structures, algorithms, Software engineering principles, design patterns, OOP, Functional programming, MVC, Dependency Injection. Many articles available on Hashnode, Quora and Medium. You also may try FreeCodeCamp. Good free online video tutorial series available on Udacity
- Learn SQL, MySQL 5.7
- Learn unix basics, commands, Apache or nginx, hosts file, make local domain (usually ending with .dev or .local)
- Set up your local environment with PHP7, MySQL5.7, Apache/nginx installed, configured (I recommend install all them manually and not using something like WAMP, it's not so hard, even on Windows)
- Make a simple own MVC application on plain PHP
- Install Composer and learn about it and package management.
- Start watching laracasts.com
- Learn basics of Node, npm, install node.js
- Go though whole documentation of Laravel 5.3
- Make your own Laravel app
- Register at GitHub
- Read Laravel's or any other popualr PHP project source code (at least some part of it), make you to understand every single line and operation, what it does and how
- Repeat 10 000 times.
I cannot find the thread any more, but there are others with the same thoughts and problems. And the one advice I give them all is: Practice. Every day. Learn new things, new principles, new ways to use the language. One way to do so in a meaningful way while keeping up motivation is to work on a project. I, myself, started out with projects and worked my way up from there.
If you ever wonder, what stuff you might have to learn for the back-end, you are welcome to take a look at my article about Web Development 101, which, instead of listing concrete frameworks, tells you which principles and technologies you need in order to grasp them all and get even more out of it. For backend, all chapters are useful except the "client" chapter :)