Programming — Помогите подобрать книгу!


Содержание

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

Полезная подборка, чтобы разобраться в C++, JAVA, Python и узнать про код Грея.

Часто тем, кто всерьёз занимается олимпиадной информатикой, рекомендуют прочесть трёхтомник Дональда Кнута. Кстати, недавно вышел четвёртый том. Но всё же перед тем как взяться за Кнута, советую обратить внимание на книгу Роберта Седжвика «Фундаментальные алгоритмы C++. Анализ. Структуры данных. Сортировка. Поиск».

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

Герберт Шилдт — один из самых опытных авторов книг по изучению языков программирования. Если вы планируете изучать Java, стоит начать именно с этой книги. Шилдт пишет простым языком, последовательно и структурированно.

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

Приятным дополнением станут главы о Swing и JavaFX.

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

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

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

Автор онлайн-курса программирования на Python в Фоксфорде, волонтёр международных workshop для ACM

Автор онлайн-курса разработки игровых приложений под Android на языке JAVA в Фоксфорде, преподаватель в IT-школе Samsung

Python для детей

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

JavaScript для детей

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

Scratch для детей

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

Программирование для детей

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

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

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

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

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

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

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

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

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

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

  • Многие дети хотят программировать . Просто потому что это интересно. Программирование – это творчество, возможность сделать что-то свое, и не важно, будет это простенькая игра для смартфона или веселая движущаяся заставка для компьютера. Большинству детей программировать – действительно интересно.
  • Программирование развивает логическое мышление . Изучение основ программирования позволяет глубже понять математическую логику, познакомиться с основами алгоритмизации. Все это – инструменты развития логического мышления. А это – и успехи в изучении точных наук в школе, и умение решать сложные задачи в различных жизненных ситуациях .
  • Программирование – востребованная профессия . Разработчики программного обеспечения нужны в самых разных отраслях , от бизнеса или игровой индустрии до научных и космических программ. Подарите ребенку возможность прикоснуться к современной профессии, и в будущем ему будет проще определиться, чем он хотел бы заниматься. При желании и соответствующем уровне знаний он даже сможет начать подрабатывать программированием уже в подростковом возрасте. Почему бы и нет? Не понравится, бросить можно всегда. Как музыкальную школу или футбол. А вдруг у вас растет будущий Билл Гейтс?
  • Программирование помогает глубже понимать работу цифровой техники . Сегодня каждого человека с детства окружают многочисленные гаджеты и цифровые приборы. Чтобы понимать, как правильно выбрать для себя устройство, какие функции оно может выполнять, чего ждать от того или иного оборудование, нужно понимать принципы его работы. Это полезно для любого современного человека.
  • Программирование – это творчество . Кому-то даны способности к музыке или рисованию. Кому-то – другие таланты. Программирование помогает детям с техническим складом ума реализовывать свои идеи, воплощать в жизнь реальные творческие проекты, творить при помощи логики.

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

Цукерберг рекомендует:  Взлом - Нужен спикер по теме компьютерной безопасности

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

Программирование для детей

Авторы: Кэрол Вордерман, Джон Вудкок

Рекомендуется от 8 лет.

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

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

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

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

Автор: Ник Морган

Рекомендован от 10 лет.

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

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

Для начала ребенку предлагают освоить основы создания веб-страниц на HTML, далее – простенькие статичные странички дополняются основными конструкциями JavaScipt, вместо простого элемента начинают работать логические функции, начинается настоящее программирование. В первой части вместе с авторами учебника ребенок создаст простую игру «Виселица».

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

А последняя часть посвящена графике и управлению анимированными элементами с клавиатуры. Ребенок научится «рисовать» при помощи JavaScipt, «оживлять» картинки, чтобы они начали двигаться, передавать управление частью картинок игроку. В итоге обучения создается самая интересная игра – полноценная графическая «Змейка».

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

Автор: Джейсон Бриггс

Рекомендуется – от 10 лет.

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

Язык отличается очень простым синтаксисом. Он понятен даже новичку, а простая среда разработки поможет сразу посмотреть, что у вас получается. Есть в Python также инструменты, которые быстро и просто создавать современную анимацию. Например, здесь реализован модуль turtle, имитирующий «черепашку» (как в давно известном «детском» языке Logo). Для более продвинутых программистов есть мощный модуль tkinter , позволяющий создавать действительно современную графику также быстро и просто.

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

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

Программируем с Minecraft. Создай свой мир с помощью Python

Автор: Крейг Ричардсон

Рекомендован – от 10 лет.

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

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


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

Автор: Мажед Маржи

Рекомендуется с 8 лет.

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

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

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

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

Swift для детей. Самоучитель по созданию приложений для iOS

Авторы: Глория Уинквист, Мэтт Маккарти

Один из лучших учебников для поклонников iPhone и iPad. Для этих устройств современные приложения пишутся преимущественно на Swift, который поможет в создании любых iOS-приложений. Язык простой и популярный, он понятен интуитивно и прост в изучении. Его действительно может освоить даже ребенок.

Первое, чему учит самоучитель, это работа в среде Xcode Playground. Здесь вы сможете создавать приложения и сразу смотреть, как они будут работать. Это – учебная среда, имитирующая работу Apple-устройств.

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

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

Что вам почитать прямо сейчас? Тест

Вокруг так много хороших книг, что голова идёт кругом. Как выбрать среди них ту, которую хочется прочесть немедленно? За что взяться именно вам, расскажет тест ReadRate. Пройдите прямо сейчас!

Энди Вейр «Марсианин». Но я её уже прочитал в декабре) Задумка неплохая.

«Мы» Николса, а я ее как раз недавно прочитала. Хорошая, да.

А мне выпала «Планета Вода» Акунина)

Мне тоже. Мне было абсолютно нечего прочитать, а тут оп. Серия из 16 книг

И мне «Мы» Николса

Ну это-то прям достойная книга!

Несколько раз проходила тест, и все время выпадает «мы»

Мне рекомендовали «Светила» Элеанор Каттон

аналогично!) читали? как впечатления?)

«Планета Вода» Бориса Акунина. Задумка — класс!

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

Вашему настроению соответствует «Номер 1. Как стать лучшим в том, что ты делаешь» Игоря Манна :)

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

2 раза прошла тест с разными ответами, а вышло опять «Светила» Элеанор Каттон. Что за странность такая? Или тест построен неправильно. ((( я так не играю(((

«Мы» Николса — год назад. «Мы» Николса — сегодня. Я подозреваю,что этот тест не работает )))))

Юлия, тест не менялся с прошлого года, поэтому ваш выбор остался тем же самым. :) Спасибо, что напомнили нам про эту идею, мы подготовим новый! :)

Вот это,кстати,отличная идея! Пора! )))

«Светила» Элеанор Каттон. Название и описание дружно интригуют)

интеренсно, сколько там всего книг заложено) кажется не очень много) мне выпала МЫ Николса)))

«Сицилийское танго» Александры Лоренц.

«МЫ» )) я, так понимаю, что просто обязана прочитать эту книгу :)

«Номер 1. Как стать лучшим в том, что ты делаешь» Игоря Манна

Ох. Но он же совершенно картонно-деревянный. Вот, не ожидал, что такое посоветуют.

Здесь интересные рассказы. Дзен

Здесь интересные рассказы. Дзен

Здесь интересные рассказы. Дзен

https://ridero.ru/books/on_nastoyashii/
Всем любителям загочных любовных историх советую! Новая книга Алисы Рофт «Он настоящий». Захватывающий фантастический роман о любви вне времени и человеческой жизни.

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

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

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

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

Сенека

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

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

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

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

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

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

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

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

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

М. Фаулер «Рефакторинг»

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

М. Фаулер

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

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

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

Цукерберг рекомендует:  Генераторы в PHP

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

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

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

Заключение

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

unixforum.org

Форум для пользователей UNIX-подобных систем

  • Темы без ответов
  • Активные темы
  • Поиск
  • Статус форума

Помогите подобрать книгу

Помогите подобрать книгу

Сообщение IVRqwer » 13.04.2007 17:48

Re: Помогите подобрать книгу

Сообщение sergeyvp » 13.04.2007 17:51

Re: Помогите подобрать книгу

Сообщение IVRqwer » 13.04.2007 18:16

Re: Помогите подобрать книгу

Сообщение Jan2ary » 13.04.2007 18:22

Re: Помогите подобрать книгу

Сообщение IVRqwer » 13.04.2007 18:27

Re: Помогите подобрать книгу

Сообщение sash-kan » 13.04.2007 19:26

Re: Помогите подобрать книгу

Сообщение IVRqwer » 13.04.2007 21:34

Re: Помогите подобрать книгу

Сообщение IVRqwer » 13.04.2007 22:36

Re: Помогите подобрать книгу

Сообщение csx » 14.04.2007 06:23

Re: Помогите подобрать книгу

Сообщение аудиоман » 14.04.2007 06:58

Re: Помогите подобрать книгу

Сообщение IVRqwer » 14.04.2007 15:19

Re: Помогите подобрать книгу

Сообщение csx » 14.04.2007 15:35

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

Re: Помогите подобрать книгу

Сообщение IVRqwer » 14.04.2007 17:05

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

Мой ТОП-9 книг для программистов

И ни одного романа.

Уверена, что это не первая статья о книгах для программистов, которые вы читаете и ждете увидеть ниже обложки увесистых томов авторства Дональда Кнута, Стивена Макконелла, Роберта Мартина, Томаса Кормена и культовой «Книги четырех» («Паттерны проектирования»).

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

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

Поэтому, расскажу только о тех книгах которые читала сама и знания из которых применяла на практике. Личный ТОП-9 включает:

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

1. Регулярные выражения. Сборник рецептов. Ян Гойвертс, Стивен Левитан

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

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

  • Удаление двойных пробелов;
  • Валидация номеров кредитных карт, емейлов и URL-адресов;
  • Удаление строк-дублей в тексте;
  • Очистка кода от комментариев;
  • Извлечение значений атрибутов из XML-файлов;
  • Нахождение дат в тексте.
Цукерберг рекомендует:  7 признаков того, что вы классный разработчик

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

2. SQL. Сборник рецептов. Энтони Молинаро

Знаете ли вы как с помощью SQL:

  • Извлечь из таблицы строки, которых нет в другой таблице;
  • Блокировать вставку значений в некоторые столбцы;
  • Извлечь инициалы из имени;
  • Определить количество дней между двумя датами;
  • Делать иерархические запросы.

Если нет, то книга «SQL. Сборник рецептов» подскажет как.

Чуть выше я написала — одно регулярное выражение иногда заменяет десятки строк кода. Тоже с SQL-запросами. Готовые примеры из книги помогут сократить время на разработку, увеличить скорость выполнения программ/скриптов и снизить нагрузку на сервер.

3. Продуктивный программист. Как сделать сложное простым, а невозможное – возможным. Нил Форд

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

Нил Форд писал книгу, чтобы заставить посмотреть читателей на мир под другим углом и отбросить вредные привычки:

  • Не автоматизировать то, что делается руками >10 раз;
  • Использовать мышь там, где нужна только клавиатура;
  • Избегать работы в командной строке;
  • Держать рабочие файлы в беспорядке.

И ему это удается. Тонкими шутками и железными аргументами автор прививает читателю отвращение к ручному труду и убеждает встать на путь исправления.

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


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

Если хотите, чтобы вас перестало тянуть тратить время на рутину, читайте Нила Форда:-)

4. Экстремальное программирование: разработка через тестирование. Кент Бек

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

Кент Бек написал во вступлении:

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

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

  • Сначала пишем тесты;
  • На втором шаге кодируем и добиваемся четкого выполнения тестов;
  • Проводим рефакторинг.

Воплощения этих трех шагов на практике посвящено 200 страниц, которые занимают описание паттернов TDD, советы по проведению рефакторинга, и рассказы о личном опыте применения методики на примере работы над приложением xUnit.

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

5. Пионеры программирования. Диалоги с создателями наиболее популярных языков программирования. Федерико Бьянкуцци, Шейн Уорден

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

В книге море любопытной технической информации и фактов из истории. Например:

  • Первые семь лет разработка языка APL проходила без использования компьютеров;
  • Создатель языка Eiffel Бертран Мейер еще в 1978 году написал книгу «Методы программирования», которую вскоре перевели на русский язык и издали в СССР. И до конца 2000-ых годов во время визитов в нашу страну ему попадались люди, которые утверждали, что изучали по ней программирование;
  • Создатель Post Script описывает первоклассного программиста следующими словами «Когда он предъявляет код и говорит, что тот готов, это значит, что код абсолютно надежен и отшлифован». Последний раз такой парень встречался им в 1972 году;
  • Когда Ларри пишет на своем Perl он вносит изменение в код и перезапускает программу примерно каждые 30 секунд;
  • Turbo Pascal создан тем же человеком, что и C#;
  • C++ используется чаще чем Objective-C потому, что его раскручивала корпорация AT&T (по мнению создателя Objective-C).

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

Джон Хьюз учит важности смирения для эффективной работы в команде, Дон Чемберден объясняет почему сегодня трудно сделать популярным новый язык программирования, а Гвидо ван Россум делиться приемами, как мгновенно включиться в написание кода, если тебя отвлекли.

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

6. Дискретная математика для программистов. Рей Хаггарти

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

В книге освещаются темы:

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

Радуют пояснительные примеры на псевдокоде (который по сути Pascal).

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

Но главное, что эта книга развернуто и доступно отвечает на волнующий кодеров-любителей вопрос: «Зачем программисту когда-либо может понадобиться математика?».

7. Just for fun. Рассказ нечаянного революционера. Даймонд Дэвид. Торвальдс Линус

Биография Линуса Торвальдса с раннего детства до начала 2000-ых годов. Записана журналистом Даймонд Дэвидом под диктовку главного героя книги. Эта удивительная история о судьбе гика. Думаю многие, кого с детства тянет к программированию, найдут в себе нечто схожее с Линусом:

Иногда я вообще не выходил. Мама говорила своим друзьям-журналистам, что я настолько неприхотливый ребенок, что мне для счастья достаточно чулана с компьютером, куда время от времени закидывают пачку макарон. Она была недалека от истины. Никто не боялся, что этого ребенка похитят. (А интересно, кто-нибудь бы это заметил?)

Линус с открытой банкой кока-колы в руках появился из недр Transmeta,
расположившейся в безымянном офисном комплексе Санта-Клары. На нем была
программистская униформа: джинсы, футболка с конференции и неизменный набор
носки плюс сандалии, который он полюбил, по его словам, еще до встречи с
первым программистом. “Должно быть, это просто врожденный программистский
инстинкт”, — объяснил он мне свой выбор.

Когда мы уселись на заднее сиденье, я для разминки спросил, настраивая
диктофон: “Вы из семьи технарей?”
“Нет, большинство моих родственников — журналисты, — ответил он и
добавил: — Поэтому я в курсе, какие вы все козлы”.

Я крутился как белка в колесе: программирование — сон —
программирование — еда (соленые сухарики) — программирование — сон —
программирование — душ (на скорую руку) — программирование. К концу работы
стало ясно, что моя программа превращается в операционную систему.

Помимо биографии Линуса в книге много информации о технических особенностях Linux и философии свободного ПО:

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

Цитировать «Just for Fun» можно бесконечно, настолько она классная. Читается за один вечер, поднимает настроение и помогает отвлечься от мирской суеты.

8. Карьера программиста. Как устроиться на работу в Google, Microsoft или другую ведущую IT-компанию. Монган Д., Гижере Э., Киндлер Н.

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

Задания заставляют задуматься, но не требуют много времени для решения (если под рукой Google/тема знакома).

Книга стремительно устаревает(2012 год) и содержит психологические советы, которые кажутся мне не стопроцентно подходящими для российских реалий. Но она помогает найти пробелы в знаниях и определить направление движения в самообразовании.

9. Путь в магию. Первые шаги. Fiery

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

  • Неспособность сосредоточиться на текущем занятии;
  • Невозможность заснуть из-за навязчивых мыслей;
  • Чрезмерная утомляемость при достаточном времени сна из-за невозможности расслабиться.

Я делала эти упражнения в 16-17 лет во время подготовки к ЕГЭ, чтобы преодолеть трудности со сосредоточением на учебе. В тот момент они мне ощутимо помогли. Теперь только возвращаюсь к ним пару раз в год по мере необходимости.

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

P.S. Если у вас начнутся выходы из тела по ночам, срочно завязывайте с упражнениями и никому об этом не рассказывайте.

Классных книг для программистов много. И ТОП-10 каждого разработчика индивидуален .

Не знаете какие книги читать? Обратитесь к опытному кодеру, который:

  • Использует те же технологии, что и вы;
  • Решает похожие задачи;
  • Похож на вас характером.

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

(5.00 из 5, оценили: 1)

Программы для писателей или писательский софт

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

Софт для писателей

yWriter5

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

Но самой отличной новостью, пожалуй, является поддержка в программе yWriter русского языка. Для того чтобы включить русский язык, на верхней панели выбираем Localise -> Choose language. Если «русский» будет обозначен дивными иероглифами, выберите пункт COBECTb`s translate(ru).

Вы можете скачать yWriter5 у нас: yWriter5

«Свежий Взгляд»

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

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

Существует так же онлайн версия данной программы — http://quittance.ru/tautology.php

Вы можете скачать «Свежий Взгляд» у нас: «Свежий Взгляд»

yEdit2

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

Вы можете скачать yEdit2 у нас: yEdit2

CELTX

CELTX – это целое поле для деятельности писателей и сценаристов. Программа выполняет примерно те же функции, что и yWriter, но позволяет работать не только с текстовой информацией, но и с графикой, аудио и видео объектами. Здесь для вашей фантазии не будет ограничений. Вы можете добавлять иллюстрации, которые будут наглядно изображать персонажей вашей истории, или вставить атмосферную музыкальную композицию, которая ассоциируется у вас с определенным фрагментом произведения. Единственный минус CELTX – трудности в восприятии для тех, кто привык работать с текстовыми редакторами типа MS Word.

RHYMES

RHYMES – программа для подбора рифм. Работает на основе множества словарей. Проста в использовании, помимо нахождения рифм умеет подбирать синонимы и антонимы к заданному слову.

Познакомиться поближе с RHYMES можно здесь — http://rifmovnik.ru/index.htm

XMind

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

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

Programming — Помогите подобрать книгу!

Спрашиваем вас про город, чтобы
показывать актуальные сроки
и стоимость доставки

Как получить заказ

Как оплатить

  • Наличными или картой при самовывозе

Топ 10 авторов раздела

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

Самые популярные книги

В нашем интернет магазине самыми популярными считаются следующие книги по программированию:

  1. С.Маконнелл «Совершенный код». Несколько лет подряд эта книга считалась одним из лучших учебников по программированию. В 2020 году издание претерпело ряд изменений, благодаря чему стало полностью соответствовать современным тенденциям.
  2. К.Сьерра, Б.Бэйтс «Изучаем Java». Как понятно из названия, книга посвящена программированию на языке Java. Издание содержит как теоретическую информацию, так и интересные примеры.
  3. С.Р.Дэвид «С++ для чайников». Эта книга по программированию для начинающих направлена на незнакомых с этим языком людей. Она научит программировать с нуля любого новичка.
  4. Р.Мартин «Чистый код: cоздание, анализ и рефакторинг». Эта книга больше подойдет для людей, уже знакомых с основами программирования. Она учит, как выполнять свою работу действительно хорошо, сделав ее более эффективной за счет правильно составленного кода.
  5. З.Гамма и др. «Приемы объектно-ориентированного проектирования. Паттерны проектирования». Книга ориентирована как на профессиональных разработчиков, так и на программистов, которые осваивают объектно-ориентированное проектирование.

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

Понравилась статья? Поделиться с друзьями:
Все языки программирования для начинающих