Sign in to follow this  
de.bug

First programming language: C, Python or something else

Recommended Posts

de.bug    100
[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][/color]

Share this post


Link to post
Share on other sites
scrap    140
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

Share this post


Link to post
Share on other sites
flodihn    281
I think Python is the easist programming language to learn as a beginner.

Also here are some useful links:
[url="http://wiki.python.org/moin/BeginnersGuide/NonProgrammers"]http://wiki.python.o.../NonProgrammers[/url]
[url="http://wiki.python.org/moin/BeginnersGuide"]http://wiki.python.o.../BeginnersGuide[/url]

Share this post


Link to post
Share on other sites
rip-off    10976
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.

Share this post


Link to post
Share on other sites
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, Farm[i]vile[/i] lol).

[quote name='rip-off' timestamp='1334225281' post='4930530']
Your confusion comes from... *snip*[/quote]

Great post, rip-off. [img]http://public.gamedev.net//public/style_emoticons/default/biggrin.png[/img]

@ OP: The most important things I've learned in programming methodology is that you wanna start with [i]top-down[/i] programming - the stuff that teaches you to use objects, classes, etc. at the highest possible level [i]without[/i] [b](1)[/b] having to know the method/function behind every single built-in variable or [b](2)[/b] 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.

Share this post


Link to post
Share on other sites
HNikolas    192
C# hands down. Some people fear its only for Windows but you can use Mono and MonoDevelop IDE if you want to develop for Linux/are using Linux - of course its optional and a bit more advanced then just jumping to the .NET bandwagon.

I agree entirely with rip-off. It does not matter what language you choose. It more comes down to what tools, libraries, APIs and other things are available to the language.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this