Monday, July 27, 2009

Should I learn C thoroughly before going on to C++?

I have started learning C++ and I am on pointers at the moment and it can be a steep learning curve in some parts, some articles and friends have told me to learn C first because most OS's are coded in C so I can get a better understanding of whats underneath. Then they say after I have done C for a year and when i am 'good' at it I should then go back to C++ and then I will be able to pick it up faster and I will fully appreciate the advantages it provides.


My ambition is to become an ethical hacker (not a script kiddie) and many of the books I have picked up like unofficial guide to ethical hacking, quite a few of the code examples are in C which again is reminding me of what the articles and friends say but I would like your opinion please?

Should I learn C thoroughly before going on to C++?
The challenge with C++ is learning the object oriented approach which is different than the procedural approach of C. It is not simply a matter of learning some additional syntax. C programmers, when they first start C++ are often terrible C++ programmers because they write C code in using object oriented language and some of its features. You do not need to spend a year doing C. A month should be enough to get a good understanding of the features and do a few small projects.


Then, learn object oriented design. Object oriented application development is more about design than coding. It is a different way of thinking from the procedural concept.


Because of this, an employer will not think that you can just pick up C++ in a couple days.
Reply:C deals with pointers too. The only addition that C++ brings are classes, templates, operator overloading, and some other language changes. You probably should learn C first, but if you already know most of it, learning C++ shouldn't be a problem.





Most ethical hacking will deal with manipulating pointers in C. While you can do the same in C++, you don't really use classes to exploit memory management flaws, and so C is the more appropriate language for this.
Reply:Not necessarily. There is a reason C++ is called that. It is C incremented. Pointers are the same thing in both languages.





Now, if you want to be an ethical hacker, learning C will probably help as many OSs are written in C, so the code you will review will be mostly in C.





All that said, I recommend you switch to C, because it will help with the hacking. You can come back to C++ later. You may also want to look at assembly as well.





Oh, and it took me a while to get pointers too. I had to look at several different books to get the whole picture.
Reply:Go directly to C++ or Microsoft's version C# (C sharp).





Where can I get an ethical guide to hacking?





What do you want to ethically hack on an operating system?





The trend is towards web-based apps. There is nothing wrong with use Javascript or similar languages.

surveys

No comments:

Post a Comment