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

Improving as a Programmer: Beginner to Intermediate Jump

Postby Oblivionkey21 on Sat May 03, 2014 10:44 pm

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?
Oblivionkey21
Chaos Rift Newbie
Chaos Rift Newbie
 
Posts: 2
Joined: Mon Jan 20, 2014 11:43 pm

Re: Improving as a Programmer: Beginner to Intermediate Jump

Postby ph0sph0ruz on Sun May 04, 2014 8:28 am

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
ph0sph0ruz
Chaos Rift Newbie
Chaos Rift Newbie
 
Posts: 39
Joined: Sat Mar 22, 2014 4:52 am

Re: Improving as a Programmer: Beginner to Intermediate Jump

Postby dandymcgee on Sun May 04, 2014 10:46 am

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:
User avatar
dandymcgee
ES Beta Backer
ES Beta Backer
 
Posts: 4911
Joined: Tue Apr 29, 2008 4:24 pm
Location: New Hampshire

Re: Improving as a Programmer: Beginner to Intermediate Jump

Postby corey__cakes on Sun May 11, 2014 5:59 pm

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.
corey__cakes
ES Beta Backer
ES Beta Backer
 
Posts: 23
Joined: Mon Dec 23, 2013 9:56 pm
Location: Your VCR.

Re: Improving as a Programmer: Beginner to Intermediate Jump

Postby dandymcgee on Mon May 12, 2014 5:49 pm

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:
User avatar
dandymcgee
ES Beta Backer
ES Beta Backer
 
Posts: 4911
Joined: Tue Apr 29, 2008 4:24 pm
Location: New Hampshire


Return to Programming Discussion

Who is online

Users browsing this forum: No registered users and 1 guest

cron