Improving problem solving skills

Started by
9 comments, last by Reggi 14 years, 10 months ago
I've been interested in programming and game development for a year or two now but I only started to take it seriously recently. I have a friend who used to program vigorously when he was younger. When I ask him a question on how a certain feature of C++ works such as pointers, he tells me I'm getting ahead of myself and before I learn how to use such features I should learn how to solve problems instead. Such as the problems shown in the ACSL competition http://www.acsl.org/samples.htm How would I improve my skill in solving problems such as those?
Advertisement
If you have a question, you can ask in Gamedev's community chatroom. Or you can ask it here. [smile]

Quote:Original post by Reggi
When I ask him a question on how a certain feature of C++ works such as pointers, he tells me I'm getting ahead of myself and before I learn how to use such features I should learn how to solve problems instead.


My question is, who's to decide you're "getting ahead of yourself"? You, or your friend?

That aside, you can try out some of the simpler exercises on wikibooks.
I) Read some books about formal logic, algorithms and data structures, etc.
II) Program a lot.

But pointers are not *so* hard, really.
Me :P" But I'm still interested in improving my skill in solving problems. It seems like a useful skill to have.
Quote:Original post by Reggi
I'm still interested in improving my skill in solving problems.


Algorithm design is like math. While it's possible to guesstimate 2+5 or 3*2, some fundamental rules have been laid down as to how every such equation is solved.

Programming competitions require knowledge of fundamental algorithms and data structures. Then it's just a matter of correctly identifying the problem, and applying a certain technique.

You can start by looking at list of algorithms. These cover the fundamentals (anyone studying CS is expected to be fully familiar with majority of them). Second part are data structures. While full knowledge of these isn't required, it's incredibly helpful for solving competitions.

It really comes down to this. Someone who wants to be a writer needs to become familiar with grammar and spelling, as well as different styles. An painter needs to be familiar with various techniques, styles as well as how to use a brush. Same for mathematician, physicist, doctor, etc....

Then, comes practice.... Years and years....
project euler has a nice list of problems that start out very simple but become much harder in the end. You kind of need to know how to program in some language to do them, and I suggest learning Python, for project euler and for game development. :)

EDIT: Oh and I forgot to mention, you improve by practising, like with anything else.
Quote:Original post by tufflax
EDIT: Oh and I forgot to mention, you improve by practising, like with anything else.

Exactly. I was going to suggest the Brain Age games from Nintendo, and the Professor Layton games too. Sudoku and crosswords. The Kick In The Seat Of The Pants books and cards by I forget his name, just Google it.

-- Tom Sloper -- sloperama.com

Thanks for the help! Project Euler looks like a great site.

(How can I quote?)
Conceptual Blockbusting was an interesting book. Maybe you can pick it up at the library.
Quote:Original post by Reggi
(How can I quote?)


By practicing problem solving skills. Quoting is quite easy, try to figure it out.

This topic is closed to new replies.

Advertisement