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
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.
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.
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!
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...
http://www.codecademy.com/
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?
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.
@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.
Thanks for this share. This seems really interesting.
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.
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.
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.