Home General Discussion

What is a good way to get better at coding?

NegevPro
polycounter lvl 4
Offline / Send Message
NegevPro polycounter lvl 4
Hey guys, so I've been trying to improve my game development skills in a variety of areas to help improve my chances of landing a job in the future. I'm currently attending (and hating) a university with my major being Computer Science. I attend class and write code a lot in my free time but I feel as if I am not ever getting better at it despite being able to do homework and exams without and trouble.

I'm not sure if this is the best place to ask but could anybody possibly point me in the right direction so I can improve myself as a coder? I'm currently using digitaltutors/eat3d/3dmotive/youtube/independent practice to improve as an artist (I'm quite shit compared to most of the people I see here lol). Is there any service simmilar to these but for coding?

Thanks for any suggestions you guys might have!

Replies

  • WarrenM
    Options
    Offline / Send Message
    Stretch yourself. Pick something you don't know how to code and figure it out. If you just do your classwork you're not going to advance as quickly as you'd like, especially if you find it boring.
  • NegevPro
    Options
    Offline / Send Message
    NegevPro polycounter lvl 4
    Thanks for the fast response! I've heard this before, definitely going to work on some of my personal projects this weekend. Is there a particular language I should try to focus on or would experience in one language carry over to another?

    My university seems to be focusing on Java but I was considering trying Python for a personal project as many people keep telling me I won't be without a job if I master it.
  • Richard Kain
    Options
    Offline / Send Message
    Richard Kain polycounter lvl 18
    Practice. Lots and tons of practice. I would suggest you start producing some small-scope games. Facing challenges and problems that you DON'T know the solution for is the best way to improve your coding. Programming is the art of problem solving. Simply copying existing solutions won't stretch you. You need to face problems that you don't have the answer to. That's when programmers really shine.

    Back when I was starting out coding, I started trying to port an existing game engine to a different language. (Flixel, I tried to port it to C#/OpenTK) This was a problem that had no tutorial. The only way I was able to advance was through research, problem solving, and good-old trial and error. Through that project I was able to learn a lot about the different languages, new programming methodologies, and how game engines are structured. It was a very challenging and valuable experience.
  • WarrenM
    Options
    Offline / Send Message
    I wouldn't go with anything less than C#. Memory management is for chumps these days. :P
  • Isaiah Sherman
    Options
    Offline / Send Message
    Isaiah Sherman polycounter lvl 14
  • haiddasalami
    Options
    Offline / Send Message
    haiddasalami polycounter lvl 14
    Figure out how you learn best. I know that for me I learn the most just diving into a project and learning as I go. As Richard said, I think programming is also just an extension of problem solving and thats where you learn the most. Solving problems :) Writing regular programs for stuff you know is boring (IMO atleast :P)
  • ambershee
    Options
    Offline / Send Message
    ambershee polycounter lvl 17
    The best way is just to keep programming; it's an acquired skill, just like learning to draw with a pencil. You'll also need to work out how you learn best. Personally, I'm not sure text books or lectures do me much good, but exercises in working shit out really do, and generally once I've sussed something once the hard way, it sticks :)
  • NegevPro
    Options
    Offline / Send Message
    NegevPro polycounter lvl 4
    Thanks for all of the great responses guys. Once I get done with my current class I'm going to dive straight into C# (I don't want to risk mixing two languages' syntax). I also learn best by just diving into projects. I tried reading the textbook they told us to read but it's really quite shit, haha.

    I was looking at the various CS tracks available at my school (and thinking about the 3D graphics track). What do you guys think about discreet structures? Important, not important? I was talking to some upper classmen as my goal is to take the hardest teachers for the most important classes so I could learn the material really well but a lot of people are telling me that they hated the courses on discreet structures and that they are useless. Is this true at all?

    Thanks again!
  • aleksdigital
    Options
    Offline / Send Message
    [ame="http://www.youtube.com/watch?v=dvwkaHBrDyI"]Richard Stallman The Best Way to Learn Programming How Professors Can Teach it Better - YouTube[/ame]
  • andrnick7
    Options
    Offline / Send Message
    Negety, I would advise working on a development team that you're going into. Example: A game Project, you see someone working on a game project ask to put in as extra support if they already have a professional coder and see how he does his thing. You'll learn alot from a personal mentor, by the way, what programming language are you learning?
  • Farfarer
    Options
    Offline / Send Message
    Pick something hard and try and code it. Bit by bit. Plan out how you think it should be done, then try and find ways that similar things have been done before. You should start to see what makes them elegant solutions.

    If you get stuck, rinse Google and stack exchange for all they're worth.

    Chances are, you'll hit a few walls - in your knowledge and in feasibility - and have to work around them or give up. But you'll be better at it than before you started...
  • meshiah
    Options
    Offline / Send Message
    meshiah polycounter lvl 17
    this site is really fun, im no where near coding, and not really interested, but this site made it fun and easy to learn some (most of the languages are there). i hit a wall when trying to do a bunch of math and extrapolation of equations and all that, but learning the code part was easy(and im an art tard).

    http://www.codecademy.com/
  • NegevPro
    Options
    Offline / Send Message
    NegevPro polycounter lvl 4
    That site looks pretty cool meshiah, bookedmarked it :D

    Thanks for the extra tips, I'm not sure how much luck I'd have at finding a personal mentor, I started developing a big unity game when I was a junior in highschool that will hopefully one day be the size of a professional game. I've been working with a team of other dedicated people and we're all working without any kind of money (we're actually spending out of our pocket for assets and licenses and whatnot and it's getting pretty expensive unfortunately.)

    I was hoping to help out with the coding there after getting some C# practice.

    Thanks for all of your help guys, I'm hoping this new information will help me become a better coder. One day I'll hopefully be up to some of your skill levels...or not. A NEGEVPRO CAN DREAM CAN'T HE?
  • Ben Apuna
    Options
    Offline / Send Message
    Not directly gamedev related (or possibly even actual "getting a job" skills related), I've personally found functional programming to be a fascinating topic.

    I suggest SICP as a brain expanding experience. pdf versions, videos. Why learn a crazy language like a LISP? read Beating the Averages, and a quote from How To Become A Hacker: "LISP is worth learning for a different reason — the profound enlightenment experience you will have when you finally get it. That experience will make you a better programmer for the rest of your days, even if you never actually use LISP itself a lot."

    If you think something completely different from imperative OO Java would get you out of your rut then Haskell (or any other functional language) might be a good choice too. Here's a couple of free online books if you are interested: Learn You a Haskell for Great Good, The Haskell School of Music.

    Clojure or Scala might be worth looking into since you are already studying Java. Every so often Coursera runs a free online Scala class.
  • NegevPro
    Options
    Offline / Send Message
    NegevPro polycounter lvl 4
    Ben Apuna wrote: »
    Not directly gamedev related (or possibly even actual "getting a job" skills related), I've personally found functional programming to be a fascinating topic.

    I suggest SICP as a brain expanding experience. pdf versions, videos. Why learn a crazy language like a LISP? read Beating the Averages, and a quote from How To Become A Hacker: "LISP is worth learning for a different reason — the profound enlightenment experience you will have when you finally get it. That experience will make you a better programmer for the rest of your days, even if you never actually use LISP itself a lot."

    If you think something completely different from imperative OO Java would get you out of your rut then Haskell (or any other functional language) might be a good choice too. Here's a couple of free online books if you are interested: Learn You a Haskell for Great Good, The Haskell School of Music.

    Clojure or Scala might be worth looking into since you are already studying Java. Every so often Coursera runs a free online Scala class.
    That's quite a boatload of useful information, thanks for taking the time to write out that post. Considering my free time is limited due to school work, I'm going to wait until winter break before I attempt that course, that way I can work on it on a fairly consistent basis.

    @aleksdigital Thanks for posting that video. I didn't get a chance to watch it until just now since I don't have the wonderful luxury of sound at school. I never thought about practicing that way but it's a very intelligent approach.
  • donaalazen
    Options
    Offline / Send Message
    I think reading and testing are the best way to improve your skills in coding. You need to put your skills to the test to learn more...
  • nyx702
    Options
    Offline / Send Message
    meshiah wrote: »
    this site is really fun, im no where near coding, and not really interested, but this site made it fun and easy to learn some (most of the languages are there). i hit a wall when trying to do a bunch of math and extrapolation of equations and all that, but learning the code part was easy(and im an art tard).

    http://www.codecademy.com/

    Thanks for this share. This seems really interesting.
  • passerby
    Options
    Offline / Send Message
    passerby polycounter lvl 12
    too me programming is just problem solving, just dive head first into a problem, and do some reading and see what you can accomplish.

    Also it is good to return to your early projects from time to time, i have done this, and have been to accomplish the same things with less code, in a faster more elegant way with my new knowledge.
  • teaandcigarettes
    Options
    Offline / Send Message
    teaandcigarettes polycounter lvl 12
    Lots of good info in this thread.

    I've been learning a bit of programming lately as a way to satisfy my game design cravings. I've been making a prototype for a tactical RPG game and I'm quite amazed at how quickly you learn by working on a "real" project, instead of isolated lessons or tutorials.

    The main problem I had with programming was, that I never knew what I needed to learn and what questions I had to ask. I would always get overwhelmed by the amount of available information and give up after a short while.

    When you work on something concrete, you can take things bit by bit, work on individual features and mechanics. Doing things this way, you will put everything you learn into a context and gradually it will become easier to understand what the technical jargon means and why things are done a certain way.

    Keep in mind that I'm still a massive noob at coding and it's not really something I want to specialize in. However, working on a game project is incredibly fun and satisfying. As long as learning is a fun experience, you are bound to learn something new and useful.



    If you decide to go this way, I can recommend GPWiki as a usefull resource.

    http://gpwiki.org/

    Gamedev.net also has some decent information if you are willing to dig.
  • passerby
    Options
    Offline / Send Message
    passerby polycounter lvl 12
    @teaandcigs ya I had much of the same experience, twice when I was younger I tried to learn from lessons and found it useless.

    When I finnaly did learn it was through scripting for Maya. I just wanted to make some simple workflow stuff for Maya and it took off from there. Than after learning a bit of Mel that way I started working on more and more complex stuff and ended up learning several languages. Having a clear goal while you are learning is extremely important, if you are just learning by lessons and aren't applying what you are reading with a real project it won't stick in your head and it will feel like a lot of disjointed ideas and concepts.
Sign In or Register to comment.