I'd like to learn a programming language

Page 2 - Seeking answers? Join the AnandTech community: where nearly half-a-million members share solutions and discuss the latest tech.

Foadbot

Member
Feb 8, 2007
28
0
0
Originally posted by: Malak
Visual Basic, IMO, is the easiest one to start with. Plus you can be making utilities you'd actually use fairly quickly. Clarion is the easiest database language to learn.


VB .NET is easy to start with. Not as easy as HTML but easy in term of Object Oriented Programming.
 

NanoStuff

Banned
Mar 23, 2006
2,981
1
0
A large bit of it has to do with what you intend to do with the language. I would not recommend starting off with visual basic. It seems to me a lot of schools do and its a mistake. Its easy and forgiving, and thats entirely the problem. Coming from functional hackup code to a language that requires proper structure will only make learning anything else more painful once your mindset has been damaged. VB is potentially useful once youve learned proper programming somewhere else.

That said, its probably best to start programming with JavaScript. It's quick to get into, doesn't require supporting software and it's for the most part, conceptually related to most other languages, without all the advanced and extremely confusing features. It's also interpreted, you don't want to start off with a compiled language, that's only more fluff to confuse yourself with.

My personal recommendation after JavaScript would be Ruby. Ruby is semantically very well structured, it allows you to grasp all the logic of programming without concerning yourself too much with syntactical mess, it's also the fastest growing programming language. If you can learn Ruby and learn it well, you're pretty much guaranteed a job.
 

imported_Ned Flanders

Senior member
May 11, 2005
641
0
0
Originally posted by: thatguyant
Thanks for all the input guys. So it seems like there's two schools of thought. Starting with the basics and learning theory which would go the C or C++ route, or jumping into a scripting language like Perl, Python, or Java.

Would starting conceptually allow me to pick up other languages easier? Or does each language make you start all over again about how you think out code?

Java is not a scripting language,
 

GundamSonicZeroX

Platinum Member
Oct 6, 2005
2,100
0
0
Originally posted by: Ned Flanders
Originally posted by: thatguyant
Thanks for all the input guys. So it seems like there's two schools of thought. Starting with the basics and learning theory which would go the C or C++ route, or jumping into a scripting language like Perl, Python, or Java.

Would starting conceptually allow me to pick up other languages easier? Or does each language make you start all over again about how you think out code?

Java is not a scripting language,

I think he meant JavaScript.
I would suggest C#, since XNA uses that language.
 

Maximilian

Lifer
Feb 8, 2004
12,604
15
81
Well i dont know what you should learn, i had a pretty good experience with VB6 at school, with help from here i made the best lottery program in the class. But i know you shouldnt learn COMAL!! It sucks. :p
 

Aikouka

Lifer
Nov 27, 2001
30,383
912
126
I actually started with VB5 when I programmed. Then I "moved on to bigger and better things."

Scheme is an annoying language only taught in colleges because it's part of that whole CS curriculum thing set up (I've actually seen the document that shows what a BS (etc) should cover as my prof passed out copies before :p), since it's a good example of a functional programming language.
 

thatguyant

Member
Feb 28, 2005
151
0
76
I don't know if I intend to get a job later with it. I just sort of wanted to dive into it like a hobby, but I would like to learn something that would set me up to learn other languages easier. I think I'm going to look into Javascript, java or c++.
 

Aikouka

Lifer
Nov 27, 2001
30,383
912
126
Personally, I started programming and making nifty little tools that I could use myself. VB actually worked out well for that as making a GUI is child's play :p.
 

xtknight

Elite Member
Oct 15, 2004
12,974
0
71
C++ is way too hard to begin on.

Consider Python or Java. Then move on to C#, then C, and finally C++ (if you wish to). C++ is not for people who just want to get things done. I started on VB6, personally and I still use it. It's still my favorite language. AFAIK nothing even comes close for making GUIs (but if there is something close please let me know).
 

tfinch2

Lifer
Feb 3, 2004
22,114
1
0
If you're feeling adventurous, start with C. If you can program well in C, you can program well in anything.
 

Schadenfroh

Elite Member
Mar 8, 2003
38,416
4
0
My university starts everyone off with C++.

I started in high school with the old console BASIC on the IBM PS/2.
 

NanoStuff

Banned
Mar 23, 2006
2,981
1
0
Originally posted by: xtknight
I started on VB6, personally and I still use it. It's still my favorite language. AFAIK nothing even comes close for making GUIs (but if there is something close please let me know).
Tcl/Tk FTW :)

 

xtknight

Elite Member
Oct 15, 2004
12,974
0
71
Originally posted by: NanoStuff
Originally posted by: xtknight
I started on VB6, personally and I still use it. It's still my favorite language. AFAIK nothing even comes close for making GUIs (but if there is something close please let me know).
Tcl/Tk FTW :)

Tcl/Tk is pretty cool but I'm not a fan of using motif in today's world. ;)
 

Looney

Lifer
Jun 13, 2000
21,938
5
0
What are your goals? What is it that you want to do? Do you want immediate satisfaction and create things immediately, then go for a scripting language like Ruby or even Javascript. You can have a lot of fun working on websites and creating nifty little things. If your goal is to make games and such, well, i would suggest you have a more realistic goal. But you can start off in Java and then move onto C++.

Or if you want to have fun, maybe get into NWN2 or something and learn their scripting language.
 

f1sh3r

Senior member
Oct 9, 2004
636
0
0
i started with PHP. its nice. of course i cant write any desktop applications as of right now :/
 

NanoStuff

Banned
Mar 23, 2006
2,981
1
0
Originally posted by: f1sh3r
i started with PHP. its nice. of course i cant write any desktop applications as of right now :/

Desktop applications, with PHP? I wish you well in your journey :)
 

jlbenedict

Banned
Jul 10, 2005
3,724
0
0
Originally posted by: xtknight
C++ is way too hard to begin on.

Consider Python or Java. Then move on to C#, then C, and finally C++ (if you wish to). C++ is not for people who just want to get things done. I started on VB6, personally and I still use it. It's still my favorite language. AFAIK nothing even comes close for making GUIs (but if there is something close please let me know).

Are pointers the ass kicker in C++?
 

f1sh3r

Senior member
Oct 9, 2004
636
0
0
Originally posted by: NanoStuff
Originally posted by: f1sh3r
i started with PHP. its nice. of course i cant write any desktop applications as of right now :/

Desktop applications, with PHP? I wish you well in your journey :)

I was saying that since all I know is PHP, i pretty much cant write desktop apps. I have heard about this php-gtk thing, supposedly allowing desktop apps. Havent really looked into it though.
 

jman19

Lifer
Nov 3, 2000
11,225
664
126
Definitely do not start with languages that require you to handle memory management yourself - stay away from C for this reason, and C++ for this reason and because it is a horrible mess of a language. I'd say you should start with a scripting language like Perl, PHP, or Ruby (that would be my choice :p). You should play around with the interactive environment with Ruby, IMO, so you can see immediate results.
 

Atheus

Diamond Member
Jun 7, 2005
7,313
2
0
Originally posted by: jman19
Definitely do not start with languages that require you to handle memory management yourself - stay away from C for this reason, and C++ for this reason and because it is a horrible mess of a language. I'd say you should start with a scripting language like Perl, PHP, or Ruby (that would be my choice :p). You should play around with the interactive environment with Ruby, IMO, so you can see immediate results.

I would disagree to some extent...

I wouldn't recommend C++, as it requires memory management _and_ object oriented concepts, but I would recommend C or Java so you get one or the other to start with. Both are really important to learn eventually.
 

jman19

Lifer
Nov 3, 2000
11,225
664
126
Originally posted by: Atheus
Originally posted by: jman19
Definitely do not start with languages that require you to handle memory management yourself - stay away from C for this reason, and C++ for this reason and because it is a horrible mess of a language. I'd say you should start with a scripting language like Perl, PHP, or Ruby (that would be my choice :p). You should play around with the interactive environment with Ruby, IMO, so you can see immediate results.

I would disagree to some extent...

I wouldn't recommend C++, as it requires memory management _and_ object oriented concepts, but I would recommend C or Java so you get one or the other to start with. Both are really important to learn eventually.

You can learn OOP and get the advantages of scripting in an interactive environment with Ruby. Java is a bit more "heavy" than Ruby is, at least to start out. C is definitely NOT a beginners language. Once you have an understanding of object references the transition to understanding pointers is probably a lot easier, at least IMHO.
 

xtknight

Elite Member
Oct 15, 2004
12,974
0
71
Originally posted by: jlbenedict
Originally posted by: xtknight
C++ is way too hard to begin on.

Consider Python or Java. Then move on to C#, then C, and finally C++ (if you wish to). C++ is not for people who just want to get things done. I started on VB6, personally and I still use it. It's still my favorite language. AFAIK nothing even comes close for making GUIs (but if there is something close please let me know).

Are pointers the ass kicker in C++?

Pointers are sweet, but that's mostly a C thing. In C++ you just pass something 'by reference' (e.g. a class) using the ampersand operator in the declaration.

With C++ you have classes, templates, polymorphism, abstraction, and various architectural decisions. It is mostly needless complication (in my humble opinion). I know that for me, myself, and I, these don't make my life easier. If they make someone else's life easier that's great. Me, I just like objective C. Or, perhaps C++ but only when I really need it. For example I wouldn't hesitate to combine C and C++ where appropriate.

I would really only consider C or C++ for hardcore algorithm libraries anyway, not for any GUI stuff. When it comes down to making algorithms it's great to get down and dirty and use all the ASM functionality available to you using C, but with GUIs you're just using somebody else's API and it's barely any more flexible than just designing something in VB. If you need the added flexibility you call the APIs from VB, or if you're really feeling ambitious you create the message loop in a DLL and have it draw to the VB form. I digress...