Friday, May 21, 2010

Programming in C++, is this very difficult to learn?

complete newbie to programming (well, not if you consider the programs in BASIC i wrote in junior high scool), and was wondering how hard would it be to learn to program in C++ (after seeing what the salaries are for programers in C++, well then, i have to learn!!!)





can i buy some books and learn myself? how about taking some classes at the local community college? any other resources i should be looking into? (fyi, im in NYC)





many thanks

Programming in C++, is this very difficult to learn?
The short answer is C++ is pretty elaborate to learn, mainly because learning the core language C++ is really only the first step, Next you need to Learn a specific API , which deals with how C++ is used to build a particular piece of software...





For example windows, has the .NET framework and and Windows MFC (Microsoft Foundation Classes), Linux has a whole different set of libraries. If your going to program games and graphics you need to learn the 3D and gaming API's all these are very different from each other. A Typical API has hundreds of classes, and thousands of methods (functions), each with a dizzying array of parameters, mastering a specific API usually takes years.





So while learning the core language is pretty straightforward to do anything usefull with it you need to learn all the supporting libraries and toolkits for whatever software you decide to apply the language. Oh yeah and its a totally different API for each platform (Windows, Mac, Linux, etc..),and the API is always being updated.. That's one reason games or other complex programs don't always come out for two different systems at the same time.
Reply:Take a look at "Accelerated C++" by Andrew Koenig and Barbara Moo.





It takes a different approach to C++. You start out using objects that are part of the language, like character strings, to write programs that actually do something right from the start.





Community colleges are a good place to get some relatively inexpensive training. I took computer science courses when I was an undergrad, but my first real paying job was programming in a language I learned at the community college.





Be aware, that whatever language you are programming in today, you will probably have to learn something new in 5 years. I've been programming professionally for 30 years, and I'm going to class next week to learn the 7th language that I will be using on the job. (COBOL, Fortran, Assembler, C, C++, Visual Basic and now C#)
Reply:I know how to program C++, Java, Pascal, and some scripting languages including JavaScript and some Unix Shell commands. I would say C++ is the second most difficult to learn right after Java which would be the most difficult. The biggest problem with C++ is that it is an object oriented language so you have to do a lot of legwork on the system just to get a simple program to run. Programming is one of those things that almost anyone can learn, but few ever truly excel. Thus, the reason for the high pay for C++ programmers.





If you are serious I would definitly take a class but, there are many people who have learned on their own. I think many programmers would agree that you never really stop learning. My favorite programming book (I keep it on my shelf) is "The C Programming Language" by Dennis Ritchie it is an excellent book and handy reference manual. Once you master C you can always add the object oriented abilities from C++ later.





If you are not already start looking at http://www.slashdot.org and get involved in an open source project.
Reply:C++ isn't very hard. Considering your background you might try plain C first. C, like good ol' BASIC, is a linear programming language. C++ is the object-oriented upgrade to C, so to speak. But learning C might be an easier transition than going straight to an object-oriented language, and once you know C syntax you know a good chunk of C++.





Books are fine, although there are some tough concepts, like pointers and pointer-pointers, and even pointer-pointer-pointers (I really hate all of them). A community college class might be better - maybe try learning from a book first and see how you do, and if you have trouble then try for the class.





Keep in mind that programming jobs want more than just programming skill - they often look for a background in software engineering. You'll need to learn some of that, plus how to do things like change management and programming as part of a team.


No comments:

Post a Comment