9 полезных книг для Junior-разработчика
Вы только начали свою карьеру, вы закончили профильное учебное заведение (или нет), вы полны энергии и рвения. У вас много знаний, но они немного хаотичны. Вам нужно организовать их, помочь отбросить ненужное и выделить актуальную информацию. Вероятно, вам все еще нужна доза мотивации, а также советы для поддержки вашего развития. Часть из этих книг переведена на русский, а часть придется найти и прочесть в оригинале.
Практика программирования — The Practice of Programming — R. Pike, B. Kernighan
Отличная и уже классическая книга для разработчиков. Я думаю, что она была источником вдохновения для Р. Мартина, когда он начал писать свой «Чистый код». Авторы — настоящие хакеры в хорошем смысле этого слова. На момент написания книги их основной средой был C и немного Unix. Поэтому естественно, что примеры и практики в книге основаны на них. Однако это не имеет значения, поскольку определенные правила настолько универсальны, что хорошо работают в любой среде и на любом языке программирования.
Чистый Agile — Clean Code: A Handbook of Agile Software Craftsmanship — R. Martin
Как я уже упоминал в предыдущем абзаце, Чистый код — это своего рода расширение уроков программирования. Включает в себя массу дополнительных советов и «контрольный список» для хорошего (или слабого) кода. «Лекционным языком» книги является Java, но любой программист сможет без проблем прочитать написанный код. Тем более что Р. Мартин пишет очень элегантно и избегает лишних сложностей.
На мой взгляд, это книга, которую разработчик должен прочитать хотя бы несколько раз. Лучше всего возвращаться к ней каждые 18-24 месяцев. И выяснить, черпаете ли вы в ней что-то новое. Если нет, то могут быть две причины:
больше нечего приносить в мастерскую богатого программиста (браво!)
программатор перестает развиваться (сигнал тревоги)
Конечно, это очень субъективный взгляд на ее ценность. Я читаю ее регулярно и все еще замечаю что-то интересное. Каждый раз появляется какой-то импульс развития. Обязательный пункт.
Becoming a Better Programmer: A Handbook for People Who Care About Code — P. Goodliffe
Книга, похожая на предыдущие, однако, отличается от них тем, что она почти полностью лишена кода (какой-то есть, но это действительно исключение). Поэтому советы автора находятся на более высоком уровне. Он описывает культуру работы и сотрудничества. На каждом уровне. Одна из моих любимых цитат из этой книги:
(…) если код достаточно важен для написания, он также достаточно важен для тестирования.
Очень рекомендую. Это богатый источник вдохновения. Если вы молодой программист (и не только) и чувствуете, что не знаете, как направить свое развитие, чтобы получить больше знаний и навыков, обязательно прочитайте эту книгу.
Программист-прагматик The Pragmatic Programmer: From Journeyman to Master — A. Hunt, D. Thomas
Вы не можете написать идеальное программное обеспечение. — этими словами начинается четвертая глава. Вы не можете — может только Дональд Кнут (очевидно, его TeX не содержит ошибок). Но давайте посмотрим правде в глаза, Дональд Кнут не рядовой программист, он скорее своего рода «Архитектор» из «Матрицы».
Возвращаясь к книге — опять же, у нас есть набор практик, которым программист должен почти всегда следовать в своей работе. Работа Ханта и Томаса разделена на восемь частей, которые становятся лейтмотивом содержащихся в ней подробных советов. Его вневременность настолько очевидна, что спустя почти 20 лет после его первого выпуска кажется, что он был написан вчера.
Обязательно к прочтению любому программисту.
Hackers & Painters: Big Ideas from the Computer Age — P. Graham
Это сборник из пятнадцати эссе П. Грэма, которые он опубликовал на своем сайте. Они охватывают различные вопросы, но даже если они не имеют прямого отношения к программированию, они написаны с точки зрения программиста. Их ценность снова подтверждается вневременностью мыслей и выводов. Хотя они написаны более десяти лет назад, они все еще актуальны и читаются так же, как и при первой публикации. Моя любимая цитата из книги о Лиспе:
Феномен того, что язык 1950-х годов не устарел, можно вкратце объяснить тем фактом, что это были не технологии, а математика, а математика не стареет. Фактическое сравнение для Lisp — это не оборудование 1950-х годов, а алгоритм быстрой сортировки, который был изобретен в 1960 году и до сих пор является самым быстрым алгоритмом общего назначения.
Уолтер Айзексон «Инноваторы» — The Innovators — W. Isaacson
Странно выглядящая книга Айзексона (автора, среди прочего, биографии Стива Джобса) в этом сравнении — настоящая жемчужина. Самая доступная история развития технологий, которую я читал. Это в основном касается развития всего, что привело к текущему состоянию ИТ-индустрии.
История начинается в 19 веке. Айзексон красноречиво описывает борьбу своих героев с жизнью, математикой, физикой, социальными проблемами, литературой и т.д. Благодаря этой замечательной истории вы узнаете, где регулярно проводились общие ванны с «травой», кто искал вдохновения, совершая длительные поездки на кабриолете и многое другое.
Прежде всего, эта книга — неиссякаемый источник вдохновения, поэтому она и включена в список.
Structure and Interpretation of Computer Programs — H. Abelson, G.J. Susman, J. Sussman
Помню, когда я впервые взял эту книгу, меня удивил код внутри. Я был молодым разработчиком с некоторым опытом работы с Perl, C и Java. Это был мой первый контакт с кодом, отличным от C-стиля. Все примеры в книге написаны на Scheme (диалект Лиспа). Поначалу это показалось мне действительно странным. Но я думаю, что после примерно сотни страниц, это стало для меня естественным. Единственное неудобство исчезло, и в моих руках оказалась одна из самых важных книг в истории информатики.
Я настоятельно рекомендую каждому разработчику прочитать её. Это бесценный источник о стиле и принципах программирования, однако, в другом смысле, чем вышеупомянутый «Чистый код» или «Прагматичный программист». Прежде всего, она позволяет понять алгоритмы, структуры данных и стиль в отрыве от языка, но в то же время на примерах реальных проблем.
Algorithms Unlocked — T. Cormen
Книгу Кормена я выбрал из множества других только потому, что она описывает алгоритмы очень абстрактно, полностью оторвавшись от любого языка. Это уменьшенная версия его огромной работы «Введение в алгоритмы», которую он написал вместе с другими авторами.
Почему эта книга важна? Алгоритмы со структурами данных на самом деле являются сутью программирования, и очень часто я вижу молодых программистов (и не только молодых), которые, не зная, что есть совершенные и хорошо описанные решения их повседневных проблем, изобретают велосипед каждый понедельник.
Кент Бек, «Экстремальное программирование, разработка через тестирование» Test-driven Development by Example — K. Beck
Эта небольшая книга (около 200 страниц) описывает одну из самых важных практик программирования. Мне повезло, что во время учебы мы применяли на занятиях практики TDD и XP, которые в то время были в новинку. Сегодня это промышленный стандарт, который, к сожалению, во многих местах до сих пор не применяется.
TDD — это набор практик, которые при внедрении в начале вашей карьеры становятся привычкой, без которой вы не можете себе представить работу. Примеры в книге написаны на Java (много кода, что является сутью книги), но таким образом, чтобы их могли прочитать программисты, незнакомые с этим языком. Хорошим упражнением может быть перенос примеров на язык, используемый читателем.
Статья предоставлена netgear.
Советую почитать:
6 лучших книг для начинающих программистов
Книги это один из лучших источников знаний для начинающих программистов. Они имеют очень высокую отдачу в плане инвестиций: вы же знаете, что, став программистом, сможете хорошо зарабатывать? ??
Мартин Фаулер это один из моих любимых авторов. И первая причина для такой любви – его веселость. Его стиль написания книг очень выделяет его из общего ряда. Другая причина – Фаулер невероятно хорош в объяснении сложных тем. Он делает это очень простым языком, не утомляя читателя.
Я лично наслаждаюсь Вашим искусством излагать сложные вещи понятными речами.