Help learning other Languages

General discussion about LÖVE, Lua, game development, puns, and unicorns.
Post Reply
User avatar
BulbaMander
Citizen
Posts: 65
Joined: Sat Dec 15, 2012 7:00 pm

Help learning other Languages

Post by BulbaMander »

I was in the middle of making a thread about needing help, and I just figured it out just by typing out my problem and explaining it. That's crazy right? But what I've been meaning to ask is, I'm just a high school student who does lua as a hobby, and got into it because I wanted to get into the whole psp home-brew scene, but now that that's pretty much dead, I'm looking to do something else programming related, so I'm basically asking for any advice or places to start reading up on c++ or a language you think are fundamental to learn to program. And not just games, but program in general, I don't know why but creating things no matter how small with code is really satisfying for me. I was thinking about going out and buying a few books also, but I don't have any experience other than luaplayer and love so yea, completely clueless.

TLDR: need basic places to start learning important languages like C
It takes an idiot to do cool things. Thats why they're cool. :emo:
User avatar
Davidobot
Party member
Posts: 1226
Joined: Sat Mar 31, 2012 5:18 am
Location: Oxford, UK
Contact:

Re: Help learning other Languages

Post by Davidobot »

It's a paid course: http://epgy.stanford.edu/ , but it's from standford and you get a neat certificate in the end. (I finshed this course, you can ask for help from me if you need to.)
PM me on here or elsewhere if you'd like to discuss porting your game to Nintendo Switch via mazette!
personal page and a raycaster
scutheotaku
Party member
Posts: 235
Joined: Sat Dec 15, 2012 6:54 am

Re: Help learning other Languages

Post by scutheotaku »

Just a side note: if you are mostly interested in C++ and not C, then just skip to learning C++. A lot of people think they should start with C (since it's "easier", supposedly) so that C++ will be easier to learn...but that's not a good idea imho. Chances are fairly high that, by learning C solely as a gateway to C++, you'll find yourself having to relearn things (and possibly confused), or you'll just end up programming C in C++.

Now, this is NOT to say that you shouldn't learn C. I just want to stress that you don't need, and probably shouldn't, learn C only because you want to learn C++. Learn C because you want to learn and use C.

As far as learning C++ from the beginning, look no farther than: http://www.amazon.com/Accelerated-C-Pra ... ed+c%2B%2B
It's a great book that teaches C++ "the right way" - not as C with OOP, but as C++. There are of course other great books on C++, though this is probably the best introduction (both in how it teaches you, and by the good habits that it encourages), especially for non-programmers.

If you'd like to learn C, then the book by the creators themselves is one of the best options out there: http://www.amazon.com/Programming-Langu ... rogramming

Some other languages to look into would be Java, C#, and Objective-C. I have a feeling that C# is going to start waning in popularity, especially now that XNA is dead/dying (though there's still MonoGame, the open source alternative), or at least that it won't be as popular among game developers as it has been the last 6 or 7 years. Java is always popular, and seems to be fairly popular on the job market (though I don't have much experience with it). Android is very Java-oriented, for what that's worth (potentially a lot, especially if OUYA doesn't completely fail). Objective-C (like C++, it's another object-oriented subset of C...though they are pretty different from each other) is currently pretty popular and probably will be for a while, because of its use in iOS app and Mac software development.

In reality, it's useful to know as many languages as you can. If you were just starting out in programming, I'd suggest that you start with C# or with something like Lua or Python (NOT JavaScript! haha). If, through your experiences with Lua (and possibly other languages), you're fairly comfortable with programming concepts, and you're serious about this, then learning C++ will be pretty useful to you. C# would still be a good option in that case though.

Also, while very opinionated, this article might be useful to you: http://www.gamefromscratch.com/post/201 ... loper.aspx

Oh, and you mentioned that the PSP home brew scene is dead. Well, that may be true, but the Playstation Mobile (Vita + Sony and Sony-certified Android devices + HTC Android devices) dev scene definitely isn't:
http://blog.us.playstation.com/2012/11/ ... obile-sdk/
http://www.gamefromscratch.com/page/Pla ... ntent.aspx
I believe that the PS Mobile SDK is all in/for C#. Might be worth checking out!

EDIT:
And don't get me wrong, courses and such are really good ways to learn for most people. I didn't post anything like that though, as I tend to learn better from books and articles and such. If you are the type of person where a fixed curriculum or (in the case of a IRL course) a classroom setting helps you learn, then go for that.
User avatar
BulbaMander
Citizen
Posts: 65
Joined: Sat Dec 15, 2012 7:00 pm

Re: Help learning other Languages

Post by BulbaMander »

scutheotaku wrote:Just a side note: if you are mostly interested in C++ and not C, then just skip to learning C++. A lot of people think they should start with C (since it's "easier", supposedly) so that C++ will be easier to learn...but that's not a good idea imho. Chances are fairly high that, by learning C solely as a gateway to C++, you'll find yourself having to relearn things (and possibly confused), or you'll just end up programming C in C++.

Now, this is NOT to say that you shouldn't learn C. I just want to stress that you don't need, and probably shouldn't, learn C only because you want to learn C++. Learn C because you want to learn and use C.

As far as learning C++ from the beginning, look no farther than: http://www.amazon.com/Accelerated-C-Pra ... ed+c%2B%2B
It's a great book that teaches C++ "the right way" - not as C with OOP, but as C++. There are of course other great books on C++, though this is probably the best introduction (both in how it teaches you, and by the good habits that it encourages), especially for non-programmers.

If you'd like to learn C, then the book by the creators themselves is one of the best options out there: http://www.amazon.com/Programming-Langu ... rogramming

Some other languages to look into would be Java, C#, and Objective-C. I have a feeling that C# is going to start waning in popularity, especially now that XNA is dead/dying (though there's still MonoGame, the open source alternative), or at least that it won't be as popular among game developers as it has been the last 6 or 7 years. Java is always popular, and seems to be fairly popular on the job market (though I don't have much experience with it). Android is very Java-oriented, for what that's worth (potentially a lot, especially if OUYA doesn't completely fail). Objective-C (like C++, it's another object-oriented subset of C...though they are pretty different from each other) is currently pretty popular and probably will be for a while, because of its use in iOS app and Mac software development.

In reality, it's useful to know as many languages as you can. If you were just starting out in programming, I'd suggest that you start with C# or with something like Lua or Python (NOT JavaScript! haha). If, through your experiences with Lua (and possibly other languages), you're fairly comfortable with programming concepts, and you're serious about this, then learning C++ will be pretty useful to you. C# would still be a good option in that case though.

Also, while very opinionated, this article might be useful to you: http://www.gamefromscratch.com/post/201 ... loper.aspx

Oh, and you mentioned that the PSP home brew scene is dead. Well, that may be true, but the Playstation Mobile (Vita + Sony and Sony-certified Android devices + HTC Android devices) dev scene definitely isn't:
http://blog.us.playstation.com/2012/11/ ... obile-sdk/
http://www.gamefromscratch.com/page/Pla ... ntent.aspx
I believe that the PS Mobile SDK is all in/for C#. Might be worth checking out!

EDIT:
And don't get me wrong, courses and such are really good ways to learn for most people. I didn't post anything like that though, as I tend to learn better from books and articles and such. If you are the type of person where a fixed curriculum or (in the case of a IRL course) a classroom setting helps you learn, then go for that.
Wow thanks a lot for all the information. I've clicked a few links and I'm very interested in the accelerated c++ book, and I'm probably going to at least try to learn c#, and
Davidobot wrote:It's a paid course: http://epgy.stanford.edu/ , but it's from standford and you get a neat certificate in the end. (I finshed this course, you can ask for help from me if you need to.)
is something I'm going to try and look into too. Thanks for all the help guys.
It takes an idiot to do cool things. Thats why they're cool. :emo:
User avatar
BulbaMander
Citizen
Posts: 65
Joined: Sat Dec 15, 2012 7:00 pm

Re: Help learning other Languages

Post by BulbaMander »

YES! more delicious links to follow, thanks man
It takes an idiot to do cool things. Thats why they're cool. :emo:
User avatar
substitute541
Party member
Posts: 484
Joined: Fri Aug 24, 2012 9:04 am
Location: Southern Leyte, Visayas, Philippines
Contact:

Re: Help learning other Languages

Post by substitute541 »

Hehehe... I took Computer Science 50(Introduction to computer science 1) in edX. I'm in Pset7. That course is due April 15 though.
I'm known as icrawler in edX

Edit: As a side note, on the first half of the course, you learn the basics of C. Problem set's difficulty somewhat exponentially increases, as the second (pset1) is just creating a mario half pyramid and the greedy algorithm (both are actually quite easy), and then the sixth (pset5) is about spell-checking (it gets a lot harder when you do the "hacker edition").
Currently designing themes for WordPress.

Sometimes lurks around the forum.
User avatar
MarekkPie
Inner party member
Posts: 587
Joined: Wed Dec 28, 2011 4:48 pm
Contact:

Re: Help learning other Languages

Post by MarekkPie »

Some people like the book method, but what others haven't talked about is the "diving in" method. About a month ago, I wanted to give Erlang a shot. I knew Haskell a bit from a course I took last semester, and some of the ideas that a functional programming mindset bring are fairly applicable in imperative languages.

So, what did I do to learn? Check out /r/dailyprogrammer. I'd go through the easy challenges first, write out the answer in a language I know, then look for examples of the answer written in the language I want to learn. By completing the challenge myself first, I knew a lot more about the problem and what to look for in the other languages, so when I would go through the sometimes confusing syntax of Erlang, I'd have a better idea of what is going on. Then, I'd re-implement the solution in the language I wanted to learn. Just reading up some answer isn't enough for me to absorb the information; I need to actively type it out, and thus have to pull out stored knowledge about the library functions and other minutia of the language.
Santos
Party member
Posts: 384
Joined: Sat Oct 22, 2011 7:37 am

Re: Help learning other Languages

Post by Santos »

Reminds me of Rosetta Code.
The idea is to present solutions to the same task in as many different languages as possible, to demonstrate how languages are similar and different, and to aid a person with a grounding in one approach to a problem in learning another.
Post Reply

Who is online

Users browsing this forum: Ahrefs [Bot], Bing [Bot] and 2 guests