Page 1 of 1

Improving as a Programmer: Beginner to Intermediate Jump

Posted: Sat May 03, 2014 9:44 pm
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?

Re: Improving as a Programmer: Beginner to Intermediate Jump

Posted: Sun May 04, 2014 7:28 am
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.

Re: Improving as a Programmer: Beginner to Intermediate Jump

Posted: Sun May 04, 2014 9:46 am
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.

Re: Improving as a Programmer: Beginner to Intermediate Jump

Posted: Sun May 11, 2014 4:59 pm
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.

Re: Improving as a Programmer: Beginner to Intermediate Jump

Posted: Mon May 12, 2014 4:49 pm
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.) ;)