6 книг о том, как стать хорошим программистом и им оставаться

Что отличает профессионала от халтурщика? Профессионал не останавливается в самосовершенствовании. Он понимает, что всегда есть чему поучиться новому, что он пишет пусть и хороший код, но не лучший. Лишь полный профан или посредственность считает себя Самым Лучшим Программистом на свете, Которому уже Не надо Учиться.

Вот цитата из книги Стива Макконнелла Совершенный код (Code Complete):

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

Как стать хорошим, профессиональным программистом? Как выбрать карьеру в программировании? Как прокачивать скиллы? Как расти над собой, не отставать от поступи прогресса? Как стать ценным сотрудником, как сделать так, чтобы работа находила тебя, а не ты искал работу, как уметь подавать и продавать себя?

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

Программирование как инженерия

51qdos5jcrl._sx380_bo1204203200_

Главной книгой по этой теме является книга Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers.

Стив Макконнелл — известный автор многих популярных книг по программированию. Книга написана в 2003 году, когда большая часть разработчиков работала в крупных проектах на правительство или крупные корпорации, как и сам Макконнелл. Макконнелл предлагает строгий подход к программированию на уровне инженерного подхода в строительстве и машиностроении. Этот подход требует следования строгим правилам разработки, определенной степени обучения программистов, использования методологий, формализованных подходов к управлению проектов и даже в некоторой степени сертификации программистов на звание «программный инженер» (software engineer).

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

С 2003 года написано множество книг на тему software engineering. Но все они — повторяют те же самые мысли, которые были изложены в книге Макконнелла. Так что эта книга — основополагающая и как бы обязательна к прочтению.

Программирование как ремесленничество

Другой подход к программированию рассматривает программирование как ремесленничество, программистов — кустарями, ремесленниками, а начинающих программистов — подмастерьями, которые учатся у мастеров секретам профессии.

51xgu711ufl._sx396_bo1204203200_

Первая книга об этом походе была написана в 2001 году и называется Software Craftsmanship: The New Imperative. В отличие от программных инженеров ремесленники не рассматривают программирование как инженерию, как строгую науку, как строгий процесс, поставленный на конвейер. И вправду, во многом программирование действительно напоминает работу художника, мастера, ремесленника, где конечный результат (программный продукт) зависит не от следования строгим правилам и планам, а от таланта, умений, навыков, опыта каждого программиста в команде, уровня владения им различными инструментами разработки и навыков работы в коллективе.

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

41p12pkpz1l._sx379_bo1204203200_

Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman (2009 г.). Очень рекомендую эту книгу. В сжатой и краткой форме поданы поведенческие и мотивационные шаблоны для разработчиков, мечтающих стать супер-разработчиками.

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

41blbzcy1kl._sx330_bo1204203200_

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

Книга была переведена на русский язык («Программист-Фанатик» изд. Питер) аж в 2015 году. А на Хабре ее пытались переводить коллективно в 2009 г. А недавно один из пользователей Хабра выложил эту книгу в виде конспекта базовых мыслей.

412bq2bb2d35l._sx380_bo1204203200_

Книга The Software Craftsman: Professionalism, Pragmatism, Pride 2014 года — самое свежее, что можно почитать на эту тему.

412ev6gx3gl._sx384_bo1204203200_

Effective Programming (2012 г.). Автор -— владелец блога Coding Horror и со-автор проекта StackOverflow. Эта книга — сборник постов из его блога, сгруппированных по темам и подготовленных к печати. Если прочитать книгу, то можно не читать блог, или можно почитать блог — и можно не читать книгу. И блог и книга содержат прекрасные мысли о том, как вырасти над собой, как из простого ремесленника перерасти в настоящего мастера своего дела, которому не будет стыдно за плоды своего труда. Кратко, умно и все по делу.

Еще немного книг

Далее идут стереотипные книги, которые суммируют все важные идеи под одной обложкой:

New Programmer’s Survival Manual: Navigate Your Workplace, Cube Farm, or Startup 2011 г.

Becoming a Better Programmer: A Handbook for People Who Care About Code 2014 г. — отличная умная книжка. Очень рекомендую. Ее можно читать от начала до конца главу за главой, а можно — с любой интересной главы, а затем следовать по ссылкам на другие главы, которые покажутся интересными и связанными по теме.

How to become Expert Software Engineer 2016 г. Автор в первых двух главах рассказывает, как самого себя мотивировать в выборе направления в карьере программиста: как выбирать целевую работу и как определять что для достижения этой работы нужно. Во второй части автор рассказывает, как получить опыт, участвуя или создавая open source проекты по теме, чтобы показать потенциальным работодателям, что вы умеете делать и как вы программируете. Ободряющая такая книга для мотивации программистов по росту карьеры и опыта.

The Complete Software Developer’s Career Guide 2017 г. — тот же автор написал ранее книгу Soft Skills: The Software Developer’s Life manual

Skill up: A Software Developer’s Guide to Life and Career 2017 г.

Soft Skills to Advance Your Developer Career: Actionable Steps to Help Maximize Your Potential 2019 г.

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

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

Connecting to %s