Книги для програмістів - це одна із самих холіварних тем. Я не пропогандую читання книг як щось життєво-необхідне, але і не сприймаю критику книг від людей які не прочитали хочаб 2-3 штуки.

У цій статті буде про 2 шляхи які у майбтньому обов’язково перетнуться. Говорячи про розвиток який набувається при читанні книг, виокремлюю 2 напрямки:

  1. Гарний Кодер

  2. Гарний Інженер

Етап Перший

Писання коду - це перший етап із якого починають всі і із якого починається все, незалежно від напрямку вам потрібно пройти цей етап. Тільки написавши перший “Hello, world" - ви набуваєте першого досвіду в ІТ, якщо ви вивчаєте 5 років ІТ в універі, але не написали ні одного рядка коду - це дуже сумно, ви не ІТішнік.

Працюючи в ІТ певний час ви точно почуєте абривіатури: KISS, DRY, SOLID (із якого в більшості використовують SOD або тільки S). KISS, DRY - це про чистоту коду, та про його використання і читання. Якщо не мати гарного прикладу, то ви точно не навчитесь писати краще, у певний період персонального розвитку ви почнете задумуватись про якісь правила і практики писання коду, про найменування змінних, про зони відповідальності коду, про тести, про взаємодію модулів. І у цей момент ви будете читати або статті (які не даватимуть вам всієї повноти картини) - це приведе вас до того що ви розумієте локальні частини проекту, але в загальному воно виглядає і працює погано. Інший варіант - це Книги які забезпечать вас розумінням всіх аспектів які перелічував вище. Я перечитував “Clean Code" 3 рази і кожного разу через призму нового досвіду знаходив для себе інший сенс у тому що пише ця книга.

Етап Другий

When you're a computer science specialist – ProgrammerHumor.io

Computer Science - це наука яка включає у себе все що пов’язано із ком’ютерами та писанням коду. Це те що знаходиться у фундаменті програмування. І це та стіна через яку на можуть перелізти люди які не пройшли базового курсу по алгоритмах, структурах данних, але дуже хочуть бути сенйорами.

Щиро не розуміючи чому ви не можете підвищити кваліфікацію як Software Engineer - ви безпощадно проходите курси на різноманітних сервісах, підвищуєте знання у специфіці вашої технології та продовжуєте битись у стіну під назвою ‘‘Computer Science''.

Говорячи про алгоритими вам у голову приходить тільки:

  1. Quick Sort

  2. Bubble Sort

  3. Selection Sort

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

Якщо побачили себе, то переходьте зразу на 2й етап наступного розділу.

Етап третій

Третій етап це - Специфіка.

Якщо ви працюєте у сфері секюріті то книги які вам допоможуть - це книти по секюріті та суміжних темах.

Captain America: The Winter Soldier Trailer Is Out!

Тут немає списку книг, бо специфіка може бути супер різною, тож із цією задачею вам потрібно буде справитись самостійно.

Єдина рекомендація - читайте книги у яких на титульній сторінці намальована якась тваринка.

З чого починати ?

Етап Перший - описує у більшості програмістів початкогово рівня яким все ще не дістає досвіду, тому варто починати із таких книг як:

  1. Чистий Код

  2. Чиста Архітектура

Прочитати рецензії, або опис цих книг - на домашнє завдання, якщо відкрили цю статтю то і опис книги нагуглити зможете.

Після прочитання цих книг ви по справжньому переоціните для себе багато речей, зрозумієте свої помилки (і не тільки свої). Але проблема із якою ви зіштовхнетесь полягає у тому що ви будете пихати той чистий код куди тіко можна і це може затуманити вам голову, бо чистий код у книзі про щось ідеальне, а не про реальні проекти які писались тими хто і не чув про цю книгу (Сурові реалії Аут сорсу).

Мені складно писати цінні поради про досвід прочитання цих книг пройшовши етап прийняття ефективності порівняно із якістю, у більшості ІТ проектів потрібно - швидко, а про це не говориться у Чистому Коді…

Етапи які я пройшов після прочитання цих книг:

  1. Стало більше коментарів у яких було позначка - технічний борг

  2. З часом на проекті були періоди застою у які я створював тех задачі на підтягування технічного боргу (пощастило), у вас може такого не бути - про це варто пам’ятати.

  3. З часом коментарів ставало менше і код ставав чистіше.

  4. Пам’ятайте: Замовник цінить робочий функціонал за короткий проміжок часу, а не супер архітектурно правильний модуль із 100+ мікросервісами для завантаження картинок.


Етап Другий - Книги для другого етапу мені більше подобаються, бо вони про сам фундамент програмування. Ці книги написані із купою реальних прикладів матиматичних, статистичних, геометричних формул у реальних задачах (чого тільки варта задача Комівояжера).

  1. The theoretical minimum in Computer Science

  2. Grokking Algorithms

Перша книга розповідає про реальні задачі, про те чому потрібно розуміти теорію ймовірностей про всі ті злощасні формули та де і як вони використовуються. Загалом дає відповідь на питання - “Ну а де це мені в жизні пригодиться ?". Також розповідає про те як працює комп’ютер та всі складові.

Грокаємо Алгоритми - це просто альманах із якого варто починати всім при вивченні алгоритмів. Починаючи із звичайних алгоритмів пошуку ви завершуєте k-наближеними алгоритмами класифікацій що є фундаментом нейронних мереж, або алгоритмами криптографій що лежать в основі крипто-валют. Це навіть звучить круто якщо сказати у слух.

З чого не варто починати ?

Не читайте Кнута (мистецтво програмування), його можуть читати як першу книгу тільки ті хто зрозуміють 80%+ всіх математичних позначчень на початку книги. Мистецтво програмування місцями більше про матиматичний аналіз ніж про програмування (це тому що Кнут у першу чергу був математиком).

Не читайте Кормена (Вступ до алгоритмів), для тих хто не розуміє асимптотичний аналів, це буде просто пекло із перших сторінок, хоч це і простіша книга порівняно із Кнутом.

Що читати далі?

Совершенный алгоритм. Тим Рафгарден. Комплект книг., фото 1

Далі читайте “Совершенний Алгоритм" (вибачаюсь, не знайшов Українською)

Дуже класна серія книг, яка розкриє у повній мірі ‘Grokking Algorithms’.

Підсумки:

Я прочитав всі книги які описав у цій статті тому рекомендую всі із них, але у певному порядку. По алгоритмах написано дуже багато книг, я не читав всі, можливо, є кращі книги (Але сумніваюсь що хтось пише краще Кнута).

Кто лучший программист в мире? | dev.by
Конкретний Математик

Якщо ви ніколи не вивчали 20+ видів матиматики, то вам може бути складно (майже неможливо) зрозуміти Кнута з першого разу, але навіть ті хто вчив матан, не все розуміють у повній мірі, тому не засмучуйтесь - булоб бажання.

На шляху вашого персонального розвитку ви можете не прочитати ніоднієї книги, це мало ймоіврно, але це можливо. Читати книги - не обов’язково, просто це може значно прискорити ваш розвиток.

Більш детально про алгоритми та інші Компютер Сайнські штуки напишу в наступних статтях.

Поділись своїми ідеями в новій публікації.
Ми чекаємо саме на твій довгочит!
Valentyn Tupota
Valentyn Tupota@valentyn_tupota

Software Engineer

929Прочитань
2Автори
32Читачі
На Друкарні з 11 жовтня

Більше від автора

  • Neural Network [guide] 1

    Все починається із першого нейрону. Алгоритм лінійної регресії для одного нейрону, та принципи його використання.

    Теми цього довгочиту:

    It
  • Frontend [TypeScript] 2

    TypeScript - Як писати код швидше та надійніше. Про неочевидні речі.

    Теми цього довгочиту:

    It
  • Frontend [TypeScript] 1

    TypeScript - Як писати код швидше та надійніше.

    Теми цього довгочиту:

    It

Вам також сподобається

Коментарі (0)

Підтримайте автора першим.
Напишіть коментар!

Вам також сподобається