What Programming Languages to Learn & Where can I Learn Them?

Halo_king116

Working As Intended
Reaction score
153
I have started taking an open "Computer Sciences" class in my highschool. About two weeks back, we started programming (In QBasic), and anything above that isn't even touched until higher grade courses.

Well, about a week after starting the QBasic unit I got way ahead of the class and I now spend time either scouring the internet for where to go next, or I am walking around class helping the others with their questions like "How do you colour text Red? What is a variable?".

The point is that it is not a very effective use of my time, and scouring the internet with where to go next in programming is too broad to really be of any use. I've finished a Chess Game in Qbasic and a bunch of mini-projects, and my teacher said he wanted to get me started on Visual Basic, but was worried if one student started on something else, then the other students might try to follow suit (his words).

I defiantly love programming thus far, and plan to take courses in future grades, and possibly follow it post-secondary. Until then, I need a place to start and some sort of goals to aim for, that I'm hoping someone here can help with. I know it's not a quick proccess. :)


My core questions are:


1) What programming languages should I learn after QBasic? And after that?
2a) Is there a good way to learn those programming languages without a formal school course? (Online tutorials, books, etc.)
2b) If so, do you know of any suggestions for me to look into?
3) Should I not rush out of QBasic so quickly? Is it even the best coding language to learn the problem solving concepts (and etc.) from?


I'm may not be great at explaining what I'm hoping you can help me with, but still... Any and all help / opinions are greatly appreciated. I really don't know much about programming in general, but defiantly look forward to learning.


Have a good one! :)
 

Slapshot136

Divide et impera
Reaction score
471
try C++ or java, those are fairly common and can do quite a lot, VB is proprietary to microsoft but can make interfaces rather easily.. i wouldn't stick with it more then necessary
C++ is more for like desktop applications and (semi) complex games
Java is more for web-oriented stuff (it can run inside a browser)
actually if your into web programs, you should probably look at ruby as well

just try a few and see what kind of programs you want to make, and then pick any language that can do what you want it to do

as for what to learn next.. i dunno but try going down this list and learning how to use:

input and output to user
loops
reading in/out of files
variables with array's
a basic bubble sort
structs
pointers
 

UndeadDragon

Super Moderator
Reaction score
448
1) I would personally recommend C++ or C#.

2a) There are many online tutorials for both of these languages, but a formal school course can be useful to see how it actually works.

2b) I have heard good things about the __ for dummies books (C++, C#)

3) I have not personally coded in QBasic, so I would not be the best person to answer this. AceHart/enouwee come back. I give you a cookie. : )
 

Xienoph

You can change this now in User CP.
Reaction score
43
I recommend different 'flavors' of programming languages: (try doing them in order)
- Object Oriented / Procedural / Iterative: Java / C/C++/C#. Learn C/C++ since they force you to deal with pointers. But once you've learned that, transitioning into Java / C# should be really easy.

- Scripting: Python / Ruby / Perl. I only know Python out of all of them. Make sure you really use the language's feature, such as lambda functions and dynamic typing. As many Python tutorials say, don't write for Java and convert them to Python. Write FOR Python :).

- Functional Programming: With computers using more and more cores, I suspect these languages will start to be important. Look at Scheme / Haskell, or Microsoft's new F#.

- Miscellaneous: Learn to write a Makefile / Bash shell scripting if you think you'll be programming on Unix.

Somewhere up there, learn JavaScript too. It's a fun language.

2b Online tutorials are nice, especially since they come with sample codes that you can copy + paste. But the best way to learn a language is to look at existing code, modify or play around with it.

3 Can't really say anything about BASIC, since I haven't used that for a while. Move to other more powerful and commonly used languages.

If you want to learn problem solving concepts, try Haskell. It's the most mathematical-like language I've encountered.
 

Halo_king116

Working As Intended
Reaction score
153
Confirmation question: Would it be a fair assumption that based on all your opinions, I should go from:

C++ to C# to Java to Python ?


>> "I have heard good things about the __ for dummies books (C++, C#)"

I've started reading excerpts from the 5th Edition of C++ For Dummies while I wait for the book to come in stock (6th Edition coming out May 11, apparently)... And already I find it useful. I can't argue to the quality of the books so far in comparison to others, because quite frankly I haven't read any others about programming. :p

But defiantly, thanks for a tonne for the suggestion! :)


>>"a formal school course can be useful to see how it actually works"

I can't wait until future school courses. I just hope that they aren't disappointing if I leap too far ahead (At least, the Grade 11 one). Although, if I rely too much on learning informally, I may not have the proper structured base to build off of effectively. :(


>>"Can't really say anything about BASIC, since I haven't used that for a while. Move to other more powerful and commonly used languages."

I believe you edited out your comment about BASIC making lazy programmers. To an extent I agree, that if a programmer is too reluctant to let go of BASIC, it would create an unneeded knowledge of english-like commands not used in other languages. I suppose it's just the concepts that is needed for beginners.

BASIC is great for getting a feel for programming, but since the language itself is so different from the commonly used languages, it can easily make me "lazy" if I spend too long programming with it. I love how I answer my own questions by basing what I say off what you say. :rolleyes:


Thanks everyone for your greatly helpful opinions! :D Of course if anyone else has an opinion about this, I'm always looking to hear from everyone. Once again, any and all help is appreciated. :)


Take care;
-Halo_king116
 

Xienoph

You can change this now in User CP.
Reaction score
43
I believe you edited out your comment about BASIC making lazy programmers. To an extent I agree, that if a programmer is too reluctant to let go of BASIC, it would create an unneeded knowledge of english-like commands not used in other languages. I suppose it's just the concepts that is needed for beginners.

Yes I did. I used to say that I heard that "some important figure in Computer Science" said that BASIC makes bad programmers.

I found out in Wiki that the "important figure" was our dear Dijkstra, and he's criticising the use of "GOTO." I think you use a lot of GOTO's in BASIC, but I'm not too sure about that. Also, saying that Dijkstra criticised BASIC is clearly wrong, as he wasn't criticising any particular language. That's why I edited that out.

... speaking of editing comments ... how do you cross out your post? [STRIKE][/STRIKE] doesn't seem to work.

Back to GOTO and BASIC. GOTO makes the program very difficult to debug, since they make arbitrary jumps all over the place. Put GOTO in your program and your team mates will strangle you (well, I least I will ;p).

I suggest going from C++ to Java, to C#. C++ and Java are the most commonly used languages (based on my estimation, since C# is relatively new ... I think). After going through C++ and Java, don't spend too much time on C#. What you want is the "basic concept" of each language. For example, in C++, learn about pointers, templates, function pointers (this is hardly used, since the syntax is a nightmare). In Java, learn about events, generics, and exception handling. Don't bother mastering the APIs and function names. You can always look them up.

Xienoph's post (except C isn't OO) is the best so far. Go for Python or Scheme first.

Oh damn, you're right. Changing it to ... iterative? Procedural? I can never tell the different programming paradigms ...
 

SerraAvenger

Cuz I can
Reaction score
234
@C++ to C# to Java to Python ?

I have a couple of friends who dislike C++ in favor of C, and I have learned to program neither of the both. I thus can only give you the recommendation my friends gave me... Learn C, not C++. C# always looked like a big mess to me... I mean, really. It is by Microsoft.

Java was an interesting experience to make, but too much hassle to do free software with it. It does have a couple of nice things when it comes to multithreading, and it has a gigantic community with libraries, eclipse plugins and much more... +There is some strange magic concerning your paychecks.

For the scripting languages, python is a no go area ; )
It is very cool and easy to learn, but it really doesn't look good to me :D
About one year ago, I was a python fanatic.
Nowadays, I use ruby instead. It is more dynamic, more oo, much slower (who needs speed on a multicore system anyway ;D), has a finer syntax and a cooler community.
+it is much easier to debug.

When you start with a machine-oriented language, your mind might adapt to that life-hostile environment. I thus recommend starting with a high level language.

So my humble opinion:

ruby -> C -> ruby :D
OR
jruby -> java -> jruby

The last step happens automatically.
What you do exactly, however, depends highly on the software you want to craft. 3D engines need high performance, hence you'ld have to go with C or C++. Scripting and web development seldom require high performances, so I'ld go with ruby/ ruby on rails there.
 

seph ir oth

Mod'n Dat News Jon
Reaction score
262
So, if you are interested in computer game programming, then here's what you should learn (in order):

Java
C++
C# (This is C++ and Java having a baby ... seriously, it's as if they combined the two)

While learning these, you can also learn some program-specific languages like Actionscript 3.0, but that requires you to have programs like Adobe Flex or Adobe Flash. If you get serious though, get Flex and Flash.

Oh, I guess XML would be good to know as well, but I think even an infant can even learn how to use it :)

Interested in game-making software? I'm rather pleased with Unity: link. It allows you to code in C# and Java to create 3D worlds to interact with. Costs a pretty penny, though.

And where to learn it? Do what I do: mad Googling and self teach!

EDIT: Just to let you know, I've talked to a few game developers over at Riot games (link) about what kind of software and programming languages they utilize and it seems that Flash/AS 3.0 was used for their interface for their new game League of Legends. It was interesting to learn that.
 

Sintoras

Shaaakaa!
Reaction score
45
C# is simpler than C++ though, and its basically like vb.net with a slightly different syntax. Try Java and if you like it go on with sephirots suggestion.
 

Siretu

Starcraft 2 Editor Moderator
Reaction score
293
I'd say Python, because:

  • That's the only programming languange I can make anything else than a "hello world!" program in.
  • It's easy to learn
  • It's not just a basic language where you can't do anything advanced
  • It got an easy syntax(imo, at least relative to Perl)
 

SerraAvenger

Cuz I can
Reaction score
234
I'd say Python, because:

  • That's the only programming languange I can make anything else than a "hello world!" program in.
  • It's easy to learn
  • It's not just a basic language where you can't do anything advanced
  • It got an easy syntax(imo, at least relative to Perl)

try ruby.
I was a little bit like that when I started programming, but now I really dislike the indention syntax. Also the python 3.0 brought a couple of changes I don't like.

Just read my last post...
Nowadays, I use ruby instead. It is more dynamic, more oo, much slower (who needs speed on a multicore system anyway ;D), has a finer syntax and a cooler community.
+it is much easier to debug.

I know ruby is slower than python, but wherever you're using python speed shouldn't be an issue anyway.
 

Sevion

The DIY Ninja
Reaction score
424
I'm just starting out, but this is really what I've done:

Visual Basic
C++
C#
Java
LUA
HTML
PHP

You can throw JASS and vJASS into there.

A lot of those I only know very basic things. I'm trying to learn more C++ by building a game with my friend. We're working with a game development library called Allegro. You can try googling it. It's a bit old, but I like it :)
 

ReVolver

Mega Super Ultra Cool Member
Reaction score
608
A lot of those I only know very basic things. I'm trying to learn more C++ by building a game with my friend. We're working with a game development library called Allegro. You can try googling it. It's a bit old, but I like it :)

You know, he does know who I am. :rolleyes:
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Staff online

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top