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! :)
 
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
 
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. : )
 
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.
 
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
 
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 ...
 
@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.
 
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.
 
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.
 
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)
 
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.
 
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 :)
 
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.
  • V-SNES V-SNES:
    Happy Friday!
    +1
  • The Helper The Helper:
    News portal has been retired. Main page of site goes to Headline News forum now
  • The Helper The Helper:
    I am working on getting access to the old news portal under a different URL for those that would rather use that for news before we get a different news view.
  • Ghan Ghan:
    Easily done
    +1
  • The Helper The Helper:
    https://www.thehelper.net/pages/news/ is a link to the old news portal - i will integrate it into the interface somewhere when i figure it out
  • Ghan Ghan:
    Need to try something
  • Ghan Ghan:
    Hopefully this won't cause problems.
  • Ghan Ghan:
    Hmm
  • Ghan Ghan:
    I have converted the Headline News forum to an Article type forum. It will now show the top 20 threads with more detail of each thread.
  • Ghan Ghan:
    See how we like that.
  • The Helper The Helper:
    I do not see a way to go past the 1st page of posts on the forum though
  • The Helper The Helper:
    It is OK though for the main page to open up on the forum in the view it was before. As long as the portal has its own URL so it can be viewed that way I do want to try it as a regular forum view for a while
  • Ghan Ghan:
    Yeah I'm not sure what the deal is with the pagination.
  • Ghan Ghan:
    It SHOULD be there so I think it might just be an artifact of having an older style.
  • Ghan Ghan:
    I switched it to a "Standard" article forum. This will show the thread list like normal, but the threads themselves will have the first post set up above the rest of the "comments"
  • The Helper The Helper:
    I don't really get that article forum but I think it is because I have never really seen it used on a multi post thread
  • Ghan Ghan:
    RpNation makes more use of it right now as an example: https://www.rpnation.com/news/
  • The Helper The Helper:
  • The Helper The Helper:
    What do you think Tom?
  • tom_mai78101 tom_mai78101:
    I will have to get used to this.
  • tom_mai78101 tom_mai78101:
    The latest news feed looks good

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top