Posted on September 8, 2011

“You will be amazed at how quickly you will pick up the language as well as what kind of things you can do with Python, not to mention the things that have already been done. Your imagination will be the only limit.“ – Wesley J. Chun

Fxphd courses are coming to a close and I’m pleased with the courses I selected this quarter. I signed up back in April and I usually skip every other term but Russell Dodgson was back for July to teach another Nuke Masterclass and I wasn’t planning to miss it! Last term I decided to take the Python - Scripting for Compositors course they have been offering. While I’m far from being an expert, I was looking for something in the intermediate to the advanced range and I was afraid this Python course would be too basic. According to the class description, it is aimed toward the beginning scripter/programmer with little or no programming experience. I didn’t want to go over for the umpteenth time what variables or functions are. I think I have a good understanding of those concepts by now. However, since the instructor was going to be using Nuke, it was a good excuse to start dabbling with its Python API. While aimed towards the beginner, I found that those already familiar with scripting or programming fundamentals will probably benefit the most from the course.

For the beginner in mind, the instructor Michael Moorehouse, does a good job explaining some of the fundamentals necessary to get up and running with Python. The refresh of the basics was not too bad and I emerged with a better understanding of python concepts and techniques I hadn't explored before. For instance, he favors using list comprehensions which I rarely make use of but I see where some of the past code I’ve written can make great use of them. He devotes a whole class to collections which are essential for working with Python. You wont go very far with Python if you are not comfortable with lists, dictionaries, tuples, etc. Michael takes some time to explain Nuke configuration and start-up files. These files provide a great way to customize Nuke and add your own custom tools to the GUI interface. He even provides a sample file nicely commented to get you started. There is breakdown of a few scripts you might find in a production environment. It’s always interesting to see how different people approach certain problems. It gives you an idea if you tackled similar situations in the same manner. And of course, no programming class would be complete without some GUI building action. Here, he explores the widgets that are available within Nuke and how to wire them together. In addition, there is bonus class that demonstrates some fun and silly things you can do with Python inside Nuke but the takeaway are the useful techniques that could be applied elsewhere. As with the majority of Fxphd courses, there is no complaint from me as far as quality is concerned. The instructor knows his material and keeps the class engaging, the audio is clear, and the image quality of the video is clean. So, you may be thinking, if I’m a person with no programming experience, is this the right course for me? If you have never written a line of code before, then it may not be but it really depends on the type of learner you are.

Make no mistake about it, teaching programming is hard. Teaching is hard. Have you tried explaining a complex subject in an empty room while the camera is rolling? It’s not that the material is poorly organized or that Michael Moorehouse does not show prowess of the subject. It’s just that the class moves rather quickly. By the fourth class, I gather the majority of beginners will get lost. Now, there will always be those individuals who will munch through this material without a hitch and be writing the next version of Maya by the third class, but I’m talking about us mere mortals. I felt some of the concepts presented as the course progressed might be a little overwhelming for individuals just starting out. For instance, he starts using some object oriented programming concepts and terminology and does not elaborate much on them. If you are the type of learner that needs hand holding, you won’t find it here. It’s not intended to be an A through Z course. Think of it more as an overview but you are given just enough information to venture out on your own. Now, with that being said, I strongly believe that you will always need to do your own research and exploring outside of the classroom. Most courses, online or in a classroom environment, will only give you a foundation and it’s up to you to pursue the missing details if the subject interests you enough. Folks, the key here is motivation. I don’t want to discourage beginning python students from signing up because it is a great course. Just be aware, you should have a minimal understanding of python or general programming basics to get the most out of the class. In addition, remember the class is aimed at compositors using Nuke. As a result, some of the python code is Nuke centric. If you are not familiar with the software, this may be another point of frustration.

Overall, I think Michael Moorehouse did an exceptional job teaching the course. I do hope Michael returns for a more advanced 300 level course and touches on concepts such as more complex GUI interaction, multithreading, and the use of modules to communicate with the world outside of Nuke. Remember back in school when the professor assigned you to read “x” chapter because it would be discussed in class? If you did the reading, the missing details would be filled in. If you didn’t read, you would probably be lost and most likely be the one the professor picked on to answer her or his questions about the chapter! If you decide to enroll for the class and have zero programming experience or just not familiar with Python, I suggest you skim through the Python quick start tutorial to be better prepared when you take the course. If you're a Nuke user who wants to get her or his feet wet with Python, Fxphd's Python for Compositors is a great starting point.