Thoughts on learning CodeIgniter

Jim O'Halloran • September 7, 2007

php codeigniter

Here's how I went about learning CodeIgniter, I hope it's of assistance to anyone else trying to do the same. Firstly, it's difficult to say how long it would take someone to come up to speed with CI, but I've done 3 projects using CI now, so my experiences might be helpful. I've been developing with PHP on a full time basis for about 2.5 years, and part time for about 3 years before that. I've also worked with other (home grown) MVC frameworks before, so when I came to CI, the concepts of MVC and the "right" way to do things in an MVC model were already fairly well ingrained. If you haven't worked in an MVC style before, it may take you anywhere from few days to a week to fully come to terms with it.

With CI specifically, I spent probably about a day (8 hours) installing CI, and wandering through the directory structure to understand the layout. I also worked through the sections in the manual on CI Controllers and Views to get an understanding of the CI structure. Once I had a handle on those, I looked at Models and the other CI helpers and libraries. Installing BambooInvoice at this point is handy as well because it gives you a sample app to look at and learn from later. I also printed out the entire CI manual, while this has been useful at times, it probably wasn't as much help as I thought it would be. By this I mean that the manual IS excellent, but it's more convenient to use and move around in in HTML form, locating things in the printed manual takes longer than it would in HTML form.

After getting familiar with the overall framework I dived right in and began coding my first app. For the first few days I'd say I was about half as productive as I would have otherwise been as I started to learn how things like the validation library worked, how to handle form input the CI way and so forth. Since then I've become progressively more productive using CI, and now I find I'm doing things faster and easier with CI than I did before!

So, expect to spend a bit of time on familiarization, how much will depend on your experience both in PHP and other MVC frameworks. Then expect to be somewhat less productive when you first start developing the app, while you come to grips with CI. It'll take a while, but it will be worth it in the end.