Bassam, thank you for this introduction to Python in Blender, just a question.
If I'm a junior programmer, what is the next step in learning Python for CGI?
And how much time do I need to study this particular task to achieve production skill.
Hi, thanks :) I hope you liked it.
If you're already a programmer, you have an easier task! I'd recommend familiarizing yourself with the reference materials (blender does a good job of having it right there in the interface - right clicking on buttons, templates in the text editor, python tooltips, and of course, api docs in the help menu) and then working on a project / scratching an itch - I find it's easier to learn when having a goal rather than just reading.
If you don't know Python yet I'd say Dive into Python (3) is a good book, and available online.
If you don't know Blender or any 3D application yet, It's going to be harder, so it might be good to couple this with learning a bit about general usage etc.
Some nice areas for a coder to focus in are rigging, automation, procedural modelling or animation, shader creation (OSL not Python here), but also useful are things like Import/Export, and scripts to automate/ease complex tasks, or to extend functionality. Where you focus first depends on your area of interest.
Finally a bit of math/theory can go a long way, for instance, if you want to work in 3D math/rigging, knowing some linear algebra and how to manipulate transform matrixes is handy - even though blender's mathutils module provides most of the convenience functions you would need.
Hope that helped!