I graduated with a degree in Electrical Engineering and the only programming languages we studied were C / C ++, assembler and Matlab. After I visited Startup Weekend, I realized that I was not indifferent to computer science and software development and decided to dive into these areas with my head. I also realized that I needed to learn some more programming languages, besides those that I studied at the university.
Over the past year and a half, I began to learn Java (for Android), as well as Python, JavaScript, HTML, and CSS (for web development) and found that the best way to learn a programming language, parsing a book or tutorials, is to read all three. times! Yes, exactly 3 times !!! Reading new material in a similar way, well helped me understand new programming languages and concepts.
First readingMy first reading of a book on programming is just reading for easy perception of the content. During the first reading, I try to follow the idea of the author and just look through the examples of written code. I also study (not thoroughly) the syntax and try to understand the course of the program.
I do not write a single line of code during the first reading . I think that because of the experience of writing programs that I acquired earlier, I easily read any book on programming. I do not expect myself to write code instantly in a language that I learn or correctly apply in practice the concepts learned after the first reading. Rather, I try to catch the right feeling in the text of the book.
(By the way, in a similar way I usually read a chapter or section, rather than the entire book, from cover to cover.)')
Second readingDuring the second reading of the material, I start writing the code. Most often, I rewrite every example from a section. The main reason why I first read the section, and then return to the beginning and start writing the code is to gain an understanding of what the section is written about and what the code can / should do. At this moment, I clearly understand what is happening. I’m not just blindly rewriting the code, waiting for further explanations about what he does in the following paragraphs, then to go back and start reading again.
By typing the code, I strive to understand the syntax of the language.Third readingDuring the third reading, I try to solve all the problems listed in the section, without copying the code from the book. Usually, I simply open the tasks section of the readable chapter and try to solve them. At this stage, the syntax of the language presented in the read chapter or section is well stored in my memory and I can solve the tasks proposed by the author.
And something else...This method worked for me in learning Java, Python and JavaScript. Another good way to learn programming languages or some concepts is to implement a personal project. So, for example, if you want to better understand the principles of building a graphical user interface or implementing computer graphics in Java, try writing your own Chess, this will entail your reference to books on graphics, animations, GUI, event-oriented programming, and so on. .d
The main problem that you will encounter during the project in this way, without reading the relevant literature on the programming language, is that you will not be able to apply the best programming practices in this language, but instead you will try to do the work to the end. You will not apply guidelines when developing an application in a new programming language and moreover, you will probably write a program in the style in which you would write it in a familiar language. For example, you can write Java code using the C style of writing, because you have not learned how to write a Java program, but simply use the syntax of this language in order to make a project.
I recommend that beginners learn a new programming language using books rather than tutorials. You get more feedback from reading the book. But, while reading the book, in no case do not neglect the exercises (if any), try to create your own projects. Also, be sure to type in the code you are studying,
do not think that just reading and digesting in your head, written in a book of code, are sufficient factors for successfully learning a programming language.Note from the translator:As for myself, the main purpose of translating this article and publishing it in Habré is to obtain information about how, dear colleagues, you study programming languages and information technologies through reading technical literature. What reading strategies do you use? Have you discovered something new in the context of self-study lately?
Regarding the method presented by the author, I have not heard about it for the first time, but I am skeptical about it, just because I am afraid of losing a lot of time on such a thorough reading of the material. If someone has experience in using such equipment, please share both the advantages and disadvantages revealed for yourself.
PSTo eliminate all possible assumptions, the author, at the request of readers in the comments, gave a list of books that he had read using this technique over the past year and a half:
For web development:
-Head First JavaScript by O'Reilly
-Think Python by Allen Downey
-the django book
-The Art & Science of CSS
Other
-Beginning Android Games - Mario Zechner
-Thinking in Java - by Bruce Eckel
My attention in this list naturally attracts the Ekkel volume most of all (it is the English version) - for me this is book number one in Java, and if the author read it in the manner described by him, then it makes me even afraid to imagine how much time and effort he took , but with such a reading and the solution of all the tasks, there is certainly no doubt of knowing the language.
Link to the original:
http://www.simplyahmamazing.com/2013/01/how-i-read-programming-books.html