Page 1 of 2 12 LastLast
Results 1 to 20 of 31
  1. #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.

  2. #2
    Network Hub
    Join Date
    Jul 2011
    Posts
    133
    Quote Originally Posted by hexagonalbolts View Post
    For me in particular, I'd like to learn some very basic C++.
    At the risk of starting a holy war: don't start with C or C++. As a (bad) analogy, it's like saying "I would like to learn how to fly, so I'm going to get in a concorde and try". You don't, you find yourself a nice little two seater plane that's just got a stick, a rudder and a throttle and go from there. Sure, you can learn in the concorde, but you won't have any fun.

    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.

    I'd suggest finishing the python book (which means doing the exercises just reading it means you won't really absorb it). Then either experimenting with pygame on your own or trying something else. You could try XNA, as that's C# and so it a bit nearer C++ than python, and there's lots of good learning books for XNA. Or you can try Unity which has some really good documentation for beginners and lets you get doing visual stuff very quickly and lets you write in C# or javascript.

  3. #3
    Obscure Node Mantracker's Avatar
    Join Date
    Nov 2011
    Location
    Alberta Foothills
    Posts
    21
    I suggest MIT's opencourseware (free recordings of lectures, syllabus etc.)

    Here's their introductory course to computer programming:
    http://ocw.mit.edu/courses/electrica...g-spring-2011/

  4. #4
    Network Hub
    Join Date
    Dec 2011
    Posts
    123
    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).

  5. #5
    Network Hub
    Join Date
    Aug 2011
    Posts
    293
    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.

  6. #6
    Network Hub
    Join Date
    Jan 2012
    Posts
    496
    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.

  7. #7
    Network Hub
    Join Date
    Jul 2011
    Posts
    133
    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

  8. #8
    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?

  9. #9
    Lesser Hivemind Node Kaira-'s Avatar
    Join Date
    Jul 2011
    Location
    Oulu, Finland
    Posts
    965
    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.

  10. #10
    Secondary Hivemind Nexus gundato's Avatar
    Join Date
    Jun 2011
    Location
    United States
    Posts
    5,333
    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
    PSN: Gundato
    If you want me on either service, I suggest PMing me here first to let me know who you are.

  11. #11
    Lesser Hivemind Node
    Join Date
    Jun 2011
    Location
    Edinburgh
    Posts
    625
    Probably too late for this year, but Coursera.org have some introductory classes in python. An excellent resource.

  12. #12
    Network Hub Revisor's Avatar
    Join Date
    Jun 2011
    Posts
    460
    If you are an absolute beginner, try www.codecademy.com for the explanation of the thinking and basic stuff
    To anyone choosing their first language I recommend either Python or Javascript.
    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.
    http://www.bookdepository.co.uk/Code.../9780735619678

    Also have a look here for more reading inspiration
    http://stackoverflow.com/questions/1...=votes#tab-top
    (Code Complete is the top voted book there)

  13. #13
    Secondary Hivemind Nexus pakoito's Avatar
    Join Date
    Jun 2011
    Location
    Spainishtan
    Posts
    1,850
    Learnpyrhonthehardway is probably one of the best books/online tuts out there.

  14. #14
    Secondary Hivemind Nexus b0rsuk's Avatar
    Join Date
    Nov 2011
    Posts
    1,345
    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

  15. #15
    Network Hub Skull's Avatar
    Join Date
    Jun 2011
    Location
    England
    Posts
    154
    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.

  16. #16
    Secondary Hivemind Nexus Berzee's Avatar
    Join Date
    Jun 2011
    Posts
    2,238
    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.

  17. #17
    Secondary Hivemind Nexus Sparkasaurusmex's Avatar
    Join Date
    May 2012
    Location
    Texas
    Posts
    1,411
    C#
    How do you pronounce this? Because I keep thinking "C Sharp"

  18. #18
    Secondary Hivemind Nexus Berzee's Avatar
    Join Date
    Jun 2011
    Posts
    2,238
    Quote Originally Posted by Sparkasaurusmex View Post
    How do you pronounce this? Because I keep thinking "C Sharp"
    Correct you are!
    Support for my all-pepperjack-cheese food bank charity drive has been lukewarm at best.

  19. #19
    Secondary Hivemind Nexus Sparkasaurusmex's Avatar
    Join Date
    May 2012
    Location
    Texas
    Posts
    1,411
    My first programming language was music notation (and my last) :P

  20. #20
    Secondary Hivemind Nexus Unaco's Avatar
    Join Date
    Jun 2011
    Posts
    1,914
    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...
    Quote Originally Posted by Hypernetic View Post
    I just have an opinion different to your own. Circle jerking is good for no one, be glad somebody isn't afraid to disagree with women on the internet.
    Quote Originally Posted by Hypernetic View Post
    No, you are literally the cancer that is killing gaming.
    Quote Originally Posted by Serenegoose View Post
    Nobody's ever lost sleep over being called a cracker.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •