I used to do some programming but I never really understood anything. Recently I've been thinking about trying to learn some things at night before I go to bed especially in the summer. I need some help picking a language that will be slightly challenging but not too bad. I'm slightly interested in web designing but I'm more interested in software development. Also if you could provide some websites to learn from that would be great! Any other tips would be awesome!
I'd personally start off with HTML. The syntax is super easy, and it'll ease you into other languages gradually as you build up experience. You don't even need an IDE or any fancy software, just notepad (preferably notepad++). Codecademy and W3schools are both sites with pretty good tutorials, w3schools is really nice because of all their reference pages, but Codecademy is good for the basics.
C# is good for standalone apps because it has a UI creation tool thingy, C++ and Java(not javascript) also work great.
I'd personally start off with HTML. The syntax is super easy, and it'll ease you into other languages gradually as you build up experience. You don't even need an IDE or any fancy software, just notepad (preferably notepad++). Codecademy and W3schools are both sites with pretty good tutorials, w3schools is really nice because of all their reference pages, but Codecademy is good for the basics.
C# is good for standalone apps because it has a UI creation tool thingy, C++ and Java(not javascript) also work great.
I forgot to mention I already know html. When i was first learning I learned java and I could not understand anything so iI would prefer to avoid it but I could have been approaching it wrong.
HTML isn't even a programming language, so I'm not sure why you'd even mention that. It isn't going to help very much or at all.
The thing about software development is that certain tools suck for certain jobs. For example, C++ sucks, to be frank, for web development, while Javascript is much better in that regard. C++ is well suited for lower-level topics such as game engine development, and Javascript is something that you would might use for a small-scale script (not saying that Javascript game engines do not exist of course). If you tell us what exactly you want to do with programming, we could give a better recommendation.
I forgot to mention I already know html. When i was first learning I learned java and I could not understand anything so iI would prefer to avoid it but I could have been approaching it wrong.
Your problem is that you're most likely just rushing through topics instead of actually spending your time on trying to actually understand what's going on. There's a chance that you're setting your goals unrealistically high immediately after you write your first "Hello World" program.
HTML isn't even a programming language, so I'm not sure why you'd even mention that. It isn't going to help very much or at all.
The thing about software development is that certain tools suck for certain jobs. For example, C++ sucks, to be frank, for web development, while Javascript is much better in that regard. C++ is well suited for lower-level topics such as game engine development, and Javascript is something that you would might use for a small-scale script (not saying that Javascript game engines do not exist of course). If you tell us what exactly you want to do with programming, we could give a better recommendation.
Your problem is that you're most likely just rushing through topics instead of actually spending your time on trying to actually understand what's going on. There's a chance that you're setting your goals unrealistically high immediately after you write your first "Hello World" program.
I'm interested mostly in games but I would like to still be able to code other programs. But the most part i want to play around. I don't really have a goal or anything
Yeah, I just said HTML because it helps you get into bigger stuff. Using a HTML5 canvas and javascript is really easy and also a pretty good way to mess around and get your feet wet. If you want to make games, I'd suggest to go right back to the beginning. Make a rock paper scissors game, then tic-tac-toe, checkers, pong, mouse in the maze, etc.
Those games all were very simple in their functionality and you can basically build up your skills one piece at a time and get things done rather than biting off a gigantic project, burning yourself out on it and then giving up.
Saying "I want to make games" is pretty vague... what type of games are you looking to make? What platforms? Do they run in the browser? etc.
3d games would be my preference but I know I need to work my way up. I would like to make pc games and possibly software but I have no idea on what type of software. I would like them to be an independent application.
Yeah, I just said HTML because it helps you get into bigger stuff. Using a HTML5 canvas and javascript is really easy and also a pretty good way to mess around and get your feet wet. If you want to make games, I'd suggest to go right back to the beginning. Make a rock paper scissors game, then tic-tac-toe, checkers, pong, mouse in the maze, etc.
Those games all were very simple in their functionality and you can basically build up your skills one piece at a time and get things done rather than biting off a gigantic project, burning yourself out on it and then giving up.
I'll make sure to try making those! I'm still unsure on what language to pick though.
The words "3D games" are still very vague. That's like saying that you want to purchase a vehicle, and one someone asks you which type, you respond with "a car." What type of car?
COD: Advanced Warfare's requirements are vastly different than something like Civilization 5!
Personally I use plain C++ along with D3D11, and OpenGL 4 in a custom game engine I'm working on, however engine development might not appeal to you.
If not, I'd recommend either Unreal Engine 4 or Unity 5. Unreal Engine has it's source code freely available and is free of charge (but commercial games must pay a 5% royalty fee). Unity doesn't have it's source code available for free, but it makes up for it with it's wealth of tutorials and giant community.
If you want to use Unreal Engine 4 or Unity 5, you'll have to learn either C++ or C#, respectively, in order to do anything worthwhile. Don't buy into any advertisements that say that an engine doesn't require any programming to use. Either it's a lie, or the engine is garbage quite frankly.
The words "3D games" are still very vague. That's like saying that you want to purchase a vehicle, and one someone asks you which type, you respond with "a car." What type of car?
COD: Advanced Warfare's requirements are vastly different than something like Civilization 5!
Personally I use plain C++ along with D3D11, and OpenGL 4 in a custom game engine I'm working on, however engine development might not appeal to you.
If not, I'd recommend either Unreal Engine 4 or Unity 5. Unreal Engine has it's source code freely available and is free of charge (but commercial games must pay a 5% royalty fee). Unity doesn't have it's source code available for free, but it makes up for it with it's wealth of tutorials and giant community.
If you want to use Unreal Engine 4 or Unity 5, you'll have to learn either C++ or C#, respectively, in order to do anything worthwhile. Don't buy into any advertisements that say that an engine doesn't require any programming to use. Either it's a lie, or the engine is garbage quite frankly.
Sport games (solely skiing), and fps's. If i was to kearn c++ or c# do you know any websites I could use to learn?
Going through his java course, it doesn't teach applications but you can learn the basics at least there. (He does it step by step and expllains everything making it really easy to learn)
If you're learning C++, I'd recommend using Visual Studio on Windows, Codeblocks on Linux, and Xcode on Mac. Those are the best IDEs on those platforms (Visual Studio is the best IDE out of the bunch hands down. Xcode follows behind it.).
C#'s best IDE is Visual Studio, and I think Monodevelop is the only other one for C#.
For tutorials I cannot give any recommendations on C#, because when I learned it I was already proficient in C++ and I felt like I didn't need to use any tutorials. I just looked up the quirks of C# and how idiomatic C# is written, and I was fine.
For C++ however, the cplusplus.com fourms have great beginners tutorials.
Once you've finished learning your language, head over to gamedev.net.
If you're learning C++, I'd recommend using Visual Studio on Windows, Codeblocks on Linux, and Xcode on Mac. Those are the best IDEs on those platforms (Visual Studio is the best IDE out of the bunch hands down. Xcode follows behind it.).
Coming from someone with a Visual Studio logo as their icon, I'm sensing a tad bit of bias here. In any case, regardless of actual quality, Visual Studio is definitely not the best choice of environment for a beginner.
Coming from someone with a Visual Studio logo as their icon, I'm sensing a tad bit of bias here. In any case, regardless of actual quality, Visual Studio is definitely not the best choice of environment for a beginner.
Lol, yes, I do have a bias (quite a bit of it actually), and I'm not even going to try to deny that.
However, I have used pretty much every reasonably modern IDE (with the exception of xcode) during several jobs, ranging fromDev C++ to Code::Blocks to Eclipse to Visual Studio.
I am curious; which IDE would you recommend instead? Visual Studio is a marvellous choice for a beginner. No IDE has a debugger that's quite on Visual Studio's level, nor does an IDE have the wealth of (quality) extensions that Visual Studio has. Visual Studio also has the HLSL compiler integrated within the IDE, something that is heaven for me (a graphics programmer)... this is non-existant on any other IDE. There is a reason why it's an industry standard... not only for C++, but for C# as well.
I'd personally recommended Code::Blocks, it has a really good default install and is (in my experience at least) much more focused on beginners and user-friendliness than Visual Studio (although it seems VS has improved a lot in that area over the past few years). It's lightweight and easy to configure, and it has a pretty good trove of plugins itself. It also has the advantage that it's relatively easy to poke around the code of the IDE itself, and it's not geared towards platform-specific development (which is a plus as I see it, since platform-specificity is a major trap for beginners).
I mean, all told, Visual Studio certainly isn't a bad choice for a beginner, I just think that one could do better.
As a beginner, cross-platform development is the absolute last thing you should be worrying about. I'm not saying that you should make an effort to utilize every bit of platform-specific functionality at your disposal, but if you're selling off your soul to Satan to make sure that your code runs on Linux, you're doing it wrong.
IMO, it's stupid quite frankly to learn one IDE only to just learn another.
In response to your comment on Windows:
>Linux has roughly 2 percent of market share
>Mac has 6 percent of market share
>Windows has 92 percent of market share
Also, please explain to me how that kills the language?
I'm not saying that you should make an effort to utilize every bit of platform-specific functionality at your disposal, but if you're selling off your soul to Satan to make sure that your code runs on Linux, you're doing it wrong.
It is really not that difficult to write cross-platform code. If someone has limited experience with it because they've written proprietary software all their life, or because the process they're familiar with is writing a complete program for one platform and then going through the often painful process of porting it to other platforms after-the-fact, I guess I can see it seeming daunting, but the Microsoft or Apple programmer's view of how difficult it is to code for other platforms is so absurdly inflated it's hard to even deal with sometimes.
And you know what, in a way I agree with what you say: if you're selling your soul to Satan to make your program run in a Linux environment, you really are doing it wrong, because you never have to sell your soul to anybody just to get code to work on Linux.
IMO, it's stupid quite frankly to learn one IDE only to just learn another.
Nobody even said anything about this. What does it have to do with anything?
I'd also be interested to hear the source for those statistics; OS X obviously has more than 6% of users as a platform, for instance (whether that translates into measurements of market share, I don't know - I'm not an economist), and depending on what software you're making (language, target demographic, feature set, etc.) it could be a lot more. For general-purpose software, that kind of user base is rarely, if ever, negligible.
Even while that's true, you're still contributing to a developing environment for Windows. That's that.
...Unfounded hatred towards a platform...
I think that it's safe to just ignore whatever else you have to say from this point onward.
That's cool if you want to limit your userbase to a relatively non-existent platform... good luck putting any food on the table or paying your bills, however.
It is really not that difficult to write cross-platform code. If someone has limited experience with it because they've written proprietary software all their life, or because the process they're familiar with is writing a complete program for one platform and then going through the often painful process of porting it to other platforms after-the-fact, I guess I can see it seeming daunting, but the Microsoft or Apple programmer's view of how difficult it is to code for other platforms is so absurdly inflated it's hard to even deal with sometimes.
I wasn't going after that. The projects I work on are cross-platform; I'm no stranger to cross-platform development.
In fact, you're agreeing with what I'm saying. That's why I'm saying that one should not stress over cross-platform code as a beginner. That's a clear violation of the YAGNI principle. (http://en.wikipedia.org/wiki/You_aren't_gonna_need_it)
And you know what, in a way I agree with what you say: if you're selling your soul to Satan to make your program run in a Linux environment, you really are doing it wrong, because you never have to sell your soul to anybody just to get code to work on Linux.
It was a hyberbole. You're definitely going to encounter hiccups when porting over code from another platform to Linux.
Nobody even said anything about this. What does it have to do with anything?
It was in response to your recommendation as Code::Blocks as a beginner IDE. Chances are you're going to have to use Visual Studio in the field, requiring you to relearn many things. It's like learning D3D9 nowadays; you're [generally] going to end up using D3D11, effectively wasting your time.
I'd also be interested to hear the source for those statistics; OS X obviously has more than 6% of users as a platform, for instance (whether that translates into measurements of market share, I don't know - I'm not an economist), and depending on what software you're making (language, target demographic, feature set, etc.) it could be a lot more. For general-purpose software, that kind of user base is rarely, if ever, negligible.
My estimates were rough, however, according to here, the numbers are looking even worse on OSX and Linux's side:
And yes, the type of project being developed is very important to what market share. I completely agree.
It's a rough guideline. Assuming you're planning to profit off of a project (which a beginner should not be thinking of. As a beginner it doesn't matter which platform you develop on, although I do personally recommend Windows), Windows is going to be your largest platform to target. Don't worry about porting until you have a working copy (not saying to litter your code with platform-specific function calls or anything). Only after that you should think about porting.
--sorry for any mistakes I'm on mobile.
I used to do some programming but I never really understood anything. Recently I've been thinking about trying to learn some things at night before I go to bed especially in the summer. I need some help picking a language that will be slightly challenging but not too bad. I'm slightly interested in web designing but I'm more interested in software development. Also if you could provide some websites to learn from that would be great! Any other tips would be awesome!
I'd personally start off with HTML. The syntax is super easy, and it'll ease you into other languages gradually as you build up experience. You don't even need an IDE or any fancy software, just notepad (preferably notepad++). Codecademy and W3schools are both sites with pretty good tutorials, w3schools is really nice because of all their reference pages, but Codecademy is good for the basics.
C# is good for standalone apps because it has a UI creation tool thingy, C++ and Java(not javascript) also work great.
I forgot to mention I already know html. When i was first learning I learned java and I could not understand anything so iI would prefer to avoid it but I could have been approaching it wrong.
HTML isn't even a programming language, so I'm not sure why you'd even mention that. It isn't going to help very much or at all.
The thing about software development is that certain tools suck for certain jobs. For example, C++ sucks, to be frank, for web development, while Javascript is much better in that regard. C++ is well suited for lower-level topics such as game engine development, and Javascript is something that you would might use for a small-scale script (not saying that Javascript game engines do not exist of course). If you tell us what exactly you want to do with programming, we could give a better recommendation.
Your problem is that you're most likely just rushing through topics instead of actually spending your time on trying to actually understand what's going on. There's a chance that you're setting your goals unrealistically high immediately after you write your first "Hello World" program.
I'm interested mostly in games but I would like to still be able to code other programs. But the most part i want to play around. I don't really have a goal or anything
Saying "I want to make games" is pretty vague... what type of games are you looking to make? What platforms? Do they run in the browser? etc.
Yeah, I just said HTML because it helps you get into bigger stuff. Using a HTML5 canvas and javascript is really easy and also a pretty good way to mess around and get your feet wet. If you want to make games, I'd suggest to go right back to the beginning. Make a rock paper scissors game, then tic-tac-toe, checkers, pong, mouse in the maze, etc.
Those games all were very simple in their functionality and you can basically build up your skills one piece at a time and get things done rather than biting off a gigantic project, burning yourself out on it and then giving up.
3d games would be my preference but I know I need to work my way up. I would like to make pc games and possibly software but I have no idea on what type of software. I would like them to be an independent application.
I'll make sure to try making those! I'm still unsure on what language to pick though.
The words "3D games" are still very vague. That's like saying that you want to purchase a vehicle, and one someone asks you which type, you respond with "a car." What type of car?
COD: Advanced Warfare's requirements are vastly different than something like Civilization 5!
Personally I use plain C++ along with D3D11, and OpenGL 4 in a custom game engine I'm working on, however engine development might not appeal to you.
If not, I'd recommend either Unreal Engine 4 or Unity 5. Unreal Engine has it's source code freely available and is free of charge (but commercial games must pay a 5% royalty fee). Unity doesn't have it's source code available for free, but it makes up for it with it's wealth of tutorials and giant community.
If you want to use Unreal Engine 4 or Unity 5, you'll have to learn either C++ or C#, respectively, in order to do anything worthwhile. Don't buy into any advertisements that say that an engine doesn't require any programming to use. Either it's a lie, or the engine is garbage quite frankly.
Sport games (solely skiing), and fps's. If i was to kearn c++ or c# do you know any websites I could use to learn?
Head over to udemy.com there might be what you are looking for there!
I would suggest this one for c++: https://www.udemy.com/free-learn-c-tutorial-beginners/?dtcode=DOJV7ry2Lct6
Going through his java course, it doesn't teach applications but you can learn the basics at least there. (He does it step by step and expllains everything making it really easy to learn)
Woop. Unimportant stuff here.
If you're learning C++, I'd recommend using Visual Studio on Windows, Codeblocks on Linux, and Xcode on Mac. Those are the best IDEs on those platforms (Visual Studio is the best IDE out of the bunch hands down. Xcode follows behind it.).
C#'s best IDE is Visual Studio, and I think Monodevelop is the only other one for C#.
For tutorials I cannot give any recommendations on C#, because when I learned it I was already proficient in C++ and I felt like I didn't need to use any tutorials. I just looked up the quirks of C# and how idiomatic C# is written, and I was fine.
For C++ however, the cplusplus.com fourms have great beginners tutorials.
Once you've finished learning your language, head over to gamedev.net.
Coming from someone with a Visual Studio logo as their icon, I'm sensing a tad bit of bias here. In any case, regardless of actual quality, Visual Studio is definitely not the best choice of environment for a beginner.
Lol, yes, I do have a bias (quite a bit of it actually), and I'm not even going to try to deny that.
However, I have used pretty much every reasonably modern IDE (with the exception of xcode) during several jobs, ranging from Dev C++ to Code::Blocks to Eclipse to Visual Studio.
I am curious; which IDE would you recommend instead? Visual Studio is a marvellous choice for a beginner. No IDE has a debugger that's quite on Visual Studio's level, nor does an IDE have the wealth of (quality) extensions that Visual Studio has. Visual Studio also has the HLSL compiler integrated within the IDE, something that is heaven for me (a graphics programmer)... this is non-existant on any other IDE. There is a reason why it's an industry standard... not only for C++, but for C# as well.
I'd personally recommended Code::Blocks, it has a really good default install and is (in my experience at least) much more focused on beginners and user-friendliness than Visual Studio (although it seems VS has improved a lot in that area over the past few years). It's lightweight and easy to configure, and it has a pretty good trove of plugins itself. It also has the advantage that it's relatively easy to poke around the code of the IDE itself, and it's not geared towards platform-specific development (which is a plus as I see it, since platform-specificity is a major trap for beginners).
I mean, all told, Visual Studio certainly isn't a bad choice for a beginner, I just think that one could do better.
As a beginner, cross-platform development is the absolute last thing you should be worrying about. I'm not saying that you should make an effort to utilize every bit of platform-specific functionality at your disposal, but if you're selling off your soul to Satan to make sure that your code runs on Linux, you're doing it wrong.
IMO, it's stupid quite frankly to learn one IDE only to just learn another.
In response to your comment on Windows:
>Linux has roughly 2 percent of market share
>Mac has 6 percent of market share
>Windows has 92 percent of market share
Also, please explain to me how that kills the language?
ye-no, megamanfan32, we're not in agreement at all. And you can write cross-platform code in Visual Studio.
It is really not that difficult to write cross-platform code. If someone has limited experience with it because they've written proprietary software all their life, or because the process they're familiar with is writing a complete program for one platform and then going through the often painful process of porting it to other platforms after-the-fact, I guess I can see it seeming daunting, but the Microsoft or Apple programmer's view of how difficult it is to code for other platforms is so absurdly inflated it's hard to even deal with sometimes.
And you know what, in a way I agree with what you say: if you're selling your soul to Satan to make your program run in a Linux environment, you really are doing it wrong, because you never have to sell your soul to anybody just to get code to work on Linux.
Nobody even said anything about this. What does it have to do with anything?
I'd also be interested to hear the source for those statistics; OS X obviously has more than 6% of users as a platform, for instance (whether that translates into measurements of market share, I don't know - I'm not an economist), and depending on what software you're making (language, target demographic, feature set, etc.) it could be a lot more. For general-purpose software, that kind of user base is rarely, if ever, negligible.
...Unfounded hatred towards a platform...
I think that it's safe to just ignore whatever else you have to say from this point onward.
That's cool if you want to limit your userbase to a relatively non-existent platform... good luck putting any food on the table or paying your bills, however.
I wasn't going after that. The projects I work on are cross-platform; I'm no stranger to cross-platform development.
In fact, you're agreeing with what I'm saying. That's why I'm saying that one should not stress over cross-platform code as a beginner. That's a clear violation of the YAGNI principle. (http://en.wikipedia.org/wiki/You_aren't_gonna_need_it)
It was a hyberbole. You're definitely going to encounter hiccups when porting over code from another platform to Linux.
It was in response to your recommendation as Code::Blocks as a beginner IDE. Chances are you're going to have to use Visual Studio in the field, requiring you to relearn many things. It's like learning D3D9 nowadays; you're [generally] going to end up using D3D11, effectively wasting your time.
My estimates were rough, however, according to here, the numbers are looking even worse on OSX and Linux's side:
http://www.netmarketshare.com/operating-system-market-share.aspx?qprid=10&qpcustomd=0
And yes, the type of project being developed is very important to what market share. I completely agree.
It's a rough guideline. Assuming you're planning to profit off of a project (which a beginner should not be thinking of. As a beginner it doesn't matter which platform you develop on, although I do personally recommend Windows), Windows is going to be your largest platform to target. Don't worry about porting until you have a working copy (not saying to litter your code with platform-specific function calls or anything). Only after that you should think about porting.