View Single Post
Old Dec 18th, 2007, 6:58 AM   #8
grumpy
Programming Guru
 
grumpy's Avatar
 
Join Date: Jun 2005
Location: Adelaide, South Australia
Posts: 1,260
Rep Power: 5 grumpy will become famous soon enough
Re: Learning curve for C++ ?

Quote:
Originally Posted by mackenga View Post
But I did think it would be worth adding that while I agree that the learning curve for C++ is steep, that's not quite true for C. C is a small, neat and simple language; what puts people off isn't so much the learning curve but the relative difficulty of doing the sorts of things that newcomers to programming wish was easy (like GUI programs, or network programming).
C, about 20 years or so ago, was a small, neat, and simple language. With the advent 1989/1990 C standard, that was really no longer true; it became a fairly large and complex language and it became larger and more complex again with the 1999 C standard. C++, on the other hand, is a larger and more complex language than C.

I do agree that inability of C or C++ to support GUI, out of the box (so to speak), is something that puts newcomers off. Although I'd argue that, even with languages/environments that have better support for GUI, GUI programming also involves a fairly steep learning curve, if one is to do it well.

There are always exceptions, but beginners don't tend to want to do network programming, in the pure sense (working with sockets, etc). When a beginner says they want to do "network programming" they usually mean they want a program that can do higher level web-related functions (eg retrieve an email, render a web page, etc) rather than the lower level usage.
Quote:
Originally Posted by mackenga View Post
C is actually quite a good starter language if you don't mind writing a lot of *very* simple programs at first. Which really, you're going to have to do anyway.
I'd actually suggest that writing simple programs is the way to start learning programming, regardless of what language you adopt first. Very few people have the ability, unless they have hands on experience with programming, of picking up a textbook about the theory of programming, coupling that with some basic reading about their language of choice, and then writing non-trivial code from scratch.

Even for someone experienced with programming, mucking around with simple examples is actually a useful way to start learning basic syntax and grammar rules of a new language. Learning how to use a new language effectively (eg the techniques that work well in that language which don't necessarily work with other languages) takes more effort than that though.
grumpy is offline   Reply With Quote