Developing problem solving skills

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

User avatar
Moosader
Game Developer
Game Developer
Posts: 1081
Joined: Wed May 07, 2008 12:29 am
Current Project: Find out at: http://www.youtube.com/coderrach
Favorite Gaming Platforms: PC, NES, SNES, PS2, PS1, DS, PSP, X360, WII
Programming Language of Choice: C++
Location: Kansas City
Contact:

Re: Developing problem solving skills

Post by Moosader »

I feel a bit torn because when I was learning, I didn't have anyone to ask. I weren't even a part of any programming forums, and spent... well, about three years learning about Allegro and then another year learning about structure (This, of course, was on and off due to school always being a bitch, though).

I wrote those shitty old programs where there was a "playerx" and "playery" as integers inside main, even though I had learned about classes (it just wasn't intuitive to me at the time). I learned a little from Loomsoft.net, and the rest from reading through the Quick Reference and making a bunch of sample programs to test stuff out.

While this was good, it was also bad- I started using C++ and Allegro at 16, and my first "finished" game I did when I was maybe 19? Kind of a long stretch of time. And even now I'm just beginning to care for structuring my code and trying to make it nice and "flowing", so I feel a bit ashamed at how long it's taken me, and don't want other peoples to just wander around blindly like I did learning from playing.

At the same time, though, I feel annoyed when people ask me questions that NOW seem obvious to me. Maps, for example. I knew at first they should be some sort of 2D array, and kept building up and testing and seeing how things work until I knew how to create, load, save maps, etc.
I did so much sketching and planning on paper to figure out collision detection, or how to write basic GUIs.

It just doesn't seem like people take time to sit down and logic things out. I don't know if it's 'cuz I was used to doing that sort of thing with math or what.

/ranty
User avatar
Bakkon
Chaos Rift Junior
Chaos Rift Junior
Posts: 384
Joined: Wed May 20, 2009 2:38 pm
Programming Language of Choice: C++
Location: Indiana

Re: Developing problem solving skills

Post by Bakkon »

Moosader wrote:At the same time, though, I feel annoyed when people ask me questions that NOW seem obvious to me.
I think this pretty much pertains to any field. It's a sign that you're more educated than you were once before and that you're actually learning and not just doing by repetition.

I started playing with C++ in my early teens and have just recently started making things that I'm actually proud of. Its nothing to be ashamed of. I didn't really have any formal programming classes until college. One excuse we can lean on is that the internet was as loaded with information as it is today. The young ones here now have video tutorials freely available on YouTube. I would have loved that when I was younger. Just a change in times, I guess.
vargonian
Chaos Rift Cool Newbie
Chaos Rift Cool Newbie
Posts: 60
Joined: Fri Aug 07, 2009 3:34 pm

Re: Developing problem solving skills

Post by vargonian »

Moosader wrote:I wrote those shitty old programs where there was a "playerx" and "playery" as integers inside main, even though I had learned about classes (it just wasn't intuitive to me at the time).
I wouldn't feel too bad about this. You will have so much more insight by learning from experience than someone will have if they're just copying what they're told to do. I was actually planning to give a talk on the value of "failure" to my coworkers until Adam Savage stole my thunder.

I had the exact same experience when I learned about object-oriented programming. I understood what I could do, but not why/when I would do it. It took me a while to finally "get" it. Even reading Design Patterns books is of limited use if you haven't experienced why the alternatives to these patterns suck. And of course, I'm always still learning.

There's something really satisfying to me about cleaning up code and giving it better OOP design. Some people hate that task but I can't get enough of it.
Image
User avatar
Falco Girgis
Elysian Shadows Team
Elysian Shadows Team
Posts: 10294
Joined: Thu May 20, 2004 2:04 pm
Current Project: Elysian Shadows
Favorite Gaming Platforms: Dreamcast, SNES, NES
Programming Language of Choice: C/++
Location: Studio Vorbis, AL
Contact:

Re: Developing problem solving skills

Post by Falco Girgis »

vargonian wrote:I had the exact same experience when I learned about object-oriented programming. I understood what I could do, but not why/when I would do it. It took me a while to finally "get" it. Even reading Design Patterns books is of limited use if you haven't experienced why the alternatives to these patterns suck. And of course, I'm always still learning.

There's something really satisfying to me about cleaning up code and giving it better OOP design. Some people hate that task but I can't get enough of it.
You know, that's exactly how it was for me.

I came from a low-level C background. I grew up working on a Dreamcast with typedef struct, and no member functions. I later "learned" C++ in school. I knew what inheritance was, I knew what polymorphism was, I knew encapsulation--but I didn't know how to properly apply these things to better my code. Learning something in school (and even making As in it) means absolutely nothing in the real world.

Sure, I had trivial little inherited classes every now and again, but for the most part, I treated C++ as if it were C with member functions. Slowly but surely I finally understood how to use an OO paradigm to effectively make my life easier and my code cleaner.

They say that learning a procedural language such as C first will screw up your ability to program in an object-oriented environment. To an extent I agree--it would have been easier to learn "good" C++ without a C background. But now that I had to learn good design through my own trials and tribulations (rather than a book), I feel like I have become a better programmer for it.

OO isn't something that you employ just to employ. It has a reason, and it has a purpose.

Not to mention I am also fully capable of writing an application in straight C when the task requires it.
User avatar
MarauderIIC
Respected Programmer
Respected Programmer
Posts: 3406
Joined: Sat Jul 10, 2004 3:05 pm
Location: Maryland, USA

Re: Developing problem solving skills

Post by MarauderIIC »

GyroVorbis wrote:I finally understood how to use an OO paradigm to effectively make my life easier and my code cleaner.
You're welcome.
( "I would say that, given the events that preceded it, the couple hundred years or so, maybe we're about even."
http://www.familyguyscripts.com/S05E09_ ... Rupert.php )

[yes, just kidding]
I realized the moment I fell into the fissure that the book would not be destroyed as I had planned.
Post Reply