Maths & Programming in Houdini as an FX-TD

   356   4   2
User Avatar
Member
7 posts
Joined: Sept. 2016
Offline
Hello guys,


I'm currently a Computer Graphics bachelor student, we are learning CGI but also, Mathematics, Python and C++ some people are very proficient with all these 3 while I'm very proficient in CG but not very strong in these scientific field. I'm very motivated to learn and go deep into these 3 field but I would also like to be efficient in the way I will learn it. ( learning all the mathematics is unfortunately not possible. )

So I would like to know what is your best advice to start learning mathematics and programming at the same time to become an FX-TD, based on your own experience or on some experience from other people?
Do FX-TD always use “strong” programming skills in the task they are asked for?

Any advice, any experience is very much welcome and it would help me a lot.
Cheers!
User Avatar
Member
400 posts
Joined: Oct. 2016
Offline
Moin,

personally, I see a huge difference between “programming” and “programming in”. While the former is basically about the understanding that computer programs “work” in a specific way and that there is a fundamental (strict, simple) logic to “telling the computer what to do”, the latter is about learning languages with dialects, with phrases, even with “political correctness” (when it comes to Python, obviously).
Maths - in my world - is a fundamental thing, very much like programming. The advantage being that it does not come in “flavors” :-) Usually you should be fine with basic math like it is taught at school (OK, I admit, I am out of there for a few decades, I am not sure what they teach today), as long as you understood it and didn't just learn it for the next test.

Based on this perspective, I think that learning math and learning programming is kind of “the same thing”: You need to break down problems into chunks that you can deal with. If you have a complex mathematical term to solve, you start looking for expressions that you know how to solve. You look for rules that define what has to be done first and what comes next. Then you solve the problem step by step by step - et voila, you just wrote a program for yourself. Done.

I also think that “learning” math is easier when dealing with real-world problems, not with school book constructions. My father used to tell about schoolboys (students) at a road construction company he was working for that were sent to get “10 m of that cable” without any measuring device but the cable drum that had its diameter written on it. The cable was too stiff and way too heavy (the cable had 6cm diameter itself) to hold it against the drum to use the diameter as a ruler, so how would you know how to get 10 m? Pi would do the trick, of course. So with a problem like this and then learning the “tools” along the way you're having fun and won't forget how to get to a solution.

The beauty of “programming in Houdini” is that you can use the “industry standard” Python and a mentally sane programming language (VEX) at the same time (note, there is some slight sarcasm in this statement). VEX is similar to C, Javascript and many other languages out there (Python is not, more sarcasm!) - which is to say you are “free” to learn any of the similar languages and will feel at home in VEX pretty fast.
However, learning the language first without understanding the world it is spoken in (programming) will only allow you to write “snippets” like “how do I get 10 m out of a cable drum”, not “how do I measure the world from the back of a camel”. That is *another* point where Houdini shines: In my world, the “visual programming approach” (nodes, network view) is a *good* start into “understanding programming”. It is a *very* bad thing to solve complex problems by means of a “serviceable, well-documented program”, but it is perfect to grasp the fundamentals.

That said: Dive in, watch some tutorials on how Houdini's network view is used to “make something”. That *is* programming. Dive in deeper. Learn some Javascript, learn some Python basics, make yourself comfortable with the ideas of how computer languages - all of them - work, then learn the dialects you need. MATH comes along the way. My suggestion is: Whenever some tutorial uses some “magic” (like “take the dot product because that will …”), look that up and try to understand that specific thing. Don't just use it: Understand what it does - FOR THE CAUSE. Not theoretically, but practically for what you are doing. That way it will stick.

I hope any of this helps. I am currently writing a book on “learning how to program if that is exactly what you don't want to do”, if you like my “style”, you can read some work-in-progress chapters on my Patreon site.

Marc

https://www.patreon.com/marcalbrecht [www.patreon.com] (https://vimeo.com/marcalbrecht)
User Avatar
Member
36 posts
Joined: March 2014
Offline
https://www.amazon.de/Math-Primer-Graphics-Game-Development/dp/1568817231 [www.amazon.de]
User Avatar
Member
7 posts
Joined: Sept. 2016
Offline
Thank you for this very very detailed answer malbrecht, this is very helpfull!

Whenever some tutorial uses some “magic” (like “take the dot product because that will …”), look that up and try to understand that specific thing. Don't just use it: Understand what it does - FOR THE CAUSE. Not theoretically, but practically for what you are doing. That way it will stick.

The fact that I should really learn some concept for what it does and how it does it will definitely work since this is the way I memorize stuff anyway, that is some really good advice for me! Thank you again!
User Avatar
Member
326 posts
Joined: Oct. 2011
Offline
My goto place for math and science is www.khanacademy.org I keep going back regularly for all sorts of things. Sal Khan is a great teacher and khanacademy has a wonderful reward system that keeps you going. And its free!

-b
Edited by bonsak - Nov. 18, 2017 12:16:25
http://www.racecar.no [racecar.no]
  • Quick Links