Як почати карʼєру в IT, якщо з усього переліку необхідного у вас лише бажання, Google та приблизне розуміння майбутньої спеціальності з того пʼятихвилинного відео на YouTube?
Старт карʼєри в IT — нелегкий шлях. І навіть якщо все можна погуглити та накидати для себе орієнтовний план подальших дій, все одно це не замінить досвідченого знайомого (ментора), який за кавою поділиться мапою точного розташування тих «граблів» та лазівками, аби ця доріжка де-не-де, але була менш тернистою.
Я подумав, які б поради я дав собі 14 років тому, на початку своєї карʼєри Java Developer. І я вирішив поділитися ними з вами. Сподіваюся, що вони будуть корисними та допоможуть вам не робити моїх помилок 🙂
Let’s go!
1 Закладай залізобетонний фундамент з самого початку! Фокусуйся на найважливішому!
На початку кар’єри, особливо, коли пощастило приєднатися до команди проєкту, де використовуються різноманітні технології та фреймворки, (або ж стартапу, що стрімко розвивається), розробник стикається з тим, що наявних знань та навичок недостатньо для ефективного розвʼязання поставлених задач.
Тоді новачок буде хапатися за всі книги та статті, які нагуглить, або ті, які порадять більш досвідчені члени команди, буде намагатися їх «з’їсти» максимально швидко, всі одразу, іноді навіть жертвуючи вихідними чи сном. Це призведе до спаду мотивації, ефективності, зменшення задоволення від процесу роботи та навчання, і врешті-решт джун неминуче зіткнеться з вигорянням. З цим стикався і я, багато разів.
Маю наступне правило: «Максимально фокусуйся на двох-трьох речах одночасно, і не більше».
Хочу зупинитися на деяких важливих пунктах:
Хороший рівень володіння однією мовою програмування
Важливо опанувати основну мову програмування, що використовується розробником на проєкті для розвʼязання поставлених задач. Також і сертифікація (наприклад, OCAJP для Java), а саме підготовка до неї, допомагає вивчити або ж згадати основні базові теми по технології, закрити прогалини по суміжних темах, які не вивчав до цього.
Але це лише один із варіантів — можливо, комусь краще підійде:
- офіційна документація Java;
- книга (наприклад: Effective Java: Bloch, Joshua);
- один з багатьох YouTube-каналів, (наприклад, Java Video Tutorial
або freeCodeCamp.org тощо).
Тут вже справа смаку 🙂
Знайомство та робота з фреймворками
Важливо знати основи фреймворків, які використовуються на поточному проєкті, найчастіше це Spring та Hibernate. Без цього важко буде виконувати поставлені завдання, а інколи і зовсім неможливо.
Ґрунтовне знання структур даних та алгоритмів
Добре, що матеріалів за цією темою дуже багато: різноманітних книг, статей, відео. Тому не має бути проблемою знайти список рекомендованих матеріалів для вивчення цієї теми.
Тут важливо відразу пробувати застосовувати отримані знання на практиці (на поточному проєкті або ж потренуватися на власному pet-проєкті).
На перших етапах не варто витрачати час на надскладні теми та алгоритми, адже те, що не застосовується на практиці, як правило, швидко забувається.
Розвивайте свої комунікативні навички
Комунікація з членами своєї команди, а також з іншими командами проєкту є важливою не тільки для виконання тасок, а й для отримання нових знань. Новачки часто бояться ставити уточнювальні питання аби не здатися іншим некомпетентними. Така стратегія призводить до більших проблем та незручностей як для новачка, так і для команди. Ідеально якщо з новачком буде працювати ментор.
Впевнене володіння англійською мовою
На початку карʼєри знання англійської мови суттєво полегшує пошук навчальної інформації. Без англійської в IT важко, це буде перешкодою. Якщо ваш рівень недостатній для комунікації з клієнтом чи для швидкого читання літератури або документації, то раджу швидко бігти вчити, як я і зробив свого часу.
2Копай вглиб!
Поглиблюйте експертизу в знаннях розробника. З часом, у міру того як закладається фундамент, буде приходити розуміння які саме напрямки чи теми потребують поглибленого вивчення.
Мінімум вивчайте глибше:
- мову програмування;
- структури даних;
- алгоритми;
- фреймворки;
- модульні та інтеграційні тести.
Намагайтеся самостійно розгортати результати своєї роботи. Це можна робити на тестовому сервері чи, навіть, продакшені, таким чином ви будете здобувати базові знання та навички з DevOps.
3 Дивись ширше — збагачуй власну експертизу
Неможливо стати справжнім Software Developer, займаючись лише кодингом таски, яку вам дає тимлід, а перед тим архітектор чи техлід розписує специфікацію.
У 2022 році й надалі повноцінний Software Developer — це спеціаліст, який бере участь у дизайні, програмуванні, збірці, деплої та підтримці software, над яким він (чи команда) працює.
А для цього треба мати широкий спектр скілів.
Наведу декілька прикладів:
- Soft skills — комунікація всередині команди та з клієнтом критично важлива, треба її постійно розвивати.
- Архітектура та system design — це мастхев, тут потрібно знати хоча б основи архітектури та її поширені типи, їхні плюси та мінуси, де можуть бути підводні камені, які є best practices.
- Аналітичне мислення — здатність проаналізувати задачу, оцінити її, розуміти tradeoffs, pitfalls та як твоя логіка буде скейлитися.
- Якщо дозволяє проєкт і час, то вивчайте хоча б на базовому рівні одну-дві додаткові мови програмування. Наприклад, якщо зараз пишете на Java, я б ще глянув у бік Kotlin та Python (Python буде корисною для написання скриптів).
- DevOps — я думаю, що Software Developer має чітко і ясно розуміти як написаний ним сервіс доставляється на тестові енвайрменти чи продакшен, які проблеми виникають із його сервісом та як вони розв’язуються. В багатьох командах, особливо маленьких — виділеного DevOps немає, і все частіше клієнти очікують, що Software Developer знає, як доставити виконану роботу на продакшен та підтримувати її в стабільно робочому стані протягом тривалого часу. Останнім часом популярним є запровадження культури DevOps у маленьких, середніх і навіть великих командах, тож ці знання не будуть зайвими.
Last but not least
Підтримуйте в собі жагу до постійного розвитку та бажання ділитися експертизою і знаннями з колегами. Це дуже допомагає ефективному вашому зростанню як експерта. На вашому карʼєрному шляху може бути багато грабель, але тепер ви можете оминути хоч декілька з них.
Keep going!
Favbet Tech – це ІТ-компанія зі 100% українською ДНК, що створює досконалі сервіси для iGaming і Betting з використанням передових технологій та надає доступ до них. Favbet Tech розробляє інноваційне програмне забезпечення через складну багатокомпонентну платформу, яка здатна витримувати величезні навантаження та створювати унікальний досвід для гравців.
Цей матеріал – не редакційний, це – особиста думка його автора. Редакція може не поділяти цю думку.
Сообщить об опечатке
Текст, который будет отправлен нашим редакторам: