Improving as a Programmer: Beginner to Intermediate Jump

Whether you're a newbie or an experienced programmer, any questions, help, or just talk of any language will be welcomed here.

Moderator: Coders of Rage

Post Reply
Oblivionkey21
Chaos Rift Newbie
Chaos Rift Newbie
Posts: 1
Joined: Mon Jan 20, 2014 9:43 pm

Improving as a Programmer: Beginner to Intermediate Jump

Post by Oblivionkey21 »

I know asking how to improve yourself as a programmer has been asked before, but a lot of the answers I see are read books or join open source projects. While I'm sure these are great methods, it seems that the books I read give me a knowledge of the language itself, and not how to apply that knowledge. I figure that must be why it's important to look at open source projects, to see code structure and common problem solving methods, but all of the open source projects I've found are too advanced for me, and I can't tell what's going on.

Does anyone know any good resources for me to fix this problem? Maybe an open source project more geared towards a beginner-intermediate skill level? Maybe there are books I could read to help solve ths problem?
User avatar
ph0sph0ruz
Chaos Rift Newbie
Chaos Rift Newbie
Posts: 32
Joined: Sat Mar 22, 2014 3:52 am
Favorite Gaming Platforms: PC,Xbox,Dreamcast
Programming Language of Choice: C,C++
Contact:

Re: Improving as a Programmer: Beginner to Intermediate Jump

Post by ph0sph0ruz »

If I'm learning a new language or architecture I typically look for tutorials (I guess this is similar to books). These explain portions of code but you can ask the author questions if you don't understand it. Also http://www.codeproject.com/ has a ton of articles with source code. Another way to learn is to get source code for a particular technique and step through it trying to understand exactly what is going on during the process.

There's no silver bullet for learning, some folks can learn through books but others need instructor-led classes. I've always been a book learner myself but that doesn't always give you everything because there can be nuances that the book doesn't show and sometimes just talking to other programmers can help you understand concepts better. Youtube is a good resource for some of this but posing questions to forums will also help. There are many folks out there willing to help.
User avatar
dandymcgee
ES Beta Backer
ES Beta Backer
Posts: 4709
Joined: Tue Apr 29, 2008 3:24 pm
Current Project: https://github.com/dbechrd/RicoTech
Favorite Gaming Platforms: NES, Sega Genesis, PS2, PC
Programming Language of Choice: C
Location: San Francisco
Contact:

Re: Improving as a Programmer: Beginner to Intermediate Jump

Post by dandymcgee »

You can't just read a book and expect to understand programming. You need to find a book (or article, or video tutorial, etc.) that builds a small project step-by-step and you need to open your IDE and build that same project step-by-step. It doesn't matter if you copy/paste code, but you need to take a few minutes to FULLY comprehend what the code does and why it's written the way it is before you do.

Even more importantly, you need to tweak the code, play with it, improve it, learn what happens if you change "velocity = 0.5f" to "velocity = 1.5f" or if you change "if (collision)" to "if (!collision)". Once you understand it, define a new goal (e.g. if you're modifying a pong project, add bumpers to the top and bottom of the screen for a 4-player experience, if you're modifying guess-the-number try turning it into hangman) and try to reach that goal.
Falco Girgis wrote:It is imperative that I can broadcast my narcissistic commit strings to the Twitter! Tweet Tweet, bitches! :twisted:
corey__cakes
ES Beta Backer
ES Beta Backer
Posts: 23
Joined: Mon Dec 23, 2013 7:56 pm
Current Project: Canadian Simulator 2017
Favorite Gaming Platforms: GBA, DC, iOS, SNES, WS, 360, N64
Programming Language of Choice: C++, Lua
Location: Your VCR.

Re: Improving as a Programmer: Beginner to Intermediate Jump

Post by corey__cakes »

A teacher once told me that the best way to learn or practice something is to do that something. So if you want to become a better programmer, you should program. Books teach you how to program and there are some programming books specific to game programming, which is a very good way to apply what you know about programming. Of course you're not going to be able to program something as vast and complicated like Minecraft or Final Fantasy. That's why you should start small with something like a Space Invaders clone. In my experience, clones of simple games are your friend when you start out game programming. Then you could maybe make a Super Mario clone, and then maybe a Tetris clone.

A problem with practicing program is that there is a good way to practice and a bad one. When I started out with C++, it seemed like all I needed was an API, classes, loops, if statements, and variables, but C++ has so much more to it than that. There's pointers and polymorphism. To some games, all you need is an API, classes, loops, if statements, and variables. You can program a Space Invaders many ways. Some will be more efficient and nice to your computer than others. This is why it's pretty important to make and study several flowcharts for your programs so you can find what is simplest and easiest to understand to you.

Luckily, you have an account on a programming forum. This is great because you have access to people who know way more about applicable programming than a textbook and you can ask them questions that may seem really dumb. This resource is the greatest.
What do you call a cow with no legs?

Ground beef.
User avatar
dandymcgee
ES Beta Backer
ES Beta Backer
Posts: 4709
Joined: Tue Apr 29, 2008 3:24 pm
Current Project: https://github.com/dbechrd/RicoTech
Favorite Gaming Platforms: NES, Sega Genesis, PS2, PC
Programming Language of Choice: C
Location: San Francisco
Contact:

Re: Improving as a Programmer: Beginner to Intermediate Jump

Post by dandymcgee »

corey__cakes wrote: Of course you're not going to be able to program something as vast and complicated like Minecraft or Final Fantasy.
Sound advice overall, but I LOL'd at this. I would argue that programming Super Mario Bros. would be much more difficult than a simplified Minecraft clone (especially if you're targeting the NES.) ;)
Falco Girgis wrote:It is imperative that I can broadcast my narcissistic commit strings to the Twitter! Tweet Tweet, bitches! :twisted:
Post Reply