Technical literature is different: from small feature articles to serious reference books with detailed descriptions of functions and attributes. And each of these types solves different problems - entertains, teaches, allows you to refresh some topic.
Today we will tell you which sources are recommended to contact programmers, engineers and residents of thematic platforms (Stack Exchange, Stack Overflow, etc.) if you need to learn a new language or to deepen knowledge in a particular area. We also give some of their recommendations on how to “work” with such literature.
/ Flickr / devin stein / CC')
What is the technical literature
Technical literature includes not only books on programming theory or languages. Here you can include news on the topic, threads on specialized sites, documentation, help and reference books, someone else's code, and even corporate blogs (our example on the site
1cloud ).
Each of these sources solves various problems: it simply entertains the reader or helps to find the answer to a specific question. For example, books about programming languages, algorithms, and so on let you dive into the desired area of ​​knowledge. Newsletters and news on the topic
help to keep abreast of what is happening and the background to learn new technologies. Blogs and forums
allow you to find out people's opinions about a particular problem, learn from their experience, or simply have fun. This category includes threads on Hacker News, Stack Exchange, Reddit, etc.
Another type of "technical literature" is a program code. Reading and analyzing someone else's code
allows you to learn from the mistakes of other people. And
reference books will help you to find out the attributes of the function, the principles of its operation, or quickly refresh the forgotten things.
Thus, different types of sources are suitable for different tasks. But no one reads literature, code, threads “from cover to cover”: books are often
bought as a desktop reference book, and on specialized platforms like Stack Overflow and Stack Exchange, people use search - found the answer to their question, solved the problem. The undoubted plus of interactive sites is that you are not limited to already existing content - if there was no answer to the question of interest, or you don’t fully understand someone’s explanation, you can ask your questions.
For example, in
this thread on the SO, the starter asked why sorting an array makes its code six times faster. Community members told him about branch prediction algorithms, built charts, brought analogies, recommended books for further study. This question has become the most popular on the platform - the thread has collected more than a million views, and one of the answers “plus” more than 26 thousand times.
Thus, the choice of specific sources depends on the goals and objectives that you plan to solve. What we will discuss further.
If you want to learn something new in the background
Newsletters and blogs are suitable for this task. It is convenient to view them in the morning for a cup of coffee or during a break at work. It does not require much effort and allows you to constantly be in the subject of recent events. For example,
this site contains 50 of the best programming blogs on a variety of topics: from iOS development to web design, and
here you will find 13 popular ezines. As an option - install a specialized
application on your smartphone.
Additionally, developer and mathematician Wayne Uejio
advises adding Internet ads from potential customers to your feed in order to better understand the labor market situation and the current needs of employers.
If you want to know the attributes of the function
In order to clarify or refresh in memory something concrete,
suitable reference books, guides and help. After reading, you can, for example, write information on a piece of paper or create a GitHub repository, as web developer James Harris
did . So you do not have to contact the help again and spend time on it.
If you need to learn a new language
In this case, books become one of the options. When choosing a book, it is important to read the abstract - there is an opinion that the first thousand words
set the basis for the entire book (and, at a minimum, allows you to familiarize yourself with the author’s style of presentation). Therefore, the abstract and table of contents, as a litmus test, will help to get a general idea of ​​whether this book is suitable for you now (does it contain answers to the right questions, are there many examples, does the author explain why you read his book and what knowledge do you get in end), or perhaps you should postpone it and switch to other editions.
Also, when choosing a literature to study new technologies, one should pay attention to the collections and digests based on the recommendations of industry experts - most often they contain the most adequate materials verified by the community. For example, here are a few compilations that we prepared in 1cloud:
VPS-digest ,
DNS-digest ,
VPN-digest .
At the same time, Hacker News users
are advised to read several books in parallel so that you can look at the topic from “different angles” and create a more complete picture in your head. And this is true not only for books, but also for articles and blogs. For example, you can read the
article by James Bowen, the author of the blog blog Monday Morning Haskell, about the types of
monads in Haskell, while at the same time studying the
explanation of one of the GitHub users about how monads are “reproduced”.
Additionally, HN residents
suggest writing out
notes , drawing mental maps, as well as recording questions that arise during the reading, in order to search for answers in other sources. When we write by hand, we better
understand and
remember important material.
Professor of linguistics Naomi Baron (Naomi Baron)
conducted a survey among 300 students from the USA, Japan, Slovakia and Germany. And 92% of respondents noted that fixing key points on paper helps them achieve maximum concentration and keep more information in memory.
Damien Roche, Quora user, software developer and entrepreneur,
notes that mental maps help to create a general idea of ​​a subject and to understand how everything works. For example, Damien made
a newbie
diagram that describes all the components necessary for a Ruby on Rails developer. He is confident that the map will be a good help when learning and will help beginners not to miss important things.
Other developers in this thread Quora
claim that it is worth trying to even write code for your service of creating mental maps, as this will allow you to simultaneously pump practical skills.
An example of successful development of a project with mental maps - Learn Anything. At first he looked like
this . The authors simply practiced writing code. One of the developers, Angelo Gazzola, even
asked Reddit users for advice on how to improve the maps.
But then the project grew into something more and became a service for searching for learning content on the Internet. Now this
open source looks
like and combines one and a half thousand interactive mental maps. You can read more about this in the
article by Nikita Voloboev, one of the curators of the Learn Anything project.
Also, when learning a new language, Quora residents recommend to google examples of using the code in real projects and practice their implementation as you study the material. At the same time, Abhishek Chauhan, a software engineer from Amazon,
advises experimenting with code that occurs as examples or tutorials.
For example, Daniel von Fange, a web application developer, has
used the following algorithm for decades: reading a book in one go, and then developing a demo project, applying his knowledge. After clarifies the details that are forgotten or missed. According to him, he opens the book just a couple of times to learn the key points.
If you need to deepen knowledge on the topic
It is also important to use as many sources as possible to evaluate different points of view. For this fit forums, books, articles and examples of someone else's code. If you chose a book, then, as advised by one of the residents of the Stack Exchange, you should
go straight to the end of the chapter, read the conclusions, do the exercises and immediately apply the knowledge gained in practice. If there are no tasks in the book, they need to be invented on their own or ask a friend about it.
To expand knowledge in a particular area, Software Engineering thread members also
recommend short reading calls. The main thing is concentration, it should be maximum. You can use the following cycle: read the book thoughtfully for 10 minutes, then ask yourself: “Am I bored?”. If the answer is "yes" - postpone reading, otherwise - read another 10 minutes. The main thing - do not forget about your goals and objectives, to still complete the study of the planned.
You should also pay attention to thematic platforms: Habrahabr, Toaster, Stack Overflow and Stack Exchange, as well as thematic threads on forums and on social networks. There you can find answers to many questions - almost all the problems you encounter have already been solved. As a last resort, you can ask a question yourself.
Briefly summarize all of the above:
- For background training, pay attention to newsletters, news, blogs.
- To clarify the subtleties of the implementation of functions, reference books, guides, forums are suitable - briefly record the obtained information.
- To learn a new language, work with several sources in parallel, remembering the main points. In the process of studying the material look for examples and write your code.
- For a point-like deepening of knowledge on the topic, study forums, books, articles and examples of someone else's code - and immediately apply this knowledge in practice.
PS What else is on Habré on this topic: