Where should I start? I'm thinking of just learning basic stuff over summer before I go to college and then work my way up. Anyone can make apps for iOS and droid OS so I was thinking I could try making a few things in that to see how things are going. Maybe if I learn enough I'll be able to make a map in galaxy. If I am able to make a map using sc2 language would I be able to use that in my portfolio?
dunno what you going on about but c# or c++ are good for learning basic stuff...they are pretty easy to understand and help you get into the state of mine of programming in other languages
I think galaxy is similar to C ++. I know a little C++ and I know GML (http://en.wikipedia.org/wiki/Game_Maker_Language) which is like modifed C++. I want to make apps for the ipad but I don't own a mac soooo :( You might want to take a look at gml, its fairly easy to pick up and not quite as strict on syntax as C++ is. But it may be better to just learn C from the start....
Anything you do that makes you look smart is good for a portfolio. When I apply for college, my position on sc2mapster as moderator is totally going in there. Even though I won't be going to college to learn how to run a website or anything, the fact that I'm a mod here will show dedication, management skills, etc... Even though its not really related. So I think the more you can cram in your resume the better- even if your not going to use it in college.
Rollback Post to RevisionRollBack
Feel free to Send me a PM if you have any questions/concerns!
imo Start out with Java. Not only is it useful but it is also extremely easy to understand. A year ago I picked it up and was able to understand it pretty easily. Might be something worth trying.
If you want an easy, high level language you might as well just use Python. Also, you might end up killing yourself using the Java API (fuck it's annoying). The language itself is fine though. The only time I think of using Java is if I'm modifying something written in Java (and I'm not happy about doing it). I don't really like languages like that, sometimes Python is useful for quick prototyping or something, and I've used a couple game engines that use Python quite a bit on front end. Basically, they compile, then run through a virtual machine at runtime to be compiled for the machine. It's so that they can be run on any machine, without the architecture being an issue, but a good programmer that knows what he's doing can pretty much do that anyway.
I would start with C. It's technically low level, it will give you a decent understanding of working without classes (so you're not reliant on them), and suffices as a great intro to C-based languages (which is to say, most languages). CPP is usually the most widespread though.
I think a couple of those have lessons on C. I'm not really sure though, I had a book.
Galaxy is significantly more limited than CPP. Most languages are fairly similar. I mean you can pick up an entire language in a week, they aren't very big, but that won't do much good if you don't know how to program. What you want to study isn't so much a language, it's how to use it.
Think of it like kinda chess. You can learn how all the pieces move fairly quickly. But if you don't know how to maneuver those pieces and manipulate the board, you're not going to be very good. The languages themselves are like saying that the Knight is now the Bishop, and the Bishop is now the Rook, etc. It's a little different, but the mechanics are essentially the same. A good chess player will be a good chess player regardless of what you call the pieces.
Of course there is more to it, but that's simplified for you.
Not even kidding here, if you have a TI-84, start with learning that (TI-BASIC). That is basically an incredibly simple version of a low-level non-object oriented programming language. Once you can make some cool stuff with that, start learning Java. Java is going to be the easiest to understand, and it will teach you basics of object oriented programming, while teaching you the basic syntax of the more powerful but less flexible C, C++, and C#.
For people who say that Java is not powerful enough even for simple games, you are wrong. The GRAPHICS engine in Java sucks, and for a good reason. However the language itself if powerful.
Once you get the basics of Java, start going in whichever way you want. Learn XML, HTML, XHTML (a little different), Python, Perl, PHP, and whichever version of C you want. (I would recommend C# if you are going to work in gaming, C++ if you are REALLY going to work in gaming)
You would be AMAZED at how much you learn from TI-BASIC. It is impossible to get a syntax error, only a couple infinite loops. Debugging is easy, and you can make cool stuff!
When I say learn all those languages, I mean understand a bit of them and how they work. You don't need to be a master in all of them. I would say XML, HTML, PHP, Java, and C++ are probably the most important in the long term, with Perl close behind. All depends on your preference, which you will only develop once trying a couple out.
Yes, the Java API is irritating, but get Big Java (a book) and you will be fine.
Look at your local colleges/universities for courses about it and ask students to either give you the script and pratice tasks or both.
Or ask the professor/teacher directly commonly they won't decline you directly if you are friendly
But i would ask the students about the "teacher"-level ... it's useless if he cannot teach or the script is simply non-sense
otherwise start with Java, C# or LUA (ie. If you have a WoW-Account you could do some UI-Scripting/Programming with LUA)
It would be nice if you could tell us what you want to do with the programming you learn. Making a game is a lot different than making a text editor, which is a lot different from making an OS, which is a lot different than making an app of any kind.
Here is the main point. Each language has a purpose.
HEAVY CODING:
Java: Multi-Platform support. If you are making a game or any application that is anything less than Runescape, use Java. Java can be run on any platform with Java installed, whereas with any version of C you have to write it multiple times, which is unnecessary in a lot of cases.
C: If you are making anything "professional" I would advise using C. Anything that performs a lot of calculations without using a lot of actual "objects" should be done in C. For example, Windows is written in C, because most of what it does is to run other programs. The object oriented aspects of C++ would just be unnecessary in this case.
C++: Use C++ for anything that requires a lot of power, particularly in the graphics department. Games like COD are programmed in C++, or a language similar to it. C++ is much harder to use than Java and is not even close to as flexible, but is a lot more powerful.
C#: As far as I can tell, everything can be written in C#. A basic, although not entirely accurate way of describing C# is a combination of Java and C. It is much easier to use than C++ or C, and is far more flexible. It is less powerful, in general. I believe that Blizzard actually uses a modified C# (Galaxy), commonly misinterpreted as a modified C++, which it is not.
BACKGROUND LANGUAGES:
HTML: Doesn't matter what you are doing. Learn HTML.
XML: XML is actually not a language, as you probably know already. It is used to store information that is used by practically every language out there. You need to know XML if you want to do any kind of scripting.
XHTML: HTML on steroids. Well, not really. I think the point was to make an HTML that functions more than just running other programs and writing text, and to turn it into a more power language. I could be wrong, but that is my interpretation.
Javascript: Used to run Java programms inside of a web browser, usually inside a block of HTML or PHP.
PHP: Used for web stuff, and as far as I know, that is it. I don't know a ton about PHP.
OTHER STUFF:
Perl: No idea, but I heard it is useful.
Python: Same as Perl.
SCRIPTING:
Galaxy: You already know what Galaxy is for.
LUA: I think LUA is used for a lot of different games, as kind of a background source to run the UI with XML, although I am not sure. I didn't know this, but someone posted before that WoW uses LUA? If that is true, I would recommend learning at least a bit of it, because I guarantee that Blizzard is not going anywhere.
There are others that I probably am not thinking of. Whatever you do, DO NOT search "most important programming languages" in Google, which is what a lot of people do. Gives you... interesting results. I mean you can, just don't take their word for it unless it tells you WHY each language is so important.
What is my recommendation? TI-BASIC => HTML/PHP => Java/XML => C#/Javascript => C++
Thanks. I want to use programming probably to get in the game industry but if I can't I can still use it for other things. So that probably means I need to learn the basics for most things I guess. I also want to learn programming so I can make mods for Oblivion/Skyrim, Fallout 3 and all the other moddable games. Also being able to play around with the iphone SDK would be fun as well.
Also do you guys have any books you would recommend taking a look at or something. I know I can probably learn it all online if I felt like it.
Whoa hang on. You just said two entirely different things. Getting into the game industry would require C++, whereas modding is just scripting languages.
As for a book, just use ticalc.org to learn TI-BASIC (strongly recommended), and then use "for dummies" books for HTML, XML, and PHP. For Java, get "Big Java". For everything else I have like 50 different books that I used, so I'm not sure really which one helped the most.
Thanks. I wasn't saying that modding and making games were the same. Just saying I would like to be able to make mods for games like Oblivion and if anything I want to get into the gaming industry.
Cool, I'll look into all of these. I've been looking around barnes and nobles and was wondering if these head first books are any good? They're best sellers but it sounds like it throws you into it without much help. Has anyone read these, I might check them out after reading the for dummies books.
This is why I recommend learning TI-BASIC first. A lot of books, even the "for dummies" books, it seems are written for dumb computer science majors, if you know what I mean. They assume you know a lot about programming already. I would strongly recommend doing what I said, and then getting Big Java. This will teach you the basics of programming, truly from a beginners perspective. Then, when your C++ book mentions try and catch statements, you will know what they are talking about.
You are wrong. TI-BASIC takes about a week or so to learn, maybe a month to master if you want to. Taking that time to learn the basics of how the general syntax of programming works is essential, and incredibly useful. Making TI programs is an incredibly useful skill. Try Googeling "How do BufferedImages work". You will get a whole lot of information on how to use bit and byte shifts, and a ton on binary. Unless you already know what that is, good luck. Starting basic is always the way to go. It is ignorant to start at a higher level than that. Without a proper teacher, you NEED to start simple. I firmly believe that it does not matter how old you are, and the intelligence level of a person should not be based on that. Do not make me take that back. (I know how old you are)
If you would like me to tell you why, it is simple. You do know that >> is actually a bit shift operation right? Why is that in a print statement? Do you know? Do you understand it? If so, good for you. It still takes A LOT of background knowledge. Just that statement alone is complex enough. A teacher can explain it to you well, whereas unfortunately, a book or Google simply cannot. To understand how to go about learning that simple print line, you NEED some previous knowledge.
Sorry if I sound mean, that is not my intentions. You are sending this person on the wrong track by telling them what you did.
EDIT: Wait, no that is not true. I AM trying to sound mean. You insulted tacos, I will not stand for it! ;P
LUA is used for the WoW interface and for a number of other big ticket games. It's a good language to pick up if your goal is to be a Designer. Honestly, the SC2 Editor is a great example of the kind of tools you're likely to use in such a role. Designers aren't expected to be code ninjas.
You don't really need a strong knowledge of stuff like C + + unless you're planning to be a Technical Designer or Software Engineer. Of course, it certainly can't hurt to know more than you need to if you've got the interest/passion to do it :)
And if you have no prior experience, I totally agree with the suggestion of starting with TI-BASIC.
Well uh.... If your intreasted in learning Cpluseplus this is a tutorial thats easy to get started on. I use visual studio, but I'm sure theres something better then that out there.
If your really interested in galaxy, the wiki is has all the functions you need for galaxy, with the knowledge of C syntax, you have all you need to mess around with galaxy.
Where should I start? I'm thinking of just learning basic stuff over summer before I go to college and then work my way up. Anyone can make apps for iOS and droid OS so I was thinking I could try making a few things in that to see how things are going. Maybe if I learn enough I'll be able to make a map in galaxy. If I am able to make a map using sc2 language would I be able to use that in my portfolio?
dunno what you going on about but c# or c++ are good for learning basic stuff...they are pretty easy to understand and help you get into the state of mine of programming in other languages
I think galaxy is similar to C ++. I know a little C++ and I know GML (http://en.wikipedia.org/wiki/Game_Maker_Language) which is like modifed C++. I want to make apps for the ipad but I don't own a mac soooo :( You might want to take a look at gml, its fairly easy to pick up and not quite as strict on syntax as C++ is. But it may be better to just learn C from the start....
Anything you do that makes you look smart is good for a portfolio. When I apply for college, my position on sc2mapster as moderator is totally going in there. Even though I won't be going to college to learn how to run a website or anything, the fact that I'm a mod here will show dedication, management skills, etc... Even though its not really related. So I think the more you can cram in your resume the better- even if your not going to use it in college.
imo Start out with Java. Not only is it useful but it is also extremely easy to understand. A year ago I picked it up and was able to understand it pretty easily. Might be something worth trying.
If you want an easy, high level language you might as well just use Python. Also, you might end up killing yourself using the Java API (fuck it's annoying). The language itself is fine though. The only time I think of using Java is if I'm modifying something written in Java (and I'm not happy about doing it). I don't really like languages like that, sometimes Python is useful for quick prototyping or something, and I've used a couple game engines that use Python quite a bit on front end. Basically, they compile, then run through a virtual machine at runtime to be compiled for the machine. It's so that they can be run on any machine, without the architecture being an issue, but a good programmer that knows what he's doing can pretty much do that anyway.
I would start with C. It's technically low level, it will give you a decent understanding of working without classes (so you're not reliant on them), and suffices as a great intro to C-based languages (which is to say, most languages). CPP is usually the most widespread though.
Buzz3D has some videos on CPP http://www.landofcode.com/programming-intro/ http://www.cplusplus.com/doc/tutorial/ http://www.cprogramming.com/tutorial/lesson1.html
I think a couple of those have lessons on C. I'm not really sure though, I had a book.
Galaxy is significantly more limited than CPP. Most languages are fairly similar. I mean you can pick up an entire language in a week, they aren't very big, but that won't do much good if you don't know how to program. What you want to study isn't so much a language, it's how to use it.
Think of it like kinda chess. You can learn how all the pieces move fairly quickly. But if you don't know how to maneuver those pieces and manipulate the board, you're not going to be very good. The languages themselves are like saying that the Knight is now the Bishop, and the Bishop is now the Rook, etc. It's a little different, but the mechanics are essentially the same. A good chess player will be a good chess player regardless of what you call the pieces.
Of course there is more to it, but that's simplified for you.
I'd start with a language like Java, C#, Lua, Python, etc.
Or use scripting languages like GML (as zelda said) or even Sc2 Galaxy.
Starting with C+ + (or C) is the wrong way to go, imo. It's got too many death traps for beginning coders.
Not even kidding here, if you have a TI-84, start with learning that (TI-BASIC). That is basically an incredibly simple version of a low-level non-object oriented programming language. Once you can make some cool stuff with that, start learning Java. Java is going to be the easiest to understand, and it will teach you basics of object oriented programming, while teaching you the basic syntax of the more powerful but less flexible C, C++, and C#.
For people who say that Java is not powerful enough even for simple games, you are wrong. The GRAPHICS engine in Java sucks, and for a good reason. However the language itself if powerful.
Once you get the basics of Java, start going in whichever way you want. Learn XML, HTML, XHTML (a little different), Python, Perl, PHP, and whichever version of C you want. (I would recommend C# if you are going to work in gaming, C++ if you are REALLY going to work in gaming)
You would be AMAZED at how much you learn from TI-BASIC. It is impossible to get a syntax error, only a couple infinite loops. Debugging is easy, and you can make cool stuff!
When I say learn all those languages, I mean understand a bit of them and how they work. You don't need to be a master in all of them. I would say XML, HTML, PHP, Java, and C++ are probably the most important in the long term, with Perl close behind. All depends on your preference, which you will only develop once trying a couple out.
Yes, the Java API is irritating, but get Big Java (a book) and you will be fine.
Great to be back and part of the community again!
Look at your local colleges/universities for courses about it and ask students to either give you the script and pratice tasks or both. Or ask the professor/teacher directly commonly they won't decline you directly if you are friendly
But i would ask the students about the "teacher"-level ... it's useless if he cannot teach or the script is simply non-sense
otherwise start with Java, C# or LUA (ie. If you have a WoW-Account you could do some UI-Scripting/Programming with LUA)
I started with Java and have not regretted it.
It would be nice if you could tell us what you want to do with the programming you learn. Making a game is a lot different than making a text editor, which is a lot different from making an OS, which is a lot different than making an app of any kind.
Here is the main point. Each language has a purpose.
HEAVY CODING:
Java: Multi-Platform support. If you are making a game or any application that is anything less than Runescape, use Java. Java can be run on any platform with Java installed, whereas with any version of C you have to write it multiple times, which is unnecessary in a lot of cases.
C: If you are making anything "professional" I would advise using C. Anything that performs a lot of calculations without using a lot of actual "objects" should be done in C. For example, Windows is written in C, because most of what it does is to run other programs. The object oriented aspects of C++ would just be unnecessary in this case.
C++: Use C++ for anything that requires a lot of power, particularly in the graphics department. Games like COD are programmed in C++, or a language similar to it. C++ is much harder to use than Java and is not even close to as flexible, but is a lot more powerful.
C#: As far as I can tell, everything can be written in C#. A basic, although not entirely accurate way of describing C# is a combination of Java and C. It is much easier to use than C++ or C, and is far more flexible. It is less powerful, in general. I believe that Blizzard actually uses a modified C# (Galaxy), commonly misinterpreted as a modified C++, which it is not.
BACKGROUND LANGUAGES:
HTML: Doesn't matter what you are doing. Learn HTML.
XML: XML is actually not a language, as you probably know already. It is used to store information that is used by practically every language out there. You need to know XML if you want to do any kind of scripting.
XHTML: HTML on steroids. Well, not really. I think the point was to make an HTML that functions more than just running other programs and writing text, and to turn it into a more power language. I could be wrong, but that is my interpretation.
Javascript: Used to run Java programms inside of a web browser, usually inside a block of HTML or PHP.
PHP: Used for web stuff, and as far as I know, that is it. I don't know a ton about PHP.
OTHER STUFF:
Perl: No idea, but I heard it is useful.
Python: Same as Perl.
SCRIPTING:
Galaxy: You already know what Galaxy is for.
LUA: I think LUA is used for a lot of different games, as kind of a background source to run the UI with XML, although I am not sure. I didn't know this, but someone posted before that WoW uses LUA? If that is true, I would recommend learning at least a bit of it, because I guarantee that Blizzard is not going anywhere.
There are others that I probably am not thinking of. Whatever you do, DO NOT search "most important programming languages" in Google, which is what a lot of people do. Gives you... interesting results. I mean you can, just don't take their word for it unless it tells you WHY each language is so important.
What is my recommendation? TI-BASIC => HTML/PHP => Java/XML => C#/Javascript => C++
Great to be back and part of the community again!
Thanks. I want to use programming probably to get in the game industry but if I can't I can still use it for other things. So that probably means I need to learn the basics for most things I guess. I also want to learn programming so I can make mods for Oblivion/Skyrim, Fallout 3 and all the other moddable games. Also being able to play around with the iphone SDK would be fun as well.
Also do you guys have any books you would recommend taking a look at or something. I know I can probably learn it all online if I felt like it.
Whoa hang on. You just said two entirely different things. Getting into the game industry would require C++, whereas modding is just scripting languages.
As for a book, just use ticalc.org to learn TI-BASIC (strongly recommended), and then use "for dummies" books for HTML, XML, and PHP. For Java, get "Big Java". For everything else I have like 50 different books that I used, so I'm not sure really which one helped the most.
Great to be back and part of the community again!
@TacoManStan: Go
Thanks. I wasn't saying that modding and making games were the same. Just saying I would like to be able to make mods for games like Oblivion and if anything I want to get into the gaming industry.
Cool, I'll look into all of these. I've been looking around barnes and nobles and was wondering if these head first books are any good? They're best sellers but it sounds like it throws you into it without much help. Has anyone read these, I might check them out after reading the for dummies books.
@Keyeszx:
This is why I recommend learning TI-BASIC first. A lot of books, even the "for dummies" books, it seems are written for dumb computer science majors, if you know what I mean. They assume you know a lot about programming already. I would strongly recommend doing what I said, and then getting Big Java. This will teach you the basics of programming, truly from a beginners perspective. Then, when your C++ book mentions try and catch statements, you will know what they are talking about.
Great to be back and part of the community again!
@TacoManStan: Go
I disagree with you. Theres no reason you can't just Google words you don't understand.
I see no reason why starting saying:
Print: Tacos Suck
Is better then starting saying:
cout >> "Tacos suck" >> endl;
I recommend you try Ruby. Ruby is way less complicated than C++ and Java, which is saying something.
Off topic slightly, I once met a guy who claimed he could program. I replied "In what language?" He then replied, "English, retard." xD
@grenegg:
You are wrong. TI-BASIC takes about a week or so to learn, maybe a month to master if you want to. Taking that time to learn the basics of how the general syntax of programming works is essential, and incredibly useful. Making TI programs is an incredibly useful skill. Try Googeling "How do BufferedImages work". You will get a whole lot of information on how to use bit and byte shifts, and a ton on binary. Unless you already know what that is, good luck. Starting basic is always the way to go. It is ignorant to start at a higher level than that. Without a proper teacher, you NEED to start simple. I firmly believe that it does not matter how old you are, and the intelligence level of a person should not be based on that. Do not make me take that back. (I know how old you are)
If you would like me to tell you why, it is simple. You do know that >> is actually a bit shift operation right? Why is that in a print statement? Do you know? Do you understand it? If so, good for you. It still takes A LOT of background knowledge. Just that statement alone is complex enough. A teacher can explain it to you well, whereas unfortunately, a book or Google simply cannot. To understand how to go about learning that simple print line, you NEED some previous knowledge.
Sorry if I sound mean, that is not my intentions. You are sending this person on the wrong track by telling them what you did.
EDIT: Wait, no that is not true. I AM trying to sound mean. You insulted tacos, I will not stand for it! ;P
Great to be back and part of the community again!
@TacoManStan: Go
LUA is used for the WoW interface and for a number of other big ticket games. It's a good language to pick up if your goal is to be a Designer. Honestly, the SC2 Editor is a great example of the kind of tools you're likely to use in such a role. Designers aren't expected to be code ninjas.
You don't really need a strong knowledge of stuff like C + + unless you're planning to be a Technical Designer or Software Engineer. Of course, it certainly can't hurt to know more than you need to if you've got the interest/passion to do it :)
And if you have no prior experience, I totally agree with the suggestion of starting with TI-BASIC.
Well uh.... If your intreasted in learning Cpluseplus this is a tutorial thats easy to get started on. I use visual studio, but I'm sure theres something better then that out there.
If your really interested in galaxy, the wiki is has all the functions you need for galaxy, with the knowledge of C syntax, you have all you need to mess around with galaxy.
This is a cool one http://tryruby.org/ enjoy