Difference between #8 and #9 of How to learn Yii?!

unchanged
Title
How to learn Yii?!
unchanged
Category
Tutorials
unchanged
Tags
tutorial, tips, understanding, yii
changed
Content
Here is a step by step To-Do list for Yii beginners. The list is an advice of
what tutorials and documentation you can walk through to get a full
understanding of the Yii Framework. These can be a help to learn Yii.  

---  


***BASICS***  
------------
1. **Learn PHP**  
You need to know how to program in PHP. You can find many tutorials on the web,
or buy a book. If you'd like a book, I recommend [Larry Ullman's
books](http://www.larryullman.com/books/php-for-the-web-visual-quickstart-guide-4th-edition/).
Two web tutorials can be found on
[webmonkey](http://www.webmonkey.com/2010/02/php_tutorial_for_beginners/) and
[home&learn](http://www.homeandlearn.co.uk/php/php.html).
2. **Learn OOP**  
You need to know the basics of how Object Oriented Programming works. Same as
above, use Google or buy a book. You need to read the [PHP manual on
OOP](http://php.net/manual/en/language.oop5.php). It will take you a few hours.
Another tutorial about OOP can be found
[here](http://net.tutsplus.com/tutorials/php/object-oriented-php-for-beginners/),
and a video tutorial
[here](http://www.killerphp.com/tutorials/object-oriented-php/). 
3. **MVC**  
It is **very important to understand** what the Model-View-Controller pattern
means! If you don't, you will think Yii is chaos. As soon as MVC
"clicks" in your mind, you will see the very logical pattern. Read up
on [one](http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller),
[two](http://www.yiiframework.com/doc/guide/1.1/en/basics.best-practices) and
[three](http://www.yiiframework.com/doc/guide/1.1/en/basics.mvc). You can also
find an article here about [Understanding
MVC](http://www.larryullman.com/series/understanding-mvc/).
4. **jQuery**  
I highly recommend reading (or even rereading) the [Getting Started with
jQuery](http://docs.jquery.com/Tutorials:Getting_Started_with_jQuery) page from
jQuery.com. These are some basics you need to know, since Yii uses jQuery as
well.  If you want to dive more into jQuery, I added some more links at the
Extra's at the bottom.
5. **API pages**  
The following is important to always remember: You always need to open the API
pages on functions you're using. The descriptions of all functions of a language
can be found here. The API's are your memory, since your brain's memory can't
remember ALL functions of ALL programming languages. ;) For PHP, use the search
box on the top right of [PHP.net](http://www.php.net/). For jQuery, you can
search the [jQuery Docs](http://docs.jquery.com/Main_Page). And here is [Yii's
API](http://www.yiiframework.com/doc/api/). 


***YII***
---------
1. **Easy introduction**  
Visual explanation is the best! So check the
[screencasts](http://www.yiiframework.com/screencasts/). :) After that, read up
on [Larry's easy tutorial
series](http://www.larryullman.com/series/learning-the-yii-framework/).
2. **The Guide!**  
The [Definitive Guide](http://www.yiiframework.com/doc/guide/1.1/en/index) is
very helpful! Just walk through all pages from top to the bottom. _Tip: Also
check out the comments on the bottom of the pages._  After that, I
recommend reading this tutorial: [Under the Hood of Yii’s Component
Architecture](http://phpmaster.com/yii-under-the-hood-1/)
3. **Doing stuff**  
Okay, now you should actually get your hands dirty! Either grab the [Yii Agile
Web Application
Development](http://www.packtpub.com/agile-web-application-development-yii11-and-php5/book#in_detail)
book, or do the [Blog tutorial](http://www.yiiframework.com/doc/blog/). (Or
both!) _Note: If you read the book, make sure you check the errata
[here](http://www.yiiframework.com/forum/index.php?/forum/38-agile-web-application-development-with-yii11-and-php5/)
and
[here](http://www.packtpub.com/agile-web-application-development-yii11-and-php5/book).
Also, this book uses Yii 1.1.6. The book takes you on a tour to make an
issuemanagement system. Some bits don't work with later versions of Yii, so make
sure to use an older version while learning Yii using this book._
4. **Got confused what's happening?**  
You can trace all variables to the Yii Log to see what's in them. You can find
more info here: [log&debug vars using
CWeblogRoute](http://www.yiiframework.com/wiki/114/how-to-log-and-debug-variables-using-cweblogroute)
Irreplaceable for everyone to see whats happening! This is the best trick you
ever learn: 
~~~
[php]
>   Yii::trace(CVarDumper::dumpAsString( $var ), 'NAMEOFYOURTRACE');
~~~  


***WHAT THEN?***
----------------
1. **Extra's**  
There are a lot of good tips in the [Yii Application Development
Cookbook](http://yiicookbook.org/). (If you buy it, check the errata section on
their website.) Also check out the [Yii Wiki](http://www.yiiframework.com/wiki/)
and the [Yii Class Reference](http://www.yiiframework.com/doc/api/). _Tip: You
can view Yii source code directly in the API docs. Also, the lookup/search box
in there is invaluable._ 
2. **jQuery**  
Yii uses a lot of jQuery javascript. You really need a basic~good understanding
of jQuery for the things you go up against. You can find an elaborate tutorial
[here](http://jqfundamentals.com), and a jQuery for Beginners video tutorial can
be found
[here](http://net.tutsplus.com/articles/web-roundups/jquery-for-absolute-beginners-video-series/).
3. **Community**  
 If you have questions, head towards the [Community
forums](http://www.yiiframework.com/forum/) or the [irc chatroom at #yii on
irc.freenode.org](http://www.yiiframework.com/chat/).
4. **More tools**  
There are a lot of [extensions](http://www.yiiframework.com/extensions/) for
Yii. These are extra "toolboxes", made by the Yii community, that you
can re-use in your applications.  



---  

Basics - can take days, weeks or years. ;)  
Yii - Step 1& 2, takes a few hours.  
The rest takes days, or a few weeks if you're doing things parttime. After all
that, you should go into the depths of building your own custom Yii stuff!  

Have fun with Yiiing!  
Kind regards,  
Jeroen
Write new article