- PVSM.RU - https://www.pvsm.ru -
Техническая литература бывает разная: от небольших тематических статей до серьезных справочников с подробным описанием функций и атрибутов. И каждый из этих типов решает разные задачи — развлекает, обучает, позволяет освежить какую-либо тему.
Сегодня мы расскажем, к каким источникам рекомендуют обращаться программисты, инженеры и резиденты тематических платформ (Stack Exchange, Stack Overflow и др.), если вам нужно изучить новый язык или углубить знания в какой-то отдельной области. Также приведем несколько их рекомендаций о том, как с такой литературой «работать».
[1]
/ Flickr / Devin Stein [2] / CC [3]
К технической литературе относятся не только книги о теории программирования или языках. Сюда можно включить новости по теме, треды на профильных площадках, документацию, хелпы и справочники, чужой код и даже корпоративные блоги (наш пример на сайте 1cloud [4]).
Каждый из этих источников решает различные задачи: просто развлекает читателя или помогает найти ответ на конкретный вопрос. Например, книги о языках программирования, алгоритмах и так далее дают погрузиться в нужную область знаний. Рассылки и новости по теме помогают [5] быть в курсе происходящего и фоном изучать новые технологии. Блоги и форумы позволяют [6] узнать мнения людей о той или иной проблеме, перенять их опыт или просто развлечься. К этой же категории относятся треды на Hacker News, Stack Exchange, Reddit и др.
Еще один вид «технической литературы» — это программный код. Чтение и анализ чужого кода позволяет [7] учиться на ошибках других людей. А справочники [8] помогут узнать атрибуты функции, принципы её работы или быстро освежить в памяти подзабытые вещи.
Таким образом, разные типы источников подходят для разных задач. Но никто не читает литературу, код, треды «от корки до корки»: книги часто покупают [9] в качестве настольного справочника, а на специализированных платформах вроде Stack Overflow и Stack Exchange люди пользуются поиском — нашел ответ на свой вопрос, решил проблему. Несомненный плюс интерактивных площадок в том, что вы не ограничиваетесь уже существующим контентом — если ответа на интересующий вопрос не оказалось, или вам не до конца понятно чье-то объяснение, можно задавать свои вопросы.
Например, в этом [10] треде на SO топик-стартер спросил, почему сортировка массива делает его код в шесть раз быстрее. Члены сообщества рассказали ему об алгоритмах предсказания ветвлений, построили схемы, привели аналогии, порекомендовали книги для дальнейшего изучения. Этот вопрос стал самым популярным на платформе — тред собрал более миллиона просмотров, а один из ответов «плюсанули» больше 26 тыс. раз.
Таким образом, выбор конкретных источников зависит от целей и задач, которые вы планируете решить. О чем мы и поговорим далее.
Для выполнения этой задачи подойдут рассылки и блоги. Их удобно просматривать с утра за чашкой кофе или во время перерыва на работе. Это не требует особых усилий и позволяет постоянно быть в теме последних событий. Например, на этом [11] сайте собраны 50 лучших блогов по программированию на самые разные темы: от разработки под iOS до веб-дизайна, а здесь [12] вы найдете 13 популярных рассылок. Как вариант — установить специализированное приложение [13] на смартфон.
Дополнительно разработчик и математик Уэйн Уэхио (Wayne Uejio) советует [14] добавить в свой фид интернет-объявления от потенциальных заказчиков, чтобы лучше понимать ситуацию на рынке труда и актуальные потребности работодателей.
Для того чтобы прояснить или освежить в памяти что-то конкретное, подойдут [15] справочники, гайды и хелп. После ознакомления можно, например, выписать информацию на листок или создать GitHub-репозиторий, как это сделал [16] веб-разработчик Джеймс Харрис. Так вам не придется обращаться к хелпу повторно и тратить на это время.
В этом случае одним из вариантов становятся книги. При выборе книги важно читать аннотацию — есть мнение, что первая тысяча слов задает [17] основу всей книги (и, как минимум, позволяет ознакомиться со стилем изложения автора). Поэтому аннотация и оглавление, как лакмусовая бумажка, помогут составить общее представление о том, подойдет ли вам эта книга сейчас (есть ли в ней ответы на нужные вопросы, много ли примеров, объясняет ли автор, зачем читать его книгу и какие знания вы получите в итоге), или, возможно, стоит отложить ее и переключиться на другие издания.
Также при выборе литературы для изучения новых технологий стоит обратить внимание на тематические подборки и дайджесты, составленные на основе рекомендаций экспертов отрасли — чаще всего в них собраны наиболее адекватные материалы, проверенные сообществом. Например, вот несколько подборок, которые подготовили мы в 1cloud: VPS-дайджест [18], DNS-дайджест [19], VPN-дайджест [20].
При этом пользователи Hacker News советуют [21] читать несколько книг параллельно, чтобы можно было рассмотреть тему с «разных углов» и составить у себя в голове более полную картину. Причем это справедливо не только для книг, но и для статей и блогов. Например, можно читать статью [22] автора блога Monday Morning Haskell Джеймса Боуэна (James Bowen) о типах монад [23] в Haskell, одновременно изучая объяснение [24] одного из пользователей GitHub о том, как монады «воспроизводятся».
Дополнительно резиденты HN предлагают [21] писать конспекты [25], рисовать ментальные карты, а также фиксировать вопросы, возникающие по ходу чтения, чтобы потом искать ответы в других источниках. Когда мы пишем от руки, мы лучше понимаем [26] и запоминаем [27] важный материал.
Профессор лингвистики Наоми Барон (Naomi Baron) провела [28] опрос среди 300 студентов США, Японии, Словакии и Германии. И 92% респондентов отметили, что фиксация ключевых моментов на бумаге помогает им достичь максимальной концентрации и оставить в памяти больше информации.
Дэмьен Роше (Damien Roche), пользователь Quora, разработчик ПО и предприниматель, отмечает [29], что ментальные карты помогают создать общее представление о каком-либо предмете и понять, как всё работает. Например, Дэмьен сделал схему [30] для новичков, которая описывает все компоненты, необходимые для разработчика на Ruby on Rails. Он уверен, что карта будет хорошим подспорьем при обучении и поможет начинающим не упускать важные вещи.
Другие разработчики в этом треде Quora утверждают [29], что стоит попробовать даже написать код для своего сервиса создания ментальных карт, так как это позволит параллельно прокачать практические навыки.
Пример успешного развития проекта с ментальными картами — Learn Anything. Вначале он выглядел так [31]. Авторы просто практиковались в написании кода. Один из разработчиков — Анджело Гадзола (Angelo Gazzola) даже спрашивал [32] у пользователей Reddit совета, как можно улучшить карты.
Однако потом проект перерос в нечто большее и стал сервисом для поиска обучающего контента в интернете. Теперь этот открытый [33] ресурс выглядит так [34] и объединяет полторы тысячи интерактивных ментальных карт. Подробнее об этом можно прочитать в статье [35] Никиты Волобоева, одного из кураторов проекта Learn Anything.
Также при изучении нового языка резиденты Quora рекомендуют гуглить примеры использования кода в реальных проектах и практиковаться на их реализации по ходу изучения материала. При этом Абхишек Чаухан (Abhishek Chauhan), инженер-программист из Amazon, советует [36] экспериментировать с кодом, встречающимся в качестве примеров или туториалов.
Например, Даниэль фон Фандж (Daniel Von Fange), разработчик веб-приложений, десятилетиями пользуется [21] следующим алгоритмом: читает книгу в один заход, а затем разрабатывает демопроект, применяя полученные знания. После уточняет детали, которые позабыл или упустил. По его словам, он открывает книгу всего пару-тройку раз, чтобы усвоить ключевые моменты.
Здесь также важно использовать как можно больше источников, чтобы оценить разные точки зрения. Для этого подойдут форумы, книги, статьи и примеры чужого кода. Если вы остановили свой выбор на книге, то, как советует один из резидентов Stack Exchange, стоит переходить [37] сразу в конец главы, читать выводы, делать упражнения и сразу применять полученные знания на практике. Если заданий в книге нет — их нужно выдумать самостоятельно или попросить об этом друга.
Для расширения знаний в конкретной области, участники треда Software Engineering также рекомендуют [9] делать короткие заходы на чтение. Главное — концентрация, она должна быть максимальной. Можно использовать следующий цикл: вдумчиво читать книгу 10 минут, затем спросить себя: «Мне скучно?». Если ответ «да» — отложить чтение, иначе — читать ещё 10 минут. Главное — не забывать о ваших целях и задачах, чтобы все-таки завершить изучение запланированного.
Еще стоит обратить внимание на тематические платформы: Хабрахабр, Тостер, Stack Overflow и Stack Exchange, а также тематические треды на форумах и в социальных сетях. Там можно найти ответы на многие вопросы — практически все проблемы, с которыми вы сталкиваетесь, уже кто-то решал. В крайнем случае можно задать вопрос самостоятельно.
Автор: 1cloud
Источник [43]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/gtd/270345
Ссылки в тексте:
[1] Image: https://habrahabr.ru/company/1cloud/blog/344332/
[2] Devin Stein: https://www.flickr.com/photos/101260638@N07/16182717997/
[3] CC: https://creativecommons.org/licenses/by/2.0/
[4] 1cloud: https://1cloud.ru/blog
[5] помогают: https://stackoverflow.com/questions/692673/the-best-news-feeds-for-web-developers-rss
[6] позволяют: http://javarevisited.blogspot.ru/2014/05/10-articles-every-programmer-must-read.html
[7] позволяет: https://selftaughtcoders.com/how-to-quickly-and-effectively-read-other-peoples-code/
[8] справочники: https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/
[9] покупают: https://softwareengineering.stackexchange.com/questions/17826/how-do-people-read-big-technical-books
[10] этом: https://stackoverflow.com/questions/11227809/why-is-it-faster-to-process-a-sorted-array-than-an-unsorted-array
[11] этом: https://blog.feedspot.com/programming_blogs/
[12] здесь: http://www.makeuseof.com/tag/best-programming-newsletters-every-kind-developer/
[13] приложение: https://techcrunch.com/2015/12/11/enki-launches-snackable-mobile-learning-app-for-developers/
[14] советует: https://www.quora.com/What-should-a-self-taught-programmer-read-and-learn
[15] подойдут: https://www-s.acm.illinois.edu/webmonkeys/book/c_guide/
[16] сделал: https://gist.github.com/DawnPaladin/6694a631b8c0d063cdf38882dbb1be35
[17] задает: https://self-publishingschool.com/write-introduction-sells-book/
[18] VPS-дайджест: https://habrahabr.ru/company/1cloud/blog/319374/
[19] DNS-дайджест: https://habrahabr.ru/company/1cloud/blog/319848/
[20] VPN-дайджест: https://habrahabr.ru/company/1cloud/blog/316266/
[21] советуют: https://news.ycombinator.com/item?id=15733745
[22] статью: https://hackernoon.com/finally-understanding-monads-part-1-2a4904f11042
[23] монад: https://ru.wikipedia.org/wiki/%D0%9C%D0%BE%D0%BD%D0%B0%D0%B4%D0%B0_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)
[24] объяснение: https://github.com/anton-k/monads-for-drummers
[25] конспекты: https://redbooth.com/blog/handwriting-and-memory
[26] понимаем: http://journals.sagepub.com/doi/abs/10.1177/0956797614524581
[27] запоминаем: http://www.lifehack.org/articles/featured/writing-and-remembering-why-we-remember-what-we-write.html
[28] провела: https://www.theguardian.com/technology/2015/feb/23/reading-writing-on-paper-better-for-brain-concentration
[29] отмечает: https://www.quora.com/Can-you-use-mindmaps-to-help-learn-programming
[30] схему: http://www.readysetrails.com/index.php/181/this-is-why-learning-rails-is-hard/
[31] так: https://my.mindnode.com/KdeMPbxs8KPixsa5YUq5cphqJnQg81vpHaXcDX2i#31.0,-709.8,1
[32] спрашивал: https://www.reddit.com/r/learnprogramming/comments/67gocm/i_built_an_interactive_mind_map_for_learning/
[33] открытый: https://github.com/learn-anything/learn-anything
[34] так: https://learn-anything.xyz/
[35] статье: https://medium.com/@NikitaVoloboev/the-invisible-mountains-bd50a31bc64e
[36] советует: https://www.quora.com/How-do-I-read-programming-books-efficiently
[37] переходить: https://softwareengineering.stackexchange.com/questions/12572/how-do-you-maximise-the-knowledge-that-you-gain-from-a-programming-book
[38] Скорочтение: работает или нет?: https://habrahabr.ru/company/spbifmo/blog/331270/
[39] Как читать научные статьи: https://habrahabr.ru/company/spbifmo/blog/336672/
[40] Поиск и чтение унаследованного кода: https://habrahabr.ru/company/custis/blog/267923/
[41] Отложенное чтение: OpenSource-альтернатива: https://habrahabr.ru/post/229883/
[42] Как запоминать и понимать больше, если научился читать в 8 раз быстрее: https://habrahabr.ru/company/smartprogress/blog/319648/
[43] Источник: https://habrahabr.ru/post/344332/?utm_source=habrahabr&utm_medium=rss&utm_campaign=344332
Нажмите здесь для печати.