So I'm Going To Learn A Programming Language
<div class="IPBDescription">Which one would you recommend?</div> I'm finally getting my lazy self up and learning a programming language. Now I've broken it down to 1 of 3
VB
C++
Java
If you know of any others, fell free to mention them, or any tips on one I should try before anything else, etc
Basically I want to be able to write small games(just to test). Other kind of misc. programs, also, which one will I most likely be thankful for knowing later in life? I've heard that Java is being used often, but I want some input.
EDIT: also, a college near me is hosting classes for each of those, but they are kinda costly, so I wanna make it money well spent <!--emo&:D--><img src='http://www.unknownworlds.com/forums/html/emoticons/biggrin.gif' border='0' style='vertical-align:middle' alt='biggrin.gif'><!--endemo-->
VB
C++
Java
If you know of any others, fell free to mention them, or any tips on one I should try before anything else, etc
Basically I want to be able to write small games(just to test). Other kind of misc. programs, also, which one will I most likely be thankful for knowing later in life? I've heard that Java is being used often, but I want some input.
EDIT: also, a college near me is hosting classes for each of those, but they are kinda costly, so I wanna make it money well spent <!--emo&:D--><img src='http://www.unknownworlds.com/forums/html/emoticons/biggrin.gif' border='0' style='vertical-align:middle' alt='biggrin.gif'><!--endemo-->
Comments
My personal favorite is C++, and if you are serious about game programming, you should know that almost every game company out there uses C++. The problem is that C++ is insanely complicated for a first time programmer, and is very difficult to learn. If you are serious about programming games, I would suggest picking up a book about C and trying to learn that first. If you get a good handle on C without too much difficulty, pick up a C++ book and move up, or take a good class in C++ from a local college. For starting out, using books is fine, but for getting into actually using C++, I would recomend a class unless you are some kind of genious. <!--emo&:)--><img src='http://www.unknownworlds.com/forums/html/emoticons/smile.gif' border='0' style='vertical-align:middle' alt='smile.gif'><!--endemo-->
but about VB, stay away from it, period.
If you have to, use C# instead.
Which has similarities to Java, an okay language some people like it some don't, I'm leaning towards not liking it personally. But that's just me.
I would go with C++ or Java
I would recommend BASIC until you get the ropes of how programs work in general. Learning about functions and variables and stuff.
Then when you've got that down, move to c++ .
The absolute, hands down, best way to learn c++ is to simply make stupid project after stupid project. Just keep pumping out more and more junk that doesn't do much until you get used to it.
And just slowly build up from there.
Learning to program is a never ending process (I've been doing it since I was like 9 and I still learn new stuff like every few months). Just get used to that fact and always keep trying new things.
that are available for it. It's a bit confusing at first but the more time
you're willing to put into it the more it will benefit you.
I've never tried Java or C# so I can't comment on those.
But I have done a fair bit of Visual Basic 6, its ok for beginners
but C++ should be a higher priority than VB6.
That or assembly. Assembly is fun too.
And if it is, should you learn assembler first and then a high-level language, or the other way around?
In my opinion at least.
And if it is, should you learn assembler first and then a high-level language, or the other way around? <!--QuoteEnd--> </td></tr></table><span class='postcolor'> <!--QuoteEEnd-->
Are you kidding? Assembly is like freaking impossible.
And if it is, should you learn assembler first and then a high-level language, or the other way around? <!--QuoteEnd--></td></tr></table><span class='postcolor'><!--QuoteEEnd-->
I just started learning assembly in september.
Yes, it does give you better insight as to how high level languages work, mainly because you know that everything you write in like c++ boils down to this stuff.
I would definetly NOT start with assembly. And even when learning assembly, don't start with x86 assembly. Start with the motorola 68,000 series. The registers arent as picky about what they do.
EDIT: I should mention that assembly is mainly only used as a valid language when you have to squeeze every last mother loving clock cycle out of a function. I have only found a single case so far where assembly was useful, and that was in a lighting manager for my team's game this year that figured out which 8 lights would have the most visible effect on an object and was being called like fifty bagillion times per frame.
Games, serious, real, hardcore game programming, C++.
Quick and quite useful small office applications, VB.
Wanna be core? and earn the respect of most geeks pretty much anywhere, but not have alot to actually apply it to? Assembly.
Interested in system level programming, kernal hacking? C, C++.
Interested in tiny littly web games? Actionscript for Flash, or Java for Applets.
Wanna do sysadmin type things quickly, with lots of quick hacking and scripting? Bash, Pyhton, Ruby, Perl.
WebDev? ASP, Java and the J2EE family, VB, Perl, Python.
hth.
<!--QuoteEnd--> </td></tr></table><span class='postcolor'> <!--QuoteEEnd-->
I guess learning assembly code does have it's advantages afterall <!--emo&:D--><img src='http://www.unknownworlds.com/forums/html/emoticons/biggrin.gif' border='0' style='vertical-align:middle' alt='biggrin.gif'><!--endemo--> Gawd I hate it. I've used one assembler and it's a pain. Hold down the backspace for more than a second then <i>bam</i> it deletes the whole screen. Need to save often.
Personally, I'd recommend VB. Yes it sucks, but its easy to pick up, does touch on some core fundamentals of programming (vb.net especially does this better than vb6), and its also when you're just starting its a nice confidence booster to have a working windows app that does something rather than a silly text-only console box. :P
So I'd recommend you start out with VB, then after working with it for at least 4 or 5 months (and get into some pretty advanced stuff), then you should take a look at C++
Don't bother learning Java till AFTER you have C++ down. Once you get C++, learning Java, PHP, and literally dozens of other languages will be cake.
And once you feel you're in for a challenge, learn assembly, and learn it good. After that, no language will ever be a challenge to you again. :)
The thing is, you aren't picking a language to marry and have kids with and be with for the rest of your life. Most real programmers know more than one language, and often don't have a choice of which one they have to use. So, ultimately, you'll probably learn a variety. The question is which language you should start with. I hate to say it, but VB is probably easiest. Java is doable as a first language; in my CS course they fed us that first, and the nubs seemed to cope with it. Personally, I learned Qbasic first and then C++.
I wouldn't recommend anyone learn anything more than the basics of VB and I certainly wouldn't recommend it as a main language for anyone. It allows, nay encourages, sloppy practices and sloppy that could trip you up when you get to the more picky of languages like C++, Java and C#.
Remember that the .net pulls a lot of development environments together so future projects may be cross language - a bit of Java here for the web interface, a bit of C++ there for the server core, a bit of VB for the interface, some C# and SQL for the database work etc... Knowledge of a number of languages may be advantage.
Assembler ? Pah - for boys. Postscript is a nice language (its postfix location). Try miranda or lisp. Most languages are procedural. Miranda and lisp are functional and work differently (in lisp, the data and program space are one and the same thing). Or real men use prolog. Now *that's* a language. I wrote a connect 4 program in prolog. Damn near killed me.
Pick what is available, then stick to that for a little while. The basic concepts are still the same in most languages.
But I'd stay away from assembly and functional languages (Lisp, ML, etc.) at the beginning. Not that it isn't fun, but it's usually a bit harder and has a smaller field of usage.
c++ is somewhat more tricky than vb, it has openGL support, very powerful and expandible.
java,
<!--QuoteBegin--jefe+--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>QUOTE</b> (jefe)</td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->is c's retarded brother<!--QuoteEnd--></td></tr></table><span class='postcolor'><!--QuoteEEnd-->
you can run it al most os's without recompiling, you can make applets from it. but for programs it suns slower than a snail stuck in superglue
But don't try to do it as your first programming language. It is pain.
Start off in C++ and use that to get a good foundation that lets you branch off easily to other languages.
As for learning assembler. Unless you want to program microcontrollers it really isn't necessary as compilers have become advanced enought that unless you are an assembler guru, you will not notice any improvements.
Then, learn C++. Here's the catch: it's really easy to go from C++ to Java, but really hard to go the other way around. Java does things a bit different, and protects you from yourself (for better or worse). C++, however, will let you do pretty much anything you want. Also, Java does not prepare you for the pain that is the linker error (ugh).
If you don't plan on really going anywhere with your programming, and just want to make a few simple apps, Java is a fair bet. Getting into industry, however, and you'll want C++, and then VC++. Don't try to jump straight into VC++ though, it's pretty awful.
edit: spelling
Some people tend to forget that C++ doesn't just add OOP stuff and templates. But also fixes problems that just **** some people off to no end (such as C's inability to declare a variable mid-function, and an endless sea of typedeffed structs).
But meh, I think I'm gonna pull a switch on an old statement I made about learning BASIC first. I think you should actually just go to a book store and flip through a book on every language they have and just pick the one that you personally feel is the least intimidating. The main killer of people learning this stuff is getting in a rut and thinking they can't do it.
now that I think about it, I can't think of a *good* site to learn programming. Just a method.
Find sourcecode for something in your preferred language. Have a general book on the language handy. Anything that the book doesnt answer should just be googled.