On selecting relevant learning content
One of the blessings of working as software developers is that we are constantly pushed to expand our knowledge and explore new things. The learning process never ends, there are just too many programming languages, frameworks, libraries and any other technological artifact than is possible to learn within a lifetime, and besides new ones are created by the day. As such, an endless amount of learning resources have been produced and is being produced, with the result that it can become difficult to navigate in the sea of information and select the most relevant resources. A choice should be made as it is simply unfeasible to consult anything available.
It is indeed a great struggle to create great content in the IT field, given its relentless fast pace. A book is becoming obsolete and outdated the moment it touches the shelves. Besides, many publishers support the publication of books which favor fast and easy learning which is appetizing to many developers and novices. For example, many times I have seen a new book on a given programming language, sometimes with the pretense of focusing on a new edition, doing the usual round up of the syntax and basic elements of the language; the problem is that it covers most of the content of the book. I find it particularly amusing when I read titles such as "Learn language X in Y amount of time", like, really? In such a short amount of time, you could perhaps get familiar with the syntax, but languages are not only syntax. That is the easiest part. What a book or tutorial should teach is instead the idioms which the language brings to the table in order to solve problems thinking in that language instead of treating that language simply as a syntactic replacement for any of the known languages by the developer. In case the book covers a new edition of a language, the author should instead focus on the novel features of the new version and how it differentiates or relates to the previous versions.
Internet has given the opportunity to people without any publishing deal to write their own content. More recently, platforms such as Medium, Hackernoon, Towards Data Science have granted the possibility to literally anyone with a PC and an Internet connection to publish content. Note that I am in favour of the democratization of knowledge as a way of empowerment of the individual and I believe everyone should be given the opportunity to spread his ideas. However, the downside of this is that it can lead to the viral spread of poor quality material which contribute to add up more noise in the information available. Many times, articles and tutorials lack quality and may even be inaccurate or wrong.
I conclude this post with some advices to the reader.
-
Make an investment in time to research the best resources on the topic at hand.
-
Always opt for resources teaching concepts over superficial details.
-
Tutorials should be preferably used as references or ancillary learning material, but not as exclusive learning method.
-
Get familliar with the fundamental concepts of programming languages and software engineering by reading classic books or picking excellent resources (e.g. MOOCs), the Internet forums are full of recommendations.
-
Make sure the resource you have picked is suited to your learning style, it would be even worse to pick some resource because it is considered as authorative, but struggling to go through it. Practicality should be the first concern in any case.
In any case, be selective and judgemental in picking up the right resources which provide the information needed in an efficient and effective manner.