I want to learn serious programming, I have some experience and understanding of the basic stuff. Now, I want to begin REAL programming, but I am confused about which language I should start with, C or C++? or should I learn both?
+
what books do you advice me to read? at the moment I am reading "C++ without fear 2nd ed", but I guess that there are better books out there. I goggled, and I found these :
-C++ primer
-C++ primer plus
-C++ how to program
so which one is the best (even outside the list)? or should I stick to the current book ?
I want to learn serious programming... but I am confused about which language I should start with, C or C++? or should I learn both?
Becoming a 'serious' programmer require more than just learning a language, in the same way as learning English will not make you a novelist. So be prepared to go into other areas.
You will probably get many recommendations as to what the best language is to start with.
C is quite a small language and can be learnt quickly. C++, on the other hand, is vast in comparison. This is not to say that it is not a good starting point, just that you would need a good resource to work through in a methodical order. I would recommend C++ primer for this.
I was told learning C first is a bad idea because you learn to use things that don't exist anymore or have changed and can cause lots of confusion when making the change. I recommend the book "C++ for Programmers, by Paul J. Deitel and Harvey M. Deitel", I use it as a reference myself but I have read through a lot of it. It has a good structure that is easy to follow and has lots of code examples highlighting changes within the code examples to help you keep on track.
Well, it doesn't matter which one you learn first, all that really matters is that you take the time to learn them both! Some people feel one or the other is easier to learn first, but it doesn't matter what they think since every one has their brain wired differently. You will understand things differently then everyone else so basically only you can determine what is easier for you to learn first.
But if you want to be a serious programmer, you will need both C and C++ because there are some things only C or C++ provides. You can use both C++ and C code in the same program without problems as long as you use it properly.
For example you can use printf in one place in your program and later use cout. It doesn't matter to a C++ compiler because it will do exactly what you tell it to do, just make sure you tell it to do what you want it to do else it won't go as expected (trial and error phase).
C++ is the hardest programming language (based on majority since each person is different) to learn out of all the other high level programming languages, but it is the most beneficial because you can do anything with it where as most other programming languages are not as evolved as C/C++ or have all the memory management that it has.
I learned COBOL (I hate COBOL which stands for Common Business Language or something similar to that), Assembly (low level language, C/C++ actually is compiled into assembly before it is linked to machine code but it isn't necessary to learn unless you are reverse coding), Ada 95 (good language but it isn't as strong as C/C++), and Visual Basic (Very easy to learn language but it has too many limits I never liked).
So as you can see, I came to my opinion based on experience with as many languages as I could back then (over ten years ago). Learning C/C++ also will help you understand Java since Java is much like C/C++.
I also avoid Perl since CGI scripts in C++ is easy once you learn the basics and using C++ to access SQL / MYSQL is nice too, SQL was created in C++ because of the great memory management.