Регулярно отримую дані запитання від початківців. Тому спробую дати відповідь усім одразу.
Загалом розкажу про таке:
— коли і як варто читати;
— які книги читати, залежно від мови програмування;
— а також розкажу, що читав сам, коли починав.
Для чого книга взагалі?
Книга — це ресурс для навчання досить грунтовний та об’ємний. Технічна книга часто дає не просто техніки і поради, але й погляд з «пташиного польоту» на певні концепції, ідеї та загальне розуміння предмету.
Технічна книга не читається за один вечір, як художня література. Зазвичай вона забирає дні, тижні, а деколи і місяці для освоєння та розуміння хоча б частини описаного матеріалу. Таким чином, на початку брати велику технічну книгу (а то й дві) і просто читати — малоефективний метод.
Спершу треба визначитись, що ви хочете опанувати.
Якщо йдеться про складні технології, низькорівневі мови програмування, абстрактні поняття та концепції, тоді є сенс сідати грунтовно за теорію і, можливо, в процесі щось пробувати на практиці.
Я, наприклад, коли вже вивчив високорівневу (читайте «простішу») мову програмування Python, захотів також хоча б спробувати себе в мові C. Пройшов кілька туторіалів за 2-3 години і одразу взявся кодити. І знаєте що? Нічого не вийшло. Низькорівневе управління пам’яттю, вказівники, масиви і маса інших цікавих речей, про які я навіть не здогадувався, програмуючи на Пітоні, не дали мені нічого зробити :-)
Тоді я взявся за підручник, і поки не перечитав близько половини з нього, не зміг запрограмувати найпростішого скрипта. Тобто має прийти розуміння певних речей, а вже тоді можна переходити до практики.
Тепер інший приклад:
Якщо починаєте вивчати нескладні технології, де для перших експериментів достатньо знати кілька простих фактів, читати цілу книгу немає змісту. Принаймні, із самого початку.
Розбираючись з HTML, я пройшов 2 онлайн-туторіали за 1 годину і одразу почав експериментувати. Адже, щоб написати кілька нескладних тегів, не потрібно вивчати вищу математику. Достатньо отримати інформацію про те, які є теги і коли їх варто використовувати.
Так само я зробив із мовою Python. Спочатку — кілька швидких онлайн-курсів на кілька годин. Далі практикувався та писав хоч якийсь код. Потім паралельно вже починав базову книгу, знову ж таки, паралельно кодуючи та застосовуючи інфу з книги на практиці.
Підсумуємо:
— починаєте вивчати щось новеньке і не знаєте, чи воно складне? Спробуйте швидкі курси, статті, туторіали. Не допомогло? Шукайте книгу;
— знаєте, що технологія загалом не є, як кажуть американці, «rocket sience» (не складно) — тоді книгу почитаєте вже коли набудете трохи досвіду, так вона вам буде значно зрозумілішою і кориснішою;
— точно знаєте, що буде складно (наприклад, компільована мова або мова зі складними конструкціями та парадигмами, розробка під певну платформу вимагає багато специфічних знань) — тоді одразу шукаєте книгу, але паралельно не забувайте практикувати.
Як краще читати книгу?
Вища математика — це досить часто суто теорія. Програмування — це в більшості випадків (на превелике щастя!) практика.
Відповідно книги по технологіях (мови програмування, розробка під веб, розробка під Android) зазвичай є надзвичайно практичними, а тому треба «набивати руку», щоб матеріал правильно осідав в голові.
Правило номер один: Лише практика набиває руку.
Вартує випробовувати приклади із книги одразу в процесі читання. Ускладнюйте їх самостійно, вигадуйте свої власні задачки із застосуванням щойно вивченого матеріалу.
Правило номер два: перечитуйте.
Якщо технологія чи мова для вас зовсім нова і ви ніколи з нею не зустрічались ні на практиці, ні в теорії, тоді швидше за все з першого разу всю інформацію в книзі ви не зрозумієте. Саме тому рекомендую після першого прочитання та деякої практики повернутись до книги ще раз.
Правило номер три: П’ять книг — не завжди краще, ніж одна.
Вивчаючи щось нове, буває важко змусити себе перейти до практики. Щоб залишитись у зоні комфорту, ми часто тішимо себе думками, що «я ще мало знаю, мені ще зарано кодити...». Таким чином, потрапляємо в капкан під назвою «Вічний Студент» — людина, яка постійно щось вчить, але нічого насправді не робить зі своїми знаннями.
Щоб почати працювати з новою для вас технологією, достатньо пройти одну базову книгу. Якщо ви вважаєте інакше, відкоментуйте — цікаво, що ж ви таке вивчали... :-)
Мене часто контактують із запитанням типу: «Прочитав щойно Лутца по Пітону, що далі читати найкраще?». Я відповідаю запитанням на запитання: «А скільки рядочків коду ти написав під час прочитання даної книги і що ти очікуєш від наступної книги книги на ту ж тематику?». Якщо людина лише вивчала теорію, тоді рекомендую перечитати книгу ще раз і вже щось написати, нарешті!
Не женіться за кількістю. Для початку достатньо одного курсу, однієї книги, одного туторіала, одного відеоуроку, щоб почати перші рядочки коду. Без цих рядочків гріш ціна наступній товстій книзі.
Які книги читати?
А тепер невеличка таблиця книг з різних мов та технологій. Література подібрана для початківців.
Маєте доповнення? Коментуйте, будемо вдосконалювати!
А який у вас підхід до прочитання технічних книг?
Віталій Подоба