Programming Forums
User Name Password Register
 

RSS Feed
FORUM INDEX | TODAY'S POSTS | UNANSWERED THREADS | ADVANCED SEARCH

Reply
 
Thread Tools Display Modes
Old Dec 17th, 2007, 3:11 PM   #1
wannabe7
Newbie
 
Join Date: Dec 2007
Posts: 16
Rep Power: 0 wannabe7 is on a distinguished road
Learning curve for C++ ?

Hi, I am young (16) but very interested in C/C++ programming langauages. I am also interested in 3D programming. I am just starting out and would like some input. Which Language is easiest to learn? What will serve me best in the long run? How long does it take a typical person to learn a language and be proficient at it?

Thank you very much!
wannabe7 is offline   Reply With Quote
Old Dec 17th, 2007, 4:19 PM   #2
MiKuS
Hobbyist Programmer
 
Join Date: Jun 2007
Posts: 134
Rep Power: 2 MiKuS is on a distinguished road
Re: Learning curve for C++ ?

The learning curve for C/C++ is steep and the learning curve for programming (in general) is also steep.

I usually suggest to most people to start out with python as it's learning curve isn't as steep as C/C++, theres lots of example code and a VERY active community.

The reason i direct people to python is because programming isn't only knowing the language inside out, but also thinking in a certain way. With python it's easier to turn your solution into code, because you don't need to worry about rules and syntax too much.

Once you understand Python you would then move on to C/C++

If you REALLY want to start out with C++ i suggest reading a primer then getting stuck into some coding.

Whatever language you start out with you will need to breathe, sweat and dream code for a while to understand it.
MiKuS is offline   Reply With Quote
Old Dec 17th, 2007, 5:18 PM   #3
mackenga
Professional Programmer
 
Join Date: Mar 2005
Location: Glasgow, Scotland
Posts: 317
Rep Power: 4 mackenga is on a distinguished road
Re: Learning curve for C++ ?

I won't try to dissuade you from trying Python for starters - I think it's an excellent choice. 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 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.

Having said that I'd basically second the Python suggestion; I haven't actually used it myself yet but have had a couple of brief brushes with it and I'm interested and have a generally very good impression of the language, especially for newcomers to programming.
__________________
"I'm not a genius. Why do I have to suffer?"
mackenga is offline   Reply With Quote
Old Dec 17th, 2007, 6:47 PM   #4
Jessehk
The Oblivious One
 
Jessehk's Avatar
 
Join Date: May 2005
Location: Ontario, Canada
Posts: 644
Rep Power: 4 Jessehk is on a distinguished road
Re: Learning curve for C++ ?

My own impression is that to write programs in C++ is easy. To write correct programs on the other hand is very difficult. There are many tricks and best practices and a large number of common pitfalls. If you're interested in 3D programming though, I don't think there are many alternatives.

I agree with mackenga on C. You can do lots of fun stuff with C (for example, the typical exercise of writing a linked-list structure), but it mostly depends on your idea of fun.
__________________
Dr. Zoidberg: [ecstatic] I'm going to a movie... with FRIENDS!
Jessehk is offline   Reply With Quote
Old Dec 17th, 2007, 8:31 PM   #5
Ancient Dragon
PFO God In Training
 
Ancient Dragon's Avatar
 
Join Date: Jun 2005
Location: near St Louis, MO. (USA)
Posts: 547
Rep Power: 4 Ancient Dragon is on a distinguished road
Re: Learning curve for C++ ?

I've been programming since early 1980s and I think I am still learning You will never ever get to the point where you can say "I've learned everything possible about C language" because there will always be someone else who can teach you new tricks.

To learn it well enough that you don't have to read a reference many for every keyword you want to use: Probably a year or less depending on how fast you can learn something.
Ancient Dragon is offline   Reply With Quote
Old Dec 17th, 2007, 8:55 PM   #6
09jyoung
codemaniac
 
Join Date: Dec 2007
Posts: 9
Rep Power: 0 09jyoung is on a distinguished road
Re: Learning curve for C++ ?

Any language you program in will take time to learn. I started off in c++ just under a year ago and learned the basic language in under one and a half months using only google and dev-c++, but gained more and more experience as time went on. Having said that, i dont know much about 3d programming, but i wish you luck.
09jyoung is offline   Reply With Quote
Old Dec 18th, 2007, 5:26 AM   #7
Kuryn
Newbie
 
Join Date: Dec 2007
Posts: 14
Rep Power: 0 Kuryn is on a distinguished road
Re: Learning curve for C++ ?

I would recommand you learn C first before you just to C++. The only thing about C is that C99 isn't really supportive world wide. Thats the only bad thing. Pick up a book on C89 and you'll be find. And stick with C for about a year then move on to C++. Cause once you have a grasp of C. It will be easy to move to C++. Except you'll have to understand that C++ is about Object Oriented(sp?) Programming and C is Structured Procedure. Thats what made me give up on C++ when I first started was because of the classes. But I understood it from learning C#. But, I'm whatcha call a slow learner so thats why its harder for me.

Game programming like DirectX and OpenGL, is awesome. I love and and miss it since my computer is crappy and won't support DirectX 9 and 10. Stupid motherboard. But if you really wanna go that way. Get a DirectX 10 card and make sure its good. And learn Linear Algebra. But DirectX is mainly C++ and OpenGL is mainly C, but can be used in C++ also. But don't expect to jump into that all that fast. Just take your time with the language and you'll get there sooner than you think it will. Just be patient, it's no contest to see who gets there quicker, cause you will screw up the whole point of the language and will never succeed at it. But thats just my opinion.
Kuryn is offline   Reply With Quote
Old Dec 18th, 2007, 5:58 AM   #8
grumpy
Programming Guru
 
grumpy's Avatar
 
Join Date: Jun 2005
Location: Adelaide, South Australia
Posts: 1,223
Rep Power: 5 grumpy is on a distinguished road
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
Old Dec 18th, 2007, 8:20 AM   #9
Ancient Dragon
PFO God In Training
 
Ancient Dragon's Avatar
 
Join Date: Jun 2005
Location: near St Louis, MO. (USA)
Posts: 547
Rep Power: 4 Ancient Dragon is on a distinguished road
Re: Learning curve for C++ ?

Quote:
Originally Posted by grumpy View Post
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.
Absolutely -- and very small example programs are used by experienced programmers to get a particular algorithm working correctly or to learn new ways of doing old things. Do not underestimate the power of small programs! I'd much rather debug a small program to get the algorithm correct then debug a huge program for that.
Ancient Dragon is offline   Reply With Quote
Old Dec 18th, 2007, 10:12 AM   #10
Narue
Professional Programmer
 
Narue's Avatar
 
Join Date: Sep 2005
Posts: 419
Rep Power: 4 Narue is on a distinguished road
Re: Learning curve for C++ ?

>I would recommand you learn C first before you just to C++.
Why? I agree that one should learn both, but using one as a stepping stone to another is silly because learning how to write good C won't teach you how to write good C++, and vice versa. You'd be better off just starting with C++ if that's what you wanted to learn in the first place.

>The only thing about C is that C99 isn't really supportive world wide.
Fortunately, using a safe subset of C89 and C99 means you can write portable code now but still be prepared for when C99 compilers become widespread.

>Cause once you have a grasp of C. It will be easy to move to C++.
That's BS. Even a C expert can be confused with all of the features and paradigms that aren't in C. What's worse is that by learning C you'll acquire habits that are good in C but bad in C++. Save yourself the unlearning and just learn C++ straight away.

>Except you'll have to understand that C++ is about Object
>Oriented(sp?) Programming and C is Structured Procedure.
There's more to C++ than OOP.
__________________
Even if the voices aren't real, they have some pretty good ideas.
Narue is offline   Reply With Quote
Reply

Bookmarks

« Previous Thread in Forum | Next Thread in Forum »

Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Can you recommend the best compiler & learning environment? Friendship C++ 37 May 19th, 2006 4:41 AM
Learning C before C++ - Important? meverha1 C++ 18 Nov 13th, 2005 6:20 AM
Is learning JavaScript worth it? MrMan9879 JavaScript and Client-Side Browser Scripting 18 Sep 26th, 2005 1:26 PM
A Python program for learning Gilward Kukel Existing Project Development 4 Sep 19th, 2005 10:41 AM
Learning and Programming Perl G.I.Josh Perl 2 Mar 23rd, 2005 1:48 PM




DaniWeb IT Discussion Community
All times are GMT -5. The time now is 11:01 PM.

Powered by vBulletin® Version 3.7.0, Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Copyright ©2007 DaniWeb® LLC