В этой статье я постараюсь донести до вас информацию по техническим книгам, которые я читала и о которых наслышана от других IT-специалистов.
Прежде чем начать что-то изучать, вы будете искать для себя ролики на различных видео хостингах, посещать конференции/митапы/хакатоны, проходить онлайн-курсы по направлению IT (по типу UDEMY или OREILLY), мониторить тематические форумы. Но кроме всего этого есть и консервативный подход, который на мой взгляд является до сих пор лучшим. И под этим подходом я подразумеваю чтение книг.
Перейдем к книгам, которые я порекомендовала бы как начинающим, так и продвинутым разработчикам.
Первое и, наверное, самое важное, о чем стоит почитать – это какие-то основы программирования. Здесь бы я порекомендовала Дональда Кнута и его «Искусство программирования». Но не обязательно читать все его книги, достаточно ограничится хотя бы первым томом. Именно для себя я не вижу достойных альтернатив этим книгам, потому что Кнут один из немногих людей, кто получил премию Алана Тьюринга, так же он писал книги по программированию и алгоритмам, где делился своими взглядами на решение многих проблем и своим мышлением.
Для тех, кто уже как-то знаком с концепцией программирования, то стоит переходить уже к каким-то конкретным вещам, а именно выбрать один или два языка. И здесь уже все проще, потому что есть из чего выбрать. Например, по С и С++ есть несколько шикарных книг, которые я прочла и часто возвращаюсь к ним, потому что их просто интересно почитать.
Если говорить о С, то это безусловно книга Брайана Кернигана и Денниса Ритчи «Язык программирования С». Она не объёмная, но в ней содержится полезнейшая информация по языку С.
Так же есть неплохая книга для новичков, которая называется «C programming absolute beginner's guide» и читающаяся на одном дыхании. Лично из этих двух книг, мне нравится первая, потому что я перечитывала её десятки раз и каждый раз находила в ней что-то новое и полезное.
Для С++ это конечно же книга Бьёрна Страуструпа «Язык программирования С++». Книга очень объёмная, но зато там описаны почти все концепции языка С++, и в ней, как и в книге по С, вы постоянно будете находить что-то новое.
Если говорить о Java, то здесь тоже есть несколько книг. Моей любимой является «java the complete reference 9th edition», а именно из-за того, что там описано все без «воды» и читается она абсолютно свободно.
Так же есть отличная книга «Java core. Volume 1», где используются тривиальные примеры, чтобы объяснить и описать все аспекты языка.
По Python и Ruby вы можете выбрать любую книгу с Amazon, где рейтинг от четырех звезд. Я читала книги по этим языкам именно с таким рейтингом, и они почти не отличаются друг от друга, но являются очень неплохими и легкими для прочтения.
По JavaScript есть очень интересная книга Дэвида Флэнагана «JavaScript the Definitive guide. 6th edition». Книга относительно новая и в ней очень подробно и доступно описан весь язык, кроме того там говориться о браузерном JS, JQuery, JAX и многом другом.
По HTML и CSS есть простая и доступная в чтении книга с иллюстрациями, которая называется «HTML / CSS design and build websites».
Что касается алгоритмов и структур данных, тут только два варианта, как я вижу. Это либо «Algorithms. Sedgewick», либо «Algorithms. Corman». Обе книги очень доступны в понимании, и отличие их заключается лишь в том, что для примеров у Sedgewick используется Java и С++, а у Corman это только псевдокод.
По устройству операционных систем я порекомендую книги Эндрю Таненбаума. У него достаточно большие и интересные книги по операционным системам.
Для тех, у кого уже есть неплохой опыт по программированию, то стоит прочитать книгу Стива Макконнелла «Совершенный код». В ней автор рассказывает о рутине, о том, как надо и не надо писать код, и о многих интересных программисту вещах.
Здесь я перечислила книги, которые мне запомнились. На самом деле я прочитала в разы больше, и многие книги были мягко говоря так себе. Об этих книгах я ничего не написала, дабы дать вам возможность самим на них наткнутся и прочесть, ибо вы можете найти в них то, чего не нашла я.
Комментарии (12)
dleshko
07.11.2019 19:49+3Начинать с Кнута? Вы, видимо, живёте в идеальном мире. Если бы все разработчики, практикующие, начинали свой путь с Кнута, то программистов сейчас было бы на 2, а то и 3, порядка меньше). Начинать надо с того, что ещё больше усилит тягу к созданию программ, а не отпугнёт кучей формул.
Сразу признаюсь, я Кнута на осилил, но я и не программист)lkoida
08.11.2019 11:14Я программист, но пока что Кнута не осилил.
Как по мне, это как с классической литературой — можно конечно из под палки прочесть Войну и Мир Толстого как часть школьной программы, но с удовольствием вчитаться в каждую строчку получится намного позже.
CheY
07.11.2019 19:55+2Смешались в кучу люди, кони…
Среднестатистическому прогеру я бы рекомендовал из этого всего только Кормена (не Седжвика из-за того, что у него не псевдокод) и Макконелла. Стоит ли целенаправленно читать книги размером с указанные тут по C++ и JS, чтобы научиться языку — спорно. Как и вообще необходимость в книгах «по языкам» в условиях просто прорвы видео, курсов, песочниц, блогов и прочего.
leahch
08.11.2019 00:11Как прочитавший большинство из приведенного списка, подтверждаю, и порекомендую эту подборку!
Особенно Кнута. Да, его читать тяжело, я бы даже сказал — очень тяжело, но втягиваешься, а потом используешь как справочник по алгоритмам.
И я бы порекомендовал начать с традиционной «Java. Сборник рецептов для профессионалов» — отличная книга для начинающих.
Еще бы включил сюда «Мифический человеко-месяц» Брукса.symbix
08.11.2019 02:23Начинать с Кнута точно не стоит.
Упомянутые Cormen-Rivest-сотоварищи и Sedgewick куда проще для понимания.
emacsway
08.11.2019 04:48Откуда столько минусов? Ей стоит поставить плюс уже только за то, что она поднимает эту тему. А то столько неучи развелось в последнее время… Книжки она приводит хорошие, хотя и, да, намешано в кучу для разных уровней подготовки. По Python, думаю, Mark Lutz был бы лучше.
P.S.: пошарю-ка я и свой список тоже.
Zeben
08.11.2019 12:12Есть у кого пара слов про книги Роберта Лафоре? Я по его книге "Объектно-ориентированное программирование в С++" ознакамливался с данным языком. Книга большая, но он оказалась для меня самым понятным пособием и дала неплохой толчок в развитии.
Другое дело, что на С++ нынче приходится писать очень редко, разве что Си для микроконтроллеров в качестве хобби, но это уже другая история.
Foxek
08.11.2019 19:35Блин, а какой смысл обсуждать данную подборку, если целесообразно обсуждать сам факт присутствия её на Хабре. Таких постов здесь за все время образовалась тонна и они все содержат одни и те же книги. Самим книгам — моё почтение. Но, одно дело когда издательство ph_piter пишет посты о новых изданиях старых и культовых книг, пишет размеренно и качественно, да к тому же ещё и скидками балует. Другое дело, когда ты получаешь очередной чек лист, обоснованный общими фразами, характерными для каждого подобного поста.
Уверен, многие скажут, что новичкам полезно видеть свежие посты на эту тему, чтобы они не забывали о культовых и важных для сферы книгах. Но они с тем же успехом могут почерпнуть данные информацию из уже написанных постов на эту тему, и уж если и подогревать интерес у новой публике, то уж точно не в таком виде)
P.S. Вероятно, пост имел право на существованием, если бы в нем содержалась информация и описание каких-то новых интересных книгах
Undiabler
Смешались в кучу кони, люди…
Очень странная подборка, без мыслей и выводов, одни картинки и скудное описание. Такое чувство что это действительно скопированный список «самых продаваемых книг» с Amazon.