Нові технології, методології та підходи у розробці супроводжують розробника протягом усієї кар’єри — від трейні чи джуна до скілового сеньйора. Ми вирішили скласти актуальний рейтинг книг на поточний рік для розробників, які допоможуть підвищити рівень будь-якого фахівця.
1 Jez Humble, David Farley «Continuous Delivery»
Наш список відкриває справді видатна книга та чудова знахідка для будь-якого розробника.
Випуск програмного забезпечення, його розробка — найчастіше процес, який простим не назвеш. У цій новаторській книзі викладаються принципи та технічні прийоми, що дозволяють оперативно та поетапно надавати користувачам нові функції.
Завдяки автоматизації процесів розробки, імплементації фіч та тестуванню, а також покращеній взаємодії між розробниками та тестувальниками, компанія має можливість випускати зміни протягом кількох годин — незалежно від розміру чи складності проєкту та своєї кодової бази.
Джез Хамбл і Девід Фарлі починають своє оповідання з представлення основ швидкого, надійного процесу розробки продукту з низьким рівнем ризику. Потім вони запроваджують «конвеєр розгортання» — автоматизований процес керування всіма змінами, від початку до релізу.
Також вони обговорюють екосистему, необхідну для підтримки безперервної розробки.
2 Роберт Мартін «Чистий код: створення, аналіз і рефакторинг»
У книзі описані методи та покрокові інструкції з очищення, написання та рефакторингу коду. Пояснюється, як та навіщо писати чистий код.
Після прочитання книги ви зможете легко впровадити вивчену методологію у свої проєкти, а також станете більш рішучим та дисциплінованим програмістом.
3 Robert Sedgewick «Algorithms in Java»
Книга Седжвіка «Алгоритми у Java» — це традиційний гайд, в якому можна знайти весь ключовий набір знань для програміста, пов’язаний з алгоритмами, накопиченими за останні десятиліття.
У книзі ви зможете зустріти комплексний спектр тем: глибоке тлумачення структур даних та алгоритмів сортування, пошуку, обробки графів і рядків, включаючи 50 алгоритмів, які має знати кожен програміст.
Автор дає можливість ознайомитися з описом нових варіантів імплементації алгоритмів на Java, написаних у звичному модульному стилі, який дозволяє зберегти весь код у доступній для читача формі та використовувати його.
Найкориснішим аспектом книги є використання реального робочого коду.
Книжка корисна для розробника будь-якого рівня: джун зможе знайти багато корисної інформації, а досвідчений сеньйор — освіжити теоретичні знання та повзаємодіяти з кодом, що відрізняється від коду на проєкті.
4 Thomas H. Cormen «Introduction to Algorithms»
Книга розділена на кілька автономних розділів, у кожному з яких докладно розглядається ряд алгоритмів. Вони представлені з використанням псевдокоду, доступного для читання програмістам будь-якого рівня.
5Cory Althoff «The Self-Taught Programmer: The Definitive Guide to Programming Professionally»
Продовжує добірку кращих книг ще один шедевр, який подарував нам геніальний автор Корі Альтхофф. Він також спікер світових IT-конференцій та стартап-консультант. Корі веде свій блог Selftaught, де можна знайти багато корисних лайфгаків.
Ця книга принесла автору світову популярність.
Його шлях унікальний: Корі опанував високий рівень програмування всього за рік, що не так багато у сучасних реаліях, постійно розвивався та навчався. Після цього влаштувався працювати в одну з найбільших компаній — eBay. Це шлях, яким мріють пройти багато розробників.
Робота у великій корпорації з передовими технологіями у багатонаціональній професійній команді, захопленій своєю справою — те, про що нам розповідає Корі у своєму блозі та книзі.
Спойлерів не буде, єдиний секрет, який можна відкрити — мову програмування, з якої колись почав свій шлях сам автор. Python вже не один рік зберігає позицію однієї з найбільш затребуваних і популярних мов, що покриває величезну кількість функціоналу — від створення простих вебзастосунків, для яких потрібні базові фічі (і клієнт має лише кілька ключових business needs) — до масштабних проєктів, що включають роботу зі штучним інтелектом.
6 Harold Abelson, Gerald Jay Sussman «Structure and Interpretation of Computer Programs»
Це універсальна книга з програмування, за якою навчаються в MIT для ілюстрації різних концепцій. У ній є безліч практичних вправ.
Найкраще читати цю книгу після ретельного вивчення хоча б однієї чи двох мов програмування.
7 Steve McConnell «Rapid Development»
Це книга, повз яку неможливо пройти. Глобально можна виділити одну велику проблему, з якою стикаються компанії — відповідь на питання, як тримати під контролем свої напружені графіки розробки.
У «Швидкій розробці» Стів МакКоннелл розглядає ці питання з прикладами у вигляді глобальних стратегій із конкретними передовими методами та підказками, які зможуть допомогти зменшити та тримати під контролем графіки розробки, сприяти просуванню проєктів.
Всередині книги ви знайдете:
- стратегію швидкого розвитку, яку можна застосувати до будь-якого проєкту, і кращі практики, щоб ця стратегія точно спрацювала;
- відкрите обговорення гарних і провальних практик швидкої розробки — оцінка, прототипування, вимушена понаднормова робота, мотивація, командна робота, мови швидкої розробки, управління ризиками та багато іншого;
- перелік найпоширеніших помилок, яких слід уникати у проєктах швидкої розробки;
- дослідження, які пояснюють, що може піти не так, на які ризики звернути особливу увагу і як визначити, в якому напрямку рухається проєкт.
Ці знання будуть корисні не тільки для розробників, але і для менеджерів, бізнес-аналітиків, СЕО компаній.
Книжка дає глибинне розуміння процесів організації структури компанії, вічної дилеми мотивації розробників, корпоративної культури та ризиків.
8 Robert Martin «The Clean Coder: A Code of Conduct for Professional Programmers»
Книга охоплює практики, методи та інструменти для розробки програмного забезпечення. Вона сповнена практичних порад з усього, що пов’язане з програмуванням — від кодингу та рефакторингу до тестування.
Книжка не лише про те, як писати чистий код, а й про те, як виховати кваліфікованого програміста.
9 Peter Seibel «Coders at Work: Reflections on the Craft of Programming»
Пітер Сейбел, письменник-програміст, знімає завісу таємниці з професії розробника. Він поспілкувався з 15 визначними геніями IT-середовища:
- Кеном Томпсоном, творцем UNIX;
- Берні Козеллом, учасником першого релізу ARPANET;
- Дональдом Кнутом;
- Геймом Стайлом;
- Джеймі Завінські;
- Саймон Пейтон-Джонсом;
- Пітером Норвігом;
- Дугласом Крокфордом;
- Джошуа Блохом;
- Бренданом Айком;
- Джо Армстронгом;
- Бредом Фіцпатріком та іншими.
Погодьтеся, список значний.
Цільова аудиторія книги не обмежується розробниками. Кожен представник IT-індустрії зможе отримати щось корисне.
Програмісти зможуть знайти велику кількість ідей і після цього навіть замислитися над запуском стартапу, а менеджери — зрозуміти хід думок розробників, і, можливо, запозичити ідеї управління проєктом і впровадити їх у своїй компанії.
Завдяки книзі ви зможете познайомитися з думками лідерів ринку, дізнатися про те, як проєктувати програмне забезпечення, як від конкретної мови може залежати продуктивність, і що робити, щоб прискорити пошук багів.
10 Steve McConnell «Code Complete»
Книга розповідає, як писати надійний код незалежно від архітектури мови програмування. Містить безліч прикладів коду, які ілюструють мистецтво та науку, що лежать в основі розробки програмного забезпечення.
Методи та стратегії для розробки ПЗ, які описані в книзі:
- одержання вигоди від спільної розробки;
- легка розробка;
- закріплення процесу налаштування;
- творча розробка ПЗ;
- зниження кількості помилок під час написання коду;
- рефакторинг та доопрацювання коду.
11 Donald Knuth «The Art of Computer Programming»
Ця книга — криниця лайфгаків та основ програмування від видатного американського математика Дональда Кнута, присвячена роботі з алгоритмами. Праця містить кілька томів.
Книги призначені для програмістів, які готові вийти за межі своїх можливостей:
- Том 1: Основні алгоритми
- Том 2: Отримані алгоритми
- Том 3: Сортування та пошук
- Том 4: Комбінаторні алгоритми
Білл Гейтс заявляв, що всі програмісти, які посилили цю серію з чотирьох томів, можуть надсилати йому свої резюме.
У першому томі читач ознайомлюється з основними поняттями та методами розробки програмного забезпечення. Після цього автор переходить до розгляду інформаційних структур — як інформація зберігається всередині вашого комп’ютера, як елементи пов’язані структурно і як можна ефективно з цим працювати.
Також до нового видання додано прості та важливі алгоритми.
Зазначимо, що починати підкорення вершин розробки з цієї книги не варто. Матеріал більшою мірою розрахований на мідлів та сеньйорів.
12 Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides «Design patterns : elements of reusable object-oriented software»
У книзі представлено 23 шаблони проєктування програмного забезпечення, які допоможуть розробникам та дизайнерам створювати більш якісні, елегантні та гнучкі програми.
Також у книзі обговорюється безліч коротких та простих рішень звичайних проблем розробки програмного забезпечення. Деяку інформацію та приклади, зібрані в книзі, буде складніше засвоїти, якщо ви погано знаєтеся на UML (Unified Modeling Language).
13 Martin Fowler «Patterns of Enterprise Application Architecture»
У міру збільшення складності розробки процеси побудови програмного забезпечення вимагають все більше і більше витрат часу. Важливу роль завжди грає навчання на помилках та успішних кейсах.
Книга допоможе розібратися зі складними ключовими питаннями, які стали частиною рутини кожного девелопера.
Мартін, видатний профі в об’єктно-орієнтованому програмуванні, зауважив, що навіть незважаючи на стрімкий розвиток технологій, основні принципи проєктування та вирішення нагальних проблем не змінюються, і поділився популярними працюючими підходами.
Це туторіал, який допоможе не тільки засвоїти інформацію, а й відразу застосовувати отримані знання.
14 Andrew Hunt, David Thomas «The Pragmatic Programmer: From Journeyman to Master»
Книга призначена для кожного програміста, який хоче стати досвідченим розробником програмного забезпечення. Вона охоплює не лише широкий спектр тем програмування та розробки ПЗ, але й теми розвитку кар’єри та особистої відповідальності при розробці програмного забезпечення.
15 Charles Petzold «Code: The Hidden Language of Computer Hardware and Software»
Можна сказати, що це справжня абетка програміста:
- автор знайомить із суттю кодингу;
- розповідає, як з’явилися комп’ютери;
- на реальних кейсах допомагає опанувати основні концепції;
- у найдрібніших деталях розповідає про принципи роботи процесора і не тільки.
Чарльз Петцольд створив цю книгу доступною, іронічною, живою, додавши ілюстрації.
Книга допомагає побачити всю картину не лише розробникам, а й менеджерам. «Код. Таємна мова інформатики» може стати вашим навігатором у світі програмування, який доступно та цікаво познайомить із базою.
16 Ерік Фрімен, Елізабет Робсон, Кеті Сієрра та Берт Бейтс «Head First. Паттерни проєктування»
Книга відома своїм новаторським способом розбиття складних тем на прості та зрозумілі частини. У ній є безліч ілюстрованих та стимулюючих мозок прикладів, які роблять процес навчання одночасно ефективним та захоплюючим.
У книзі розбираються кілька шаблонів програмування, що використовуються досвідченими розробниками програмного забезпечення та програмістами з усього світу для створення повнофункціонального та гнучкого програмного забезпечення.
17 John Z. Sonmez «Soft Skills:The software developer’s life manual»
Джон Сонмез намагався надати інформацію про те, які кроки зробити на шляху до блискучої кар’єри програміста.
Автор допомагає глибше розуміти потреби команди і завжди мати попит серед рекрутерів, розвиватися в професії, а разом з тим отримувати задоволення від процесу.
18 Martin Fowler «Refactoring: Improving the Design of Existing Code»
Охоплює всі основні види рефакторингу. В останньому виданні є приклади JS-коду та приклади, що демонструють рефакторинг без класів.
Після прочитання книги ви зможете створювати комплексні тести для рефакторингу, виявляти компроміси та проблеми при рефакторингу та швидко застосовувати рефакторинг до програми.
19 Michael Feathers «Working Effectively with Legacy Code»
Це книга допоможе навчитися отримувати максимальну кількість користі із систем, що дісталися у спадок від акул ринку, підвищуючи функціональність застосунків та сайтів.
У книзі ви знайдете докладно викладені стратегічні прийоми ефективної роботи з великими базами непротестованого коду. Базу складає матеріал, який автор зібрав та підготував для виступів на семінарах та лекціях.
Також у книгу включено корисні практичні способи розриву залежностей, що допомагає в рази збільшити безпеку під час внесення змін до коду.
20 Jon Bentley «Programming Pearls»
Цю книгу оцінять досвідчені програмісти, які мають запит на покращення якості своєї роботи.
Джон Бентлі розповідає про методи:
- розроблення алгоритмів;
- оцінки продуктивності;
- оптимізації програм та економії пам’яті.
Також автор допомагає вирішити завдання сортування, вибірки та пошуку.
Висновок
У добірці ми розповіли про книги з програмування на будь-який смак, залежно від завдань і питань, що стоять перед вами.
І навіть якщо ви впевнений у своїх знаннях сеньйор-розробник, завжди можна дізнатися щось нове і розширити хард-скіли. Це допоможе вам залишатися конкурентоспроможним на IT-ринку, який стрімко розвивається.
The post Має прочитати кожен розробник: топ-20 книг з програмування first appeared on Highload.today.