First programming language: C, Python or something else

Started by
10 comments, last by alnite 12 years ago
[color=#000000][font=verdana, geneva, lucida,]I've been wanting to learn to program for a while, but I can't decide which language to learn. I've seen arguments for C and for Python. Most people saying C is a best first language say it teaches you more about programming and computers. Most people saying Python is the best say that it is more powerful and more practical than lower level languages like C.[/font]
Advertisement
Go with Python; it'll be a lot easier to learn the basics with than C. You can always branch out to other languages later.

Wielder of the Sacred Wands
[Work - ArenaNet] [Epoch Language] [Scribblings]

High level language = win for learning programming. Go with Python or maybe ActionScript.
laziness is the foundation of efficiency | www.AdrianWalker.info | Adventures in Game Production | @zer0wolf - Twitter
ill give my 2 cents C# is a very powerfull language and used in alot of applications and programs and very high level games now. and its not very difficult to learn and you also get a good understanding of computer workings. its what i am learning
well I learned c++ in university and it has been my main tool ever since,but c# is really nice too.
Java is also nice! Deploy to web browsers as easily as desktop.
I think Python is the easist programming language to learn as a beginner.

Also here are some useful links:
http://wiki.python.o.../NonProgrammers
http://wiki.python.o.../BeginnersGuide
I like Python.
Your confusion comes from a particular unstated assumption - that there is one "best" language to learn first. There is not. That said, many believe there are languages that shouldn't be learned first (e.g. system level languages such as assembler or C), or at all (e.g. legacy languages like Cobol, unless necessity requires it).

Why are system level languages poor beginner languages? Fundamentally, they assume the programmer has perfect knowledge of the system and any inadvisable things that they choose to do are for a good reason. An analogy might be a minesweeper entering a live mine field - hopefully they know what they are doing! The consequences of sending a beginner into a live mine field is comparable to starting a beginner with a system level language.

Clearly, this assumption of infallibility will not be true for beginners. In fact, the rich diversity of software bugs indicates that this assumption can fail even the most experienced professionals.

The next thing that beginners do not understand is that most programmers do not learn just a single language. They might use a single language predominantly, but they probably have learned a good half dozen or more. This is easier than one thinks, programming languages are not like natural languages in this regard. The point here is that you're not making a binding commitment to a given language for life. You're just choosing a starting point.

An important consideration for beginners is a languages popularity. Not because "one million programmers can't be wrong", but rather because there will be more information on popular languages, more books, fora, communities, libraries (the software kind), etc.

Three languages that I feel meet the criteria that I've outlined above are C#, Java and Python.
I'm learning Java myself, mostly because I want to make a prequel to a game idea I call Crude. The latter is a C++ Action RPG, but the prequel is (hopefully) an online game in Java (with f2p basis and a small monthly for minor improvements, nothing like Farmvile though - yes, Farmvile lol).


Your confusion comes from... *snip*


Great post, rip-off. biggrin.png

@ OP: The most important things I've learned in programming methodology is that you wanna start with top-down programming - the stuff that teaches you to use objects, classes, etc. at the highest possible level without (1) having to know the method/function behind every single built-in variable or (2) having to build those objects or methods/functions yourself, from scratch.

I'm learning Java myself, and there's tons of great stuff within the .acm library that I don't need to know about until later. Just an example.

- Awl you're base are belong me! -

- I don't know, I'm just a noob -

This topic is closed to new replies.

Advertisement