View Single Post
Old Apr 12th, 2005, 3:46 PM   #4
Mjordan2nd
The Supreme Ruler
 
Join Date: May 2004
Location: Houston
Posts: 1,476
Rep Power: 6 Mjordan2nd is on a distinguished road
I'm going to go against what everyone is saying here, and say, start with C. I think that if you start with OO, you will end up sticking with that, and there's a possibility that you'll never learn procedural programming. Of course, you can do procedural programming with C++, but most C++ books you pick up will teach you OO right off the bat.

I have nothing against OO, obviously, I use and like Java a lot, which is heavily oriented to OO, but I personally believe that starting with OO is not the way to go. First and foremost, when writing procedural code, you are in control of your program, not some engine running in the back. I personally find it much more rewarding to be in complete control of your code rather than having your code based on some other code, which is based on some other code, which goes on and on in a nearly endless pattern.

Secondly, writing procedural programs will force you to learn certain basic algorithms, which I believe are essential to a good programmer. It's sad, but in my Computer Science three class, there are quite a few students who don't know how to properly work a bubble-sort. Of course, this is through no fault of their own. We use Java, and it has a very simple sort() method in the Collections class, and that's all that they know how to use. They know how to use the sort() method, they don't know how it works. When learning C, you will almost definitely learn the basic sort and search algorithms.

Furthermore, I think it will be easier to learn procedural programming as a first language than it will be to learn OO. I have seen many instances where people portray C as a cryptic language which is arduous to learn. This is not true. When your computer functions, it thinks procedurally; one task after the next. Your brain functions in a similar manner. C was the first real language I started out with, and with a good book, it's no problem to learn at all, perhaps easier than C++.

The knowledge you gain from learning C is not going to fade out once you move on to OO, either. Learning C will teach you the fundamentals of programming, and you will carry these basic skills with you to whichever language you decide to go on to, aside from Assembly, Lisp, or some other esoteric languages like Brainfuck. You will find heavy application of the knowledge you gained while learning C, even when you move on to C++, and other high level languages.

Like I said before, I have nothing against OO programming. C++ is a great language, and if that's the way you want to go, then I say go for it wholeheartedly, but in my humble opinion, I think it's better for a student to start with procedural programming and then move on to OO. Once you pick up C, you will probably be able to pick up C++ in less than a week as a second language, if you applied yourself to it. They're both great languages, and they would both be good to start with, it's really all up to you.
__________________
"Every gun that is made, every warship launched, every rocket signifies, in the final sense, a theft from those who hunger and are not fed, from those who are cold and are not clothed. The world in arms is not spending money alone. It is spending the sweat of its laborers, the genius of its scientists, the hopes of its children." - Dwight D. Eisenhower

Last edited by Mjordan2nd; Apr 15th, 2005 at 11:25 AM.
Mjordan2nd is offline   Reply With Quote