Ashish Daniel Wilfred, Meeta Gupta, Kartik Bhatnagar
Use PHP to accomplish real-world, professional tasks. PHP Professional Projects is your key to unlocking the power of PHP. Each project focuses on a specific concept and is based on a real-world situation. Enhance your skills as you work through five projects including creating a user registration form, storing and retrieving data from files, working with MySQL using PHP, creating a catalog and shopping cart, and user authentication and tracking. When you are finished, you will have the skills necessary to modify projects to fit your professional needs.
I started learning Php with no programming experience. Books,tutorials concentrate on creating web pages and showing you built in functions etc. but don't show you how to PROGRAM (i.e. from problem create pseudo-code, create algorithms etc. which are creative processes). How would you recommend balancing learning Php together with PROGRAMMING?
Long Winded Version
I decided two months ago to learn Web-Programming with the goal of becoming a freelance web-programmer asap(urgently need a source of income). I want to be able to start earning something in a few months and building up professionalism with experience and learning over the years (I have seen many times on SO that it takes 10 years to become a GOOD programmer but no one said it take 10 years to start earning with programming). I had no background except simple tinkering with C++ 15 years ago. I was considering a course that starts off with teaching c++ and oop intensively afterwards moving to php and mysql. However the people I spoke to told me that it is too longwinded and I should dive straight into Php using books which is what I am doing.
BUT I soon realized that while the book is teaching me Php very well explaining all the example scripts etc. and I know how to understand Php and copy the scripts for my own purposes it doesn't teach how to Program i.e. think through a problem, convert it into an appropriate algorithm, decide how to break up code into functions(encapsulation) etc. and I was just marveling at the solutions provided without learning the creative process myself. Then I bought Problem Solving in C++ by Walter Savitch which after reading through it began to open my eyes to pseudo-code etc. The book also has about 50 exercises for every chapter precisely to get you to create your own functions etc. and I was sometimes wishing that I could drop everything and just work through the book till I learn the process of Programming! (I saw on SO people recommending CodeComplete and a lot of other books on this topic - what do you say about this book?)
My question is how should I structure my learning to learn Php and Programming? At the moment I am finding myself in an infinite loop of spending a little time on Php, a little bit on Programming, another bit on StackOverflow and another bit learning Touch-Typing and another bit tinkering around finding the IDE that I want to use and yet some more time browsing through opensource projects and I am going nowhere fast! And while everything will be useful at some point if I am maxing 5 hours a day of time invested in learning Php and it is getting split in five it will take me years till I ever(if ever) get somewhere that I can start working! Should I do one thing at a time or maybe assign percentages to learn simultaneously?
I have seen similar questions on SO(which I have waded through) but I think my question is unique in asking how to prioritize and schedule Php with Programming.
I think the following method will help you.
Firstly, start with Head First PHP & MySQL. It allows you to get quick started with basics of PHP and MySQL. Although, it won't cover OOP concepts, you will be ready to start simple projects after this one.
Then, you need to concentrate on OOP concepts. For that, I think PHP Object-Oriented Solutions will be of helpful to you. you can skip many things you learn earlier with Head First book.
Now, you need to do some projects. I suggest PHP Professional Projects.
After you are comfortable with those projects, you can expand your knowledge by studying about PHP frameworks, Templating engines, and PHP patterns. For that, It is better to ask to someone with more knowledge :)
Hope this helps :)