It happens that a person who is not at all connected with IT gets imbued with the intriguing beauty of this sphere and sets himself the task of gradually learning programming from scratch. And here he is often just lost, not knowing where to start, and in need of a good foundation and a systematic approach.
I, being recently in the same situation, googled, looked for manuals on Habré (I found something:
Ten tips for novice programmers , A
novice programmer about startups and not only ... ), but in the end I was still forced to turn to one good person for advice which made for me such a plan. With the permission of
this person I place this plan on Habré - suddenly it will be useful to someone else. (Especially since the listed books belong to the “golden fund” of literature in this field and are time tested.)
UPD: I advise newbies to pay attention to the comments - this plan is actively and convincingly adjusted there.
')
Stage I. BasicsNorton "IBM PC software and hardware organization"This book, despite its prescription, refers to the fact that so far is not outdated. As a newcomer, I confirm - the story is quite understandable for an almost complete teapot in IT.
Hook "Hardware IBM PC"And this book is worth reading "on top" - it will tell you how things are in this area now.
Stage II. HardwareStep 1Morse, Albert "Microprocessor Architecture 80286"Why the microprocessor 80286 is taken as the basis here - it will become clear after studying the works of the first stage.
Step 2Hook "PC Hardware Interfaces"Hook "Storage Interfaces"Stage III. Operating SystemsStep 1Tanenbaum "Computer Architecture"Step 2Kolisnichenko, Allen "Linux: The Complete Guide"From the general theory, we turn to the study of a specific operating system — using the example of Linux.
Nemeth, Snyder, Hein "Linux Administrator's Guide"Stage IV. Actually programmingStep 1Kernigan, Richie "C programming language"Why was the first language chosen for learning precisely C? As knowledgeable comrades told me, he will help to achieve the right “programmer thinking”, which would be difficult to achieve when starting learning, say, from Pascal. In addition, the C language is still used today and is suitable for both application and system programming.
Step 2Knut "The Art of Programming":Volume 1. The main algorithmsVolume 2. Recalculated AlgorithmsVolume 3. Sorting and searchingBentley "The Pearls of Programming"Why master these works? As already
noted on Habré , “probably nowhere else than in IT, such a huge number of bicycles are invented”. These books will help to avoid this - and along the way they will inculcate the ability to write not just code, but good code.
Well, for starters, you can read a small
series of lectures on “The Culture of Programming” (author - A. Babi) . It helps novice programmers understand that their activities will not take place in a vacuum, but will inevitably include interaction with other programmers, customers and users (and also include the need to delve into their own or other people's programs later).
A beginner's logical question: how long will it take to study all this? According to the forecasts of my adviser, a person who can spend on learning programming only in the evenings and weekends will take six months or a year to read and understand the literature of the first three stages. The fourth stage is also given a year - the reading should be accompanied by the practice of self-programming. How it actually happens - time will tell.
I would be extremely grateful for your advice and clarification.