Should a beginning PHP programmer consider frameworks?
I'm a complete beginner when it comes to programming. I'm taking a stab at PHP, and have seen how powerful the frameworks can be. But should I even consider trying to work with a framework until I have a strong grasp of PHP itself?
Note: I'd most likely be using CodeIgnitor, but the question applies to any of the frameworks.
Preferably, you should have a strong grasp of the language (and programming in general) before you start using frameworks. Frameworks can and will save you a lot of work, but you they also introduce advanced concepts and implementations.
After you gain some experience and start to wonder what's the best way to solve some common problems you have faced before - that will be a good time to give frameworks a try.
I would suggest you try to read some of the source code of the different frameworks and see if it makes sense to you. If it doesn't - you are probably not ready yet.
Personally I would stick to learning PHP and creating some projects without the assistance of a framework. While frameworks can abstract a lot of the messy, boring parts of a project away, it's important to still know how they work, especially when debugging.
Frameworks can be also be very complicated, and learning how to effectively use one can be difficult even with a good understanding of programming language.
PHP itself is a large language, you should probably find out what PHP can do well on its own before looking into frameworks that abstract you away from the language. But then you might end up like me, afraid of using any real extensions besides the language's standard library. Have you used a framework in another language? If you haven't, using a framework now might be beneficial for future use of other frameworks in perhaps other languages
I would say yes, as it makes it simply quicker to do more complex things.
Frameworks can abstract much of the language's complexity away from you, but at some point, you're going to run into something that requires you to know the language's control structures and standard library.
It's really up to you, but I'd recommend at least learning some of the language's basic constructs, particularly dealing with control structures, before using a framework.
you should learn programming first. Start with the basics: conditions, loops, operator precedence then move to object oriented technics, design patterns. Maybe after you feel comfortable with all this ( it might take a while ) you might to consider using frameworks. On the way there you can probably study how the things lusted above are used in the frameworks.
I would STRONGLY encourage you to learn the basics of the language first. Frameworks make things easier for people who know how to best utilize them. Imagine if I have a framework for constructing a house. If you are a beginner carpenter you will still make many mistakes, run into many "Hey... how do you do this" moments, use the wrong tools, not follow certain assumed conventions, etc. Learn the basics.
If you want an example of where a framework will kick you in the butt for not knowing your stuff check out Zend_Form in the Zend Framework. You can build a simple form no problem but in real life you will be required to customize many aspects of the form. You will have to extend it yourself to get what you really want. Replace standard buttons with custom ones, change the default error messages, customize the html and css used to display various parts of the form. Make the form as reusable as possible... abstract out certain aspects of it to give it broader usage. Work in some valiation and authorization... you will quickly find yourself in over your head if you don't already have some programming chops.