How to be a developer

Can you tell if some one want to be a blender developer and knows nothing about programming and even math(Well I know some math but nothing too fancy just high school math) where one would start?

I know tht will take time and lot of eefort…But I am willing to learn just dont have the guidance of where to start.

Start at learning a scripting/programming language. I would start with a scripting language, more specifically python. Python is a very powerful scripting language used in many areas of VFX and 3D software. Blender uses it extensively, and so learning python is your best first step to becoming a blender developer.

Plenty of online tutorials for learning blender, a google search will give you all you need to get started.

I’d also suggest you go to python.org and download the IDLE.

Thanks for your advice… I will keep that in mind and maybe start learning pythin first and then go into mighty C++ to make blender develop even further.

I am going to recommend taking a look at Code academy. It has a phyton course, on top of that it introduces you to coding through small challenges, and gives a lot of feedback. While it won’t teach you everything, you will get familiar with the basics this way.

before you walk you have to crawl, before you code C, you must be script kiddie.

This sounds like you make excuses not to get into programming at all.

I would go so far as to say it doesn’t matter if you never coded before, its still worth getting Blender building from source, you don’t need to know any programming to build software. I was compiling a lot of software from source before I started learning C/Python. Just having the code and being able to build it and tinker with it is good - you can always open up some code, try make small changes and build it, which is how I started learning to code.

You can always switch between Blenders code and some tutorials, simple examples too - you dont have to do just one or the other.

You need two things: motivation and the ability to learn. If you keep asking on forums “how do I make this or that…” without trying anything yourself it’s not going to work.

on same subject
is there a thread or site where I can get help to start building blender on Win 8
and how to do it using MingW which is not maintained right now on buildbot

in case you ask why
it is 130 % CPU faster then std build !

thanks

Thanks a lot… Can you recommend me some tutorials or books on programming in general and for cg programming from a perspective person… Just point me to the persons who are making good tuts on programming like blenderguru and blendercookie are making excellent tuts for cgi from artistic point of view. SO what are the big names from the developing side of view… Thanks a lot.

I have both motivation and the ability to learn…I am willing to spend 5 hours a day reading and watching tuts for learning to code and develop blender…Cant go much further than that as I have not that much time above five hours.

Sorry, but reading and watching will not get you where you want to go. You need to get your metaphorical hands dirty. Spend one hour per day reading or watching, then spend the other four trying to put what you read or watched into practice.

Get yourself a project to work on. Model, texture and render stuff on your desk. Find a photograph you like and try to duplicate it in Blender. Get a rigged character from BlendSwap and animate a walk cycle. Don’t just sit there and try to absorb this stuff passively. Do something.

And then post your work in progress and get feedback, or ask questions on the support forums when you run into problems.

Just start there. You’d want to get onto the phyton course(it automatically starts you in the javascript one, which isn’t bad either, but not used as script language by Blender), but at the least for the next month or so this will be a sufficient resource.

If you want to become a programmer then learn C first. Its great for learning the basics of programming and also providing you a stepping stone to OOP languages such as C++ or Java. In a nutshell, if you learn C first, you will find it easier to learn other languages.

My recommendation is to get a copy of SAM’s “Teach yourself C in 21 Days” and then graduate to a book such as “The C Programming Language”, which was written by the creators of the C language.

As for the time you give to learning programming, I’d recommend about 30 minutes daily. Sure, a small amount of time but if you do it every day, then with little effort you’ll easily clock up 4hrs programming a week. You certainly don’t have to burn yourself out with five(!) hours a day!

The problem with starting learning C/C++ from a book is that they spend a fair amount of time on really basic stuff which ends up being quite tedious (the kind of thing scripting languages make very simple - printing tables, parsing input)… also not especially relevant to graphics programming.

I attempted learning programming from a book but found the kinds of problems so uninteresting that I ended up moving onto other non-coding-projects.
You’re faced with a bunch of info about pointers and memory management and at that point you think… why would I care? … Strings are arrays of chars… now what?

With Blender you have a lot of (IMHO) quite interesting code to wade through and you can start by making some basic changes with visual/interactive results (Even if its just to make the 3D cursor bigger or change some hard coded values to see what happens). Once you have interesting problems to solve - its less boring to go back and read up on pointer/arrays/strings.

Why not set yourself some random project - get blender compiling and make vertices draw as crosses - ‘X’ shape… or the triangle above the camera draw as a square… or some something equally as strange… it doesn’t matter really.
Reading and searching real code is an important skill too and something you wont learn from a book.

2c :slight_smile:

Good advice but its given to the wrong person.

For someone wishing to become a better programmer its brilliant advice, but the opening poster has already said they are a complete beginner to programming(not only to a new language) and so they need to learn the “really basic stuff” before even thinking of looking at someone elses code or even attempting their own projects.

On the other hand, the beginner needs to understand that they have to put everything else aside(graphics, games and Hollywood) until they can at least define variables, safely open and close files, undertstand loop controls and comment their code. Its going to take time and patience(about 6 months to a year), but its an investment as it provides a solid foundation to then branch out and learn other languages and programming techniques, and of course challenge themselves with personal projects.

@SamusDrake - I would disagree here, but everyone of course has their own way of learning.

I don’t say a new developer should only look at production code, you can look at it, go away do some tutorials, come back and apply it to something (albeit in a very basic way).

Theres no need to act like getting some code and building it is some big deal though - I think, in part - this is what stops people from getting involved - the idea that compiling code is some voodoo magic out of reach to regular people.

Building from source is great way to get to know the tools, read commit logs (gitk) and see how changes are made.

Anyway, as they say - theres more then one way to skin a cat.

To @Muaaz1992 - try some different approaches of course, see what works for you, but don’t be afraid to jump in and start changing code - even if its just to experiment and see what happens, I personally found this a very fun and satisfying way to learn after being very uninspired from attempts at reading ANSI-C books and not getting much past hello world.

This is a really good point. Actually being able to build blender and to apply patches is already an important and nontrivial skills. And once you start tinkering and notice that stuff doesn’t build anymore, you have learned something new already!

In my school we got started by learning C++… I would not recommend that to anyone, it was really tedious and insanely dragged out. Most of the people in my class dropped out after the first semester. I finished the course but did not continue to code after that because it was no fun, I have started to learn a bit of Python now however which is actually a lot of fun and is easy to learn. I wish that we would have started with that in my school. Picking your first language will probably help you a lot in your determination to continue learning to code and I would suggest you start with Python.

As for me. I would like to learn OpenGL in the near future. Any prerequisites you would suggest for me?

The problem with reading is that you think you are learning something, but you’re actually not. You have to actually code. We get a lot of students doing their research internship who want to start reading material a month before they start. For most people this is useless. You need to run into a problem before your brain is primed to internalize the solution.

Indeed. I had programming courses during my physics studies. The idea was that you learn how to program in C, so that you have that skill when you need it. The point is that the stuff you learn is boring, because it is actually not the stuff you want to be learning. You do not want to learn how to open and close a file, or how to format printf() statements. You have to learn that ofcourse, but it much more satisfying to learn that at the moment you need it. I recently needed to learn how to write firmware for an ARM soc. I started by compiling examples and modifying them. At some point, that meant having to search in the documentation to find how a certain register needed to be set, but once you know what you are looking for, you do that much more efficiently. Do I now understand ARM cpus? No, but I can get the job done and have fun doing it…