What language to start with?

Started by
27 comments, last by Luctus 15 years, 9 months ago
What do you guys think the best language to start with is if I have no previous programming experience at all? I was thinking Python, but now I'm not sure as some call that a "sloppy language". I really want to become a software engineer/programmer of either software or games. Would it be best to start in C++ which is what most of the industry uses? Or should I start out on something smaller? Help would be appreciated, and if you recommend a language, also recommend a book/web site where I can learn with no previous programming experience. Thanks!
Advertisement
I would recommend Python. Even if it is "sloppy" (a point on which I disagree), it's still a good language for learning the basics, and is very fast to pick up. Then you can learn the meat of programming, basics of good design, etc. You can move on to a different language later, if you want. I personally enjoy programming Python a lot.

I learned python from the built-in help file on Windows, but if you're not on Windows, I don't know for sure if it's included. It's online anyway, I think. Theres tons of stuff and links at www.python.org
Python is almost definitely a good idea for you right now. C++ is, true, used a lot in the industry, but it can be difficult to learn right off the bat.

I was going to say more, but my head hurts...
It doesn't matter.

If you're going to become a software developer, you're going to learn multiple languages eventually, and the language you start with will not determine how good you become or which other languages you learn later. What is important is that, once you've picked a language, you stick with it long enough to solve problems adequately.

Python's a fine choice, though.
C++ is a difficult language to start off with. It has everything from a chisel and a hammer to some high powered machinery and bulldozers, which can hurt you a great deal if you don't know how to use them properly.

Instead, begin with a simple language. Almost any language will do, they should all pretty much have the same basic concepts:

- condition statements, for checking when to do "stuff"
- loops, for repeating "stuff" until you tell it to stop
- some sort of data structures, for holding and manipulating all your information

Once you've got the basic concepts down, learning any new language is a MUCH easier task. There are concepts in C++ such as object-oriented programming which can be very daunting and difficult to grasp if you don't have a clear understanding of the basics first.

Personally, I learnt with QBasic (mostly because I didn't know better), and its a ridiculously simple language. Qbasic will teach you all the basics of programming very quickly, but the syntax is almost nothing like C/C++ and it will probably teach you some really nasty habits. Nevertheless, the basics are there, and it shouldnt be too hard to move to a slightly more difficult language like C (which is C++ minus all the hard stuff).

Regardless of the language you choose, once you know one of them, the rest are reasonably easy to learn. From Qbasic I went to C, then to Java, then C++ and I had a reasonably enjoyable time. As a programmer, you will probably end up learning many many many more languages, the knowledge of each will be just another tool to add to your collection.

As for books, I would go to the local library once you've chosen a language and take a look to see if theres any decent books you can learn from there. If there isn't, then an Amazon search would be the next place to go and check out all the reviews and ratings for some of the different books. Pick the best one, and supplement your learning with other online tutorials and documentation.


I just started learning programming myself using Python because I heard it was a good language to start with from many a people. Clearly they weren't lying, because I've seen some of C++'s syntax and it can be quite nasty to a newcomers like ourselves. Let me just make a quick comparison;

#include <iostream.h>

main()
{
cout << "Hello World!";
return 0;
}

That snippet of code is how you would display the text "Hello World" in C++, and this is how it would be done in Python;

print "Hello World"

Big difference there. If you do choose Python there are plenty of good tutorials and guides to using the language. I have many bookmarked, so if you need some let me know.

I started with this one, http://en.wikibooks.org/wiki/Non-Programmer's_Tutorial_for_Python/Contents , but there are tons more.

Quote:Original post by Oluseyi
It doesn't matter.

If you're going to become a software developer, you're going to learn multiple languages eventually, and the language you start with will not determine how good you become or which other languages you learn later. What is important is that, once you've picked a language, you stick with it long enough to solve problems adequately.

Python's a fine choice, though.


Mostly you're right, but I think it's over-kill to say that your first language choice doesn't matter. You want to pick a language that makes it easy to "stick with it", as you said. [smile]
Picking a Language at GDWiki
Ra
Python is a perfectly capable language which is sometimes used in the industry and with which you should be able to find plenty of help and resources available.

Any language will do as long as you stick with it.

- Jason Astle-Adams

I'm not sure where you heard of Python being "sloppy"? but I'd be wary of this source since obviously they've never used Python long enough to even type import this in Python!
"Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!

"

Anyways here's a cool free Python book I just came across that look promising:
Invent Your Own Computer Games with Python, Book 1


[Edited by - daviangel on July 7, 2008 12:24:52 AM]
[size="2"]Don't talk about writing games, don't write design docs, don't spend your time on web boards. Sit in your house write 20 games when you complete them you will either want to do it the rest of your life or not * Andre Lamothe

This topic is closed to new replies.

Advertisement