I spent a great deal of time this past GDC reviewing student portfolios and realized afterwards during email responses, I was typing a lot of the same information, so I’ve collected a few here and will continue to add.
What language should I learn to code in?
- Ahhh… The language question. I answer this question the same way I would answer the MAX/MAYA/OTHER package one. Learn FUNDAMENTALS not software packages. For programming learning the fundamentals of object oriented theory and NOT one language. Study the theory of what makes a solid piece of code efficient, reusable, and legible. Fundamentals will be with you forever, which cannot be said for whatever the current flavor of the month programming language is. Your ability to code with efficiency, usability, and readability will be with you a lifetime. With that said, I would strongly recommend python to be approachable for the type of work that I deal with on a day-to-day basis.
QT a powerhouse?
- QT is one of the first GUI standards that Nokia pioneered awhile back to use for interfaces and several developers have adopted some version of it to help with their UIs. Again, it’s one flavor a bunch of different styles. Pick one you like and learn the fundamentals of how the UI layer of your code should interact with your COMMAND layer. That way no matter the interface/UI is you will have the fundamentals of how it’s supposed to work and not get hung up on the fact on whether or not I should be buying craftsman or a dewalt. With that said pySide seems to be gaining a lot of momentum and is the flavor of the month for Maya past 2013.
How can I improve my existing code?
This one is when someone provides you with a snippet of code, so this single response may/may not be appropriate for all instances 🙂
- I will echo using global variables. I would also urge you to wrap your function(s) into a class so you can instantiate and modularize it for different uses. Your code looks like a lot of my mid-level scripting ability did right before I really started to grasp the power of the Class. It appears you understand how to create a definition, now wrap it up into a class with attributes and variables. You are on the cusp of what Object Oriented Programming is really all about. Keep at it, and leverage websites that talk about the theory of programming.
What script should I write?
- Simply identify a problem and solve it. This can be as simple as automating a process that takes 5 clicks to as complex as writing a custom exporter for your pipeline to re-writing an existing artist tool making it easier to use. Whatever route you pursue…follow these steps:
- Identify the problem.
- Define the series of steps to resolve it.
- Whiteboard it out / Pseudo-code a solution / UI
- Iterate on the interaction with the UI (ie: work with the person who will be using the tool) Balsamiq, Axure or POP (thanks for refs @Smapdi )
- Make sure all your functions work at a command layer, don’t get wrapped up in the UI and how to go about capturing just yet.
- Develop and hook up your UI to pass your vars into the command layer.
- Go for it!
Most importantly make your mistakes, find out why you made them, and improve on them. Seek out your own answers, and when you are stuck ASK FOR HELP!