I want to try programming, where should I start?

Started by
7 comments, last by 21st Century Moose 11 years, 11 months ago
Hello. I have very little experience in programming - some was way back in elementary school where I programmed on Pascal, and some recent experience with expressions in Maya. Not neccessary programming, but close. And I liked it!

I am searching my way in life and tried many things, but still havent found a skill I really would want to develop for the rest of my live. I want to try programming, but it is so overwhelming - there are so many languages novadays, both programming and scripting, from C++ to Python.

What language (can be either programming or scripting) should I start with? I want something not that hard, which will lead to visible results soon enough. Which will lead to real projects, little but real. I am kind of old for starting this kind of education (24 :-), so I first need to understand if I want to program at all, and if yes - then I could go deeper. Ah, and yes - I know nothing in physics or math, though willing to learn from scratch if I will really get into programming.

Thanks!
Advertisement
Learn Java to start.

Here's your learning IDE: http://www.bluej.org/
And your "real" IDE: http://www.eclipse.org/

Here's some learning materials: http://undergraduate.csse.uwa.edu.au/units/CITS1200/

Here's some problems: http://projecteuler.net/problems
Learn C# to start.

Here's your learning IDE: http://www.microsoft...-csharp-express
And your "real" IDE: http://www.microsoft...-csharp-express

etc...

Honestly there are many languages you can use to start. Java, C#, Python are some of the "good" ones because they are reasonably beginner-friendly and don't require too much work to start doing good stuff with, and there's a lot of tutorials around the web. I would personally recommend C# as the "go-to" language, and Python for when you want purely algorithmic practice (how to write algorithms) because Python is extremely pleasant to read and lends itself well to that (as well as some scripting). Java, well, I don't personally recommend it, for too many reasons to elaborate here, but it isn't "the wrong choice" either.

Remember that programming languages differ mostly in their syntax (and paradigm such as object-oriented vs imperative vs functional), so most of the knowledge you should be gathering is not so much how to "write the syntax" but rather how to "write the program". Programming languages, frameworks, etc. come and go... concepts such as binary searches or merge sorts don't. Then there's the whole methodology thing which also carries over easily across languages. Remember that a good programmer is what he writes, not what he writes with, although knowing the right tool for the job is a desirable quality.

Long story short, any language will do for starters (even Pascal, if you so choose). They will all allow you to understand how programming works and what it *is* at a deeper level. Eventually, you will want to move to more mainstream/modern languages for support and/or job opportunities, but if you have acquired the "programming mentality" changing will be trivial and only require you to learn the new syntax and libraries. As a full-time developer you will probably need to learn way more than one or two languages so you might as well start now.

“If I understand the standard right it is legal and safe to do this but the resulting value could be anything.”

Hmmm, I personally would try to learn C# as that is what I am currently learning, but I also want to persist with Game Art so I do not lose the charm, I am trying to balance each so I can hopefully in future create indie games. I don't know if you are an artist at all, but try balancing out both. It is not the easiest, but is the most effective way to pursue this. However, this is just my stance on it.
Python and Java are both fine starting platforms; they are remarkably forgiving early on while you're muddling through and learning. C# is great but I'm not sure I'd support it as a for-beginner language. Don't get me wrong, it's worth getting into, but (among other things) the other two don't assume Microsoft Windows. No matter what your OS, the first two are available.

Otherwise, you'll find many beginner problem sets (as listed above) and in many cases they're interchangeable between languages. :) Good luck.
Read this guide.

It was written to answer exactly this question, and to give you the links and resources you need to get started with whatever language you pick.

It's a long read, but then, game development is a long arduous process, so if you can't get through a long document, you are pretty much screwed anyways. :)

Python and Java are both fine starting platforms; they are remarkably forgiving early on while you're muddling through and learning. C# is great but I'm not sure I'd support it as a for-beginner language. Don't get me wrong, it's worth getting into, but (among other things) the other two don't assume Microsoft Windows. No matter what your OS, the first two are available.

Otherwise, you'll find many beginner problem sets (as listed above) and in many cases they're interchangeable between languages. smile.png Good luck.

Just a small point but C# is available on any platform, the Visual IDE is just not available on other platforms than Windows (but there are options).

“If I understand the standard right it is legal and safe to do this but the resulting value could be anything.”

Thanks for advices, I really appreciate it.
I've did web research and decided that I would start with Java and later, probably, pick up C# as the next step, but that is in far future. I have both iOS and Android devices, so Java seems like nice choice, though I guess monthes will pass before I get to writing any app for any of those :)

Reading a book now, whole concept of object-oriented language is sorta hard to understand for me with all those objects communicating with each other, but I hope I will get it soon. Pascal was more straightforward hehe. I find it kind of... surprising that programming is fun for an artist person like me. I was actually having good time whole day doing those cute little beginner level exercises.
If you want to learn programming, the first thing to do is start learning how to program. ;)

Here I'm going to disagree with serratemplar and say that at this stage matters such as platform support should be the least of your worries. Pick a platform and environment that you can set up quickly and easily, that doesn't require much in the way of jiggery-pokery to get working, and that is available on an OS that you are familiar and comfortable with. That way you can have a reasonable assurance that any mistakes you make while learning (and you will make mistakes) are down to your code, only your code, and not some setup or other dependency you are missing or have gotten wrong.

Because of that consideration, and assuming that your OS of choice is Windows (it may not be so feel free to correct me) I'm going to recommend Visual C#. It's a reasonably fast and simple install, and everything you need is right there once you have it installed. No further setup needed, no libraries or config needed, just run it and start coding.

Don't worry about it only being available on Windows - that's not important right now. What is important is that you start learning about things like what variables are, what types of variables you can use, what a class is, how to use one properly, how to handle flow contol, how to handle input and output, etc. These are all important concepts that - once you know them - you will find very easy to transfer to a second language when the time comes to learn one.

But for now your objective is not to be platform neutral, it's to learn how to program.

Direct3D has need of instancing, but we do not. We have plenty of glVertexAttrib calls.

This topic is closed to new replies.

Advertisement