Good day everyone! I started learning PHP and a bit of C # (I haven’t chosen what I want to stop for myself yet), the question is that after talking with more experienced people, I realized that in vain I started learning the language right away without understanding the basics. As one person told me: "Start with pure C and figure out how the hardware and the OS work, and only then will it be understood."

Therefore, advise with any literature to start this path, you also started with something, I think this is relevant for me. Thanks you!

Closed due to the fact that off-topic participants PashaPash , Visman , Qwertiy , Aslan Kussein , ermak0ff Oct 15 '15 at 7:29 .

It seems that this question does not correspond to the subject of the site. Those who voted to close it indicated the following reason:

  • " Questionnaires are forbidden on Stack Overflow in Russian . To get an answer, rephrase your question so that it can be given an unambiguously correct answer." - Visman, ermak0ff
If the question can be reformulated according to the rules set out in the certificate , edit it .

  • I hope that there will be another person who will say other words. With the opinion of this "one person" I do not agree. Although, perhaps, by "will be a good judge" we understand different situations. But in general, starting with low-level things is not safe. Then it is harder to get used to abstractions. - alexlz 3:32 pm
  • @alexlz, do you really have friends who started with something rather abstract (at the very least Lisp), did not dive into low-level languages ​​(at least Java), how did the OS not study, and then at least write something serious? - avp
  • @avp no. But there is own experience of start with assemblers. - alexlz
  • @alexlz, well, asm is the other extreme. It seems to me (in fact, I have no experience in learning) that it is necessary to begin with pascal (but for a long time not to linger there). Data types, primitive I / O, basic structures, control operators, functions, and program structure. Finish by writing your own "containers" (lists, trees, ...). At that, realize its limitations (“oakness”) and then try other languages, both “down” (C, asm) and “up” (Java, python, js ...) and “up and to the side” ( lisp, awk, sql, ...). - avp
  • @avp Pascal is a good language for learning (in the 70s). Just as Basic was before. Now it’s better (and Borland Pascal, which is already delphi, and freepascal, this is not very good) not to get involved (with modern dialects, all the more. It’s so mixed up that it’s not only a beginner’s hard to figure out where your legs grow from) The best languages ​​to start are probably the scheme and python. - alexlz

4 answers 4

Charles Petzold "Code. The secret language of informatics"

everything is chewed from the very basics.

  • I saw the name, I remembered. Although off topic. The famous Ch. Petzold. The main popularizer of programming for Windows ... 8 years ago an article was written by charlespetzold.com/etc/doesvisualstudiorotthemind.html - alexlz
  • Well, in this book about Windows, if there is, then a little, it is just useful as the basis of computer science, not even programming. - zb '
  • eicto, good advice, he once read this book, though not completely. Well suited to a beginner who is not at all familiar with computer science. I wanted to include it in my answer, but I forgot both the name and the author. - Ortem

Immediately read the literature on specific YP is not worth it. I advise you to start with Donald Knut's "The Art of Programming" and "Specific Mathematics", but reading these books requires some specific knowledge (mostly mathematics) and a lot of perseverance.

  • four
    @Ortem, confess, you probably decided to play a trick! - avp
  • Well, I gave a little bit of advice for later, when the author of the question will have some ideas about computer science :) In general, I agree that it is better to start with something simpler (from the same Petzold), but I, for example , it was necessary to comprehend the basics immediately on complex books. - Ortem

It's good to start with Herbert Shildt (c, c ++, c #), many books and everything is very accessible written

  • one
    bad advice in general - DreamChild
  • Yes, advice fucking. Herbert Shildt is undoubtedly a pro, but he doesn’t know how to write books =) PS I’m not talking about what he writes is incomprehensible, it’s just that in his textbooks everything is often dizorientirovanno. - AseN 2:46 pm

Read SICP and K & R. High-level programming on Lisp and the functional approach will very well contrast with the procedural C. SICP will give a good outlook, teach the basic techniques of abstraction - the best book for beginners. Although K & R is a language textbook, it is written very sensibly, there are many important things in it.