Hey guys, For those of you who haven't seen me around before, allow me to introduce myself. I am a 21-year old college student (art major) who has been using Macs ever since my mother bought our first computer back in 1996 (Performa 6400/200, if you remember those!). Since then, I have become something of a computer enthusiast, dabbling in just about anything and everything digital, ranging from modding classic Mac OS/apps/games with ResEdit to web/graphics design to film editing to programming. I've used all versions of Windows and Mac OS from 1996 onward (even the OS X public beta), BeOS PE 5, and several flavors of Linux. My first foray into programming was back when I was around 11 or 12 years old. At that point, the ability to create one's own software was an amazing ability to me, and something I wanted to try. I had read about the various Mac programming tools at the time (Mac Programmer's Workshop and CodeWarrior come to mind), and I even downloaded MPW to toy with it, only to be disappointed that it appeared to be little more than a glorified text editor - keep in mind, though, that tutorials and introductions to C/C++ programming on the Mac were very sparse on the internet back in 2000, so I really had no idea of knowing what the tools were for. Then, one day in 2000 or 2001, I ran across REALBasic... I think it was on a MacAddict software disc. Installed it, fired it up, and was dazzled. It allowed me to build a nice UI as easily as I had created my numerous doodles in ClarisWorks. After a while, I really started catching on to the whole BASIC part of RB and actually created some half-functional programs. RB seemed like magic. However, it wouldn't tide me over forever. Fast forward a year or two. I'm now using OS X 10.0/10.1 and have gotten far enough with REALBasic to really start getting frustrated with its limitations and inability to do seemingly basic things without unnecessarily expensive plugins to make up for the IDE's weaknesses. One morning, out of curiosity I pop in the Developer Tools CD and install them. I fire up Interface Builder and once again am enchanted - "it's like REALBasic, except better!" I thought to myself. Of course, I was gravely mistaken, but that is of no consequence - it marked the beginning of my accumulation of Obj-C/Cocoa experience. Over the past decade, I've dabbled here and there with the language, slowly making progress (though certain individuals have boosted my level a few times). Eventually, I once again got to the point of creating somewhat-functional applications. When working on a project, though, I usually end up hitting something that I can't figure out at that particular moment, stalling its progress. This has resulted in a folder chock full of projects at various states of completion. Now finally, after that lengthy stretch of text, I will mention what I think is my problem. When it comes to Objective-C and Cocoa, most of what I learned, I learned the same way as I had learned HTML: by example. I google "how do I do this", find the solution, put it to use (not just copied and pasted, mind you), and archive it in my head for future times when I need to do that task. Because of this, my mechanical knowledge of the language is weak. While there are exceptions, I don't know why things work the way they do, why one method might be a smarter choice than another, and how the pieces all work with each other. As you might guess, this is a huge problem and often stands in the way of my ability to do basic things in Obj-C. So finally, I ask: How do you guys recommend dealing with this problem? I'm really not sure what to do, so any help would be appreciated. Also, sorry for the huge post. I just felt that it might be necessary to fully understand my current position.