If you were just starting out, what language would you suggest

Posted by Kingsmill on Mon 17 Jul 2006 06:26 PM — 13 posts, 46,474 views.

USA #0
I am a student in a small rural city in the U.S.,
I am planing on going and getting a messuese degree from a massage school, so I can put myself through college for programming, what are your suggestions on the most practicle starting language ?
I have basic html down, that was the easiest crap I've ever studied...
I have some c++ knowledge, but given the way the software industrie is going, I'm not sure which language to go with....
Java seems good for multi-platform,
C++ seems good for basic programs,
Fortran seems good for number crunching,
XML seems good for web design,
and
It all seems to be a swirling, mystic, mass of utter confusion.
Help!
Thank you in advance for answering and helping out the youth of America despite it's corrupt government and buisness leaders...
USA #1
Oh, I forgott to point out who I was asking,
and that would be Nick Gammon.
USA #2
Quote:
Java seems good for multi-platform,
Java does have the advantage of being easy to use cross-platform. Any programmer should at least have a basic understanding of Java, I think, given how prevalent it is becoming.
Quote:
C++ seems good for basic programs,
Not sure why you think C++ is for basic programs. On the contrary, some of the world's most complex software is written in C++. I would be tempted to say that C++ is probably the most widespread language, along with C, although I don't actually have data for that. In any case, C++ is pretty much a must-have.
Quote:
Fortran seems good for number crunching,
I wouldn't bother learning Fortran unless you have a really good reason to. It's a very old language and I haven't ever heard of people using it recently except for legacy support.
Quote:
XML seems good for web design
XML isn't a programming language. Neither is HTML, really. They are 'markup languages' (hence the "ML" in their names). They are used to describe data, rather than a program. XSLT (a language for writing stylesheets for XML) is more of a programming language, but a somewhat limited/odd one. In any case, any computer person worth his/her salt should be able to read XML, and basic HTML.


I would suggest these languages:
- C++. Pretty much the industry standard. Very powerful language with lots of features.
- Java. Takes a lot of the niceness of C++ without some of the nasty things, but introduces its own sets of nastiness. In any case, Java is also very commonly used, and will give you a good understanding of object-oriented programming.
- Some interpreted (so-called "scripting") language. I would recommend Lua, Python or Ruby. It's good to know some Perl, so that you can understand programs written in it, but for various reasons I wouldn't pick it as a language of choice. My favorite would be Lua, but all three are good choices.


In the end of the day, whatever your intro programming courses teach will be the most useful. Once you understand the basic concepts, the language itself becomes less and less important. I don't remember where this was, but I think I remember relatively recently talking about this stuff on this forum. Maybe it was in this thread: http://www.gammon.com.au/forum/bbshowpost.php?bbsubject_id=7124

Basically, learn whatever you feel comfortable with. The skill you gain will be transferrable to pretty much any other language.
USA #3
Sorry, I didn't see your extra post since it came up while I was writing mine. Not sure why you're only asking one specific person, though. :-)
USA #4
It's ok, I can use all the info I can get...
USA #5
I asked Nick because of his programming background however I neglected to look at yours...
USA #6
You don't seem to have such info in your bio...
USA #7
When you say C++ would you suggest starting out in VC++
or plain old C++
USA #8
My bio on this forum is pretty empty, but my website has a little more information. If you're looking for "credentials" of some kind (or at least a rough list of experience), my resume is on my website.

VC++ isn't a different language, it's an environment to write in. If you can write C++ code, you can write it in pretty much any environment. But, if you have VC++, I would suggest using that over C++ because that would probably be easier than learning how to use Cygwin, vi/emacs, gcc, etc.
USA #9
Just for some side info - Fortan is used in scientific programs since, from my understanding, it is nothing short of bianary with memory manegment. Its a really old language that was designed for very mathematical programs, and the reason alot of programs are not written in it is C++ is fairly easy to use, and in most cases it can handle the job.
Australia Forum Administrator #10
First, I would certainly follow Ksilyan's advice. He is actually teaching programming. :)

I have done programmer training in the past as well, but Ksilyan is "out there" actually at a University right now.

Quote:

I have some c++ knowledge, but given the way the software industrie is going, I'm not sure which language to go with..


As you have identified, the first thing to ask is the purpose for learning a programming language. Web page design, writing a commercial program for a bank, and games programming all have individual needs, and you would select the "right tool for the job" in each case.

I can't see you going far wrong with learning C++. Compilers for it are available on virtually every platform (excepting perhaps microchip controllers), and are also free in many cases (like the Gnu gcc compiler).

Entire operating systems (like Linux) are written in C, so if it is good enough to write Linux in, it is good enough for most purposes.

Fundamental concepts (like loops, conditions, subroutine calls, arrays) are available in most languages, so a script language (Lua, Python, VBscript, Java, Perl) would be fine for honing your basic skills, and developing small to medium-size applications.

Quote:

... I can put myself through college for programming, ...


It would be worthwhile finding what the college teaches. For example, if they teach Python but not Perl, that is a guide for what to learn. They almost certainly teach C++ (or C) so again, you won't go far wrong with C/C++.

Quote:

I have basic html down, that was the easiest crap I've ever studied


As Ksilyan says, HTML is not, strictly speaking, a programming language. It doesn't have loops or subroutine calls, for instance.

Depending on your current skills, you could do worse than download the Lua executables (I have a copy here at http://www.gammon.com.au/files/mushclient/lua.zip) and use an editor like Crimson Editor (http://www.crimsoneditor.com/) to edit your programs. The Lua book has lots of examples you could try out (http://www.lua.org/pil/). With a small amount of mucking around in Crimson Editor you can make it so that a key (like Ctrl+F5) runs the Lua engine on the script in the window you are editing, making testing very easy.

With that (or some other script language, like Perl, Python, PHP, Java) you can get the fundamentals right.
USA #11
Python and Ruby both also have online docs for their languages, and Ruby bost that its easy enough to learn in a day. Just Google the two and you can find some help for both.
USA #12
Thank you all for answering my Q's with A's.