ATTENTION: You are viewing a page formatted for mobile devices; to view the full web page, click HERE.

Other Software > Developer's Corner

The Best Introductory Language

(1/6) > >>

Now I'll just bet the best way to start programming is NOT to jump into C/C++, which was what I did.

...This paper examines several approaches to which programming language is the best, and afterwards gives several useful relations for which languages should come first. Finally it gives a final verdict, defends it and then gives some other good food for thought...

--- End quote ---


Great find, KenR! :up:

Why do you think C++ is not a good beginnig for beginners? Could you tell your own ideas or experiences? I read Horton's books and it seems C++ could be a language for beginning and you can be an expert after 10 years. That is what i want, i dont want to spend time to learn unnecessary languages that i would not use after learning C++.

C is a bad place to jump in, but C++ might actually not be too bad - you could start doing procedural programming and move on from there, but still utilize the safer-and-easier parts of C++ (string, vector, iostreams). I still have a feeling there might be a better place to start, though.

As for i dont want to spend time to learn unnecessary languages that i would not use after learning C++., there's plenty of languages besides C++ that's worth to learn and use in the future... perl, python, lua, anyone?

I am a long time C++ programmer and consider it more my native language than english.  But I would not start with c++ as a beginner, for a few reasons:

1) A major design goal of C++ was to be backward compatible with C.  Because of this, and because it was one of the pioneering object oriented languages, it carries around with it a lot of baggage in terms of idiosyncrasies and ugly illogical design aspects.  These are things that as a coder your learn to ignore and look past, but as a new learner it makes things harder.  It's like learning to congugate irregular verbs in a spoken language.  yuck.

2) C++ was designed with a lot of emphasis on speed and minimal memory use.  While this can be very advantageous in some cases, it means that some things are a little more raw and low-level than a more modern language; again useful for a hardcore coder but perhaps overkill to handle when just learning.  This shows up in things like lack of array boundary checking, which can be deadly to new programmers, who are rightly angry when the computer starts acting weird instead of flagging an error.

3) C++ has no standard user interface library and it's not fun to find and use one -- this can be a killer issue for new coders who want to jump right into GUI programming.  Languages like java and C# are similar to C++ but provide such libraries and can make it easier to transition to gui stuff.

There are more reasons as well, but as a long time programmer, my view can basically be summed up as follows: 95% of learning how to program has nothing to do with what language you use/learn.  The more you learn, the easier it will be to switch to a new language.  Better to pick whatever path gets you into the game and productive.  C++ has some great things going for it, and mastering c++ will serve you well eventually, if only because you'll have an easier time figuring out whats going wrong when something truly goes wrong with your code.


[0] Message Index

[#] Next page

Go to full version