Привет, Хабр!

В этой статье я постараюсь донести до вас информацию по техническим книгам, которые я читала и о которых наслышана от других IT-специалистов.

image

Прежде чем начать что-то изучать, вы будете искать для себя ролики на различных видео хостингах, посещать конференции/митапы/хакатоны, проходить онлайн-курсы по направлению IT (по типу UDEMY или OREILLY), мониторить тематические форумы. Но кроме всего этого есть и консервативный подход, который на мой взгляд является до сих пор лучшим. И под этим подходом я подразумеваю чтение книг.

image

Перейдем к книгам, которые я порекомендовала бы как начинающим, так и продвинутым разработчикам.

Первое и, наверное, самое важное, о чем стоит почитать – это какие-то основы программирования. Здесь бы я порекомендовала Дональда Кнута и его «Искусство программирования». Но не обязательно читать все его книги, достаточно ограничится хотя бы первым томом. Именно для себя я не вижу достойных альтернатив этим книгам, потому что Кнут один из немногих людей, кто получил премию Алана Тьюринга, так же он писал книги по программированию и алгоритмам, где делился своими взглядами на решение многих проблем и своим мышлением.

image

Для тех, кто уже как-то знаком с концепцией программирования, то стоит переходить уже к каким-то конкретным вещам, а именно выбрать один или два языка. И здесь уже все проще, потому что есть из чего выбрать. Например, по С и С++ есть несколько шикарных книг, которые я прочла и часто возвращаюсь к ним, потому что их просто интересно почитать.

Если говорить о С, то это безусловно книга Брайана Кернигана и Денниса Ритчи «Язык программирования С». Она не объёмная, но в ней содержится полезнейшая информация по языку С.

image

Так же есть неплохая книга для новичков, которая называется «C programming absolute beginner's guide» и читающаяся на одном дыхании. Лично из этих двух книг, мне нравится первая, потому что я перечитывала её десятки раз и каждый раз находила в ней что-то новое и полезное.

image

Для С++ это конечно же книга Бьёрна Страуструпа «Язык программирования С++». Книга очень объёмная, но зато там описаны почти все концепции языка С++, и в ней, как и в книге по С, вы постоянно будете находить что-то новое.

image

Если говорить о Java, то здесь тоже есть несколько книг. Моей любимой является «java the complete reference 9th edition», а именно из-за того, что там описано все без «воды» и читается она абсолютно свободно.

image

Так же есть отличная книга «Java core. Volume 1», где используются тривиальные примеры, чтобы объяснить и описать все аспекты языка.

image

По Python и Ruby вы можете выбрать любую книгу с Amazon, где рейтинг от четырех звезд. Я читала книги по этим языкам именно с таким рейтингом, и они почти не отличаются друг от друга, но являются очень неплохими и легкими для прочтения.

По JavaScript есть очень интересная книга Дэвида Флэнагана «JavaScript the Definitive guide. 6th edition». Книга относительно новая и в ней очень подробно и доступно описан весь язык, кроме того там говориться о браузерном JS, JQuery, JAX и многом другом.

image

По HTML и CSS есть простая и доступная в чтении книга с иллюстрациями, которая называется «HTML / CSS design and build websites».

image

Что касается алгоритмов и структур данных, тут только два варианта, как я вижу. Это либо «Algorithms. Sedgewick», либо «Algorithms. Corman». Обе книги очень доступны в понимании, и отличие их заключается лишь в том, что для примеров у Sedgewick используется Java и С++, а у Corman это только псевдокод.

image

image

По устройству операционных систем я порекомендую книги Эндрю Таненбаума. У него достаточно большие и интересные книги по операционным системам.

image

Для тех, у кого уже есть неплохой опыт по программированию, то стоит прочитать книгу Стива Макконнелла «Совершенный код». В ней автор рассказывает о рутине, о том, как надо и не надо писать код, и о многих интересных программисту вещах.

image

Здесь я перечислила книги, которые мне запомнились. На самом деле я прочитала в разы больше, и многие книги были мягко говоря так себе. Об этих книгах я ничего не написала, дабы дать вам возможность самим на них наткнутся и прочесть, ибо вы можете найти в них то, чего не нашла я.

Комментарии (12)


  1. Undiabler
    07.11.2019 19:48
    +2

    Смешались в кучу кони, люди…
    Очень странная подборка, без мыслей и выводов, одни картинки и скудное описание. Такое чувство что это действительно скопированный список «самых продаваемых книг» с Amazon.


  1. dleshko
    07.11.2019 19:49
    +3

    Начинать с Кнута? Вы, видимо, живёте в идеальном мире. Если бы все разработчики, практикующие, начинали свой путь с Кнута, то программистов сейчас было бы на 2, а то и 3, порядка меньше). Начинать надо с того, что ещё больше усилит тягу к созданию программ, а не отпугнёт кучей формул.
    Сразу признаюсь, я Кнута на осилил, но я и не программист)


    1. lkoida
      08.11.2019 11:14

      Я программист, но пока что Кнута не осилил.
      Как по мне, это как с классической литературой — можно конечно из под палки прочесть Войну и Мир Толстого как часть школьной программы, но с удовольствием вчитаться в каждую строчку получится намного позже.


  1. CheY
    07.11.2019 19:55
    +2

    Смешались в кучу люди, кони…
    Среднестатистическому прогеру я бы рекомендовал из этого всего только Кормена (не Седжвика из-за того, что у него не псевдокод) и Макконелла. Стоит ли целенаправленно читать книги размером с указанные тут по C++ и JS, чтобы научиться языку — спорно. Как и вообще необходимость в книгах «по языкам» в условиях просто прорвы видео, курсов, песочниц, блогов и прочего.


  1. leahch
    08.11.2019 00:11

    Как прочитавший большинство из приведенного списка, подтверждаю, и порекомендую эту подборку!
    Особенно Кнута. Да, его читать тяжело, я бы даже сказал — очень тяжело, но втягиваешься, а потом используешь как справочник по алгоритмам.
    И я бы порекомендовал начать с традиционной «Java. Сборник рецептов для профессионалов» — отличная книга для начинающих.
    Еще бы включил сюда «Мифический человеко-месяц» Брукса.


    1. symbix
      08.11.2019 02:23

      Начинать с Кнута точно не стоит.
      Упомянутые Cormen-Rivest-сотоварищи и Sedgewick куда проще для понимания.


  1. demonit
    08.11.2019 01:22

    Забыли добавить «Словарь английского языка» :)


  1. emacsway
    08.11.2019 04:48

    Откуда столько минусов? Ей стоит поставить плюс уже только за то, что она поднимает эту тему. А то столько неучи развелось в последнее время… Книжки она приводит хорошие, хотя и, да, намешано в кучу для разных уровней подготовки. По Python, думаю, Mark Lutz был бы лучше.
    P.S.: пошарю-ка я и свой список тоже.


  1. Den4558
    08.11.2019 11:14

    Читаю сейчас Шилдт "С++ Базовый курс" Очень доступно и ненапряжно изложено, приятно читать


    1. kekoz
      09.11.2019 05:36

      Об этой книге очень нехорошие отзывы от множества гуру/мастеров С++. Именно о книге, не авторе. О его же книге по С отзывы наоборот очень позитивные.


  1. Zeben
    08.11.2019 12:12

    Есть у кого пара слов про книги Роберта Лафоре? Я по его книге "Объектно-ориентированное программирование в С++" ознакамливался с данным языком. Книга большая, но он оказалась для меня самым понятным пособием и дала неплохой толчок в развитии.


    Другое дело, что на С++ нынче приходится писать очень редко, разве что Си для микроконтроллеров в качестве хобби, но это уже другая история.


  1. Foxek
    08.11.2019 19:35

    Блин, а какой смысл обсуждать данную подборку, если целесообразно обсуждать сам факт присутствия её на Хабре. Таких постов здесь за все время образовалась тонна и они все содержат одни и те же книги. Самим книгам — моё почтение. Но, одно дело когда издательство ph_piter пишет посты о новых изданиях старых и культовых книг, пишет размеренно и качественно, да к тому же ещё и скидками балует. Другое дело, когда ты получаешь очередной чек лист, обоснованный общими фразами, характерными для каждого подобного поста.


    Уверен, многие скажут, что новичкам полезно видеть свежие посты на эту тему, чтобы они не забывали о культовых и важных для сферы книгах. Но они с тем же успехом могут почерпнуть данные информацию из уже написанных постов на эту тему, и уж если и подогревать интерес у новой публике, то уж точно не в таком виде)


    P.S. Вероятно, пост имел право на существованием, если бы в нем содержалась информация и описание каких-то новых интересных книгах