Must have після курсів

Must have після курсів

  • 22 березня, 2021
  • читати 10 хв
Артем Хряпа
Артем Хряпа Python Engineer у Eva, Викладач Комп'ютерної школи Hillel.

Інформація, що викладена нижче, є суб'єктивною думкою автора і може бути неповною\невірною\плодом хворої фантазії (потрібне підкреслити). Не ставтеся до неї занадто критично. В силу того що автор пітоніст — все має ухил у бік python/backend.

Отже, ви закінчили курси і вже знайшли роботу мрії. Ну або ще ні, але в процесі пошуку. І у вас виникає закономірне питання: а що далі? Чи достатньо набутих знань для роботи? Чи достатньо набутих знань, щоб знайти роботу? Чи варто щось ще вчити поcле курсів?

Однозначно варто. Світ IT ніколи не знаходиться в стані спокою, кожен день придумується щось нове, поліпшується старе і відмирає неактуальне. І якщо ви хочете бути затребуваним фахівцем, то за цими змінами потрібно встигати.

Тому не відмовляйтеся від саморозвитку, вивчайте щось нове, підвищуйте свою цінність безперервно. Пітекантропи вимерли, бо не еволюціонували, а будь-які знання і навички поступово втрачають актуальність.

Якщо хочете еволюціонувати — сплануйте свій саморозвиток. Виберіть оптимальний для себе спосіб, складіть чіткий план, позначте терміни і виділіть ресурси на його виконання.

Чому варто приділити увагу? Для того, щоб стаття була корисна для всіх напрямків програмування, вона розділена на частини:

Рекомендуємо курс по темі

Загально IT-шне:

  • Англійська мова. Якщо ви можете тільки «London is the capital of Great Britain», то у мене для вас погані новини. Мова всього IT — англійська. Вся документація, всі свіжі статті, вся переписка, все IT-шне життя — англійською. Життєво необхідно вміти порозумітися на ній як письмово, так і усно. Для старту кар'єри в IT цілком вистачить рівня pre-intermediate, але чим вище ваш рівень, тим ви більше затребувані.
  • Швидкий набір тексту. Будь-який IT-шник користується комп'ютером і набирає текст на клавіатурі. Будьякий IT-шник — це письменник. Друкувати три рядки двома пальцями протягом однієї години — це неефективно. Прискорюйтесь!
  • Вивчення доменної області. У кожній галузі є своя специфіка. Якщо ви працюєте в сфері доставки медикаментів, але не розумієте, як вона функціонує — то у мене для вас знову погані новини. Якщо ви ще не працюєте, але дуже хочете працювати в сфері торгівлі криптовалютою і при цьому не розумієте, як там все працює — то у мене для вас знову погані новини. Не важливо, яку роботу в компанії ви виконуєте або плануєте виконувати — HR або верстальник, архітектор БД або пишете формули для бухгалтерії — розуміти що робить ваш продукт/компанія/галузь дуже важливо! Розберіться і вивчіть як мінімум основні принципи і специфіку. Це значно збільшить вашу ефективність

Загально програмістське:

  • Розширюйте розуміння своєї рідної мови програмування. Копайтеся в документації, туторіали, статтях. Розбирайтеся, досліджуйте, пробуйте, застосовуйте.
  • Чистота, читаність і стилістика коду, принципи DRY, KISS, YAGNI і т.д. Для кожної мови існують правила, традиції, рекомендації. Не нехтуйте цим!
  • Розширюйте своє розуміння ООП. Базові принципи ООП, SOLID і т.д. Літератури за цими темами читати-не перечитати.
  • Алгоритми і структури даних. Це фундамент будь-якої програми. Чим він міцніше — тим довше проживе те, що на цьому фундаменті стоїть.
  • Патерни проєктування. Основоположні практики створення додатків і систем, їх компонування і внутрішньої взаємодії. Їх вивчення допоможе правильно спроєктувати додаток і зробити його оптимальним, гнучким і масштабованим.
  • GIT. Система контролю версій, яка використовується всюди і скрізь. І добре б знати/застосовувати трохи більше, ніж git push origin master.

Backend:

  • Бази даних. Будь-який бекенд завжди використовує БД. Вивчайте мову SQL, принципи роботи реляційних і нереляційних БД, роботу різних СУБД.
  • Операційні системи. Крім Windows існує величезна безліч інших ОС. Серйозно. Не жартую. Сервери, на яких будуть працювати ваші програми, швидше за все будуть на Unix-подібних ОС. Вивчайте ОС на ядрі Linux або їй подібних.
  • Docker. Неймовірно популярний на сьогодні інструмент для створення додатків на основі контейнерів.
  • Мікросервісная архітектура. Вчіться проєктувати не тільки додаток, але комплекс додатків.
  • Суміжні з backend області:
    • Тестування. Принципи тестування в загальному та юніттести зокрема. Перевіряти свою роботу за собою і захистити свій код від поломок дуже важливо для програміста будь-якого рівня. Розуміння загальних принципів тестування допоможе краще проєктувати ваші програми. Юніттести захистять від «несподіванок» в процесі впровадження нових фіч.

    • Фронтенд. Будь-якому бекендщіку важливо розуміти, що відбувається на «тому боці» і розуміти, хоча б у загальних рисах, як «там» все працює. Не кажучи вже про те, що деякі компанії навмисно шукають фулстекеров. Вивчіть, хоча б базово, HTML і CSS, покопатися в JS.

Python:

  • Покращуйте розуміння мови. Вивчайте все, що з ним пов'язано. Розбирайтеся в простих, складних і дуже складних речах. Принципи роботи мови і інтерпретартора, вбудовані бібліотеки і модулі, нові бібліотеки, популярні тенденції і т.д.
  • Потоки і процеси. Розберіться з потоками і процесами, відмінностями, особливостями, застосуванням. Модулі multiprocessing і threading.
  • Вивчіть принципи і підходи асинхронного програмування. Популярним модулем для цього є asyncio.
  • Черги завдань. Що це, як працює, як використовується. Брокери черг (наприклад, RabbitMQ).
  • Фреймвоки. Знання Django — це, безумовно, добре, але існують і інші фреймворки. І чимало.

Як це все пов'язати і вивчити або застосувати?

  1. Pet-project. Власний проэкт — прекрасний спосіб вивчати все вищеописане. Не намагайтеся з нуля написати свій фейсбук, все одно не вийде. Придумайте собі нескладну задачку у вашій теперішній або бажаній доменній області. Продумайте алгоритм роботи системи, структури даних, взаємозв'язку. Напишіть і запустіть скелет проєкту. Поступово додавайте в нього досліджувані технології. Доведіть до розуму код, напишіть документацію, обкладіть тестами, запустіть, покажіть друзям, колегам. Хороший пет-проєкт є прекрасною тренувальною базою, а наявність посилання на сховище з проєктом в резюме часто заміняє тестове завдання при пошуку нової роботи.

  2. Інтернет повний інформації. Існує тьма ресурсів з купою корисних статей. Підпишіться на ресурси, які вас цікавлять. Оновлюйте свої знання в уже відомих вам областях, а також будьте в курсі нових технологій.
    1. Тематичні сайти, статті, туторіали. Пошуковик вам на допомогу.

    2. Youtube. Аналогічно, тільки в відеоформаті.

    3. Telegram. Модно, стильно, молодіжно. Купа каналів з корисними статтями, тестами і т.д.

    4. Книги. Читайте, це корисно.

  3. Курси. Хто сказав, що потрібно зупинятися? Продовжуйте вчитися!)