As a personal advice, don't go with C++ directly, instead go to C first, learn the basics, how to declare variables, operators, pointers, structures, functions, and when you're proficient enough with it (we all started doing printf's before being able to develop something bigger), learn about C++, methods, attributes, classes, just step by step

(but it's just an advice)

Sorry, but learning C before C++ when you don't know either is *bad* advice, and highly recommended against by both the creator of C++ and the C++ FAQ (Parashift).
C++ is *not* a "better C" but is instead a whole different language with a completely different paradigm. Also, standard C++ has no notion of methods, maybe you were thinking of Java.

Sorry, but learning C before C++ when you don't know either is *bad* advice

I don't agree with you, any language can be learned from the ground up if you're able to understand its principles. C was the first language I learned and I didn't had any problem working with it.

Quote:

C++ is *not* a "better C" but is instead a whole different language

Haven't said C++ is a better C, but it's not a whole different language per se, it's more like an extension to C, and remember variables, macros, defines, operators and structures are the same from C to C++ (the latter adds OOP-related practices, ok... but the basics remains the same).

Quote:

Also, standard C++ has no notion of methods, maybe you were thinking of Java.

No, I was explicitly thinking on C++ when I talked about a method...

Don't take me wrong with this answer but... didn't anyone told you variables and functions inside a class are respectively called 'attributes' and 'methods'?

Looks like a weird statement for me, to be honest, although no offense intended

I don't agree with you, any language can be learned from the ground up if you're able to understand its principles. C was the first language I learned and I didn't had any problem working with it.

Haven't said C++ is a better C, but it's not a whole different language per se, it's more like an extension to C, and remember variables, macros, defines, operators and structures are the same from C to C++ (the latter adds OOP-related practices, ok... but the basics remains the same).

No, I was explicitly thinking on C++ when I talked about a method...

Don't take me wrong with this answer but... didn't anyone told you variables and functions inside a class are respectively called 'attributes' and 'methods'?

Looks like a weird statement for me, to be honest, although no offense intended

C++ *is* an entirely new and different language, and the creator of C++ says as much. It is *not* a super set of C, nor is it C with extensions. No doubt C influenced C++, much as how C++ might have influenced Java, but so what? Languages very often are influenced by previous others.

The C++ ISO standard does not use the term "method" - what you describe is called a "member function." Remember, the C++ standard (a document, basically) is the authoritative source for C++, not the misinformed people who were babbling on to you using incorrect terminology.

C++ *is* an entirely new and different language, and the creator of C++ says as much. It is *not* a super set of C, nor is it C with extensions. No doubt C influenced C++, much as how C++ might have influenced Java, but so what? Languages very often are influenced by previous others.

The C++ ISO standard does not use the term "method" - what you describe is called a "member function." Remember, the C++ standard (a document, basically) is the authoritative source for C++, not the misinformed people who were babbling on to you using incorrect terminology.

you seem to be caught up on the details an awful lot there when most people who touch code will not care about slight terminology differences (you obviously don't agree, but we are not taking a test here.)

All the basics of programming that need to be learned before you start playing with the power tools can be done in C, or C++. Once you get the basics its not hard to apply them elsewhere.

you seem to be caught up on the details an awful lot there when most people who touch code will not care about slight terminology differences (you obviously don't agree, but we are not taking a test here.)

All the basics of programming that need to be learned before you start playing with the power tools can be done in C, or C++. Once you get the basics its not hard to apply them elsewhere.

My comments were directed at you, my friend, not some beginner.
Being a good software developer means you are good at being precise. Really, you may think I am being pedantic here, but a sloppy programmer can be just as dangerous as a sloppy civil engineer or a sloppy surgeon.

I like VB.Net, In VB under VS2008 you can do things you can't with C#. Some things are also much simpler.

VB is crap, you hardly call that programming.

Quote:

Originally Posted by crainger

I learnt with C++ ::

There is nothing to be sad about, I too like C/C++/Delphi but to learn programming it's easier to start these days with C#. It's not super hard to learn pointers and memory management later but if you start and you also have to learn that it ain't all that easy.

The C++ ISO standard does not use the term "method" - what you describe is called a "member function." Remember, the C++ standard (a document, basically) is the authoritative source for C++, not the misinformed people who were babbling on to you using incorrect terminology.

Ok, obviously we have a big difference in our opinions, but let me clarify a bit my situation for you:

Here in Spain (where I live and work) if you're going to get a government job or a job for a public institution like the health sector or even for the military, obviously they require you to have a deep understanding of the programming language you're going to use for them, because they enforce very strict regulations for some criteria like usability (if you're designing UIs), interoperability, easy-to-read code, well-established documentation, and some other factors.

I agree with you a good software developer is good at being precise, but that doesn't necessarily mean being good at being strict with your definitions, even this can be somewhat contradictory at some levels, but anyway...

I have never taken such jobs, I mainly do software development for small companies, the kind of company wants you to code a custom-made stock control application, accounting and a bit of access control, plus reporting and printing bills, and up to date, I haven't received any single negative review about my coding style, that's why I'm not that concerned about precision on the definitions.

Can I be precise on them? Yes... Do I really have (right now) any practical reason for me to follow a strict path on definitions? No...

you seem to be caught up on the details an awful lot there when most people who touch code will not care about slight terminology differences (you obviously don't agree, but we are not taking a test here.)

All the basics of programming that need to be learned before you start playing with the power tools can be done in C, or C++. Once you get the basics its not hard to apply them elsewhere.

I don't disagree with you on the concepts, are very important... its just I would rather keep how to use the concepts stored in my limited memory space than the definitions to what I am doing. How to correctly describe what I am asking/talking about helps me be more productive when talking to other devs or in my google searches, but not always.