Results 1 to 20 of 31
12-10-2012, 10:04 AM #1
Learning programming - advice and resources?
There's another programming thread at the moment but this topic is something I have been wondering about for quite some time and I think it deserves a thread to itself. Googling around 'learning programming' can bring up a whole lot of outdated rubbish. So can anyone suggest any great resources, websites, forums or books for learning programming?
For me in particular, I'd like to learn some very basic C++. I worked through some of http://inventwithpython.com/ and then decided to buy 'beginning C++ game programming' by Michael Dawson. However the vast majority of the programs in the book aren't game-like at all, they're mostly just a page of words that are in the context of gaming, there is no interaction from the user or anything that could ever be different. I feel like it would be much easier to progress if I could get some extremely crude game or model up and running that I could mess around with, change the values and chop new bits in and out.
12-10-2012, 10:53 AM #2
- Join Date
- Jul 2011
The dirty little secret that you don't know as a newbie is that the fundamentals of programming are the same pretty much anywhere. Flow control, data structures, etc. is stuff you can learn in any language just how you should be learning in a two seater. Because you aren't going to find a simple c++ game that you can tinker with that makes *any* sense to you right now, and you're not going to learn anything from it.
12-10-2012, 02:35 PM #3C#
12-10-2012, 02:41 PM #4
12-10-2012, 10:57 AM #5
12-10-2012, 11:00 AM #6
- Join Date
- Dec 2011
I second Unity and python. There's some good resources for both of them, and you can very quickly get something game-ish going in Unity that you can play with (while python's interpreter lets to play interactively with the language without going through compile-cycles, which I think helps you to explore what a particular function does in a more natural way).
12-10-2012, 11:21 AM #7
- Join Date
- Aug 2011
Start with something more user friendly like Java or C# and then move your way up. Frankly if I could go the rest of my career without programming in C++ id be a happy man.
12-10-2012, 12:19 PM #8
- Join Date
- Jan 2012
What the guys above said is correct. The point of using C++ is high performance. It is just about the worst language you could pick for starting programming.
If you want to get into something that "works" right away, you need not just a language, but a powerful toolkit or environment suitable for making games and game-like software with graphics and UI.
I'd generally recommend going with Python. It has many game toolkits; the best known (therefore most tutorials, etc.) is Pygame.
12-10-2012, 12:27 PM #9
- Join Date
- Jul 2011
Oh, just to give you a few more options, there's also Pyglet, which is a more recent alternative to pygame. It's got quite a decent starter guide: http://www.pyglet.org/doc/programming_guide/index.html
12-10-2012, 12:34 PM #10
Ok this is all great stuff, thanks! I had presumed unity would be a bit advanced for someone with zero knowledge of coding - can anyone recommend any tutorials for that in particular?
12-10-2012, 12:35 PM #11
Eh, I'm not so sure about if C/C++ is actually all that bad. I mean, it means you don't have the benefit of large standard libraries of C#/Java, but it'll give you a lot of insight what happens deeper down in the programming language. That being said, they are also a big pain in the ass in the beginning and if you aren't really motivated, they can kill your motivation. Java is what I began programming with, and moved to C(++) from there.
All in all: pick a language (probably not a functional programming language like Haskell), and stick with it. Programming isn't about language - it's about a mindset and understanding how the system flows.
12-10-2012, 01:40 PM #12
If you want to learn to be a good coder: C or C++, depending on what field you intend to work in (C++ if you want gaming). There are better languages out there, and there are more powerful languages. Those both provide a good "bare bones" that will generally not have you develop too many bad habits (I learned on Java, and I always have to keep a sticky note handy to remind me to free what i malloc :p). But those are "real" languages, so they'll be taught in the context of programming, not game making (even an OpenGL or DirectX tute will be more about how to render a scene, not how to make it interactive).
If your problem is that you want to feel like you are working toward a game: Go with Unity, as suggested. I think it supports a few different languages these days, pick whichever one has the best tutorial. You'll pick up some (or a lot of) bad habits, but you'll actually learn. Because you can see the impact of everything you do in the context of a game.Steam: Gundato
If you want me on either service, I suggest PMing me here first to let me know who you are.
12-10-2012, 01:44 PM #13
- Join Date
- Jun 2011
Probably too late for this year, but Coursera.org have some introductory classes in python. An excellent resource.
12-10-2012, 01:51 PM #14
On a slightly unrelated note, if anyone living around the Cambridge area with good C++ and MySQL knowledge is looking for a job as a software engineer, please send me a pm and I can give more details. Salary would be £35k, a pension scheme and share options within the firm.
Sorry if I'm not allowed to advertise job roles in the forum, please remove this post if it violates any rules.
12-10-2012, 01:49 PM #15
If you are an absolute beginner, try www.codecademy.com for the explanation of the thinking and basic stuff
Codecademy is for JS
http://learnpythonthehardway.org/ is for Python
For everyone who hasn't read it yet, beginner or expert, read Code Complete. It's the most versatile and useful book about practical programming (not about a specific language) I have read.
Also have a look here for more reading inspiration
(Code Complete is the top voted book there)
12-10-2012, 01:50 PM #16
Learnpyrhonthehardway is probably one of the best books/online tuts out there.
12-10-2012, 01:51 PM #17
I like MIT OpenCourseware, too. Their introduction to Computer Science uses Python, which is a plus for me. They make non-trivial topics sound easy. The course is about learning to think like a computer scientist.pass
12-10-2012, 02:25 PM #18
I will just say -- I don't recommend the following if you are trying to learn "proper programming" to do it for the rest of your life.
But for those who feel that programming a game is the only way they'll ever learn to program, and want something fairly fast and flexible, you could do worse than looking for a Flixel tutorial here: http://forums.flixel.org/index.php
The best thing about Flixel is that you can super-easily put a man on the screen and have him run around without flickering. Once you've gotten that far, the rest is just tweaking. :)
Of course I found Flixel after programming with REAL LANGUAGES for years, so I may not be the best judge of its intuitiveness for beginners.Support for my all-pepperjack-cheese food bank charity drive has been lukewarm at best.
12-10-2012, 02:49 PM #19
My first programming language was music notation (and my last) :P
12-10-2012, 03:01 PM #20
I happen to teach University Undergraduate (and Masters) Introduction to programming courses, among other things. Our University, after having tried a couple different approaches, uses Java. I will elaborate a little, later... but just now I'm away to teach some Undergrads...