PDA

View Full Version : what programming languages are the best to start with??



billdotson
February 12th, 2007, 10:42 PM
I am starting to move away from spending all my time playing PC games and starting to want to learn more computer stuff such as: various programming languages, being proficient in the DOS and various Linux shells, setting up networks (stuff I can do at home) like setting up a media server with ssh or another type of network, creating webpages,etc.

I have downloaded a C++, Java and Python book in PDF format from greenteapress.com and I have also heard of the C language and the assembly language. Which language should I start to familiarize myself with considering that while I am doing this for fun I would also like for it to be useful later on in other programming languages and might actually make a college (community college) programming class easy/easier or making it so I wouldn't even have to take one (as in I would already know it well enough that I wouldn't really learn anything in the class/classes)?

Also, what programs do I need for the various programming languages? I have heard that with Python you can use any basic text editor but I am not sure about Java, .NET, C, Assembly, C++, etc.

Also what would be some other good/fun/interesting stuff to learn? I know how to do simple stuff like creating, removing and changing directories in the shell, and in DOS I know how to red-direct outputs of commands such as systeminfo to a file. I have learned basic HTML, where I know the basic <> </> text formatting stuff. I have yet to start learning CSS.

Thanks. I want to try to learn as much as I can at home so I can save money for getting my other classes done.

hod139
February 12th, 2007, 10:49 PM
You should take a look at the programming talk sub-forum (http://ubuntuforums.org/forumdisplay.php?f=39) because this question is asked all the time there. My short answer will be to first find a project that interests you, and learn that language.

IYY
February 12th, 2007, 10:52 PM
I think that object-oriented languages like Java and Python are the best to start from. Java has the advantage of being more widespread and will certainly be useful in college, because it's a very popular educational language. Also, Java is cross platform in the sense that once you compile it, it can run on any operating system on which Java is installed. Python is a bit less common, but is also a great language, particularly if you want to write software for Linux (it is often used by Ubuntu developers).

Another approach you could take is learning a lower level language like C or C++ and then building your skills up.

The advantage of the first method is that you will get the big picture, will learn software engineering concepts and be able to write useful things very quickly. The advantage of the second is that you will understand the very fundamentals first, without worrying about metaphorical details like objects, classes, inheritance and polymorphism. C is a much smaller language; you are given only the bare minimum tools.

I wouldn't suggest learning assembly until later. It has very few uses, is very cumbersome and entirely not cross platform (the same code for an ARM processor can be entirely different from the code for your Intel CPU).

Zuuswa
February 12th, 2007, 11:45 PM
I would suggest learning C or C++, as they will give you the basic concepts of programming, and arent too platform dependant. I am sure that any number of people will tell you that 'x' programming language is better for 'y' reasons, and it usually depends on what you want your program to do.

I started out teaching myself BASIC in elementary school, but I dont think anything is coded in it anymore. It helped tremendously though, because once you understand the theories and procedures of programming, the language is somewhat arbitrary.

koenn
February 12th, 2007, 11:54 PM
I'm with IYY on this one : Java, for the reasons stated.
C is very common in Linux/unix circles but harder in that you have to deal with lots of details yourself. C++ is interesting because it is, in a way, similar to C but also can be used 'object oriented' re.Java. Downside : it can be messy because it wants to be everything : object oriented yet compatible with C , ...
I'd say : Phyton to get some hands-on experience quickly - and at the same time one of the others to get a feel for "programming" - rather than just 'learn a language'.

playing with html and css is not really programming but it's a good to get in to it. using the linux shell and batch together some commands into a script is also an easy way of getting a feel for "write things down and have them executed" and will introduce you to sdome basic consepts such as flow (you need to get things down in the correct order, or only if certain conditions are met) and variables (so that your program / script can handle more than 1 situation)