Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

I know Java and JavaScript pretty well. I have never really worked on C/C++. But

ID: 654942 • Letter: I

Question

I know Java and JavaScript pretty well. I have never really worked on C/C++. But at this stage of my career I feel that the fact that I do not have adequate knowledge on C/C++ syntax(especially pointers *), I am missing out vital parts on reading some classic books in the field of software programming. Here are some of the books that I would like to read and understand thoroughly but unable to comprehend the example code as I do not know the C/C++ syntax:

Advanced Programming in the Unix environment where C is used.
GoF book where examples are in C++/Smalltalk .
Algorithm Design Manual by Steven Skienna where again C is used.
I do not intend to work on C/C++ projects. So I do not want to spend a whole lot of time learning the intricacies of these languages but I would like to at least have some working knowledge so that I can understand at least 80% of the examples in those books. I do not want to miss out on the essence of these classic books. What should I do about this?

Explanation / Answer

I agree that the best way to learn C or C++ is to write programs in C or C++, but I'll elaborate a little more. If you just read a few books on C or C++, you'll probably see lots of details about all areas of the language and have a hard time remembering the "core working knowledge" you'll need to understand code examples in software books. (As an aside, you really should decide which language you want to learn, since C and C++ are not really interchangeable.) On the other hand, writing some programs in the language will force you to become familiar with the parts of it you use most often, and give you a more intuitive grasp of what code will do.

You don't need to write very difficult or complex programs to get enough working knowledge of the language to read an algorithms book. Perhaps this is my bias as a recent college graduate, but I think the best way to try writing some programs in (for example) C is to find an intro-level college CS course that's either language-agnostic or designed for C, and complete some of the assignments in C. Especially if you learned Java by taking a similar college course, the programs will be conceptually easy, so you'll be able to focus most of your effort on figuring out how to do things in C and getting the hang of the language.