Here’s my current learning list:
More of Object-oriented PHP and Design Patterns
I know the basics of object-oriented PHP like Classes, Objects, Constructors, Magic methods, inheritance, autoloading of classes. I’ve also created projects implemented using OOP but I believe I need to learn more about it before I can move to things like unit testing, and making my own PHP library. I think the PHP Documentation is a pretty good place to start. There’s also PHP The Right Way and PHP Best Practices. After I’m contented with what I know about Object oriented PHP(though I don’t know if I’ll ever get contented), I’ll get my hands dirty on implementing design patterns on PHP. And once I’m done with that I’ll probably test drive some of the PHP Frameworks like Symfony, Yii, CakePHP, and Laravel.
Unit Testing and Automated Tests
After I gain enough(but what is enough really?) knowledge and experience about Object-oriented PHP I plan on getting my hands dirty on Unit Testing on PHP. And I think Nettuts has got my back on this with their Test-driven PHP session
There are lots of developer tools that I haven’t implemented on my workflow yet. Here are some of the Frontend tools that I’m urging to use:
- Script Loaders (yepnope.js, head.js, require.js..)
- Testing Libraries (Mocha, Jasmine, QUnit)
- Automated Testing (Selenium)
And some backend one’s:
- PHP Unit
- Doxygen, PHPDocumentor
And version control:
More on Web API’s
I’ve only touched the surfaced with Google Maps API, Facebook Graph API, Twitter API, Tumblr API, and LinkedIn API. There’s still a bunch of them out there that I can get my hands dirty on but I guess I’ll just focus on learning more about what I already know.
More on the tools that I’m currently using
I only know Git and a little bit of Subversion. And I only know about the commands that I cannot live without.
git add ,
git commit ,
git push ,
git branch ,
git checkout and
Commands on Subversion are pretty much the same so I won’t go ahead and enumerate them all.
Moving on to other Languages
I’ve started a course on Udacity: Introduction to Computer Science. They’re using Python for the course. I really want to learn Python as well. Then maybe I could move on to Django which is a framework for Python. And after that take on some ASP.Net which I learned a little bit from school but haven’t really taken it seriously. And then some Ruby.
By the time I finish half of this list there’s probably a lot more tools and new technologies that will come out so I will have to create a new learning list again. Education is really a life long process. Sometimes you wouldn’t even want to take a break.