Programming Beginner

J

Joshua Rulz

Hi, i want to learn to program im quite skilled with computers and want
to learn c++. is there anyone who can teach me or tell me a good
website to learn it?

all replies will be appreciated.
 
M

Markus Becker

Joshua Rulz said:
Hi, i want to learn to program im quite skilled with computers and want
to learn c++. is there anyone who can teach me or tell me a good
website to learn it?

Gogineni mentioned what seems to be a good site, but:

1) be prepared for a long, long (and steep) learning
curve.
2) being skilled with computers does not mean being
able to learn programming fast. I'm also quite
skilled in driving, but that does not mean I can
build good cars :)

This does not mean you should not try it!

Markus
 
A

Alf P. Steinbach

* Joshua Rulz:
Hi, i want to learn to program im quite skilled with computers and want
to learn c++. is there anyone who can teach me or tell me a good
website to learn it?

Your best bet is a book such as "You can do it!" or (if you're not a
complete beginner) "Accelerated C++".

Failing that, or as additional material, the only known nearly correct
C++ tutorial on the web is

<url: http://home.no.net/dubjai/win32cpptut/html/>.
 
D

Divick

If you are familiar with C then the definitive guide would be Thinking
in C++ by Bruce Eckel.

If you have NEVER programmed before with any other object language and
you want to learn object oriented programming then first learn Java
which is easier to learn than C++ and later you can learn C++.

If you HAVE programmed in any other object oriented language and you
have not programmed in C then first learn C and then pointer
fundamentals which are almost common in both C and C++ and then move on
to learn the advanced concepts of C++.

Divick
 
B

Ben Pope

Divick said:
If you have NEVER programmed before with any other object language and
you want to learn object oriented programming then first learn Java
which is easier to learn than C++ and later you can learn C++.

Why learn Java first?
If you HAVE programmed in any other object oriented language and you
have not programmed in C then first learn C and then pointer
fundamentals which are almost common in both C and C++ and then move on
to learn the advanced concepts of C++.

Why learn C first?

C++ is a different beast to both Java and C, there is no point in
learning either of those two languages first.

Ben Pope
 
D

Divick

Cool down man cool. There is no need to start holy war over this. It is
a very subjective issue. Why to program in Java or C is based on my
personal experience, which would definitely differ from person to
person. I can definitely give you 100 reasons / logic to do so but what
matters in the end is to get job done.

One such reason is that you get to know the beauty of certain thing
only when you know what is worse or better than it. If you have not
programmed in other languages, then you don't really have that
experience which can differentiate between good and bad.

Well I don't want to delve in the philosophy of language design but I
think there are definitely certain things that are better done in some
language than other.

I would also answer you questions:
Because it is easier to learn than C++. There are no pointers and hence
you tend to grasp the object oriented fundamentals more easily than if
you program in C++. If you don't care about Object oriented
fundamentals and you want to program in C++ then I would say you don't
really need C++ and hence C would suffice. This also answers your next
question.

Above all debugging Java is very very easy. You don't need memory
debugging tools. You don't need to care too much about memory
management. Definitely it has again its pros and cons but for a
beginner in programming it serves the purpose.

And as far as FAQ's go, I don't think they are the words of THE GOD and
hence there are certain things in FAQ at parashift to which someone may
or may not agree.

And if still you are not happy then sorry I am not a conformist and
even I don't expect someone else to confirm to my ideas.

Cheers,
Divick
 
R

red floyd

Divick said:
Because it is easier to learn than C++. There are no pointers and hence
you tend to grasp the object oriented fundamentals more easily than if
you program in C++. If you don't care about Object oriented
fundamentals and you want to program in C++ then I would say you don't
really need C++ and hence C would suffice. This also answers your next
question.

The problem with learning Java first is that you then have to un-learn
it. If you follow this group, you would note that many
questions/issues/problems are "I'm trying to do this the Java way and it
won't work. Why?"
 
M

Mike Wahler

Because it is easier to learn than C++. There are no pointers and hence
you tend to grasp the object oriented fundamentals more easily than if
you program in C++. If you don't care about Object oriented
fundamentals and you want to program in C++ then I would say you don't
really need C++ and hence C would suffice. This also answers your next
question.

This paragraph imo reveals a deep misunderstanding of what
C++ really is and what it can be used for.

-Mike
 
B

Ben Pope

Divick said:
Cool down man cool.

I believe you are referring to me, you left off the attribution. I'm cool!
> There is no need to start holy war over this. It is
a very subjective issue.

I intended no such thing, I was just short with my answers.
> Why to program in Java or C is based on my
personal experience, which would definitely differ from person to
person. I can definitely give you 100 reasons / logic to do so but what
matters in the end is to get job done.

I learnt Java first, and then C, and then C++. I think I was lead
astray in both situations.

Regarding C, there are more elegant ways of solving problems as simple
as the classic "Hello World" in C++, than in C, so if you start with C,
you're already on the wrong foot. Then we move onto arrays vs.
std::vector, and char* (char[]) vs. std::string. From the moment you
start learning C, you must unlearn many aspects and re-learn them in
C++, because the C++ way is neater and safer.

With Java, it's simplicity is great, but when you come to learn C++, you
realise that there are many paradigms in Java that have neater
equivalents in C++. Take for example exceptions and "finally", ok, it
solves some problems, but not all - RAII is SO much neater. Because
Java is less expressive than C++, it can be seen as simpler. The
problem comes when means you forget to do things in C++ when you start
writing code, like managing memory properly.
One such reason is that you get to know the beauty of certain thing
only when you know what is worse or better than it. If you have not
programmed in other languages, then you don't really have that
experience which can differentiate between good and bad.

Yeah, but there is only "One true way" :p.

Seriously though, it's a waste of time, if you want to learn C++, learn
C++. It's easier than learning some concepts from a bunch of languages,
and then un-learning them to do C++.
Well I don't want to delve in the philosophy of language design but I
think there are definitely certain things that are better done in some
language than other.

Of course. C++ is not a universal hammer. C is good for some things -
usually in preference to C++ only when you don't have a C++ compiler for
your platform, IMO, but thats me.

Java is equally good for LOTs of things. I'm using it for some
web-application stuff I'm doing, and I prefer it to C++ in that case,
because there is an existing framework that already does 90% of what I
need. It's also fast enough, but it's not going to cut it doing
embedded network stacks, which is what I've been using C to do.
I would also answer you questions:

Because it is easier to learn than C++. There are no pointers and hence
you tend to grasp the object oriented fundamentals more easily than if
you program in C++. If you don't care about Object oriented
fundamentals and you want to program in C++ then I would say you don't
really need C++ and hence C would suffice. This also answers your next
question.

Equally there are better languages than Java for learning "pure" OO.
They're not as readily available though, I'll admit.
Above all debugging Java is very very easy. You don't need memory
debugging tools.

Debugging C can be tricky on an embedded platform, especially as the
probe effect tends to be much more prevalent, and the task is often
inherently real-time. Debugging C++ in MSVC is at least as easy as Java
in eclipse / netbeans. If you learn RAII soon, and use auto_ptr, or
some other, possibly more suitable, smart pointer, then C++ is almost as
easy as Java in terms of resource management.
> You don't need to care too much about memory
management.

In fact, I would like to go one step further and say that learning C, or
at least having knowledge of C, possibly introduces some peoples need to
use pointers everywhere. If you told everybody that a pointer should
not be used, and instead to wrap it in a boost::shared_ptr memory
management would be as easy as Java. Like I said, learning RAII from
early on is very beneficial.
> Definitely it has again its pros and cons but for a
beginner in programming it serves the purpose.

Of course.
And as far as FAQ's go, I don't think they are the words of THE GOD and
hence there are certain things in FAQ at parashift to which someone may
or may not agree.

Of course. I didn't mention the FAQ, though.
And if still you are not happy then sorry I am not a conformist and
even I don't expect someone else to confirm to my ideas.

Don't be too concerned about my happiness, and certainly not to
apologise for your opinion! It's as valid as anybody else's, even if
it's wrong (joke!) :p

I'm happy to agree to disagree on this issue, of course... I just feel
it necessary to present both sides of the coin.

I think that there are LOTS of things in both C and Java which can be
misleading and/or dangerous (in terms of defined behaviour) when applied
to C++. Learn C++ the C++ way first, and then by all means see what
else is out there when the need arises. This is also more pragmatic as
you can get started with your C++ coding today, rather than in a years
time when you've half-heartedly learnt C and Java.

Ben Pope
 
B

Ben Pope

Divick wrote
Cool down man cool
I believe you are referring to me, you left off the attribution. I'
cool
There is no need to start holy war over this. It i
a very subjective issue
I intended no such thing, I was just short with my answers
Why to program in Java or C is based on m
personal experience, which would definitely differ from person t
person. I can definitely give you 100 reasons / logic to do so bu wha
matters in the end is to get job done
I learnt Java first, and then C, and then C++. I think I was lead
astray in both situations

Regarding C, there are more elegant ways of solving problems as simpl

as the classic "Hello World" in C++, than in C, so if you start wit
C,
you're already on the wrong foot. Then we move onto arrays vs.
std::vector, and char* (char[]) vs. std::string. From the moment you
start learning C, you must unlearn many aspects and re-learn them in
C++, because the C++ way is neater and safer

With Java, it's simplicity is great, but when you come to learn C++
you
realise that there are many paradigms in Java that have neater
equivalents in C++. Take for example exceptions and "finally", ok, i

solves some problems, but not all - RAII is SO much neater. Because
Java is less expressive than C++, it can be seen as simpler. The
problem comes when means you forget to do things in C++ when you star

writing code, like managing memory properly
One such reason is that you get to know the beauty of certain thin
only when you know what is worse or better than it. If you have no
programmed in other languages, then you don't really have tha
experience which can differentiate between good and bad
Yeah, but there is only "One true way" :p

Seriously though, it's a waste of time, if you want to learn C++
learn
C++. It's easier than learning some concepts from a bunch o
languages,
and then un-learning them to do C++
Well I don't want to delve in the philosophy of language design bu
think there are definitely certain things that are better done i som
language than other
Of course. C++ is not a universal hammer. C is good for some thing
-
usually in preference to C++ only when you don't have a C++ compile
for
your platform, IMO, but thats me

Java is equally good for LOTs of things. I'm using it for some
web-application stuff I'm doing, and I prefer it to C++ in that case,
because there is an existing framework that already does 90% of what

need. It's also fast enough, but it's not going to cut it doing
embedded network stacks, which is what I've been using C to do
I would also answer you questions
Why learn Java first

Because it is easier to learn than C++. There are no pointers an henc
you tend to grasp the object oriented fundamentals more easily tha i
you program in C++. If you don't care about Object oriente
fundamentals and you want to program in C++ then I would say yo don'
really need C++ and hence C would suffice. This also answers you nex
question
Equally there are better languages than Java for learning "pure" OO.
They're not as readily available though, I'll admit
Why learn C first

Above all debugging Java is very very easy. You don't need memor
debugging tools
Debugging C can be tricky on an embedded platform, especially as the
probe effect tends to be much more prevalent, and the task is often
inherently real-time. Debugging C++ in MSVC is at least as easy a
Java
in eclipse / netbeans. If you learn RAII soon, and use auto_ptr, or
some other, possibly more suitable, smart pointer, then C++ is almos
as
easy as Java in terms of resource management
You don't need to care too much about memor
management
In fact, I would like to go one step further and say that learning C
or
at least having knowledge of C, possibly introduces some peoples nee
to
use pointers everywhere. If you told everybody that a pointer should
not be used, and instead to wrap it in a boost::shared_ptr memory
management would be as easy as Java. Like I said, learning RAII from
early on is very beneficial.
Definitely it has again its pros and cons but for a
beginner in programming it serves the purpose.
Of course.
And as far as FAQ's go, I don't think they are the words of THE GOD and
hence there are certain things in FAQ at parashift to which someone may
or may not agree.
Of course. I didn't mention the FAQ, though.
And if still you are not happy then sorry I am not a conformist and
even I don't expect someone else to confirm to my ideas.
Don't be too concerned about my happiness, and certainly not to
apologise for your opinion! It's as valid as anybody else's, even if
it's wrong (joke!) :p

I'm happy to agree to disagree on this issue, of course... I just feel

it necessary to present both sides of the coin.

I think that there are LOTS of things in both C and Java which can be
misleading and/or dangerous (in terms of defined behaviour) when
applied
to C++. Learn C++ the C++ way first, and then by all means see what
else is out there when the need arises. This is also more pragmatic
as
you can get started with your C++ coding today, rather than in a years

time when you've half-heartedly learnt C and Java.

Ben Pope
 
R

Ron House

Divick said:
Because it is easier to learn than C++.

Really? The class library is, imho, the killer in Java, because it is so
interconnected that you must understand the concept of OO to come to
grips with it. At the same time, you are trying to learn the real basics
like io, variables, if statements... This is a real information
overload, and simplifying it means leaving out or glossing over real
issues. That's storing up misunderstandings for later.
There are no pointers and hence

There certainly are pointers, but you can't see them. :)

Again imho, hiding the pointer, having some names refer to what are
actually pointers and some to the real object, just adds whole layers of
confusion that a beginner can do without. Visible pointers are, imho,
much clearer than the opposite. The killer in C and C++ is not the
visible pointer, but the exposure of the machine implementation of the
concept in the high level language. C++ has tried its best to close this
down, but the underlying problem from C is still there somewhat. But
well-taught programming style can avoid hitting the low level stuff.
you tend to grasp the object oriented fundamentals more easily than if
you program in C++.

I see no reason why this should be true.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,012
Latest member
RoxanneDzm

Latest Threads

Top