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

Оглавление (нажмите, чтобы открыть):

5 обязательных к прочтению книг для программиста

Опубликовано shwan в 19.12.2020

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

Стив Макконнелл — Совершенный код

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

Джеффри Рихтер — CLR via C#. Программирование на платформе Microsoft.NET Framework 4.5 на языке C#

Очень подробное и грамотное руководство по языку разработке на языке C#. Книга подробно описывает внутреннее устройство и функционирование общеязыковой исполняющей среды (CLR) Microsoft .NET Framework версии 4.5. Материал книги направлена на обучение созданию по-настоящему надежных приложений любого вида, в том числе с использованием Microsoft Silverlight, ASP.NET, Windows Presentation Foundation и т.д. Материал излагается грамотным техническим языком. Данная книга является обязательной для изучения всем разработчикам на платформе .NET Framework и использующих язык программирования C#.

Эрих Гамма, Ричард Хелм, Ральф Джонсон, Джон Влиссидес — Приемы объектно-ориентированного проектирования. Паттерны проектирования

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

Мартин Фаулер, Кент Бек, Джон Брант, Дон Робертс — Рефакторинг. Улучшение проекта существующего кода

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

Эндрю Хант, Дэвид Томас, А. Алексашин — Программист-прагматик. Путь от подмастерья к мастеру

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

15 лучших книг по программированию с нуля

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

Роберт Мартин. «Чистый код»

Если ваш код работает, это ещё не значит, что он хороший. Думаете, что название переменных — это мелочь, которая ни на что не влияет? Как же вы ошибаетесь!

Стив Макконнелл. «Совершенный код»

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

Томас Кормен, Чарльз Лейзерсон, Рональд Ривест и Клиффорд Штайн. «Алгоритмы: построение и анализ»

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

Хант Эндрю, Томас Дэвид. «Программист-прагматик. Путь от подмастерья к мастеру»

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

Дональд Кнут. «Искусство программирования»

Монография, которая успела стать классикой в кругу программистов. Изучив все 4 тома серии, вы ознакомитесь со всем, что нужно для освоения профессии.

Юрий Родичев. «Нормативная база и стандарты в области информационной безопасности»

Вы думаете, что программирование — это только код? Как бы не так! Если вы хотите стать настоящим профи, то без изучения стандартов безопасности и чтения профильной литературы не обойтись. Маст-рид для программиста в 2020!

Андрей Бирюков. «Информационная безопасность: защита и нападение»

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

Том ДеМарко, Тимоти Листер. «Вальсируя с Медведями»

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

Избегать рисков — дело проигрышное.

Игорь Савчук. «Отъявленный программист. Лайфхакинг из первых рук»

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

Чарльз Петцольд. «Код. Тайный язык информатики»

Если вам интересна история информатики — обязательно ознакомьтесь с этой книгой. Чарльз Петцольд создал настоящую азбуку компьютерных технологий, где раскрыта вся история IT: с самых первых попыток программирования до портативных технологий сегодняшнего дня.

Эрик Фримен, Элизабет Робсон. «Паттерны проектирования»

Решили стать Java-программистом? Без понимания паттернов проектирования вы застрянете на повторении упражнений из учебника. Обязательная книга для Java программиста в 2020 году.

Марейн Хавербек. «Выразительный JavaScript»

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

Брайан Холл. «Beej’s Gu >

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

Бьярне Страуструп. «Программирование: принципы и практика использования C++»

Интересуетесь языком C++, но нет опыта программирования? Здесь вы узнаете всю информацию о C++, так как автор книги и придумал этот язык программирования!

Мажед Маржи. «Scratch для детей»

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

Книги для начинающего веб-разработчика

Книги по HTML и CSS

HTML5 и CSS3. Разработка сайтов для любых браузеров и устройств

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

Книги по JavaScript

Изучаем программирование на JavaScript

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

Javascript для чайников

Узнайте, какова структура JavaScript, как правильно записывать его инструкции, как применять CSS, работать с онлайн-графикой и подключать программные интерфейсы HTML5. Все темы можно закрепить практическими упражнениями.

Книги по PHP

PHP 7 в подлиннике

Рассмотрены основы языка PHP и его рабочего окружения в Windows, Mac OS X и Linux.Отражены радикальные изменения в языке PHP, произошедшие с момента выхода предыдущего издания: трейты, пространство имен, анонимные функции, замыкания, элементы строгой типизации, генераторы, встроенный Web-сервер и многие другие возможности. Приведено описание синтаксиса PHP 7, а также функций для работы с массивами, файлами, СУБД MySQL, memcached, регулярными выражениями, графическими примитивами, почтой, сессиями и т. д.

PHP и MySQL. Создание интернет-магазинов. 2-е издание

PHP и MySQL. Создание интернет-магазинов — В этом исчерпывающем руководстве известный автор Ларри Ульман проведет вас через все этапы разработки интернет-магазина с использованием РНР и MySQL. Вы узнаете, как спроектировать визуальный интерфейс и создать базу данных сайта, как реализовать представление контента и сгенерировать онлайн-каталог, как управлять корзиной товаров и проводить платежи, как принимать и выполнять заказы с учетом требований безопасности и эффективности.

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

У меня есть книга, которую я уже пытаюсь раза с третьего осилить, но всё никак не дойду до последней страницы. Называется она «Человеческий фактор. Успешные проекты и компании«, в простонародье «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). Прелесть Си в том, что программист полностью контролирует ход выполнения программы: ручной доступ к памяти и работа с указателями, строгая типизация, контроль за размером входных данных и многое другое. За счёт низкого уровня при работе с «железом» компьютера, а следовательно отсутствия дополнительных абстракций (в простонародье «свистелок и перделок»), код выполняется очень быстро. Но за скорость нужно платить. В неумелых руках системы, написанные на Си, подвержены известным уязвимостям: переполнение стэка, переполнение кучи, ошибки форматирования строки и многие другие. Изучив Си, вы начнёте лучше понимать как работает компьютер, а следовательно станете лучшим программистом.

Мастер Йода рекомендует:  Как снова полюбить кодить — отвечают эксперты

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

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

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

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

Книги по разработке игр и приложений

Разработка игр, программирование, работа с сайтами и библиотеками, а также изучение всевозможных языков С++, JavaScript и С# предполагает собой постоянное обучение чему-то новому. Технологии сейчас уж точно не стоят на месте, и с каждой новой презентацией мировые компании представляют миру совершенно новые тренды разработки и контента.

Не так давно виртуальная реальность была лишь корпоративным продуктом, но динамично обновляющийся игровой мир диктует свои правила. Теперь VR-очки выступают полноценным игровым элементом. А топовые игры адаптируют графику и управление под модный тренд. Интересно, технологии Google Glass смогут так же внедриться в игровой мир? Или они не выйдут за рамки обычного носимого устройства?

Находясь по ту сторону барикад, нужно понимать, что помимо разработки игр, нужно уделять время обучению новым технологиям. Геймеры и киберспортсмены постоянно следят за новостями относительно новых возможностей и технологий игрового мира. Поэтому, на плечах разработчиков лежит ответственная миссия по быстрому обучению всем новым, а также уже имеющимся технологиям. Если вы новичок в разработке игр, для вас найдется список настольных must have книг. Для опытного разработчика, который смело экспериментирует с 3D графикой, также можно выделить достойные сборники по геймдеву.

Книги по разработке мобильных приложений Android и iOS

Мы собрали лучшие, по нашему мнению книги, благодаря которым вы сможете взглянуть на мир разработки контента под другим углом. Мобильные платформы на сегодняшний день смело вытесняют компьютеры. Только с 2015 года показатель активности ОС Android и iOS возрос на 84%. Разработчики и мировые компании не теряют времени напрасно, и смело выпускают топовые игры или 5-ти минутные ранеры на мобильные устройства. Мы не могли не уделить внимание книгам для разработки Android и iOS контента.

1. «Привет, Андроид»
Из книги можно почерпнуть сведения об основах платформы Андроид от элементарного приложения «Привет, Мир!» до 2D и 3D графики. В завершение автор поделится полезной информацией о SQLite и инструкцией по публикации контента в Google Play.

2. «Learning Java»
Учебник для «чайников» об основных тонкостях Java, которые пригодятся, чтобы грамотно разрабатывать игры. Обучение проходит на примере создания игр для Андроид. Кроме того подробно рассматривается пиксельная графика, SFX и GFX, анимация и другое.

3. «Beginning Android Games»
Кратко и по делу написанная информация, которая поможет разобраться в графических движках и адаптации игр под разные платформы. Учебник будет полезен как для начинающих, так и для специалистов. Советуем внимательно читать теорию и коды, потому что в некоторых намеренно сделаны ошибки.

4. «Разработка игр для андроид»
Именно эта книга должна стать для вас настольной, если вы начинающий разработчик игр. Благодаря ей вы узнаете о том, как создать и реализовать через C и С++ мобильное приложение. OpenGL ES и система распознавания жестов — обо всем можно узнать из этой книги.

5. «Android Design Patterns»
Больше 50 основных паттернов, которые научат преобразовывать основные нюансы поиска, отбора, фильтров и другого. Шаблоны программирования, двенадцать примеров прокачают ваш скилл и помогут избежать ошибок в создании игр. Книга оснащена иллюстрациями, что делает ее понятной для каждого.

6. «Профессиональная разработка приложений Андроид»
Книга немного устарела, ведь она была издана в 2012 году, но раздел по Android SDK будет очень полезен для начинающих. Кроме того книга отлично систематизирована и разделена на отдельные темы, поэтому легко можно выбрать необходимое. Очень удобно, что книга официально изданы на русском языке.

7. «Mobile Game Development with Unity»
Книга ответит на вопрос о том, как разработать игры для iOS и Android с помощью движка Unity. Примеры из реальных сценариев для игр помогают лучше понять теорию.

Книги по разработке на платформу iOS:

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

1. «Разработка игр»
Книга — аналог учебника «Привет, Андроид». Она расскажет о том, как справляться с Game Center и App Store, как создавать уникальные приложения с помощью SptiteKit и Swift. Для усваивания материала, желательно знать самое основное про разработку.

2. «Swift Essentials» и «Swift Programming»
Созданные для новичков, книги откроют азы Swift и методы работы с ним.

3. «iOS 11 Swift Programming Cookbook»
Учебник, подробно рассказывающий об особенностях основных версий iOS. Книга будет полезна и начинающим, и опытным программистам для более глубоких познаний в области разработки для этой операционной системы.

4. «Swift 3 Разработка игр»
Анимация, графический дизайн и синхронизация. Грамотно нописанный код поможет разобраться в нюансах работы с SpriteKit и Swift.

5. «iOS Swift Game Development Cookbook»
Учебник, который учит OpenGL и SpriteKit, а также 2D и 3D алгоритмам. Подробно разобраны ошибки в разработке игр на iOS и нюансы работы с UIKit Detect.

6. «Изучение создания игр для iOS»
Учебник о главных секретах создания приложений с помощью Unreal Engine для iOS. Чтобы пользоваться UE4 для разработки игр, вам обязательно надо подружиться с этой книгой.

Список книг еще можно продолжать. Вы можете составить собственный перечень, который будет соответствовать платформе, жанру и тем навыкам, которыми вы владеете.

Книги о разработке игр на ПК

Создание игр на ПК под силу лишь профессионалу. Разные жанры требуют соответствующих сценарных, художественных и дизайнерских навыков, а также знаний о языках CSS и JavaScript, и движках Unity и Unreal Engine. Все это очень сложно и вряд ли возможно, если браться за это одному человеку.

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

1. «DirectX: продвинутая анимация»
В этой книге раскрыты нюансы 3D анимации при работе с DirectX. Здесь подробно рассмотрены принципы работы различных текстур и шейдеров с элементами анимации.

2. «Разработка и отладка шейдеров»
Графические и звуковые эффекты станут вам под силу благодаря этой книге. Если вы ищите необычные и интересные эффекты — это пособие для вас.

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

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

5. «Маркетинг игр»
Пиар и продвижение собственного приложения — это станет понятным и доступным после прочтения книги, даже если вы не знакомы со значением слов «таргет», «SMM» и «конверсия». Книга написана доступно и понятно даже для новичка.

Русскоязычный каталог на этом, к сожалению, заканчивается. Однако, ступив одной ногой в IT, а другой — в геймдизайн, вы должны осознавать, что без английского языка вам будет очень сложно. Поэтому, кроме изучения языков программирования, рекомендуем уделить внимание курсу English Upper Intermediate.

Книги для разработки на Unity

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

1. «Unity Game Development за 24 часа»
Двадцать четыре главы — ровно столько частей книги и столько же часов понадобится для того, чтобы разобраться в этом движке. Автор утверждает, что эта книга поможет вам создать мощное портфолио, да и пособие написано очень доступно и понятно.

2. «Unity for Absolute Beginners»
Учебник для начинающих в деле Unity для ознакомления с его нюансами. Пособие гарантирует получение основных знаний по этой теме.

3. «Unity 2D Game Development»
Книга научить создавать игру 2D с помощью 3D. Подробно описаны в пособии особенности движка Unity.

4. «Learn Unity3D Programming with UnityScript»
Учебник расскажет о возможностях движка Unity для создания 2D и 3D приложений. Книга разъяснит все нюансы про различные эффекты этого движка. Понравится как начинающим, так и профессионалам.

Ну и напоследок информативные книги по разработке игр.

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

1. «Mathematics for 3D Game Programming»
Если вы создаете 3D контент, это пособие поможет вам в расчетах для программирования.

2. «Networking and Online Games»
Пособие рассказывает о нюансах сетей и мультиплеере в играх.

3. «Физика для создателей игр»
Книга-помощник для разработчика. Пособие, в котором рассказывается о физических явлениях для каждого игрового элемента.

4. «GPU Gems»
Пособие для профессионалов. Рассказывает в мельчайших подробностях об GPU и GPGPU.

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

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

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

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

Сенека

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

С. Макконнелл «Совершенный код»

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

Сложно найти гуру программирования, который не читал «Совершенный код» Стива Макконнелла. Действительно, одна книга, хоть и немаленькая (чуть менее 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) и пр. В качестве крупных рефакторингов уровня системы Фаулер приводит следующие: разделение иерархии наследования, выполняющей более одной задачи, преобразование процедурного подхода к проектированию в объектно-ориентированный подход, отделение предметной области от уровня представления, а также выделение иерархии, подразумевающее разбиение большого класса на целую иерархию значительно меньших по размеру и более специализированных подклассов.

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

Э. Гамма, Р. Хелм, Р. Джонсон, Д. Влиссидес «Паттерны проектирования»

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

Мастер Йода рекомендует:  Крупнейшая подборка Python-каналов на Youtube

Э. Гамма

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

Очень часто начинающий разработчик самостоятельно берется за решение уже более тысячи раз решенной до него задачи проектирования и изобретает очередную разновидность пятиколесного велосипеда, истинно гордясь своим «новшеством». Владение языком паттернов позволяет решить множество задач проектирования наиболее оптимальным способом, затрачивая при этом минимум усилий. Всего двадцать описанных в книге паттернов предоставляют инструментарий для решения огромного спектра задач проектирования ПО. Материал книги довольно сложен и требует от читателя определенных знаний в области объектно-ориентированного проектировании. Для освоения паттернов недостаточно просто прочитать книгу, необходимо основательно над ней «попотеть». Впрочем, твои усилия не пройдут даром. Книга содержит 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), что в переводе на русский означает: «Не повторяй самого себя». Это значит, что каждый фрагмент знания должен иметь единственное и однозначное представление в системе. Следование данному принципу позволяет повысить надежность, доступность и простоту сопровождения программного продукта.

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

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

Заключение

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

5 бумажных книг, которые стоит купить начинающему JavaScript-разработчику

Подборка от преподавателя GeekBrains.

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

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

JavaScript для детей. Самоучитель по программированию

Эта книга с возрастной маркировкой 6+, но не спешите пренебрежительно ухмыляться. Автор издания, frontend-разработчик Twitter Ник Морган, сразу предупреждает, что книга написана для детей, но отлично подойдет тем, кто собирается изучить JavaScript с нуля.

Вся теория аккуратно разложена по полочкам, объяснения – на простом и доступном языке, а задачи довольно увлекательны и для взрослого (например, написать игры «Найди клад» или «Змейка»). Чем не идеальный учебник для новичка?

Еще в начале книги автор объясняет, как правильно учить JavaScript, но это универсальные советы для изучения любого языка программирования

  • Изучение языков программирования похоже на освоение иностранного языка. Важно выучить грамматику и запомнить много новых слов, постоянно исследовать код и писать на нем, пока не научитесь свободно выражать им мысли.
  • Каждый новый пример кода важно тут же тестировать, не откладывая на потом.
  • Чтобы понять, как работает код, вносите в него изменения и смотрите на результат.
  • Делайте готовые упражнения из книг и придумывайте себе задачи самостоятельно – доводите свой код до совершенства (например, чтобы прокачать навыки в интерактивной форме, регистрируйтесь на таких сайтах, как codewars.com).
  • Сверяйтесь с готовыми ответами, но помните, что в любом языке программирования будет много вариантов для решения одной и той же задачи.

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

Кстати, автор приводит отличный аргумент, почему стоит выбрать для изучения JavaScript:

«Изучать его гораздо проще и интереснее, чем многие другие языки. Но, пожалуй, самая веская причина такова: чтобы писать и выполнять JavaScript-программы, достаточно интернет-браузера – такого, как Internet Explorer, Mozilla Firefox или Google Chrome. В каждый из этих браузеров встроен интерпретатор JavaScript, который сможет выполнять JavaScript-программы. И никакого специального программного обеспечения вам не понадобится. Написав программу на JavaScript, отправьте ссылку на нее другим людям, и они тоже смогут ее запустить – у себя на компьютере, в браузере».

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

JavaScript. Карманный справочник

«Книга с носорогом» — так называют ее опытные разработчики. Автор книги — Дэвид Флэнаган, JavaScript-программист в Mozilla.

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

Единственная метафора, которая есть в книге — иллюстрация на обложке. На ней изображен яванский носорог. Как поясняют издатели:

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

Такое образное сравнение JavaScript c другими языками придумали иллюстраторы книги.

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

Книга разбита на теоретические блоки. После каждого есть пример кода. Особенно стоит отметить главу 10 «JavaScript на стороне клиента», где классно описана реальная рабочая среда. В ней автор разбирает код уже в контексте — на стороне клиента.

Но нужно отметить, что это не учебник, а именно справочник, в котором не объясняются базовые вещи типа let или prototype. Справочником удобно пользоваться только тогда, когда вы уже немного погрузились в работу — он дает ответы на конкретные вопросы прикладного уровня.

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

Изучаем программирование на JavaScript

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

Посмотрите, что авторы этого издания написали на первой странице книги:

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

У авторов книги, кроме блестящей преподавательской карьеры, есть крутой опыт разработки на JavaScript. Эрик Фримен почти 10 лет работал техническим директором в Disney Online, проводил исследования в Йельском университете и защитил блестящую диссертацию об интерфейсах.

Элизабет Робсон — магистр в области компьютерных технологий, создатель сайта Ada Project, который помогает женщинам найти информацию об образовании и трудоустройстве в ИТ-сфере.

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

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

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

Мастер Йода рекомендует:  Вебвизор установка, настройка и эффективное использование

Для того, чтобы работать с этой книгой, у вас должны быть базовые знания по HTML и CSS. Тем, кто еще не разобрался с этой темой, авторы предлагают изучить издание «Изучаем HTML, XHTML и CSS».

Главный недостаток издания — цена. Даже в мягкой обложке книга обойдется вам примерно в 1500 рублей. С другой стороны, за эту сумму вы получаете целый курс по JavaScript. Главный плюс изданий Head First — большое количество практики, по сути, это книга-курс. Чтобы получить от них максимум пользы, нужно читать и тут же выполнять все задания, которые усложняются с каждой главой и помогают хорошо прокачивать навык.

You don’t know Java Script

Это серия из 6 небольших книг, написанная Кайлом Симпсоном, евангелистом Open Web, ведущим экспертом по Java Script.

На русский язык пока переведена только одна из книг — «ES6 и не только». Она рассказывает о ECMAScript 6 (ES6) — последней версии стандарта JavaScript. В книге очень подробно описаны все новые элементы синтаксиса. Разработчики жалуются только на то, что переведена всего одна книга из серии, но называют ее самой актуальной.

Как и в любой хорошей книге по программированию, здесь много разборов и примеров кода.

Автор умеет мотивировать, например, вот что он пишет вступлении:

«Даже если что-то работает нужным мне образом, я не готов удовлетвориться самим этим фактом — мне важно понять, почему и как оно работает. Хотелось бы, чтобы вы разделили мой подход. Я ненавязчиво зову вас пройти по тернистой дороге, которой мало кто ходил, и полностью осмыслить, что представляет собой язык JavaScript и какие возможности он дает. И когда вы будете обладать этими знаниями, ни одна техника, ни одна платформа, ни один новый подход не окажутся за пределами вашего понимания».

Единственный минус—– приступать к изучению этой книги автор советует, только когда вы изучили все остальные. Если вы только взялись за JavaScript и хорошо владеете английским, мы советуем первую книгу из этой серии — Up&Go. Кайл Симпсон называет ее картой, которая поможет уверенно двигаться в новой области.

Джон Резиг, создатель библиотеки JQuery для JavaScript, написал эту книгу в 2008 году, когда в профильной литературе еще не были доступно изложены важные составляющие языка (функции, замыкания, прототипы). Несмотря на различные изменения в языке за последние годы, Резиг призывает разработчиков начинать все с тех же базовых понятий, а основной задачей в развитии JavaScript называет «обеспечение работоспособности прикладного кода в большинстве браузеров и для большей части потенциальных пользователей».

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

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

«Бeз JavaScript в Интернете можно лишь показывать фотографии кошек. Но он полезен не только для браузеров. Преодолев узкие границы применения в браузерах, этот язык программирования теперь применяется на серверах в таких механизмах, как Rhi110 и V8, а также в интегрированных средах вроде NodeJs. И хотя эта книга посвящена главным образом применению JavaScript в веб·приложениях, основы этого языка программирования, представленные в части П, выходят далеко за пределы применимости при разработке веб-приложений».

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

Материал опубликован пользователем.
Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.

5 must-read книг для начинающих разработчиков. Обязательно к прочтению!

5 мастридов для начинающих разработчиков — Библиотека программиста

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

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

Яхья Картоев

Думаю «Soft Skills» здесь пришлась бы в тему.

Александр Светличный

Влад Овсянников

«Complete code» и «Coders at Work» сюда бы ещё закинуть.

Jamilya Almazova

Міша Колеснік

Александр, дак она есть там) Причем первая в списке)

Александр Попов

Joel Spolsky — «Joel on Software: Further Thoughts on Diverse and Occasionally Related Matters That Will Prove of Interest to Software Developers, Designers, and . Luck, Work with Them in Some Capacity»

Иван Лабушевский

Рекомендовать Head First вместо GoF

DELETED

Иван, я прочитал обе, новичкам лучше hf

Иван Лабушевский

Elnar, тем, кому лучше воспринимать информацию в игровом виде и через картинки лучше не начинать в IT. Программирование для домохозяек — утопия.

DELETED

Иван, посмотрите курс cs50 от гарварда, там все в игровом виде. Ваше мнение ошибочно)

Иван Лабушевский

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

DELETED

Иван, хотите сказать вы программировать учились на книгах типа «SICP» сходу, без хелловордов? Эта группа для новичков, естественно тут начинают с чего попроще

Иван Лабушевский

Elnar, первый раз по хелпу, последний — по Шилдту ��

Константин Рогожин

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

Олег Агафонов

Мастридов, МАСТРИДОВ, Карл!!1

Максим Трошин

Иван, очень глупо судить о полезности книги по манере подачи материала в ней.

4 популярные книги для начинающих разработчиков

Специалист GeekBrains Евгений Елчев предлагает учиться программированию по книгам. Он рассказывает про главные издания для начинающего разработчика.

1. Стив Макконел «Совершенный код. Мастер-класс»

Известный американский программист Стив Макконел написал эту книгу в то время, когда эффективные методики в программировании не были в таком широком доступе, как сегодня.

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

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

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

Сам Макконел советует книгу:

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

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

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

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

2. Роберт К. Мартин «Чистый код. Создание, анализ и рефакторинг»

Несмотря на то, что все примеры в этой книге написаны на Java, она будет полезна любому программисту — знаменитый консультант по разработке ПО Роберт Мартин (известный в сети по прозвищу «дядюшка Боб») очень понятно объясняет принципы, которые активно использует и рекомендует другим разработчикам в написании кода.

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

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

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

На самом деле расхождений у авторов гораздо больше. Опытные разработчики называют Мартина излишне категоричным в некоторых вопросах — советуют начать с более фундаментального Макконела и только затем приступить к теории «чистки кода».

«Книга заставит вас потрудиться, и потрудиться усердно. Какая работа вам предстоит? Вы будете читать код — много кода. И нам придётся как следует подумать, что в этом коде правильно, а что нет. Вы будете наблюдать за тем, как мы разбираем эти модули, а потом собираем заново. Это потребует немало времени и усилий; но мы считаем, что результат того стоит».

3. Эрик Фримен, Элизабет Фримен, при участии Кэтти Сьера и Берта Бейтса «Паттерны проектирования»

Авторы книги говорят, что «Паттерны проектирования» — для тех, кто хоть немного ориентируется в Java или C#. А мы смело советуем её всем новичкам — даже если вы ещё не написали ни одной строчки кода. Это книга о том, как учиться и заставить свой мозг воспринимать новую и сложную информацию и как эффективно применять опыт других разработчиков в своей практике.

Книга заряжает и мотивирует с первых страниц, а чувству юмора авторов можно только позавидовать. Оформление, примеры и классные иллюстрации, стиль и язык авторов, даже их биографии в предисловии — здесь всё работает на то, чтобы вдохновить новичков на изучение основ — шаблонов программирования и ООП (объектно-ориентированное программирование).

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

«Паттерны проектирования» — книга из серии Head First. Советуем обратить на неё внимание, потому что эти издания отличает:

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

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

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

«Все мы пользовались готовыми библиотеками и инфраструктурами. Мы берём их, пишем код с использованием функции API, компилируем и извлекаем пользу из кода, написанного другими людьми. Достаточно вспомнить, какую функциональность представляет Java API: сеть, графические интерфейсы, ввод-вывод и так далее. Однако библиотеки и инфраструктуры не помогают нам структурировать приложения так, чтобы они становились более понятными, гибкими и простым в сопровождении. Для достижения этой цели применяются в паттерны проектирования.

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

4. Чад Фаулер «Программист-фанатик»

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

Судите сами по названию глав:

  • «Помни, на кого работаешь».
  • «Сколько ты стоишь?»
  • «Великолепная задача на сегодня».
  • «Как я променял $300 000 в Microsoft на полный рабочий день в Github».
  • «Избегай каскадного планирования карьеры».
  • «Публикуй свой код».
  • «Умей говорить нет».
  • «Восьмичасовое пламя».

Чад Фаулер до того, как стать программистом, был музыкантом. Именно поэтому ему было неинтересно развивать свою карьеру по принципу «просто хороший программист». Он изначально хотел стать крутым, а в книге рассказал, как прошёл этот путь.

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

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

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

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

suhorukov.com

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

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

1. Э.Хант, Д.Томас «Программист-прагматик»

В оригинале: The Pragmatic Programmer by Andrew Hunt, David Thomas

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

Что меняет во взглядах. Вы поймете, что программирование – это работа, а не хобби, за которое платят деньги.

2. М.Фаулер «Рефакторинг Улучшение существующего кода»

В оригинале: Refactoring: Improving the Design of Existing Code by Martin Fowler

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

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

3. Ч.Фаулер «Программист-фанатик»

В оригинале: Passionate Programmer by Chad Fowler

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

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

4. Э.Фримен «Паттерны проектирования»

В оригинале: Head First Design Patterns by Eric Freeman

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

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

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

5. Р. Мартин «Чистый код»

В оригинале: Clean Code by Robert C. Martin

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

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

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

Подписка

Выберите рассылки, на которые вы хотите или не хотите быть подписанным.

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