Hey everyone,

Recently, my friend and I have decided to begin to learn how to code as it could potentially be beneficial for future uses. I've been looking around and researching which coding language to learn first as the foundation in order to learn other coding languages more proficiently. In my friend's and I eyes, we would most likely want to incorporate this coding knowledge into our own website or making our own MapleStory private server. Yes, I know we are lame. But, we aren't really sure how to begin. If you could just let me know all of your opinions of which coding language I should learn first as a beginner and if possible, include the benign resources you used that helped you learn that coding language. It is very much appreciated, and thank you very much!

-Tony H.

In my opinion, its not so important to start with a particular language, but more important to understand how to program. Once you build a solid foundation, you'll find that learning how to program in a new language simply means understanding the syntax of that language.

There are quite a bit of resources online that can help you start, but for me, there is nothing like a good book and a computer that I can use to develop while I read and learn.

Oh, I see. So what should I focus on when understanding how to program? And do you have any specific materials that really help you to learn how to program that you could refer me to?

cant go wrong with java

For the first programming language to learn, the universal recommendation is Python. Many people will argue you can go wrong with Java (to contradict the sentence fragment hwoarang69 emitted) and your goal, being to get your mental model of programming up and running, is best served with Python. (Other languages could certainly work, of course, too.) Fewer people will argue against starting with Python than any other language.

Resources include the Python documentation, and things like Learn Python The Hard Way which is supposedly good.

Finding a favorite language is a bit of a personal experience, so it's hard to give exact advice. While a part of me still wants to plump for Scheme (and specifically Structure and Interpretation of Computer Programs, a classic introductory textbook that is available online), I have to second the suggestion of trying Python. It is a very simple yet powerful language with a straightforward syntax that doesn't get in the newcomers' way.

The only caveat I would make is to be careful about which version of the language you choose. There are significant differences from version 2 to version 3, and the two different branches of the language are (for the time being) maintained independently of one another. While version 3.3 (the latest 3.x release at this time) is the one I would recommend, there are a lot of tools and libraries that only work with version 2.7 or earlier, and if you need to use a specific toolset, you may find yourself in the position of having to use the older revision of the language.

The main Python website has some excellent tutorials to start with, as well as extensive documentation on the language. As for textbooks, I, too, have heard of Learn Python the Hard Way, but I haven't looked into it enough to say if it is a good choice or not. One textbook I can recommend is Think Python, an updated version of the venerable How to Think Like a Computer Scientist, which was one of the best textbooks of the past 15 years. There are many online video tutorials, though I would be careful with those - most are very poor quality indeed. One big exception to this is the OpenCourseware video lectures from MIT, which cover the current introductory classes used there.

On second thought, take a look a SICP and the Abelson-Sussman Lectures first; give it a week or so, perhaps, and watch the first four or five lecture videos. If Scheme, and the rather sparse and rigorous approach which that textbook uses, appeals to you, run with it; if not, set it aside for later, and go on and read one of the Python textbooks. Either way, the focus should be less on the language and more on the process of programming (which was always the great advantage of SICP, by the way). If Python doesn't work for you either, I would suggest looking around at either C or Ruby, or perhaps Ada or Object Pascal. Chances are there's a language out there which will appeal to you, somewhere. As I said, language choice is very personal, and you'll want to look around to find the one which catches your attention most.

Thank you very much! I'd like to thank you for your time for your detailed opinion on this matter. It is very much appreciated.

I am newbee here, me face to many problems in Linear Algebra,

I'm studying 'Fortran' ,Its code is quite simple to read

Fortran is one of the oldest programming languages, and it's probably the fastest one when doing calculations, the only disadvantage is when it comes to graphics.

I'm currently using Fortran 90/95, but you may want to start with Fortran 2008

Some links:

a Compiler: http://www.eclipse.org/photran/
a Fortran 90 Tutorial provided by the University of Liverpool: http://www.liv.ac.uk/HPC/HTMLFrontPageF90.html


I started my programming carrier with C, then i learned C++, then java and then ASP.Net.
When i successfully completed my C and started C++ , i found that many things are same. I just have to apply the right syntax and the whole logic goes same.
So, whatever language you start with just make sure that you must learn to understand the logics behind any program and how to implement those logics. Do not try to cram anything. Once you become expert in applying logic then it will become easy for you to learn any language.

My Friend, without logical thoughts it can not be posible to write a Program. And Programming Languages 'c' and 'c++' is the basic languages which are mostly similer to each other, language 'C++' starts when language 'c' ends and 'c++' has all the concept of 'c' which are already included. And after this Java is the combination both of this languages. So as my thoughts we must have knowledge of basic languages which are 'c' and 'c++'.