Новини високих технологій
» » Кращі книги з програмування: список літератури та короткий огляд книг

Кращі книги з програмування: список літератури та короткий огляд книг

7-08-2018, 15:54
323
Якщо ви хочете займатися програмуванням, то ваш життєвий шлях зв'яжеться з безперервним самоосвітою. Інформаційна сфера, технології не стоять на місці. Те, що актуально сьогодні, завтра вже не буде мати цінності. Однак можливо вибрати кращі книги з програмування, які корисні і донині, особливо для початківців фахівців. У статті ми наведемо огляд видань, визнаних професіоналами і тисячами читачів.

"Досконалий код"

Автор однієї з кращих книг по програмуванню - С. Макконнелл. Сам автор стверджує: "Пишіть код так, ніби супроводжувати його буде психопат-ґвалтівник, що знає, де ви живете". Важко знайти гуру програмування, який би обійшов стороною це творіння. Попередимо відразу, що книга - зовсім не довідник, а об'ємне видання в 900 сторінок. Макконнелл описав тут все, з чим може зіткнутися починаючий програміст:


"Рецепти" написання кодів високої якості. Механізми налагодження і тестування. Стратегії оптимізації коду. Людські чинники, що впливають на розробку, та ін. Автор провів вражаючу дослідницьку роботу: бібліографія займає 20 сторінок матеріалу, включаючи в себе близько 500 джерел! Тому не дивно, що книга була визнана читачами суперкорисної, не раз очолювала рейтинги видань з програмування. Важливо, що її відрізняє проста манера викладу, своєрідний стиль автора і його почуття гумору.

Зміст "Досконалого коду"

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


Є спеціальний розділ з якості пз в цілому. Творець книги говорить, що підвищення якості системи завжди гарантує зниження витрат на її розробку. Підтримання якості коду на необхідному рівні не тільки економить час програміста, але і підвищує його ККД. Макконнелл призводить в "Досконалому коді" кілька методів розробки: ревізії коду, парне програмування, неформальні і формальні інспекції, розробки на базі тестування - теми широко розкриваються в матеріалі. Найкращою книгою з програмування це видання вважає Джон Роббінс. Він говорить, що "Досконалий код" від кірки до кірки повинен перечитвапть кожен програміст щорічно. Сам Д. Роббінс робить це протягом дев'яти років.

"Переформатування"

Ще одна найкраща книга з програмування авторства Мартіна Фаулера. Почнемо знайомство зі слів самого автора: "Кожен може написати код, зрозумілий комп'ютеру. І лише хороші програмісти пишуть код, зрозумілий людині". В нашому рейтингу це видання виявилося не випадково. Величезне число авторів посібників з програмування посилаються в своїх працях саме на творіння М. Фаулера. В першу чергу, книзі гарантувала успіх її практична спрямованість. Фаулера немає рівних у демонстрації вдалих показових прикладів.

Важливі розділи "Рефакторінгу"

Багато хто стверджує, що видання з перших слів буквально затягує в світ рефакторінгу. Самому наприклад присвячено тут 40 сторінок. Проте цього достатньо навіть новачку, щоб зрозуміти, що таке переформатування, які його цілі і принципи, методи реалізації. Автор докладно розповідає, коли він необхідний код, який потребує поліпшення. Фаулер вводить власне правило "трьох ударів": якщо програміст робить аналогічну операцію в третій раз, це достатній сигнал для початку рефакторінгу. Важливий розділ, де автор детально описує характеристики коду, який потребує поліпшення: великий клас, довгий метод, тимчасові поля, дублювання, відмова від спадщини тощо. Інша корисна голова: каталог методів рефакторінгу. Це складання методів, переміщення між об'єктами функцій, спрощення виразу та ін. Це не тільки книга з програмування для початківців. Прочитавши її, багато програмісти докорінно змінюють свій підхід до написання коду. Рекомендується всім бажаючим стати професіоналами своєї справи.

"Патерни проектування"

Шукаєте відмінні книги з програмування для початківців? Тоді зверніть увагу на це видання союзу авторів: Е. Гамма. Р. Хелм. Д. Влиссидес. Р. Джонсон. Якщо ви попросите будь-якого з професіоналів порадити вам видання об'єктно-орієнтованого програмування, то в 9 з 10 випадків вам порадять саме цю книгу! Видання давно перейшло через статус "бестселер". Дивіться самі, адже книга була опублікована більш ніж на 30 мовах і поширена 500 тисячами примірників.
Навіщо, власне, починаючому програмісту володіти мовою патернів? Це допоможе вирішити безліч завдань по проектуванню перевіреним способом в мінімальні терміни, а не "винаходити велосипед". У книзі представлено 20 патернів. І цього вистачає, щоб вирішити величезний спектр завдань у сфері проектування ПО. Безумовно, це одна з кращих книг для вивчення програмування. Але зазначимо, що перед її прочитанням у читача вже повинні бути накопичені знання з об'єктно-орієнтованого проектування. Видання недостатньо просто прочитати. Книгу потрібно буквально пропустити через себе.

Зміст "Патернів проектування"

Видання складається з 350 сторінок. Книга поділена на дві частини: Загальне поняття патернів у проектуванні, опис їх практичного застосування. Каталог з патернами з описом структури, призначення, особливості реалізації. Всі патерни автори поділяють на три основні категорії: Породжують. Вирішують завдання инстанцирования класів. Структурні. Вирішення питань компонування системи на базі класів і об'єктів. Патерни поведінки. Пов'язані з розподілом обов'язків між класами, алгоритмами. Єдиний мінус книги: приклади написані на маловідомому сьогодні мові Smalltalk.

"Чистий код"

Творіння Робіна Мартіна не можна не зарахувати до кращих книг про програмування. Сам автор попереджає читача: "Написання коду - важка задача. Тут точно доведеться попотіти". 360 сторінок видання (не рахуючи додатків) присвячені написанню високоякісного коду. Головне достоїнство: видання складено доступним і зрозумілим мовою. Тому його реально повністю осилити лише за кілька вечорів. Підкуповує і дружня манера оповіді, велика кількість прикладів з реальної практики автора.

Три частини "Чистого коду"

Своє видання Р. Мартін розділив на три частини: Теоретичний розділ. Це саме теорія написання "чистого" коду: прийоми, патерни і принципи, які повинен знати кожен розробник. Практичний розділ. Автор розповідає, як треба "чистити" коди існуючих на сьогодні додатків. Підсумок. Тут розташовується перелік "запахів коду", а також інструкції щодо їх усунення. Чому видання відносять до найкращих книг за програмування? Творець тут детально розписує принципи іменування змінних, правила створення функцій, форматування коду, написання коментарів, принципи написання модульних тестів і обробки помилок. Великий розділ присвячений створення багатопоточних додатків. Робін Мартін вводить основне правило: з яким би ділянкою коду ви не працювали, ваше завдання - зробити його чистішим, якісніше, ніж він був. Тільки в такому випадку код не буде "загнивати". Безумовно, це одна з кращих книг з програмування для початківців. Читачі відзначають лише один її мінус: Java-орієнтованість.

"Мистецтво програмування"

Продовжуємо знайомити вас з найкращими книжками з основ програмування. Творець даної, Дональд Кнут, влучно підмічає: "Найкращий спосіб у чомусь розібратися - спробувати навчити цьому комп'ютер". Шанувальники книги кажуть, що програміст, який не має "Мистецтво програмування" у своїй бібліотеці, схожий на священнослужителя без Біблії.
Чим же хороша монографія Д. Батога? Автор докладно описує і аналізує фундаментальні алгоритми інформатики, наводить практичні завдання для засвоєння матеріалу. Робота була розпочата ще в 1962 році. У повному варіанті видання буде включати в себе 7 томів. Поки що видано три - це вже 3000 сторінок. Книга не є готовим "рецептом" до вирішення завдань. Читати її нелегко - приклади розглядаються на низкоуровневом мовою програмування, створеного автором для гіпотетичного комп'ютера.

Тома "Мистецтва програмування"

Розглянемо частини науково-практичного твори: Перший том. Присвячений основним алгоритмам і в цілому готує читача до роботи над книгою. Розглядаються математичні теореми, терміни, мова програмування, створена автором, - все те, на чому буде базуватися оповідання. Також тут згадані інформаційні системи та алгоритми взаємодії з ними. Другий том. Розглядаються вправи з випадковими числами і їх послідовностями. Описуються важливі питання арифметики: системи числення, арифметика чисел, які мають плаваючу точку, полиноминальная арифметика та ін. Третій том. Алгоритми пошуку і сортування. Четвертий том. Написаний не повністю, готується до випуску. Тут будуть розбиратися питання комбінаторного пошуку. "Мистецтво програмування" було високо оцінено Біллом Гейтсом. У своєму відгуку про виданні він сказав, що кожен, хто зміг осилити творіння Батога, безумовно може відправити резюме в його корпорації.

"Програміст-прогматик"

Вам потрібні кращі книги для вивчення програмування з нуля? У вашій бібліотеці обов'язково повинно бути це творіння Е. Ханта і Д. Томаса. Хто такі програмісти-прагматики? Ті фахівці, які насамперед дивляться на практичну успішність власних проектів. Розмір книги невеликий - 270 сторінок. Однак у її утриманні сконцентрована необхідна для програміста інформація. Всі розібрані теми автори супроводжують виразними аналогіями: неякісний код і теорія розбитого вікна, водіння автомобіля і написання коду, столярна робота та діяльність програміста. Хант і Томас формують чудовий принцип програмування: "Не повторюй самого себе". В даному контексті це означає, що кожен фрагмент знання - це лише однозначне уявлення в системі. У результаті такий підхід підвищує надійність, простоту і доступність програмного продукту.

Глави "Програміста-прагматика"

Давайте коротко розглянемо зміст книги: Загальна філософія прагматичного програмування. Яким автори бачать успішного фахівця. Прагматичний підхід. Методики розроблення, а також оцінки трудомістких проектів. Гнучкість проти крихкості. Як саме створюються стійкі до змін гнучкі системи. Перед початком проекту. Розповідається, як сформувати і затвердити вимоги до системи. Прагматично проекти. Важливі аспекти створення реальних проектів: особливості роботи в команді, тестування, оформлення документів. Єдине, що тут може засмутити, - неякісний переклад на російську мову, наявність помилок. Тому книгу краще читати в оригіналі.

Бібліотека програміста

Представимо список з декількох культових творів, визнаних найкращими книгами з програмування з нуля: "Ефективна робота з успадкованим кодом". Творець - М. К. Физерс. "jаvascript: сильні сторони". Творець - Д. Крокфорд. "Шаблони корпоративних додатків". Творець - М. Фаулер. "Мова програмування С". Творці - Б. У. Керниган, Д. М. Рітчі. "Ефективне використання З+++". Творець - С. Майерс. "Експериментальне програмування". Творець - К. Бек. "Алгоритми. Побудова і аналіз". Творці - Т. Кормен та ін. "Регулярні вирази". Творець - Д. Фридл. "Сучасне проектування на С++". Творець - А. Александреску.

Видання для юних програмістів

Уявімо також кращі книги з програмування для дітей: "Scratch для дітей". Автор - М. Марджі. "jаvascript для дітей". Автор - Н. Морган. "Python для дітей". Автор - Д. Бріггс.
На цьому закінчимо знайомство з топовими виданнями для дорослих і юних програмістів. Сподіваємося, що представлені списки, огляди на книги допоможуть вам вибрати гідний самовчитель, збагатити скарбничку знань, сприйняти новий досвід.
Цікаво по темі
Зміст і використання JavaScript void
Зміст і використання JavaScript void
Відсутність значення і значення undefined - раритет найдавніших часів інформаційних технологій, але навіть в сучасному світі у них є місце і
Синтаксис JavaScript parseInt: приклади використання
Синтаксис JavaScript parseInt: приклади використання
Розпізнати в рядку число і бути впевненим, що в алгоритмі використовується значення змінної, тип якої - число, необхідно майже в кожному алгоритмі.
Стандартні бібліотеки C++
Стандартні бібліотеки C++
Standard Template Library(STL) або стандартна бібліотека шаблонів вплинула на архітектурна будова C++ і стала ядром мови. STL – це набір
Що таке програмування? Мови програмування. Комп'ютерне програмування
Що таке програмування? Мови програмування. Комп'ютерне програмування
В період появи перших комп'ютерних систем гостро постало питання того, як «навчити» машину сприймати ...