This question has already been answered:

Hello. Something through Google I go to very old textbooks (later zero). Who read what textbooks in due time? I can program in Java. Maybe it makes sense instead of C to take up C ++? In this case, the prerequisite is backward compatibility, that is, knowing C ++, I could also easily understand the C code.

Reported as a duplicate by Oceinic , Qwertiy , Regent , LEQADA , Peter Olson on Oct 15 '15 at 9:25 .

A similar question was asked earlier and an answer has already been received. If the answers provided are not exhaustive, please ask a new question .

    5 answers 5

    Programming literature is divided into two types:

    1. for those who can program
    2. for those who are just learning.

    Each type has its advantages.
    For example, the literature for those who know how to program does not contain "water", has a small size and is easy to use as a reference. A good example is the "Kernighan, Richie. Language C".
    The best benefit that can only be, but he will tell you how to allocate memory, and why no one will explain it to you.

    The second type of books differs in much larger size, which has a good effect on understanding what you will do. In my opinion the best tutorial will be "Object-oriented programming in C ++" by R. Lafore, in Russia it is published by the publishing house "Peter".

      Perhaps not everyone will agree, but I believe that you should first master C, and then take on C ++.
      C ++ is a large and complex language to immediately grasp all its subtleties, even after Java.
      Therefore, it is better to start with C.
      I recommend books:

      • Herbert Shieldt. A complete guide to C ;

      • Stephen Prata. C ++ programming language .

      From Russian authors: Podbelsky V.V. "C programming" .

        I recommend to refer to the books of Herbert Shildt from the series "Complete Guide to C / C ++ / C #", as well as the bible C - "Kernighan, Richie. Language C".
        In general, if you know Java, then it will be easy to figure it out with C / C ++. We need only slightly change the concept of thinking.
        PS There is also a book "The Evolution of the C Language" (probably this is the name, I don’t remember exactly), the same author Kernighan.

          @kis , you write that you can program in Java. This means that you can program at all.

          So just read K & R, and then man 3 intro, man stdlib.h, man stdio.h, man string.h, man ctype.h ... , well, untwist SEE ALSO in them.

          Of course, over the past 30 years, some changes (compared to K & R) have appeared, but IMHO with a known base, they are easily perceived when reading /usr/include/*.h .

          In the appendage is to read the "Practice of programming" Author: Brian Kernighan. Rob Pike, there are great examples in different languages, but mostly in Xi.

          Is it worth learning C ++?

          Almost certainly you will have to deal with other people's programs on it. Therefore, it will be necessary to study, but it is better to have already mastered C, since several hundred pages (as in K & R) will not work here.

            As far as I know Java is a C-like language, which means there should be a lot in common. No only pointers. So it will be easy to learn C ++.

            And from books I can advise:

            Kent, D. C ++. Basics of programming.

            Shieldt, Herbert, C ++: basic course.

            Daytel, Daytel, How to program in C.