Originally posted by Oscar Castillo
Dabbling in languages that are going to be used as nothing more than a stepping stone really is not the way to go as I see it. Any BASIC language would be a real waste, despite there beaing some decent implementations out there.
I don't think a simply C book would be impossible to grasp for a newbie. Starting elsewhere while in the end wanting to end some place totally different would be a waste.
Okay, let's try a realworld example.
Newbie #1 dives into Cocoa from the start. S/he tries to develop a small application, say a text editor, from scratch, without any help from the outside world. Even though the newbie is very smart and has the basic theory of C++ under his/her belt, difficult concepts and programming techniques are either introduced too quickly or seem completely out of reach. It's hard to find peer support at this level because those who have mastered the language rarely have time to help beginners with their questions. Even a small project in Cocoa can be very resource intensive, and rather than the newbie learning in a fun, supportive environment, the frustration becomes overbearing and s/he quits... and becomes indifferent to the idea of programming a computer.
Newbie #2 uses a basic OOP like RealBasic. In one hour s/he has followed the step-by-step instructions in the tutorial on how to build a text editor. Mistakes are made along the way, but because the application is straightforward and simplistic, the newbie is able to correct his/her mistakes easily. The learning process begins. When the app is done, the newbie can try to repeat the process until s/he understands how applications in event-driven software are built. The environment is more supportive because newcomers are more willling to help each other and give advice.
When the newbie has mastered the essentials of this OOP, s/he can try out new projects.
In this stimulating and supportive environment, one of two things may happen... the basic environment will become too simple for the budding developer and s/he "graduates" to Cocoa, or the newbie remains within the basic development environment, trying to improve his/her skills as more of an enjoyable hobby.
When the experienced RB user "graduates" to Cocoa, s/he will have a better understanding of the logic behind the language. Adopting to the new IDE is a challenging transition rather than an learning obstacle. The new Cocoa user is able to join his/her peers at a certain level of understanding, so new techniques and skills can be learned quickly.
Either way I see Newbie #2 more fufilled, and that's why I suggest RealBasic as a starting point for any newcomer to navi-programming.
