Page 2 of 2

Re: Developing problem solving skills

Posted: Mon Oct 12, 2009 5:58 pm
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

Re: Developing problem solving skills

Posted: Mon Oct 12, 2009 7:02 pm
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.

Re: Developing problem solving skills

Posted: Tue Oct 13, 2009 12:30 pm
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.

Re: Developing problem solving skills

Posted: Tue Oct 13, 2009 1:31 pm
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.

Re: Developing problem solving skills

Posted: Tue Oct 13, 2009 1:50 pm
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]