Sunday, July 12, 2009

I want to eventually learn C++, Where do I start?

What are the stepping stones/basic skills needed to learn C++? What are the best programing languages(C++ Java CORBA etc.)?

I want to eventually learn C++, Where do I start?
You can jump directly into C++. However if you are new to programming, I'd suggest starting with Python.





edit:


Kenshin, one of the advantages of Python is that the student can learn the basics of programming and the object oriented paradigm before having to learn the complexities of having to actually compile code. Python is nice because the library calls more often than not have the same syntax as their C/C++ counterparts.





I think a budding programmer is more likely to give up dealing with the frustration of not only learning algorithms and basic programming, but the complexities of compiling code itself.
Reply:Kenshin has an interesting viewpoint. However, I don't think I agree; indeed, I think starting with a high level interpreted language like Python is a great first step.





It's not like relatively unfriendly languages like C++ have benefits that are unattainable to Python programmers. Python is a first-class object-oriented language with a wonderfully expressive syntax. You can filter batches of data in one line, that would take an entire page of C++ to write.





But that's not all. Python's formatting is very strict, which means everybody's code is understandable because making cryptic Perl-like incantations is not easy in Python. So you can understand code written by better programmers than you; and you can understand your own code five years from now when you realize it really needs rewriting. (It will be worthwhile; you will understand it better in five years.)





And if performance is a make-or-break condition and one little part of your Python code is slowing you down, you can rewrite that little bit in C++ and you're done. This situation has never, repeat never, occurred to me. I have been programming in Python for eight years. Remember: computers are very, very, VERY fast and so if you can write a program faster in a more elegant, slower-executing language you will work much, much faster. Once again, I recommend Python.
Reply:You can start with C Programming.After that you can move to C++,JAVA or .NET(Hot this time)
Reply:The above post(s) suggests that if you are new to start with Python. THIS IS A SERIOUS MISTAKE!





Python is a wonderfulyl easy language to use. C++ is somewhat difficult. If you start with Python, you will immediately give up once you start using C++. In programming you must start with the most difficult, and work up to the easy languages. Programming is not an incremental discipline, language to language. Mastering an easy language like python will certainly doom you to learning any of the more complex languages such as C, C++, or Java.





Pick up an introductory book on C++. It will provide all of the coverage, examples, and tutorials you will need to get a good understanding.





(p.s. CORBA is not a language; it is a language independent communication protocol.)
Reply:why not start it with learning C,then if you can understand C well,it will be easier for you to learn C++.try this mothed,my friend. and when you are learning C,you can get some UNIX/LINUX source code and read them to improve yourself as well.
Reply:I am a big fan of college courses. And, respectfully, as a C programmer with knowledge of C++ I have to say E=MC2's enthusiasm is a little misplaced.





The real prerequisite for learning C++ is knowledge of and familiarity with what computers do. That's why I don't see the replacement of GWBasic with Visual Basic as a good thing at all.





GWBasic, like Python (from which it is very very different) is an interpreted language. In Basic's case that meant you could learn what a command was by typing it in and trying it out, then type it into a program. You can do that in Python. Python supports classes, like C++ (and smalltalk, another interpreted language) but that really just reflects that classes and objects are more efficient in today's computer architecture than they were in the old days. And that really doesn't matter. Python really is, like Basic, a language where you can get quick results and begin to appreciate what a database is and what data structures are through something better than an abstract textbook discussion, and quickly.





That's what you need: knowledge and familiarity with what computers do. The only problem with your knowledge of html is that you don't know the difference between a programming language and a page description language (which is what html is). I suggest you look it up.





Again, college is a good idea. At least auditing courses at a local community college. They will have formal prerequisites. Often the prerequisites will still involve Pascal. Since I learned C after learning Pascal, I will simply say Pascal uses a lot of the concepts which C does, but C uses a syntax which is highly compressed and full of acronyms (printf means PRINT Format) which can be hard to get used to. If you want to learn C++, learning pascal in a classroom environment might be a good thing. It might not.





All you really need to know is how a computer works and what it does well -- Computer Science has always been a subset of Applied Math and always will be. We don't like to talk about that because it scares people but it is.
Reply:C++ for dummies, seriously.





As Mike says you may want to try your hand at some others first. Python is a thought. If you're good with stuff like web programming, HTML, XML, CSS, you might be ready to move to more serious programming.


Maybe look at Visual Basic.





Best language is subjective and depends on the goal.

wedding

No comments:

Post a Comment