Ми зібрали в одну добірку літературу як для новачків в IT, так і досвідчених програмістів, яка допоможе підтягнути (або повторити) базу, розширити знання з математики та ML, навчить проходити інтерв’ю та «виживати» в офісі.
Новачкам
Короткий і простий посібник з комп’ютерних наук, який покроково вчить основ, необхідних ефективного програмування комп’ютерів. Після вступу в дискретну математику у ньому представлені загальні алгоритми і структури даних. Також тут викладаються принципи, за якими працюють комп’ютери та мови програмування.
Grokking Algorithms: An Illustrated Guide for Programmers and Other Curious People (Aditya Bhargava)
Цей ілюстрований посібник навчить застосовувати поширені алгоритми до практичних завдань, з якими програмісти стикаються щодня. Ви почнете з сортування та пошуку, поступово завдання ускладнюватимуться — потрібно буде вирішувати завдання на стиснення даних та штучний інтелект. Всередині також знайдете приклади застосування алгоритмів, діаграми та повністю анотовані зразки коду на Python.
Street Coder: The rules to break and how to break them (Sedat Kapanoglu)
Керівництво для початківців із гумором розповідає, як ефективно виконувати свою роботу, розставляти пріоритети, приймати швидкі рішення, а також пояснює, які правила написання коду слід порушувати. У книзі розбирають:
- типи даних, алгоритми та структури даних для швидкої розробки програмного забезпечення;
- використання «поганих» практик із користю;
- тестування;
- як спокійно приймати проколи у своєму коді та «подружитися» з помилками;
- оптимізацію коду, асинхронне програмування, розпаралелювання та рефакторинг.
Досвідченим
Сьогодні дані перебувають у центрі багатьох проблем під час проектування систем — необхідно вирішити складні питання, такі як масштабованість, узгодженість, надійність, ефективність та ремонтопридатність. Інформація з цієї книги допоможе вам зорієнтуватися у світі даних, вивчивши плюси та мінуси різних технологій їх обробки та зберігання за допомогою інструментів.
Програмне забезпечення постійно змінюється, але основні принципи залишаються незмінними. Автор розповідає, як застосовувати ці ідеї на практиці та як повною мірою використовувати дані у сучасних застосунках.
Цей підручник поєднує машинне навчання, інженерну математику та математичну фізику для інтеграції моделювання та управління динамічними системами із сучасними методами науки про дані. Тут висвітлюється багато останніх досягнень у галузі наукових обчислень — вони дозволяють застосовувати методи, засновані на даних, до різноманітних складних систем.
Автор книги — творець мови програмування Unicon. Він вважає, що найкращий спосіб скоротити час розробки та усунути болючі точки в області вашого проекту — створити власну мову програмування. У книзі розповідається, як створювати синтаксичні аналізатори, генератори коду, програми читання файлів, аналізатори та інтерпретатори. Також є керівництво, як створити альтернативу фреймворкам та бібліотекам для вирішення проблем, пов’язаних із предметною областю.
Проходження інтерв’ю
System Design Interview — An insider’s guide (Alex Xu)
Інтерв’ю з системного проектування — найскладніший етап. Щоб полегшити розробникам його проходження, автор створив серію посібників (це перша частина). Тут представлена стратегія проходження співбесіди та база знань для вирішення широкого кола питань щодо проектування систем. Книга включає безліч реальних прикладів, що ілюструють систематичний підхід, з докладним описом кроків.
Інженер-програміст, який також займався відбором співробітників до компанії, поділився досвідом проходження інтерв’ю (навіть тих, коли тебе просять одразу ж вигадати блискучий алгоритм, а потім написати бездоганний код на дошці). Книга допоможе вам потренуватися перед співбесідою, навчить розкривати підказки та приховані деталі у питаннях, виходити із скрутного становища, повторити основні концепції розробки.
Софт-скіли
Відійдемо від теорії до реального життя інженера, де щодня потрібно взаємодіяти з людьми, зображати впевненість, переконувати інших у своїй правоті, намагатися не потонути в роботі (але й не показати себе «слабаком», який просить передати частину роботи колегам) і якось просуватися кар’єрними сходами. Книга стане «електронним наставником» у цих та інших питаннях: усередині ви знайдете зведення порад, тактик та прийомів від досвідчених інженерів.
Більшості людей не вистачає критичного мислення, бо система освіти йому не вчить. Саме через відсутність критичного мислення більшість людей ніколи не реалізують свій потенціал — через велику кількість помилкових переконань вони роблять те, що шкодить їм, і не роблять того, що принесло б велику користь. Цю тезу можна «натягнути» як на побут, так і на роботу програміста.
У комплект цієї книги входять:
- Коротко про критичне мислення: як стати незалежним мислителем та приймати розумні рішення.
- Подолайте логічні помилки: 28 крихт знань, які допоможуть розвинути ваші навички міркування.
- Звичка критично мислити: потужні практики, які змінять вашу думку та загострять ваше мислення.
The post 10 книг для програмістів, щоб прокачати технічні та софт-скіли first appeared on Highload.today.