[Scribus] I really shouldn't open my mouth... but I'm going to

Asif Lodhi asif.lodhi
Sun Nov 5 05:22:00 CET 2006


Hi Calum,

On 11/4/06, Calum Polwart <scribus at wittongilbert.free-online.co.uk> wrote:
> On Wed, 2006-11-01 at 08:57 +0800, Craig Ringer wrote:
> Ok - so my first starting point would be to learn some C++ ..................

A very good book that I have found very useful for beginners is "C++:
How to Program" by Deitel & Deitel.  It covers the latest ISO
standard, is easy to go with and also teaches you UML modelling. It's
not that good from the perspective of teaching object-oriented
programming concepts - even though it teaches good UML - but then you
can learn that from other books also.

Another good book, which I have only partially scanned is the "C++ for
Dummies".  This also covers the language in sufficient depth for
beginners.

When you have gone through, at least, a book like "C++: How to
Program" and created a few programs yourself (for your own needs, for
example) then do also consider to learn object-oriented design &
programming concepts from some really good books - such as those by
Booch, Rambaugh, etc.

Basically, C++ is the most complex of all computer programming
languages.  The language detail is so much that a beginner gets lost
in the detail and almost always fails to see the forest for the trees.
 I mean that most C++ books, no matter how hard they try, fail to
teach object-oriented design/programming concepts to beginners - in
addition to teaching them C++ - this is mostly because of the language
detail/complexity.  Personally, I have found that those who learn
other object-oriented programming languages, such as Java, grasp
object-oriented concepts better - because, in other languages, they
have to deal with fewer details - but then some make the mistake of
sticking to those "easy" languages - instead of making a come-back to
C++ and explore it in more detail.

I think, the best way to "really" learn C++ is to read a few
beginners' book, such as the ones I have mentioned above, write a few
programs in it, learn another language like Java (because it has
plenty of stuff to teach you good OO design/programming concepts),
"design"  a good few object-oriented programs/systems, make a
come-back to C++ and use C++ with good GUI libraries such as QT,
SmartWin++, V, etc., read the most important books for experienced C++
programmers ("The C++ Programming Language" by Bjarne Stroustrup - the
language's creator, "C++ Primer: 4th Ed." by Stanley Lipmann", "C++
Strategies & Tactics" by Rob Murray, etc.) and read further books on
design such as "Design Patterns" by Eric Gamma and the other three
authors, etc.

The above sounds like too much but, personally, I have found it to be
a useful path for those who want to "really" learn C++ along with
sound object-oriented design and programming concepts.

In addition, you won't get a very good understanding of the language
and appreciate the way it lets you write efficient programs without
compromising the performance unless you also study the Assembly
language for a microprocessor (such as Intel) and Microprocessor
Architecture for that processor.  You will appreciate the beauty of
C++ the most only after you have learned Assembly language - you'll
truly see as to how it handles the various details of the program
generations and why some of the things are the way they are.

--
Sincerely,

Asif



More information about the scribus mailing list