C++.
It is much more difficult for a new programmer to move from Python (or even Java) to C/C++ than vice versa. Becoming knowledgeable and proficient in C++ will give you the tools you need to pick up other languages such as Python very easily and quickly. This is besides for the fact that Python itself is usually implemented in C (or, more rarely, Java) and it helps to know how C-type languages work beforehand.
It's really a matter of opinion, but I like C++ How To Program By Deitel and also like the Sams publishing ('learn ... in 24 hours) books for quick learning. Obviously, tons of practice and attempting to code real, relevant projects is much more valuable than any book.Do you have any recommendations on C++ books if I am going to teach myself?
This reminds me of a discussion we have recently over whether it's still worth it to learn C.C++ is among the worst first languages to learn. In terms of bad choices, it's right up there with VisualBasic. If you want to code close to metal, learn C first. Then carefully select a subset of C++ that works for you.
While I am sure that is a useful book, I highly doubt it would be of any use to the OP right now, who is looking to begin to learn programmingmany people know how to code. but few know how to code cleanly. the mess of code created ultimately leads to confusion among developers, resulting in bugs, memory hogs, errors and even crashes. if i were to recommend a book to become a good developer it would be Clean Code, Head First Design Patters and books on unit testing. And oh, a good developer always write unit tests before implementing the actual codes.
While I am sure that is a useful book, I highly doubt it would be of any use to the OP right now, who is looking to begin to learn programming
People are going to hate me for saying this, but use Codeblocks: http://www.sci.brooklyn.cuny.edu/~goetz/codeblocks/I'm gonna start with c++. Are there any recommended compilers or editors?
C++ is among the worst first languages to learn. In terms of bad choices, it's right up there with VisualBasic. If you want to code close to metal, learn C first. Then carefully select a subset of C++ that works for you.
Python is so different from all of the other languages out there...
Why do you say that? The differences I can see are that Python is a scripting language (versus compiled for C++), that it doesn't need a main() method, and that it doesn't have call-by-value (as everything is an object). Otherwise both Python and Ruby offer a painless introduction to both imperative and object-oriented styles. If you want to get quickly into implementing data structures and algorithms, I can think of at least four books that teach it in Python. There is a reason why schools like MIT and CalTech teach Python as a first language.
Why do you say that? The differences I can see are that Python is a scripting language (versus compiled for C++), that it doesn't need a main() method, and that it doesn't have call-by-value (as everything is an object). Otherwise both Python and Ruby offer a painless introduction to both imperative and object-oriented styles. If you want to get quickly into implementing data structures and algorithms, I can think of at least four books that teach it in Python. There is a reason why schools like MIT and CalTech teach Python as a first language.
Once again, I think it is cool and most likely will eventually adopt it as my primary language but since it so different from the other languages I would advise against it.
- Python discourages loops in general and loops are core to MOST languages.
- Python does many things very differently, like being contained in functions/classes is dependent on word SPACING, not closers or "End Loop".
- If you search for even simple code in Python online you will see that the hard-core Python programmers use some funky way to program them and not at all traditional methods
Again, nkabir: I don't dispute that it is better. And if the OP was asking "what is the ONLY language I should learn?" I would agree with you. But if he intends on learning other languages C++ is similar to most other languages.
Do you think there is anything wrong with the C++ loops, do while, if-else statements? If not, I don't think the OP will go way beyond that. I got as far as "what a Class is" in Programming 101 in undergrad...