Just wanted to know if here are some people with barely any programming knowledge that are interested in learning programming for Blender. We could form a user group especially for that (I prefer learning C), wouldn’t necssarily have to dig into Blender at first.
There are absolutely people who know little C who would like to dig into Blender’s code. I am one of them.
It’s gonna be a long, hard struggle and my time is stretched between all the different projects I find myself compelled to explore. It doesn’t help that I try to maintain some semblance of a social life too.
As to my projects… Game engine ragdolls, three solo game projects (one of which is heading towards a major concept if I’m ever capable and one of which is progressing well and might hit the Finished Games forum in the next month or two), finding and reading technical documents for inspiration and insight, creating a homebrew usb peripheral for controlling live light shows and the software to go with it, learning Japanese, learning enough maths to cultivate more than a layman’s understanding of the latest developments in quantum gravity :eek:, along with so many other started projects and uncountable inspirations for future projects… I definately have too much on my plate right now, but learning C/C++ is compatible with many of my current projects and essential for some. Some projects will likely run until my brain shuts down. I guess I never learned to prioritise, but since this is a hobby I don’t feel much pressure.
It’s my understanding that the new sub-forums have been created because there is demand for a place where blenderheads can get together to learn how to work on addons and internals in addition to artwork. I’m interested to see how this new forum arrangement comes to be used, but am not averse to a user group for interested proto-developers.
It’s also my understanding (and I agree with this philosophy) that general C/C++ questions will be frowned upon on the blenderartists coding forums. There are many forums and web resources that can help resolve general coding issues. A user group might be a good way to bridge the gap between Blender coding and general coding questions.
If you have no programming experience at all, start by learning a scripting language like Python, and you can quickly get experience with basic programming procedures. Python abstracts away some of the complexities that might be confusing for someone who has never programmed before. At the same time Python allows us to build powerful tools quickly. Consider the mountains of addons written in Python, a lot of those addons wouldn’t gain much from a usability point of view if they had been written in C, yet they add a tremendous amount of functionality.
A pro point for python is you can debug addons & snippet scripts without having to compile and recompile the entire Blender program. The more you program and debug the more you avoid making mistakes in Logic and gain appreciation for error messages if something doesn’t work as intended. Once you have that level of confidence is when you will take to learning C the quickest.
MIT has fantastic Open CourseWare videos on python and programming in general.
Stanford University does a great Engineering Everywhere curriculum covering C, C++ and Java.
UNSW has a worthy programming course online too.
All free and all exceptionally well suited to finding the programmer within you.
I agree : these are great ressources.
But shouldn’t we gather all these ressources, with links and all in a sticky “ressource thread”, before all of the suggested ressources are spread all over the place?
ofcourse! A link to The official python documentation should be in a sticky in the python support forum, along with a set of Frequently asked questions and answers as links.
I started writing a blender scripting blog the other day, with short pretty common blender related python snippets, to kind of ease someones blender python learning experience. http://blenderscripting.blogspot.com/
diveintopython3.org is excellent for starting
have a look at thread “C programming repository”
As an advice, whatever language you pick up to start learning programming with, always try to ask yourself “why does this work”, “what are the constituent parts of this problem”.
It probably goes a bit far at the start, but it’ll pay off in the end, when you try to understand the problem you’re trying to solve (or not necessarily a problem, but the “thing” you’re trying to do).
After some exercises take a step back and try to kinda abstract what you’ve been doing. Don’t look at the code, look at the problem or issue that got solved or implemented. Try to imagine how the algorithm that was used works in your head - without code.
If you make that part of the learning process, it’ll be much easier to adopt new programming languages in the long run. All languages are just that: a tool for solving a computational problem. And if you understand the problem, then it is just a matter of seeing how you can do that with a specific language. Certainly, one language will have benefits over another for a particular problem, but that is in the end just a matter of translation between different languages - as long as you understand the problem at hand.
And more important: perseverance! You’ll hit often roadblocks, and you’ll be bored out of your mind many times. You’ll get frustrated when something doesn’t work as you thought it would. Just keep on going, you’ll love it in the end!
FYI, I’m a linguist by education. I’m a self-taught programmer (first started in 1997, at the age of 21). But over the years I have noticed the above to hold true for those people that I introduced to programming and help getting started.
Two things in support of this:
It was programming, when I was young and (more) impatient, that really taught me the wisdom of “If at first you don’t succeed, try, try, again.” If you write some code that doesn’t work, don’t worry. Even the best programmers write code that doesn’t work the way they thought it would. It’s so common that many popular tools have been written to aid programmers in the edit-compile-test cycle.
The other thing is that programming often makes me feel like I want to pull my hair out, but I’ve found that this is a good thing because it means that I’m on the verge of learning something new and valuable.
If you want to learn how to program, you can choose any language you want. You need to clearly distinguis between functional and object oriented languages but eventually you will learn the principle by using any type of language. Me, for example, learned all of my programming skills from writing my web-site, which is php code. I started of funstionally, like if this then do this and then this. After a while, I discoverd you can do classes and objects in php, so now my code consists of, webpage->doThis, linkobject->dothat, and it was the best way for me to learn programming.
( I read this in a first edition “Code Complete (Prentice Hall)” ) Learning any subject one passes through 4 stages.
Unconscious Incompetence ( You have no idea yet how much you don’t know )
Conscious Incompetence ( You realize through weeks of experience that you must keep learning to get anywhere )
Conscious Competence ( You start to comprehend and master techniques, you understand errors in your logic )
Unconscious Competence ( Time is the only thing between your idea and making it )
I really know just about nothing about programming and I would like to join this group that you are forming.
the group is here to welcome you,