Інформація, що викладена нижче, є суб'єктивною думкою автора і може бути неповною\невірною\плодом хворої фантазії (потрібне підкреслити). Не ставтеся до неї занадто критично. В силу того що автор пітоніст — все має ухил у бік 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 — це, безумовно, добре, але існують і інші фреймворки. І чимало.
Як це все пов'язати і вивчити або застосувати?
Pet-project. Власний проэкт — прекрасний спосіб вивчати все вищеописане. Не намагайтеся з нуля написати свій фейсбук, все одно не вийде. Придумайте собі нескладну задачку у вашій теперішній або бажаній доменній області. Продумайте алгоритм роботи системи, структури даних, взаємозв'язку. Напишіть і запустіть скелет проєкту. Поступово додавайте в нього досліджувані технології. Доведіть до розуму код, напишіть документацію, обкладіть тестами, запустіть, покажіть друзям, колегам. Хороший пет-проєкт є прекрасною тренувальною базою, а наявність посилання на сховище з проєктом в резюме часто заміняє тестове завдання при пошуку нової роботи.
- Інтернет повний інформації. Існує тьма ресурсів з купою корисних статей. Підпишіться на ресурси, які вас цікавлять. Оновлюйте свої знання в уже відомих вам областях, а також будьте в курсі нових технологій.
Тематичні сайти, статті, туторіали. Пошуковик вам на допомогу.
Youtube. Аналогічно, тільки в відеоформаті.
Telegram. Модно, стильно, молодіжно. Купа каналів з корисними статтями, тестами і т.д.
Книги. Читайте, це корисно.
Курси. Хто сказав, що потрібно зупинятися? Продовжуйте вчитися!)