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

Специалист GeekBrains Евгений Елчев предлагает учиться программированию по книгам. Он рассказывает про главные издания для начинающего разработчика.
1. Стив Макконел «Совершенный код. Мастер-класс»
Известный американский программист Стив Макконел написал эту книгу в то время, когда эффективные методики в программировании не были в таком широком доступе, как сегодня.
«Моей главной целью было сокращение разрыва между знаниями гуру и лучших специалистов отрасли, с одной стороны, и общепринятыми методиками разработки коммерческого ПО — с другой», — пишет автор в предисловии.
В 90-х, когда Макконел активно строил карьеру разработчика, прочитать о передовых технологиях разработки ПО можно было только в специализированных журналах и опубликованных научных трудах. Автор начал отбирать эффективные методики, которые помогали устранять проблемы при разработке, применял их на практике, а в результате подготовил уникальную подборку для других специалистов.
«Совершенный код. Мастер-класс» даже сегодня программисты называют классикой и рекомендуют всем новичкам.
Сам Макконел советует книгу:
- опытным программистам (поможет упорядочить знания и получить обширное руководство по конструированию ПО);
- техническим лидерам (на материалах книги удобно обучать младших специалистов);
- программистам-самоучкам (найдут информацию по эффективным методикам программирования, которые будут понятны вне зависимости от вашего основного образования);
- студентам (поможет максимально безболезненно перейти от теории к практике).
Книга написана простым доходчивым языком и не требует каких-то специальных знаний для понимания текста. И даже если поначалу информация покажется вам нудной или слишком детальной, как признаются некоторые читатели, наберитесь терпения. Все эти мелочи скоро всплывут в работе.
Из недостатков — знатоки жалуются на плохой перевод, поэтому если вы хорошо знаете английский, лучше читать в оригинале. Также нужно иметь в виду, что книга была написана в 1993-м году, поэтому некоторых новых инструментов и концепций в ней нет.
«В отличие от программистов, которые обладают опытом, но не могут похвастаться специальным обучением, недавние выпускники вузов часто имеют обширные теоретические знания, но плохо владеют практическими ноу-хау, связанными с созданием реальных программ. Передача практических навыков хорошего кодирования зачастую идёт медленно, в ритуальных танцах архитекторов ПО, лидеров проектов, аналитиков и более опытных программистов. Ещё чаще эти навыки приобретаются программистами в результате собственных проб и ошибок. Эта книга — альтернатива традиционным неспешным интеллектуальным ритуалам. В ней собраны полезные советы и эффективные стратегии разработки, которые ранее можно было узнать главным образом только непосредственно у других людей. Это трамплин для студентов, переходящих из академической среды в профессиональную».
2. Роберт К. Мартин «Чистый код. Создание, анализ и рефакторинг»
Несмотря на то, что все примеры в этой книге написаны на Java, она будет полезна любому программисту — знаменитый консультант по разработке ПО Роберт Мартин (известный в сети по прозвищу «дядюшка Боб») очень понятно объясняет принципы, которые активно использует и рекомендует другим разработчикам в написании кода.
Как отмечает автор, все примеры — результаты его работы, собственные находки и выводы, не всегда подкреплённые исследованиями.
Большую часть книги занимают листинги кода, а начинающие разработчики хвалят издание за простой язык изложения, понятные примеры и чувство юмора автора.
Минусами некоторые читатели считают пересечение отдельных глав с «Совершенным кодом» Макконела. Но нам это кажется скорее плюсом, так как ключевые моменты запоминаются благодаря тому, что вы встречаете их в нескольких источниках, а затем закрепляете на практике.
На самом деле расхождений у авторов гораздо больше. Опытные разработчики называют Мартина излишне категоричным в некоторых вопросах — советуют начать с более фундаментального Макконела и только затем приступить к теории «чистки кода».
«Книга заставит вас потрудиться, и потрудиться усердно. Какая работа вам предстоит? Вы будете читать код — много кода. И нам придётся как следует подумать, что в этом коде правильно, а что нет. Вы будете наблюдать за тем, как мы разбираем эти модули, а потом собираем заново. Это потребует немало времени и усилий; но мы считаем, что результат того стоит».
3. Эрик Фримен, Элизабет Фримен, при участии Кэтти Сьера и Берта Бейтса «Паттерны проектирования»
Авторы книги говорят, что «Паттерны проектирования» — для тех, кто хоть немного ориентируется в Java или C#. А мы смело советуем её всем новичкам — даже если вы ещё не написали ни одной строчки кода. Это книга о том, как учиться и заставить свой мозг воспринимать новую и сложную информацию и как эффективно применять опыт других разработчиков в своей практике.
Книга заряжает и мотивирует с первых страниц, а чувству юмора авторов можно только позавидовать. Оформление, примеры и классные иллюстрации, стиль и язык авторов, даже их биографии в предисловии — здесь всё работает на то, чтобы вдохновить новичков на изучение основ — шаблонов программирования и ООП (объектно-ориентированное программирование).
Книгу можно читать с начала, с конца, с середины, просто листать по дороге на работу — на любой странице узнаёшь что-то новое.
«Паттерны проектирования» — книга из серии Head First. Советуем обратить на неё внимание, потому что эти издания отличает:
- наглядность (много хорошей и интересной инфографики);
- разговорный стиль изложения (интересные истории, вместо скучных лекций);
- активная работа читателя (пока вы читаете книгу, вы постоянно решаете задачи и делаете выводы);
- эмоциональность.
В «Паттернах» очень много интересных упражнений, после выполнения которых вы запомните с десяток важных правил, а после сможете использовать в работе каждый день.
Минусом этого издания мы считаем только неудачную обложку. Но пусть она не сбивает вас с толку. Внутри — отличные материалы для самостоятельного обучения программированию.
«Все мы пользовались готовыми библиотеками и инфраструктурами. Мы берём их, пишем код с использованием функции API, компилируем и извлекаем пользу из кода, написанного другими людьми. Достаточно вспомнить, какую функциональность представляет Java API: сеть, графические интерфейсы, ввод-вывод и так далее. Однако библиотеки и инфраструктуры не помогают нам структурировать приложения так, чтобы они становились более понятными, гибкими и простым в сопровождении. Для достижения этой цели применяются в паттерны проектирования.
Паттерны не сразу воплощаются в нашем коде — сначала они должны проникнуть в наш МОЗГ. Когда вы начинаете достаточно хорошо разбираться в паттернах, вы сможете применять их в новых архитектурах, а также перерабатывать старый код, который со временем превращается в хаотическое месиво».
4. Чад Фаулер «Программист-фанатик»
Как отмечает сам автор, успешный разработчик Чад Фаулер, это книга о том, как вырастить в себе желание быть незаурядным. В «Программисте-фанатике», в отличие от других книг, которые мы назвали, нет примеров кода и советов по программированию, но много важных вопросов, которые начинающим программистам обычно не с кем обсудить.
Судите сами по названию глав:
- «Помни, на кого работаешь».
- «Сколько ты стоишь?»
- «Великолепная задача на сегодня».
- «Как я променял $300 000 в Microsoft на полный рабочий день в Github».
- «Избегай каскадного планирования карьеры».
- «Публикуй свой код».
- «Умей говорить нет».
- «Восьмичасовое пламя».
Чад Фаулер до того, как стать программистом, был музыкантом. Именно поэтому ему было неинтересно развивать свою карьеру по принципу «просто хороший программист». Он изначально хотел стать крутым, а в книге рассказал, как прошёл этот путь.
Из минусов книги многие читатели отмечают слишком общие рекомендации. Книги из серии self-help могут послужить хорошим толчком, когда у тебя достаточно собственных целей, есть мотивация и энергия двигаться в работе. В состоянии профессионального кризиса можно легко подсесть на такие приятные рассказы известных программистов — читать одну книгу за другой, но не предпринимать реальных действий, особенно, когда в книге не разбираются практические задачи из работы.
Мы с таким мнением согласны и эту книгу советуем читать после порции собственного кода и первых результатов в работе. А уже после этого можно передохнуть и наметить дальнейшие планы за компанию с фанатом Фаулером.
«Моя работа обычно не даёт мне покоя, когда я уделяю ей недостаточно внимания. Когда я спускаю какие-то дела на тормозах или позволяю им накапливаться. В этом случае работа отправляется со мной домой и не даёт мне спокойно расслабиться. При каждодневной интенсивной трудовой деятельности ты обнаруживаешь, что перестал тащить домой рабочие проблемы. И дело не в том, что ты намеренно не даёшь себе работать сверхурочно. Твой мозг просто не позволяет этого делать.
Распоряжайся своим рабочим временем аккуратно. Работай меньше, и ты начнёшь больше успевать. Работа всегда приносит больше удовольствия, когда ты можешь от неё отдохнуть».
Фото: iStockphoto (scyther5)
Популярные комментарии
Виктория ИльинаРазговор о достойной оплате учительского труда сложнее простой формулы «надо повысить зарплаты». С главным тезисом героя статьи трудно спорить: педагог не должен думать, чем прокормить семью, и быть вынужденным добирать доход репетиторством. Но базовый уровень оплаты должен быть достойным не только в сильном столичном лицее. Хороший учитель одинаково нужен и в Москве, и в районной школе, и в селе. Право ребёнка на качественное образование не должно зависеть от места жительства. А дальше логичны дополнительные стимулы: надбавки за квалификацию, подготовку стобалльников, победителей олимпиад, серьёзные результаты учеников. Тем более статья показывает, какой труд стоит за работой с сильными и мотивированными детьми. Но есть и неудобный вопрос: насколько востребована значительная часть знаний, которые школа по единой программе обязана давать всем? Учитель здесь во многом связан требованиями системы. Однако если обучение почти не учитывает склонности и будущую траекторию ребёнка, возникает разрыв между объёмом обязательных знаний и их последующей практической ценностью. Можно сколько угодно говорить о «гармонично развитой личности», но общество в конечном счёте выше ценит то, что даёт ощутимый результат. И этот вопрос тоже нельзя исключать из разговора о зарплате учителя.
«Мы придумали делить детей на два сорта»: директор тамбовского лицея и заслуженный учитель — о культе олимпиад
Евгения СамотохинаТо что отрицательные оценки нужны — я согласна, но здесь должен быть ряд факторов: 1) как по мне текущая система оценки (пятибалльная, а по факту четырехбальная) — не то чтобы объективная. Особенно чувствуется на объемных заданиях в старших классах, когда в тексте на 2 страницы допустил 2-3 ошибки и пооучаешь тройку. Как по мне система должна иметь разбивку хотя бы в 10 баллов. 2) Часто каждый учитель сам определяет как оценивать ученика. Если с точными науками и каким-нибудь диктантом ещё более-менее понятно, то с более творческими заданиями, пересказами вообще непонятно — у одного учителя ты получаешь 5 у другого за пересказ того же качества — 3.
«Двойка должна жить». Учитель — о том, почему плохие оценки нужны детям
АнастасияДа уж… Уважительное общение не включено в общеобразовательные стандарты и экзаменационные вопросы. Можно иметь аттестат и даже не один диплом, но при этом оставаться полнейшим хамом. Системный кризис.
«Короче, училка, варежку свою закрой». Топ-20 цитат из переписок родителей с учителями, от которых волосы встают дыбом





