Начинающий программист книги: Лучшие книги для начинающих программистов

Содержание

Лучшие книги для начинающих программистов

21 Авг. 2016, Книги, 31129 просмотров

У меня есть книга, которую я уже пытаюсь раза с третьего осилить, но всё никак не дойду до последней страницы. Называется она «Человеческий фактор. Успешные проекты и компании«, в простонародье «Peopleware» и является хрестоматией по разработке программного обеспечения наряду с классическим трудом под названием «Мифический человеко-месяц» от Фредерика Брукса. Так вот, там есть интересное выражение, которое гласит следующее:

«Статистика по чтению литературы обескураживает особенно сильно: средний разработчик программного обеспечения, к примеру, не имеет ни единой книги по предмету собственной работы и не может похвастать тем, что читал такую книгу»

Мой опыт работы с программистами лишь доказывает слова ДеМарко и Листера. Современная разработка ПО сводится к постоянному «гуглению» и чтению ответов на StackOverflow. В этом нет ничего плохого, все мы ежедневно сталкиваемся с проблемами решения которых не знаем, и порой «прогуглить» ответ получается куда быстрее  нежели самостоятельно разбираться почему наш код не работает. Но серьёзная проблема кроется в ситуациях, когда у человека отсутствуют фундаментальные знания о предмете своей работы.

Софтостроение специфическая отрасль, где специалисту необходимо обладать рядом навыков и знаний. Возьмём самый простой пример: веб-разработка. Современному веб-разработчику нужно иметь представление о множестве тем: веб-программирование, веб-дизайн, основы безопасности веб-приложений, навыки системного администрирования (чаще всего unix-подобных систем), навыки работы с СУБД, паттерны проектирования веб-приложений, хотя бы поверхностно понимать методологии разработки ПО, их плюсы и минусы, не говоря уже о множестве инструментов, используемых ежедневно (VCS, IDE, ОС, пакетные менеджеры и так далее). Веб-разработчик, не знающий основ безопасности веб-приложений, может ненамеренно оставить серьёзную брешь в системе, которая в будущем обернётся серьёзными финансовыми потерями, а может и вовсе иметь катастрофические последствия. Порой «гугля» очередное решение проблемы, мы не задумываясь копируем код или используем сомнительную библиотеку, даже не заглянув внутрь. Главное работает 🙂 А ведь за всем этим могут скрываться серьёзные проблемы…

В этой заметке я подготовил список книг, которые, по-моему личному мнению, должен прочитать каждый уважающий себя программист. Они не столько про технологии, сколько про взгляд на профессию. Они не подвержены старению, их можно перечитывать спустя годы и порой находить для себя что-то новое.

Список книг:

  • Программист-прагматик. Путь от подмастерья к мастеру
  • Чистый код
  • Джоэл о программировании (Joel on Software)
  • Джоэл. И снова о программировании (More Joel on Software)
  • Программист-фанатик (Passionate Programmer)
  • Человеческий фактор. Успешные проекты и команды (Peopleware)
  • Язык программирования C
  • Код. Тайный язык информатики

Просто список ничего не значит. Хорошо бы узнать причину почему вам стоит тратить своё время на чтение и анализ приведённой выше литературы.

Программист-прагматик

Пожалуй, это одна из немногих книг, эффект от прочтения которой я почувствовал практически сразу. Во многом именно эта книга изменила мой подход к программированию. Но читать её следует прежде всего программистам, имеющим некоторый опыт в разработке более-менее сложных систем, которые на собственной «шкуре» прочувствовали все «прелести» ошибок, допущенных при проектировании, разработке и поддержке продукта. Книга затрагивает острые вопросы масштабирования систем, модульность, тестирование и многие другие аспекты нашей профессии.

Чистый код

Книга «Чистый код» это своего рода облегченная версия книги «Совершенный код». Последнюю читать куда тяжелее. Одна из основных проблем начинающих программистов это их код. Его невозможно читать 🙂 Он плохо структурирован, перегружен, а переменные и функции чаще всего имеют непонятные названия. Как придать человеческий вид вашему коду и повествует эта книга. Автором является известный «дядюшка Боб», личность категоричная, поэтому читать книгу советую со здравой долей скептицизма и не принимать каждое слово на веру. Но категоричность автора нисколько не уменьшает пользу от книги.

Джоэл о программировании

Если вы ни разу не слышали о Джоэле Спольски, то стоит задуматься, а тем ли делом вы занимаетесь 🙂 Мистер Спольски автор популярного блога «Joel on Software», а также… один из создателей StackOverflow 🙂 Книга является сборником эссе, опубликованных на личном блоге автора. В ней собраны самые популярные темы о программировании. Вот лишь малая часть из них:

  • Какой язык программирования стоит изучать первым
  • Что необходимо знать про UTF-8
  • Зачем программисту понимать алгоритмы и структуры данных
  • Как проводить собеседование с кандидатами на работу

Продолжением «Джоэл о программировании» является «Джоэл. И снова о программировании». Однозначный must read!

P.S. Перевод его блога (к сожалению, не все статьи) на русский язык можно посмотреть тут.

Программист-фанатик

Эта книга была переведена на русский язык совсем недавно, но существует по технологичным меркам давно (~2009 год). Написана программистом для программистов и затрагивает щепетильные для разработчиков темы:

  • Кто такой настоящий программист
  • Что необходимо знать программисту, чтобы всегда быть «на плаву»
  • Почему не стоит бояться конкуренции со стороны программистов-индусов 🙂
  • Как «не перегореть» на работе

Я читал её в оригинале на английском языке, а когда узнал о выходе русского издания, то с удовольствием приобрёл. Перевод хороший.

Человеческий фактор

Эту книгу я рекомендовал на прошедшем Python митапе в Алматы в прошлом году. Она из тех книг, которые перечитывая — узнаёшь новое. С опытом начинаешь по-другому смотреть на, может быть, привычные для себя вещи. «Человеческий фактор» основан на эмпирических исследованиях, проводимых авторами. Цель заключалась в том, чтобы понять почему одни проекты (как и люди) успешны, а другие нет, само собой в нашем с вами общем деле. Читать в первую очередь рекомендую руководителям и менеджерам в сфере IT, разработчикам она тоже будет очень полезна.

Язык программирования C

Свой путь в мир программирования я, можно сказать, начинал с этого легендарного языка. Си является родителем для многих современных высокоуровневых языков, например того же Python. На нём написано множество софта, начиная от встроенного (привет прошивкам микроконтроллеров) заканчивая сложными вычислительными системами, работающими на Земле и в Космосе (ядро Linux, современный Интернет, ПО в медицине и военной промышленности и многое-многое другое). В рейтинге самых популярных языков он до сих пор занимает лидирующие позиции. Книга «Язык программирования C» является бессмертной классикой, а среди её авторов есть создатель Unix (Dennis Ritchie). Прелесть Си в том, что программист полностью контролирует ход выполнения программы: ручной доступ к памяти и работа с указателями, строгая типизация, контроль за размером входных данных и многое другое. За счёт низкого уровня при работе с «железом» компьютера, а следовательно отсутствия дополнительных абстракций (в простонародье «свистелок и перделок»), код выполняется очень быстро. Но за скорость нужно платить. В неумелых руках системы, написанные на Си, подвержены известным уязвимостям: переполнение стэка, переполнение кучи, ошибки форматирования строки и многие другие. Изучив Си, вы начнёте лучше понимать как работает компьютер, а следовательно станете лучшим программистом.

Код. Тайный язык информатики

Почему люди используют десятичную систему исчисления? Как работают триггеры и почему транзистор совершил революцию? В конце концов, как работает современный компьютер? Ответы на все эти вопросы вы найдёте в книге Чарльза Петцгольда

«Код. Тайный язык информатики». Текст книги написан в увлекательной манере, с юмором и точно не заставит своего читателя скучать. Но материал по мере чтения становится всё сложнее и сложнее 🙂

Это не весь список книг, которые нужно прочитать. В первую очередь я постарался собрать книги именно для начинающих программистов, чтобы им легче было ориентироваться в столь хаотичной профессии, где постоянное обучение — залог будущего успеха, а застой — прямая дорогая к посредственности. Будьте жадными до знаний, читайте книги!

Если у вас есть идеи или замечания по моему списку книг, добро пожаловать в комментарии 🙂

Что читать начинающему программисту

Перед вами под­бор­ка из пяти книг, кото­рые хоро­шо бы про­чи­тать каж­до­му про­грам­ми­сту. Если вы толь­ко начи­на­е­те, мож­но идти свер­ху вниз — мы спе­ци­аль­но рас­по­ло­жи­ли кни­ги в поряд­ке воз­рас­та­ния слож­но­сти.

👉 Если вы не нашли в под­бор­ке свою люби­мую кни­гу по про­грам­ми­ро­ва­нию — напи­ши­те о ней в ком­мен­та­ри­ях. А если ещё рас­ска­же­те, чем она будет полез­на для начи­на­ю­щих, будет вооб­ще отлич­но.

1. Код. Тайный язык информатики

Автор: Чарльз Пет­цольд

Посмот­реть в мага­зине

Автор объ­яс­ня­ет слож­ные вещи, свя­зан­ные с про­грам­ми­ро­ва­ни­ем и рабо­той ком­пью­те­ра. Объ­яс­не­ние того, как рабо­та­ет про­цес­сор внут­ри ком­пью­те­ра, мы счи­та­ем одним из луч­ших сре­ди книг на подоб­ные темы.

Если вы толь­ко начи­на­е­те раз­би­рать­ся в про­грам­ми­ро­ва­нии, ком­пью­те­рах и том, как это рабо­та­ет, читай­те «Код».

2. Карьера программиста

Автор: Г. Лак­ман Мак­дау­элл

Посмот­реть в мага­зине

Кни­га помо­жет под­го­то­вить­ся к собе­се­до­ва­нию почти в любой IT-компании. Автор на при­ме­рах пока­зы­ва­ет, какие вопро­сы могут задать, в чём их осо­бен­ность и как на них луч­ше отве­чать. Осо­бен­но инте­рес­но почи­тать, чем отли­ча­ет­ся под­ход в малень­ких и круп­ных ком­па­ни­ях и на что смот­рят в каж­дой из них.

Если у вас ско­ро собе­се­до­ва­ние, а кни­гу про­чи­тать вы не успе­ва­е­те, про­чи­тай­те нашу ста­тью про собе­се­до­ва­ния. Она не такая боль­шая, но тоже полез­ная.

3. Идеальный программист. Как стать профессионалом разработки ПО

Автор: Роберт Мар­тин

Роберт Мар­тин — это один из тех, кто при­ду­мал agile и гиб­кую раз­ра­бот­ку в прин­ци­пе. Если вы не чита­ли про скрам — почи­тай­те, по этой систе­ме рабо­та­ют боль­шин­ство про­грам­ми­стов в мире. 

В кни­ге «Иде­аль­ный про­грам­мист» Роберт рас­ска­зы­ва­ет, как про­грам­ми­сту при­ме­нять свои зна­ния, как раз­ви­вать навы­ки и к чему стре­мить­ся, что­бы стать про­фес­си­о­на­лом. Почти на каж­дое заяв­ле­ние автор при­во­дит при­мер из сво­ей рабо­чей прак­ти­ки, ино­гда неожи­дан­ный.

4. Чистый код. Создание, анализ и рефакторинг

Автор: Роберт Мар­тин

Посмот­реть в мага­зине

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

Един­ствен­ное, что нуж­но учесть, — все при­ме­ры автор при­во­дит на Java. Но если вы уме­е­те про­грам­ми­ро­вать на любом язы­ке высо­ко­го уров­ня, вы смо­же­те быст­ро понять, про что гово­рит автор и что дела­ет сам код.

5. Искусство программирования

Автор: Дональд Кнут

Посмот­реть в мага­зине

Пер­вая вер­сия этой кни­ги вышла в 1968 году, а сей­час пуб­ли­ку­ет­ся уже тре­тье изда­ние, в кото­рое добав­ле­но мно­го новых рабо­чих алго­рит­мов. Осо­бен­ность кни­ги в том, что все при­ме­ры при­во­дят­ся на язы­ке ассем­бле­ра, а это пуга­ет мно­гих совре­мен­ных про­грам­ми­стов. Сам Кнут утвер­ждал, что толь­ко так про­грам­мист смо­жет по-настоящему понять, как рабо­та­ют про­грам­мы внут­ри ком­пью­те­ра и что сто­ит за кодом на самом деле.

Билл Гейтс гово­рил об этой кни­ге так: «Если вы про­чи­та­ли все тома „Искус­ства про­грам­ми­ро­ва­ния“, вам точ­но сле­ду­ет отпра­вить мне своё резю­ме».

Текст:
Миша Поля­нин

Редак­тор:
Мак­сим Илья­хов

Кор­рек­тор:
Ира Михе­е­ва

Иллю­стра­тор:
Даня Бер­ков­ский

Вёрст­ка:
Маша Дро­но­ва

Достав­ка:
Олег Веш­кур­цев

Подборка книг для начинающего WEB-программиста

Вы мечтаете создавать красивые современные сайты? Всевозможные «конструкторы» вас давно перестали устраивать, а для работы с готовыми CMS нужны всевозможные доработки? У вас есть два пути – обратиться к специалистам или… самому стать веб-программистом. Если вы читаете эту статью, скорей всего, вы пошли по второму пути. И это здорово! В результате вы получите не только возможность создавать для себя все, что вам захочется, но и очень востребованную профессию.

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

Книги по HTML и CSS

HTML (Hypertext Markup Language) – это базовый код, который отвечает за отображение страниц сайта в браузере. Его вы видите, если просматриваете «исходный код страницы». Надо понимать, что HTML – это только начало. С его помощью можно создать либо полностью статичную страничку, либо, что сегодня намного актуальнее, шаблон будущего сайта. Пригодится он вам и во многих других случаях. В общем, без этих знаний вам точно не обойтись.

CSS (Cascading Style Sheets) – это специальный язык разметки, очень удобный инструмент для создания шаблонов веб-страниц. Применение CSS-стилей экономит время при создании сайта и позволяет пользоваться везде единым набором решений, т.е. создать многостраничный ресурс в едином стиле.

Джон Дакетт «HTML и CSS»

Этот учебник считается одним из лучших на сегодняшний день для изучения описанных выше инструментов веб-программирования. Он прекрасно подходит для начинающих, так как все возможности описываются с нуля и максимально подробно. Много примеров и полезных советов, очень простой язык и подача материала. Для новичков – лучше не придумаешь.

А.  Хрусталев, А. Кириченко «HTML5 + CSS3. Основы современного WEB-дизайна»

Этот учебник также прекрасно подойдет для новичков, так как тоже начинается с самых азов веб-программирования. Книга выпущена в 2018 году, все примеры, задачи, даже синтаксис уже основаны на современных версиях HTML и CSS с учетом их важных особенностей. Книга подойдет как «чайнику», который хочет разобраться в основах работы с сайтами, так и опытным верстальщикам или дизайнерам. Здесь рассматриваются в числе прочего методы создания современных адаптивных дизайнов, работа с визуальными формами и фреймворками, описание визуальных функций CSS3 и т.д. В книге очень много практических примеров.

Учебники по JavaScript

JavaScript – это уже не просто стили и разметки страницы, но полноценный язык программирования для веб-сайтов. Если вы видите не просто статичную страничку, но какую-то анимацию, проигрыватель видео или аудиозаписей, онлайн-калькуляторы и многие другие «фишки», где какие-то действия выполняются при загрузке страницы или по клику пользователя, вероятнее всего, что без JavaScript здесь не обошлось.

Фримен Э., Робсон Э. «Изучаем программирование на JavaScript»

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

Дэвид Флэнаган «JavaScript. Подробное руководство»

Автор этого учебника – практикующий программист, который постоянно совершенствуется. Сейчас уже вышло 6-е издание, в котором автор обновил некоторые нюансы работы с новыми версиями языка. Это издание не совсем подходит для новичков, так как язык изложения несколько суховат, и основы описаны сжато. Но если вы сначала ознакомитесь с азами и синтаксисом, «Подробное руководство» поможет вам изучить многочисленные нюансы работы в JavaScript. В книге очень много полезных и оригинальных примеров.

Райан Бенедетти, Ронан Крэнли «Изучаем работу с jQuery»

Эта книга посвящена одной из самых важных и универсальных библиотек JavaScript под названием jQuery. С ее помощью обеспечивается мультибраузерность, производится множество манипуляций с DOM, обмен информацией через API и многое другое. Эта библиотека применяется на большинстве сайтов. По сути, она позволяет при помощи средств JavaScript объединять элементы HTML и CSS, даже управлять ими. После изучения основ JavaScript, обязательно ознакомьтесь с этой библиотекой.

Учебники по PHP и MySQL

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

В нем обычно «прячется»:

  • Возможность на уровне пользователя добавлять и редактировать любые материалы;
  • Управление интерактивными возможностями (обратная связь, оформление покупок в интернет-магазинах, общение в чате и т.д. и т.п.).

Если вы изучите любой сайт изнутри на сервере, то увидите, что он состоит из множества исполняемых PHP-файлов, папок с картинками и HTML-шаблонами. Отдельно выделяется место под хранение данных. Они находятся в специальных SQL-таблицах.

Когда вы указываете адрес страницы сайта, из браузера на хостинг отправляется запрос. На его основе PHP-программа «собирает» из шаблона и базы данных запрошенную страницу. Т.е. по сути, современные сайты формируют готовые странички для вас каждый раз заново. С учетом всех изменений, которые были внесены пользователями и администратором.

Майк МакГрат «PHP7 для начинающих с пошаговыми инструкциями»

Очень простой самоучитель для начинающих. Понятные по-шаговые инструкции, максимум примеров, пояснения на уровне «чайников» — все это позволит познакомиться с этим важнейшим для веб-программирования языком на практике и даже создать собственный сайт.

Каллум Хопкинс «PHP. Быстрый старт»

Этот учебник – настоящий интенсив по PHP для новичков. В книге практически нет «воды», минимум теории, зато очень много практических примеров. Этот учебник поможет вам понять основы PHP и научиться создавать сайты, «читать» код и вносить в него доработки буквально за несколько дней. Конечно, предполагается, что вы хотя бы немного знакомы с программированием. Иначе процесс продлится дольше просто потому, что придется отвлекаться от этого интенсива ради изучения основ программирования.

Майкл Моррисон, Линн Бейли «Изучаем PHP и MySQL»

Этот учебник поможет изучить сразу два важнейших инструмента бэкэнда – язык программирования PHP и самый распространенный вариант базы данных MySQL. Вы поймете, как создавать программные решения для сайтов, манипулировать с базами данных, создавать новые таблицы, обработки запросов и форм, использовать куки, работать с авторизацией пользователей и многое другое.

Линн Бейли «Изучаем SQL»

А этот учебник посвящен только базам данных SQL (MySQL). Здесь подробно описываются методы работы с базами данных, создание таблиц, чтение, очистка и запись в ячейки. Описаны возможные типы данных, возможности определения связей между таблицами в общей базе, работа с разными типами ключей, методы оптимизации. Если вы хотите понять, что такое SQL и как с ними работать всерьез, обязательно изучите этот учебник.

Но это только основы!

Выше мы рассказали, что именно изучать человеку, который знакомится с основами веб-программирования. Рассказали о хороших учебниках для новичков. В принципе, с этими знаниями вы сможете создавать веб-сайты, писать различные обработки и надстройки для популярных CMS («движков» сайтов). На уровне небольших сайтов вам этих знаний, скорей всего, будет больше чем достаточно. Но если вы хотите стать настоящим веб-программистом, важно понимать, что это – только начало пути.

В процессе обучения и при реализации первых проектов вам нужно будет определиться, кем вы хотите быть – фронэнд-, бэкэнд-разработчиком или универсалом.

Если вы специализируетесь на фронтэенде, вам понадобится глубокое изучение JavaScript-библиотек, различных методов верстки, изучить работу с оптимизацией изображений и другими методами быстрой загрузки страниц. Т.е. вы станете специалистом по внешнему виду сайтов. Чаще всего одновременно с фронэнд изучают основы веб-дизайна. Впрочем, это не обязательно.

Бэкэнд – это работа с функционалом. Здесь вам помимо PHP понадобятся и другие современные языки программирования, да и сам PHP вы изучите намного глубже. Вашей специализацией будут крупные корпоративные проекты, разработка онлайн-игр, уникальных CMS. Может быть, вы станете частью команды какой-то поисковой системы или займетесь работой с любым программным SAAS-продуктом (онлайн-сервисом).

Веб-разработчики универсалы обычно изучают все и сразу, но не столь глубоко. Чаще всего это те самые веб-мастера, которые создаются интернет-магазины и сайты для коммерческого сектора, много работают с готовыми движками, занимаются доработками и обслуживанием подобных проектов.

Что вам интереснее? Скорей всего, вы поймете уже тогда, когда начнете учиться. И тогда вы будете знать, что вы хотите выучить, а книги – их мы вам подскажем в других публикациях.



Эти книги должен прочитать каждый, кто считает себя программистом! — «Хакер»

Содержание статьи

Польза не во многих, но в хороших книгах.

Сенека

Все мы прекрасно понимаем: чтобы стать профессиональным программистом, необходимо читать специализированную техническую литературу. Но на сегодняшний день доступно огромное количество различных изданий по программированию. Целой жизни не хватит, чтобы одолеть и половину из них. Какие же книги нужно читать в первую очередь? Без каких книг нельзя обойтись? В этой статье мы расскажем о тех трудах великих авторов, с которыми должен быть знаком каждый профессиональный разработчик.

В этой статье мы рассмотрели не все книги из золотого фонда программерской мысли. Следующие Х книг ты найдешь в десятом номере.

 

Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете.

Сложно найти гуру программирования, который не читал «Совершенный код» Стива Макконнелла. Действительно, одна книга, хоть и немаленькая (чуть менее 900 страниц), покрывает практически все аспекты разработки ПО: от рецептов написания высококачественного кода, механизмов тестирования и отладки до стратегий оптимизации кода и психологических факторов, влияющих на разработку. Представь себе: библиография книги занимает 20 страниц и содержит более 500 источников! Книга «Совершенный код» — одно из самых полезных и, как следствие, популярных изданий по разработке ПО. Она неоднократно доказала это, возглавляя рейтинги книг по программированию (goo.gl/3q0kx). Благодаря простой манере изложения, особому стилю и чувству юмора Стива книга читается очень легко.

Говоря о проектировании и конструировании программных систем, Макконнелл выделает Главный Технический Императив Разработки ПО — управление сложностью. Простота и ясность исходного кода и архитектуры системы определяют ее качество. Большая часть книги посвящена написанию высококачественного кода. Макконнелл, как никто другой осознавая значимость мелочей, детально описывает все правила, которыми необходимо руководствоваться при написании хорошего кода. Необходимый уровень абстракции, разработка качественных интерфейсов классов и пакетов, написание высококачественных методов, выбор удачных имен переменных, упрощение управляющих структур, комментирование кода — ничто не ускользает от внимания автора. Например, общим принципам использования переменных отведен целый раздел книги более чем на 100 страниц. Только вопросу выбора имен переменных посвящена целая глава на 30 страниц. При этом все правила и советы даются исключительно с практической точки зрения.

В части, в которой говорится о качестве ПО в целом, Макконнелл формулирует Главный Закон Качества ПО: повышение качества системы снижает расходы на ее разработку. Причина ясна — большую часть времени программисты занимаются чтением и отладкой написанного кода, тогда как на собственно написание уходит около 10% рабочего времени. Поэтому поддержание качества кода системы на высоком уровне экономит много времени и тем самым повышает КПД программиста.

Автор не обходит вниманием и различные методики разработки. Подробно описывается парное программирование, ревизии кода, формальные и неформальные инспекции, разработка на основе тестирования. «Рефакторинг» — единственная глава книги, которую можно назвать «слабоватой». При рассмотрении методов рефакторинга приводится лишь длинный список его видов из книги М. Фаулера «Рефакторинг». При этом нет ни одного конкретного примера кода. Раздел носит скорее ознакомительный характер.

Говоря о повышении производительности ПО, автор приводит убедительные доводы против преждевременной оптимизации, когда программист в процессе разработки интуитивно распознает «узкие» места в программе и незамедлительно принимает меры по оптимизации в ущерб качеству кода. Приводимая статистика показывает, что в 9 из 10 своих предположений программист ошибается.

Подвести итоги можно словами Джона Роббинса: «Это просто самая лучшая книга по конструированию ПО из всех, что когда-либо попадались мне в руки. Каждый разработчик должен иметь ее и перечитывать от корки до корки каждый год. Я ежегодно перечитываю ее на протяжении вот уже девяти лет и все еще узнаю много нового!»

 

Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям.

М. Фаулер

Практически любое издание о рефакторинге ссылается на книгу Мартина Фаулера «Рефакторинг». Действительно, в этой книге Фаулер сделал невозможное — в предельно понятной форме донес до читателей почти полностью исчерпывающее описание понятия «рефакторинг», его назначение, особенности и методы реализации.

При немалом объеме (400 страниц) книга читается буквально за пару вечеров, от нее просто невозможно оторваться. Главная причина головокружительного успеха книги — ее практическая направленность. Все мы знаем, что самая сложная задача при подаче материала — привести хороший показательный пример. В этом Фаулеру нет равных. Книга начинается с примера улучшения программы, который сразу с головой затягивает читателя в мир рефакторинга. Всего 40 страниц примера дают нам вполне конкретное представление о рефакторинге, его целях, принципах и основных методах реализации. Мартин определяет рефакторинг как «изменение во внутренней структуре ПО, имеющее целью облегчить понимание его работы и упростить модификацию, не затрагивая наблюдаемого поведения». Но когда необходимо проводить данное изменение? Какой код должен подвергаться переработке? Автор дает исчерпывающие ответы на эти вопросы. Он вводит правило «трех ударов»: «После трех ударов начинайте рефакторинг». То есть когда вы делаете что-то аналогичное в третий раз, это сигнал для начала рефакторинга. Раздел «Код с душком» дает нам четкое представление о том, какой же код требует улучшения. К признакам такого кода относятся: длинный метод, большой класс, длинный список параметров метода, дублирование кода, операторы типа switch, временные поля, отказ от наследства, неуместная близость классов и многое другое.

Фаулер, как сторонник TDD (Test-driven development), посвящает главу книги созданию автоматических тестов и описанию среды JUnit. Если обнаружена ошибка, сначала необходимо написать автоматический тест, выявляющий ее, и лишь затем проводить исправление. Это позволит в будущем не наступать на одни и те же грабли. Аналогично перед проведением рефакторинга следует написать тест для улучшаемого кода, чтобы обеспечить неизменность его поведения.

Бо́льшую часть книги занимает каталог методов рефакторинга. Он содержит разделы, посвященные составлению методов, перемещению функций между объектами, организации данных, упрощению условных выражений и вызовов методов, решению задач обобщения и крупным архитектурным рефакторингам. Многие из методов рефакторинга автоматизированы в популярных IDE. Например, Visual Studio предоставляет возможности по автоматическому выделению метода (ExtractMethod), удалению параметра (RemoveParameter), выделению интерфейса (ExtractInterface) и пр. В качестве крупных рефакторингов уровня системы Фаулер приводит следующие: разделение иерархии наследования, выполняющей более одной задачи, преобразование процедурного подхода к проектированию в объектно-ориентированный подход, отделение предметной области от уровня представления, а также выделение иерархии, подразумевающее разбиение большого класса на целую иерархию значительно меньших по размеру и более специализированных подклассов.

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

 

Проектирование объектно-ориентированных программ — нелегкое дело, а если их нужно использовать повторно, то все становится еще сложнее.

Э. Гамма

Спросите у опытного разработчика, какую книгу по объектно-ориентированному программированию вам обязательно стоит прочитать. В абсолютном большинстве случаев он посоветует именно эту. В отношении данной книги слово «бестселлер» звучит недостаточно выразительно, ведь с момента ее выпуска было продано уже более полумиллиона экземпляров на английском и тринадцати других языках!

Очень часто начинающий разработчик самостоятельно берется за решение уже более тысячи раз решенной до него задачи проектирования и изобретает очередную разновидность пятиколесного велосипеда, истинно гордясь своим «новшеством». Владение языком паттернов позволяет решить множество задач проектирования наиболее оптимальным способом, затрачивая при этом минимум усилий. Всего двадцать описанных в книге паттернов предоставляют инструментарий для решения огромного спектра задач проектирования ПО. Материал книги довольно сложен и требует от читателя определенных знаний в области объектно-ориентированного проектировании. Для освоения паттернов недостаточно просто прочитать книгу, необходимо основательно над ней «попотеть». Впрочем, твои усилия не пройдут даром. Книга содержит 350 страниц и состоит из двух частей. В первой части дается общее понятие паттернов проектирования, описывается их практическое применение на примере создания визуального редактора документов Lexi. Вторая часть книги содержит каталог паттернов с подробным описанием назначения, структуры, особенностей реализации и примерами применения каждого паттерна.

Коллектив авторов известен как Gang of Four («Банда четырех»), поэтому представленные в книге паттерны называют GoF. Авторы разбивают все множество представленных паттернов на три группы: порождающие паттерны, структурные паттерны и паттерны поведения. Порождающие паттерны решают задачу инстанцирования (создание экземпляров) классов. К самым популярным паттернам в данной группе можно отнести AbstractFactory (абстрактная фабрика), FactoryMethod (фабричный метод) и Singleton (одиночка).

Структурные паттерны предназначены для решения вопросов компоновки системы на основе классов и объектов. К ним относятся такие важнейшие паттерны, как Adapter (адаптер), Bridge (мост), Composite (компоновщик), Proxy (заместитель) и Façade (фасад). Паттерны поведения связаны с алгоритмами и вопросами распределения обязанностей между классами. Здесь необходимо упомянуть Strategy (стратегия), TemplateMethod (шаблонный метод), Observer (наблюдатель), Command (команда) и Iterator (итератор).

Единственное, что может смутить читателя, — некоторые примеры в книге написаны на малоизвестном на сегодняшний день языке программирования Smalltalk, а для изображения диаграмм классов вместо привычного UML используется OMT (Object Modeling Technique).

Гуру ООАиП Мартин Фаулер пишет: «Паттерны GoF — это лучшая из когда-либо изданных книг по объектно-ориентированному проектированию. Эта книга чрезвычайно влиятельна в индустрии программного обеспечения — только посмотрите на библиотеки Java и .NET, которые буквально кишат паттернами GoF». Не существует специалиста в области объектно-ориентированного проектирования, незнакомого с паттернами GoF, а если такой и есть, то в этом случае его, скорее всего, нельзя назвать специалистом.

 

Умение писать код — тяжелая работа. Она не ограничивается знанием паттернов и принципов. Над кодом необходимо попотеть.

Р. Мартин

«Чистый код» — одна из наиболее удачных книг, посвященных написанию высококачественного кода. Размер книги — 360 страниц, не считая приложений. При этом она настолько увлекательна и доступна, что за два-три вечера запросто прочитаешь ее от корки до корки. В дружеской манере «дядюшка» Боб рассказывает нам, какими же принципами нужно руководствоваться, чтобы писать хороший код. Книга изобилует примерами из реальных приложений, с которыми автор сталкивался в своей практике. Среди них такие известные продукты, как JUnit, FitNesse, JDepend, Ant и TomCat.

Книга разделена на три части. Первая часть — теория написания «чистого» кода: приемы, паттерны и принципы, которым необходимо следовать разработчику. Вторая часть носит практический характер и подробно описывает сам процесс «чистки» кода существующих приложений. Третья часть подводит итоги всей книги и содержит перечень «запахов кода» и методов их устранения.

В теоретической части подробно описываются принципы именования переменных, методов и классов, правила создания функций, написания комментариев, форматирования кода, принципы обработки ошибок и написания модульных тестов. Целый раздел посвящен особенностям создания многопоточных приложений. Роберт дает понять, что хорошо написать код недостаточно.

Необходимо поддерживать его чистоту с течением времени, чтобы предотвратить «загнивание». Поэтому он вводит «правило бойскаута»: «Оставь место стоянки чище, чем оно было до твоего прихода». То есть с каким бы участком кода мы ни работали, нужно пытаться в итоге сделать его качественнее, чем он был. В таком случае, код не будет загнивать и останется чистым.

При создании функций во главу угла ставятся компактность, правило одной операции и одного уровня абстракции — очевидные на первый взгляд принципы, которые так часто нарушаются программистами. Будучи ярым адептом TDD, Мартин указывает на важность «чистоты» не только кода конечного продукта, но и кода модульных тестов. Он иронически замечает: «Какими отличительными признаками характеризуется чистый тест? Тремя: удобочитаемостью, удобочитаемостью и удобочитаемостью».

Пожалуй, единственный недостаток книги — это ее Java-ориентированность. Все представленные примеры написаны исключительно на языке Java. При этом большое количество советов и «запахов кода» характерны в основном для Java-кода.

В начале книги Роберт приводит ответы мэтров программирования на вопрос, что же такое «чистый код». Грэди Буч отвечает: «Чистый код прост и прямолинеен. Чистый код читается, как хорошо написанная проза. Чистый код никогда не затемняет намерения проектировщика; он полон четких абстракций и простых линий передачи управления». Программисты, которые стремятся писать «чистый код», просто обязаны прочитать эту книгу.

 

Лучший способ в чем-то разобраться до конца — это попробовать научить этому компьютер.

Д. Кнут

Программист, у которого нет книги «Искусство программирования», как священнослужитель, у которого нет Библии. Монографию Дональда Кнута часто называют «Библией программиста». Она содержит подробное описание и анализ важнейших фундаментальных алгоритмов, используемых в информатике, а также множество практических задач для усвоения и закрепления представленного материала. Журнал American Scientist включил работу Кнута в список двенадцати лучших физико-математических монографий XX века наряду с работой Эйнштейна по теории относительности. Успех книги определило качество изложения и глубина анализа общих вопросов программирования.

Кнут начал работу над «Искусством программирования» еще в 1962 году. По замыслу автора монография должна состоять из семи томов. Пока было издано три первых тома, а также первая половина четвертого. Все изданные на сегодняшний день материалы составляют почти 3000 страниц. Читать книгу совсем не просто (как, впрочем, и Библию), главным образом потому, что все примеры рассматриваются на низкоуровневом языке программирования — ассемблере для гипотетического выдуманного автором компьютера MIX. Поэтому у программиста вряд ли получится использовать книгу в качестве набора готовых рецептов для решения конкретных задач. Эта книга дает программисту не рыбу, а скорее хорошую удочку, с помощью которой он сможет не без определенных усилий самостоятельно наловить рыбы.

Первый том посвящен основным алгоритмам и состоит из двух глав. Первая глава подготавливает читателя к работе над книгой. Здесь рассматриваются основные математические понятия и теоремы, на которых базируется весь материал. Читатель знакомится с «полиненасыщенным компьютером» MIX, его архитектурой и его языком ассемблера. Вторая глава посвящена информационным структурам и алгоритмам работы с ними. Здесь рассматриваются деревья, многосвязные структуры, линейные списки, в том числе стеки, очереди, деки, циклические и дважды связанные списки и прочее.

Второй том включает в себя третью и четвертую главы. Третья глава посвящена работе со случайными числами и последовательностями. В четвертой главе описываются вопросы арифметики, а именно различные виды систем счисления, арифметика чисел с плавающей точкой и рациональных чисел, полиномиальная арифметика и другое. Третий том посвящен алгоритмам сортировки и поиска (соответственно, главы 5 и 6). Из четвертого тома опубликованы материалы седьмой главы, описывающей вопросы комбинаторного поиска.

Исходя из планов автора, в четвертый том также войдет восьмая глава, в которой рассматриваются рекурсивные алгоритмы. Пятый том будет содержать материалы по синтаксическим алгоритмам, в том числе по лексикографическому и синтаксическому поиску. Ожидающие издания шестой и седьмой тома будут посвящены теории языков и компиляторам.

В своем отзыве о работе Кнута Билл Гейтс сказал: «Если вы считаете себя действительно хорошим программистом… прочитайте „Искусство программирования“ (Кнута)… Если вы сможете прочесть весь этот труд, то вам определенно следует отправить мне резюме». Цитата лишний раз подчеркивает, что, несмотря на сложность материала, настоящий профессионал обязательно должен осилить труд Дональда Эрвина Кнута «Искусство программирования».

Программисты-прагматики не уклоняются от ответственности. Вместо этого они испытывают радость, принимая вызовы и распространяя свой опыт.

Эндрю Хант

Книга «Программист-прагматик» полностью оправдывает свое название. Викисловарь говорит, что прагматик — это тот, «кто ставит практическую полезность, выгоду выше всего». Программисты-прагматики ориентируются в первую очередь на практическую успешность реализуемых проектов. Авторы на основании своего богатейшего опыта программирования создали структурированный набор практических советов для программистов. Небольшой размер книги (270 страниц) говорит о высокой концентрации важной для программиста информации.

Практически все излагаемые в книге темы поясняются выразительными аналогиями, которые порой поражают своей точностью. В книге проводятся параллели между некачественным кодом и теорией разбитого окна, столярным делом и работой программиста, вождением автомобиля и написанием кода, стрельбой трассирующими пулями и созданием прототипов ПО, хождением по минному полю и программированием в расчете на стечение обстоятельств. В конце каждого раздела приводятся вопросы для обсуждения и упражнения, что лишний раз подчеркивает практическую направленность книги.

Одним из самых замечательных принципов программирования, которым мы обязаны авторам, является принцип DRY (Don’t Repeat Yourself), что в переводе на русский означает: «Не повторяй самого себя». Это значит, что каждый фрагмент знания должен иметь единственное и однозначное представление в системе. Следование данному принципу позволяет повысить надежность, доступность и простоту сопровождения программного продукта.

В главе, посвященной общей философии прагматичного программирования, мы узнаем, каким авторы видят программиста-прагматика: он всегда принимает ответственность за свой код, следит за состоянием своего продукта, постоянно совершенствуется, общается и находит компромисс с пользователями. Глава «Прагматический подход» говорит об общих методиках разработки и оценки трудоемкости проектов. Важнейшая глава «Гибкость против хрупкости» рассказывает, каким же образом необходимо создавать действительно гибкие и устойчивые к изменению системы. Из главы «Перед тем, как начать проект» можно узнать о процедуре формирования и утверждения требований к системе. «Прагматические проекты» знакомят нас с критическими аспектами создания реальных проектов, такими как работа в команде, тестирование и формирование документации.

Единственное, что может подпортить впечатление о книге, так это недостаточно качественный перевод на русский язык и наличие множества опечаток. Книгу лучше всего читать в оригинале на английском языке. Нельзя не согласиться с отзывом Кента Бека: «Главное в этой книге то, что она поддерживает процесс создания программ в хорошей форме. [Книга] способствует вашему постоянному росту и явно написана людьми, знающими толк в программировании». Если вы стремитесь к постоянному росту как программист, эта книга обязательна к прочтению.

 

Заключение

Значение хороших книг по программированию сложно переоценить. Каждая из описанных книг позволяет совершить огромный скачок в развитии. «Искусство программирования» закладывает прочный фундамент, обучая нас фундаментальным алгоритмам и приемам программирования. «Совершенный код» позволяет выйти на новый качественный уровень конструирования ПО. «Чистый код» и «Рефакторинг» учат нас внимательнее относиться к качеству кода и поддерживать его в идеальном состоянии. «Программист-прагматик» подсказывает, как же реально добиться практического успеха при разработке ПО. «Паттерны проектирования» вооружают тяжелой артиллерией паттернов для решения множества задач проектирования.

 

Программирование с нуля: 4 лучших книги для детей и взрослых

Рейтинги

Программирование с нуля: 4 лучших книги для детей и взрослых

17 марта 2017 80 923 просмотра


Алена Лепилина

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

Пусть вас не смущает, что книги детские — их заказывают себе многие взрослые, которым программирование в новинку, а освоить тот или иной язык хочется или требуется по работе (например, аналитикам). С профессиональных книг начинать сложновато, а вот самоучители — самое то.

Python — очень популярный язык программирования. На нем написаны многие мобильные банки, популярные приложения для браузера и программы, которыми вы пользуетесь каждый день. При этом язык очень прост в изучении и подходит для обучения программированию детей. И, конечно, взрослых. Вы создадите собственную игру, даже целых две!

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

Эта книга позволит вам погрузиться в программирование и с легкостью освоить JavaScipt. Вы напишете несколько настоящих игр — поиск сокровищ на карте, «Виселицу» и «Змейку». На каждом шаге вы сможете оценить результаты своих трудов — в виде работающей программы, а с понятными инструкциями, примерами и забавными иллюстрациями обучение будет только приятным.

Эта книга — не только введение в JavaScript, но и вообще в программирование.

Scratch — простой, понятный и невероятно веселый язык программирования для детей. В нем нет кодов, которые нужно знать назубок и писать без ошибок. Все, что требуется, — это умение читать и считать. Как из конструктора, при помощи Scratch можно собирать программы из разноцветных «кирпичиков» — блоков. В программу можно вносить любые изменения в любой момент, и сразу видеть, как она работает.

Подробные объяснения, разобранные по шагам примеры и множество упражнений помогут освоить Scratch без труда.

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

Многие считают, что программирование — одно из наиболее важных в ХХI веке умений.

Читайте, учитесь и создавайте собственные программы. Это клево 😉

Какие книги посоветуете почитать для освоения программирования с нуля? — Хабр Q&A

Посоветовала бы Head First Java. Java — широко используемый язык. Не самый модный, но с модных начинать не стоит, потому что может быть сложно переучиваться. На примере Java как раз можно изучить основные понятия программирования — операторы, функции, ООП и т. д., — а после Java уже можно посмотреть Python, JS и ещё что-нибудь. Зная более основательный язык, будет проще переключиться на языки, в которых что-то из Java не используется. А вот наоборот двигаться, на мой взгляд, сложнее и менее продуктивно.
Если не понравится Java, можно ещё посмотреть С# («C Sharp»). Эти два языка я бы назвала классическими. Зная любой из них, можно быть востребованным.
С С++ или чистого С может быть сложнее начинать. Чтоб с ними работать, нужно лучше понимать, как происходит работа программ. Но если интересно и в сторону железа смотреть, то можно и с них попробовать начать. Параллельно изучая Таненбаума и Паттерсона или что-то вроде того. Если математика нравится, то как раз можно больше уйти в С и хардкорное программирование чего-то сложного.
Кстати, зная Java, можно стать разработчиком программ под Android. И ещё после Java есть больше возможностей работать в веб-проектах, заниматься бекэндом (то есть той логикой сайтов, что скрыта за их красивым видом).
А я сама начинала с книги Шилдта. Можно и с неё начать. Мне понравилось, что всё постепенно рассказывается. Хотя в книгах серии Head First (по С#, по С) подробностей для новичка больше.
И ещё добавлю, что по ходу чтения здорово практиковаться, то есть писать программы. Собственно создание программ происходит обычно с средах разработки. Полезно их установить и начинать программировать именно в них, потому как они во многом упрощают разработку, помогают быстрее понять, что к чему. Заодно и их изучите (их знание часто требуется на работе). Для всех С-языков стандартом является среда разработки Visual Studio, для Java я бы посоветовала IntelliJ IDEA.
И, кстати, рекомендую подкаст The art of programming. Правда, подкаст-терминал, где были выпуски, прикрыли, но советую поискать недавние выпуски подкастов замечательного человека с ником golodnyj. Благодаря ему я и начала двигаться в сторону программирования. 🙂 А, и ещё один подкаст посоветую: Откровенно про IT-карьеризм.

10 книг о работе программистов

Подборка книг с советами по работе для программистов.
У начинающих часто возникают вопросы: как управлять временем, мотивировать себя, избегать рисков, решать проблемы.

У начинающих часто возникают вопросы: как управлять временем, мотивировать себя, избегать рисков, решать проблемы. Ответы на эти вопросы лучше всего спросить у профессионалов. Мы собрали 10 лучших книг с советами по работе для программистов.

Если вы когда-либо учились программировать, но забросили это дело из-за сложности процесса, эта книга для вас. Здесь собраны ответы на многие вопросы по самоорганизации, ответственности, карьере. Применив советы автора, эффективность работы повысится, равно как и ваше удовлетворение от неё.

Скачать или читать онлайн

Это сборник рекомендаций: взаимоотношения с коллегами, самореализация, развитие — лишь несколько из тем, рассматриваемых в книге. Книга будет особенно полезна начинающим, потому что многие истины, собранные в книге, познаются с опытом и могут быть известны профессионалам. Известные программисты сходятся во мнении, что книгу стоит читать в том случае, если поставлена цель построить карьеру, а для этого, естественно, нужна работа над собой.

Скачать или читать онлайн

В книге рассказывается о методах, которые используют профессионалы при написании кода. Для них качество разрабатываемого ПО — основная цель работы. В книге рассмотрены сразу несколько аспектов программирования, оценка проекта и написание кода, рефакторинг, тестирование и др. Эта книга — больше, чем описание методов, она о профессиональном подходе к процессу разработки, о том, как нужно подходить к работе, если желаешь стать профессионалом.

Скачать или читать онлайн

В книге собраны эссе из блога сооснователя платформы Stack Overflow. Автор затрагивает все аспекты создания ПО: от способов устройства рабочего места до лучших способов написания кода. Будет полезна всем, кто работает в команде с программистами.

Скачать

Авторы рассказывают, как прогнозировать риски и управлять ими. «Избегать рисков — дело проигрышное. Проекты без риска — удел неудачников» — так считают авторы и поясняют: только научившись управлять рисками можно обойти конкурентов.

Читать онлайн

Книга ориентирована на широкий круг читателей: от менеджеров, работающих с программистами, до самих программистов. Автор собрал более 60 фактов и заблуждений, связанных с работой в IT индустрии. Факты и заблуждения подтверждаются научными исследованиями или другими весомыми источниками, так что всё, что написано в книге — чистая правда.

Скачать или читать онлайн

Это сборник мнений звёзд IT индустрии, где каждый поделился своими способами достижения успеха. Эти люди исповедуют разные взгляды, относятся к разным социальным группам, но их объединяет страсть к своему делу, которая способствует развитию бизнеса.

Читать онлайн

Программист — это, прежде всего, человек. И как любой другой человек, он должен профессионально расти, чтобы конкурировать с другими. В книге рассказано, как построить успешную карьеру, оставаться востребованным специалистом на протяжении нескольких лет и получать удовольствие от работы.

Скачать или читать онлайн

Эту книгу называют азбукой компьютерных технологий. Здесь рассказана история возникновения компьютеров, принципы их работы, как кодируется информация и другие простые, но обязательные для понимания темы. Книга написана простым языком, так что её можно рекомендовать и тем, кто имеет минимальный опыт взаимодействия с компьютером.

Скачать или читать онлайн

Когда-то первая версия этой книги была эталоном руководства по программированию. Затем, автор написал её заново, с учётом быстрого развития технологий. Как понятно из названия, книга — об искусстве программирования. Это универсальный источник информации, пригодится при работе над любым проектом и научит писать совершенный код.

Скачать или читать онлайн

И всё-таки, книги книгами, а без практики ничего не выйдет. Программируйте больше, и всё получится

Другие полезные материалы по теме:

25 книг по программированию для начинающих разработчиков

Неважно, учитесь ли вы программировать онлайн, на учебном курсе или лично, есть один дополнительный ресурс, который мы рекомендуем сопровождать вашим обучением: книги. Но с таким количеством книг по программированию на выбор (поиск в Google дает более 12 миллионов связанных результатов), как узнать, какие из них выбрать?

Мы решили провести краудсорсинг и спросили наше замечательное сообщество в Facebook и Twitter: Если бы вы порекомендовали одну книгу по программированию, что бы это было? Мы получили много отличных отзывов, и после их сортировки мы составили 25 лучших (перечисленных в произвольном порядке).

Начните учиться программировать уже сегодня с бесплатной пробной версией Treehouse.

Общее программирование

1. Чистый код: руководство по гибкому разработке программного обеспечения Роберт К. Мартин

2. Код завершен: Практическое руководство по созданию программного обеспечения Стива МакКоннелла

3. Думай как программист: Введение в решение творческих задач В. Антон Спраул

4. Код: скрытый язык компьютерного оборудования и программного обеспечения Чарльз Петцольд

5.Начиная с Programming Logic & Design Тони Гэддиса

6. Начало программирования настольного моноблока Справочник для чайников , Уоллес Ван

7. Cracking the Coding Interview: 189 Programming Questions & Solutions Гейл Лаакманн МакДауэлл

8. Первая серия книг (Java, Python, шаблоны проектирования, JavaScript, C #, WordPress, Rails)

HTML и CSS

9. HTML и CSS: Дизайн и создание веб-сайтов , Джон Дакетт

10.Head First HTML и CSS: Руководство для учащихся по созданию стандартных веб-страниц Элизабет Робсон

JavaScript и jQuery

11. You Don’t Know JS: Up & Going , Кайл Симпсон

12. Красноречивый JavaScript: современное введение в программирование , Марджин Хавербеке

13. Первым делом по программированию на JavaScript: удобное для мозга руководство , Эрик Т. Фриман

14. JavaScript и jQuery: интерактивная интерфейсная веб-разработка , Джон Дакетт

15.Профессиональный JavaScript для веб-разработчиков , Николас Закас

16. Секреты JavaScript-ниндзя , Джон Ресиг

17. JavaScript: программирование на JavaScript. Полное руководство для начинающих , Деннис Хаттен

Питон

18. Изучите Python 3 трудный путь: очень простое введение в ужасающе красивый мир компьютеров и кода , Зед А. Шоу

19. Свободное владение Python: ясное, краткое и эффективное программирование , Лучано Рамальо

20.Ускоренный курс Python: практическое, проектно-ориентированное введение в программирование , Эрик Маттес

21. Автоматизируйте скучную работу с помощью Python: практическое программирование для начинающих , Ал Свигарт

и более

22. Программист-прагматик: от подмастерья к мастеру Эндрю Хант

23. Программирование на iOS: Руководство Big Nerd Ranch, автор: Christian Keur

24. Как программировать на Java, ранние объекты Пол Дж.Deitel

25. Алгоритмы для жизни: компьютерная наука о человеческих решениях Брайан Кристиан и Том Гриффитс

Это далеко не исчерпывающий список, поэтому мы будем рады услышать от вас. Какие книги по программированию вы бы добавили в список?

Лучшие 10 любимых студенческих технических подкастов

.

54 лучших книги по программированию для программистов в 2020 году (+ обзоры читателей)

Существует так много удивительных книг по программированию и книг по информатике.

Многие из лучших книг по кодированию используются университетами и профессиональными разработчиками для улучшения своих навыков. Если вы учитесь программировать самостоятельно, нечего сказать, что вы не можете самостоятельно взять несколько лучших книг по программированию и сделать то же самое.

Вы можете посмотреть на этот список и подумать: «Как вы изучаете программирование по книгам?» На самом деле книги по информатике могут быть такими же интересными и полезными, как и курсы.Многие из лучших книг по программированию содержат практические задания и проекты, которые помогут вам реализовать то, что вы узнали. К тому же, по крайней мере, чтение книги по кодированию даст вам отдохнуть от взгляда на экран!

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

Раскрытие информации: я горжусь партнером книг, упомянутых в этой статье.Если вы купите продукт по моим ссылкам на этой странице, я могу получить небольшую комиссию за ваше направление. Спасибо!

Содержание


Основы программирования: лучшие книги по общему программированию

1. Внутри машины: иллюстрированное введение в микропроцессоры и компьютерную архитектуру

Автор: Джон Стоукс

Центральный процессор, или микропроцессор, лежит в основе программирования, поскольку он отвечает за выполнение инструкций компьютерной программы.

Эта лучшая книга по программированию поможет вам понять основы современных вычислений, изучая различные части компьютерной архитектуры и то, что происходит за кулисами программирования. Он начинается с фундаментальных концепций и охватывает весь путь до продвинутого.

«Внутри машины» Джона Стокса — лучшая книга, посвященная современным процессорам, которую я когда-либо читал. Я думаю, это принесет пользу всем разработчикам программного обеспечения.

— Лен Сассаман (@lensassaman) 19 июня 2010 г.

2. Структура и интерпретация программ для ЭВМ

Авторы: Гарольд Абельсон, Джеральд Джей Сассман, Джули Сассман

Эта книга по информатике была написана факультетом электротехники и компьютерных наук Массачусетского технологического института и основана на учебной программе, которую они преподают.

Как и следовало ожидать от авторитетных академических авторов, это довольно плотный контент, на который вам нужно будет посвятить некоторые мозги! Если вы это сделаете, вы получите глубокие и ценные знания о системах и процедурах программирования.

SICP — это структура и интерпретация компьютерных программ, блестящая книга, которая знакомит вас с функциональным программированием с помощью языка, называемого схемой. Книга способна радикально изменить ваш взгляд на программирование! 🙂

— Srirang (@srirangr) 12 сентября 2019 г.

3. Паттерны проектирования: элементы объектно-ориентированного программного обеспечения многократного использования

Авторы: Эрих Гамма, Ричард Хелм, Ральф Джонсон, Джон Влиссидес

Эта книга научит вас, как создавать более гибкие, элегантные и многократно используемые программы, с подробным рассмотрением 23 различных шаблонов проектирования.Хотя реальный код, написанный в книге, может быть устаревшим (он был опубликован в 1994 году), это все еще одна из лучших книг по объектно-ориентированному программированию, поскольку концепции и подходы остаются актуальными даже в 2020 году.

Я думаю, что «Шаблоны дизайна» от Гаммы и др. Был единственным учебником, о котором я когда-либо сожалел, продавая обратно в качестве старшекурсника, лол.

Могу ошибиться, но шрифт и внутренности кажутся знакомыми.

— Ирис Хоули (@irishowley) 14 августа 2018 г.

4. Код: Скрытый язык компьютерного оборудования и программного обеспечения

Автор: Чарльз Петцольд

Возможно, вы знаете , как кодировать , и все еще не можете объяснить, что именно код представляет собой . Это то, что Петцольд развенчивает в своей книге по программированию. Он использует знакомые примеры, чтобы привлечь вас и написать повествование, которое будет одновременно образовательным и приятным для чтения.

Я настоятельно рекомендую книгу «Код: скрытый язык компьютерного оборудования и программного обеспечения» (Чарльз Петцольд).Несмотря на то, что ему 20 лет, это чрезвычайно хорошо написанное и читаемое изнутри изложение того, как работают компьютеры, которое создает глубокое структурированное понимание. Блестяще.

— Лайалл Тейлор (@ LT3000Lyall) 14 января 2020 г.

5. Cracking the Coding Interview: 189 вопросов и решений по программированию

Авторы: Гейл Лаакманн МакДауэлл

Несмотря на то, что оно широко известно как полное руководство по подготовке к собеседованию, Cracking the Coding Interview также является отличной книгой для изучения основных концепций информатики и понимания того, как разбивать проблемы на управляемые части.Автор действительно знает свое дело. Фактически, она прошла собеседования по программированию в таких крупных компаниях, как Google, Microsoft и Apple.

Я не думаю, что человеческие слова могут выразить, насколько я люблю «Cracking the Coding Interview». @gayle — герой.

— адель макдональд (@altoanthem) 12 ноября 2014 г.

6. Code Complete: Практическое руководство по построению программного обеспечения

Автор: Стив МакКоннелл

Эта книга кодирования — очень популярное руководство по программированию и программному обеспечению благодаря ясному и прагматичному стилю написания.Он охватывает кодирование, отладку, дизайн, тестирование и многое другое.

Код завершен Стивом МакКоннеллом. Это фундаментальный труд, который должен быть в каждой библиотеке программистов. https://t.co/ONjFKsnh8p

— Роджер Пенс (@rogerpence) 1 ноября 2019 г.

7. Жемчуг программирования

Авторы: Джон Бентли

Подобно учебнику по алгоритмам и структурам данных (но с остроумными описаниями, которые интересно читать), эта книга предлагает идеи для решения проблем кодирования, в том числе, как выбрать правильный алгоритм, как эффективно решать проблемы и как мыслить как программное обеспечение. инженер.Это книга по сложным алгоритмам, поэтому она может быть не лучшим выбором для абсолютных новичков.

Читать «Жемчуг программирования» как простое удовольствие — это увлекательная компьютерная наука, с которой мы больше не можем взаимодействовать. Но принципы, изложенные в книге, неподвластны времени. Рекомендую всем измученным программистам, которые хотят возродить свою страсть к этой области;)

— Джой Гао (@joygao) 25 июня 2018 г.

8. Программист-прагматик: ваше путешествие к мастерству

Автор: Эндрю Хант, Дэвид Томас

Эта книга по программированию объединяет полезную информацию с занимательными анекдотами и примерами, разделенными на простые для понимания самостоятельные разделы.Вы изучите основные процессы, которые позволят вам стать лучшим программистом и создавать гибкий и эффективный код. И вы получите советы, как отточить свои карьерные навыки другими способами — от трудовой этики до распространенных ошибок, которых следует избегать.

Любимая техническая книга:
Программист-прагматик, в основном потому, что он дает множество замечательных технических и профессиональных советов.

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

— Александрия Хестон (@ali_heston) 21 декабря 2019 г.

Вернуться к содержанию »

9. Простота кода: основы программного обеспечения

Автор: Макс Канат-Александр

Эта книга для начинающих по программированию представляет собой «ПОЦЕЛУЙ» кодирования — она ​​описывает принципы, которым вы можете следовать, чтобы сделать свой код простым и эффективным независимо от того, какой язык вы используете.

Хорошая разработка программного обеспечения — простой код.

Только что закончил читать «Простота кода: основы программного обеспечения» Макса Канат-Александра, отличное чтение, много полезного, но недостаточно нового контента для разработчиков, которые работают надолго. Если вы новичок, попробуйте! — Георгиос Захариадис (@ gzachariadis1) 6 декабря 2019 г.

10. Алгоритмы для жизни: компьютерные науки о человеческих решениях

Авторы: Джон Бентли

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

Многое из прочтения «Алгоритмы для жизни: компьютерная наука о принятии решений человеком». Он не слишком технический и содержит множество применимых рекомендаций. https://t.co/zHWGU98S0G

— Уилл Кёрсен (@koehrsen_will) 30 марта 2020 г.

11. Очистить

.

Пользователь aspiring_programmer — 5 ответов

Переполнение стека
  1. Около
  2. Продукты
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
  4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
  5. Реклама Обратитесь к разработчикам и технологам со всего мира
  6. О компании
.

начинающих программистов — Stack overflow на русском

Переполнение стека
  1. Около
  2. Продукты
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
  4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
  5. Реклама Обратитесь к разработчикам и технологам со всего мира
  6. О компании

Загрузка…

  1. Авторизоваться зарегистрироваться
  2. текущее сообщество

    • Переполнение стека
.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *