It's funny. At first I learned it on my own, and from books or tutorials from and old magazine COMPUTE! that was out during the commodore64 AppleIIe hay-days. I understood multidimensional arrays, and a lot of brute force methods of solving problems. Of course it seemed OK, as these computers were slow no matter what you did, and you were basically coding in Machine Language. At least any graphic routines. Basic was too slow to even draw characters on the screen and refresh them, without the help of Simon's Basic (which was a basic language extension with machine language on cartridge)
Once I learned the basic concepts, i pretty much stayed with them all the way through my first IBM's and Gwbasic. I didn't really change my programming and thinking style till much later when I was a freshman in Computer Science. Especially my second semester when I was taking advanced C++ and data structures. It was being forced to learn data structures, algorithms, Big O notation, that I really starting making new leaps in design. Especially with Object Oriented rather than procedural, and templates, inheritance polymorphism. blah blah. But really it was learning how to code those data structures on my own (as opposed to MFC) that was the best gift. I understood arrays, but never tried sorting algorithms until then.
I worked with the stack in assembly, but never thought that it could be a programming structure. It didn't exist in basic back then and I never saw an article on anyone coding one.
then
Queues, Binary Search Trees, Linked Lists, Doubley Linked Lists.
I also never even thought about recursion and how many problems could be solved so elegantly.
So anyway it was around that time that I shifted most of what I had self taught, and went back to those ideas and started making improvements. My math skills were sharper, and processing power of today's computers unchained all the hoops I used to have to jump through to blit a darn pixel to the screen.
Unfortunately, I was so comfortable with 2D that it took me a long time to start working in 3D. Which is now. I've read tons about 3D. I've studied models, and looked at modeling programs. Read almost every thread here on 3D. But out of not knowing what I was doing, I never tried it for myself until 2 weeks ago. LOL. I picked back up on DBpro after being away fro more than a year and a half.