Programming

I don’t know too much about complex programming. I took a grade 11 course in computer science, but unfortunately the course uses a version of Java called Ready to Program. It teaches you the concepts well, but it’s useless for actually doing anything (graphics-wise etc.)
So I was wondering what language I should learn? I’m especially interested in writing programs using input from the isight camera – which, I imagine, would be difficult, but I’d get there eventually. Any opinions?

whew. Let me just say, people who end up programming were made to program. If you really work and learn, kudos to you, its so beyond me.

I started learning Visual Basic to program a game a couple years ago, and man… I mean, I got stuff up on the screen and everything(had working controls, tiling, scrolling background etc), but I eventually just lost it. I got bored/incredibly confused. I got frustrated. The lines of code became a jumble of craziness, amplified by my constant inexplicable warnings of invalid syntax!

Now everytime I get the urge to program, I sit down at my computer, open up a compiler and just stare at the screen until I get bored.

That way I get the same result minus a major headache :wink:

Dont mess around with low level languages, Give C++ a shot, and don’t give up.
It will take you about the same ammount of time to take the course , and after you are through you will be one of the elite :smiley:

Try to get into a course in school if you can, if you can not here is an excellent tutorial to follow:

Here is the free compiler you can use to learn it with:
http://www.bloodshed.net/index.html

Be careful not to use microsoft products, they do stupid little tricks that will make you dependent on their software.

For serious graphics work, your probably best off learning something like C - widely used, and lots of graphics specific libraries.

Now, an alternative option for graphics work (particularly using web cam inputs) would be to check out something like Processing (A Java based, open-source language focused on graphics) or a node-based solution like PureData or VVVV. PureData is open source, VVVV is free for non-commercial use. Both use a graphical node environment to create patches to do things with inputs, like web cams. I you can also add your own nodes in C or C++ to both, but I’m not sure.

C++ or C to be honest. Personally I’d do it in assembly but thats me :stuck_out_tongue:

I’d say it depends on what your current level of comfort with programming is:

If its low, start off with something like Python and then when your very comfortable with programming move on to C or C++. Take a note from the best Universities around and don’t just throw yourself into an overwhelming language like C or C++, start off easy and then go to the deep end. I don’t know of a tremendous amount of universities who teach first semester Froshes C/C++, but I could be wrong.

If your moderate or highly comfortable then go ahead for C or C++, or if you want to do some more Mac-esque stuff learn Objective-C (since a lot of Mac software uses this to some extent). Although, I would definitely recommend C or C++ over Objective-C any day, since they are more universally known…

The great thing about C, though, is that its widely supported, so if you know it you’ll be able to do things like GameBoy or other Embedded Device programming as well.

if you’re serious about programming, learn C and/or C++, but if you don’t want to invest in all the pain you’ll go through learning C, believe me I tried lol then go with a BASIC. And if you’re going to go with BASIC, try blitzmax. Man it is the most amazing thing ever it’s BASIC, but it’s completely modern it’s made to create real apps to sell… so it’s made for GUI and 3D, you can buy a special thing to make the 3D easier. I can not recommend it highly enough lol thanks for listening :slight_smile:

I always suggest, as a first language, python. C++ is almost a pre requisite in todays world. As far as learning others as well…each language does certain “jobs” better than others. After getting your feet weet with python and learning C++, the skies the limit, the only thing left to figure out when trying to learn another language’s is what you want to accomplish, and what you’re willing to learn.

I’d disagree with the guys saying to learn C++. It’s rapidly becoming a more “nice” language these days, and being used less and less in “normal” development. For things like drivers and very processor intensive applications it’s used, (but to be honest, in many cases wrongly - speed is the stated purpose of using C++, but compared to normal C, it sux speed wise!)…
For a starter, I’d suggest getting hold of Microsoft Visual C#.net express edition - free from the MS site.
The only real question is what kind of programming do you want to end up doing? If you’re into hardcore drivers, learn c++, if you want to do websites, learn ASP.NET etc etc…it’s all about the right tool for the job…
Oh - as an aside, once you’ve learned 1 language, DON’T STOP THERE - learn as much as you can about as many languages and technologies as poss!..

For a starter, I’d suggest getting hold of Microsoft Visual C#.net express edition - free from the MS site.

Then you will be locked into microsoft products, C sharp, or Cscript, C#, takes just as long to learn, and master as C++.
If you decide to learn C++ STAY AWAY FROM MICROSOFT products, they throw in crap to make you Dependant on their software.
Plus then you will be locked into only being able to develop on the windows platform (and perhaps MAC).

Sorry I got thrown the “learn the easy one first”, now when I do C++ I think in pascal.I wish to GOD than I learn C, or C++ first.

Avoid Python too, it is almost as bad as BASIC for ruining potential C++ programmers.
If you want to make video games yourself you will need a low level language.

once you master C or C++ you will definitely be employable (if you have clean programming habits )

Sorry to be such a pig about this, but learning basic and pascal really was a bad mistake , the little python I learn did not help much either.The biggest regrets I have in life right now (next to marriage).

Once you get C or C++ down , learning any other language will be child’s play for you.
Try to get into a class if you can , I was able to find night classes at the local community collage for a reasonable fee.

Amen to that! Took me a good 2 years to get out of my MS mode. cout and cin BAD!!!:stuck_out_tongue: Anyway, like Mmph! said, MS compilers will teach your bad habits and if you use them long enough, you can forget about programming anything without having their ways stuck in the back of your head, its like the plague. :evilgrin:

My votes for Python. Easy to learn, free tools and cross platform.

Its not as slow as people think it is and you can do a lot with it. I’ve seen whole scalable network driven applications written in Python working fine. In addition to that there are video games written in Python and had core parts optimized later on in another language like C. And even then you don’t really need to know C, because you can use Cython or another language like that as an intermediary language.

Python is also Free. Eclipse + PyDev is a great Python IDE combination, and thats free too.

As for Python in 3D - a lot of packages support it as a scripting language so there is support for it.

It’s kinda cool when you programme - I like seeing what’s out there and tweaking these - much more zen in this.

For beginers python is the way to go. It,s easer to learn than C and the code you write is usauly shorter that C.

I recommend python too for the beginning as it is really easy to learn!

However if you feel that you can start with c or c++ then learn one of those !

Pascal the choice! :evilgrin:

Python is the easiest for beginning to Code. I’ve tried C++, and it is really hard to start with, and Python was a lot easier to begin with.

Hrmm… I’m a programmer noob that uses python to do math homework and reads a book on programming in Java during English class. I hear good things about Java.

Why C/C++ > Java?

Legacy, popularity, and a lack of bloat/need for a VM (IIRC Java can be compiled to standalone, right?, but then its a little more bloated still).

Unoptimized C/C++ also tends to be slightly faster than similarly unoptimized Java code (not always according to some, though I’ve never seen independently verified statistics, only some fanboys raving on blogs), while highly optimized Java code can theoretically run at (or above) native speed.

As you can see, blenditall, there are lots of opinions out there. Meh…

I agree with free_ality, though … if you were made to program, you’ll do it. If not, it’ll be frustrating as hell. Me? I guess I was “made to program,” because I’ve been doing it since … well, just you nevermind … “for a very long time now.” :spin: And, I still love doing it.

Actually, I think that the language is really not the most-important thing that you should focus on first; nor any particular goal such as “an iSight camera.” You need to grok the process first. Computer programming involves a certain peculiar mode of thinking.

You like Blender… start with Blender; with the Python implementation that is built-in to it. Read the stuff about scripts and grab a few samples. Read 'em and see if maybe they make any sort of sense to you; see if maybe they could.

If you find it “utterly engaging,” then you might have a future in programming. If you get bored or just walk away with the gut-feeling “this isn’t for me,” then it probably isn’t. You should go raise toothpicks for a living or something, instead. :wink: