Ми вже публікували статті на тему структур даних та алгоритмів. Але чи потрібно це все вивчати початківцю? Сьогодні ми спробуємо підняти завісу таємниці і розповісти про те, що ж потрібно знати і вміти, щоб почати свій шлях у ІТ. Чи це складно, чи потрібна для цього технічна освіта і чи вдасться вивчити необхідне?
Для початку визначимося з передумовами. По-перше, я говоритиму саме про старт кар’єри, тобто стаття буде корисною тим, хто тільки починає свій професійний шлях; або тим, хто розмірковує про зміну професії. По-друге, я — Java-розробник, тому певні моменти будуть специфічними. Але це не робить статтю менш корисною для всіх інших читачів!
Основи: алгоритми і структури даних
Один з основних моментів, який перевіряють у кандидатів — це знання алгоритмів і структур даних. Це те, що потрібно не просто завчити, а саме зрозуміти. Діяльність розробника так чи інакше пов’язана з алгоритмами, тому розуміння того, як алгоритми з’являються і працюють — важливе. Ви повинні вміти оцінити складність рішень, а знання алгоритмів допоможе обрати краще з можливих. Якщо ви цього не знаєте, але вам цікаво, то завжди можна розібратися у темі з використанням матеріалів у нашому блозі (в першу чергу перегляньте розділ Технології).
Методології розробки
Великим плюсом буде знання методологій розробки, яких існує багато. Втім, більшість великих компаній працює за гнучкими методологіями розробки, серед яких найбільш популярними є Scrum і Kanban. Враховуючи, що ви тільки розпочинаєте свій шлях в IT, навряд чи вам доводилося працювати за такими методологіями — тож знання теорії буде великою перевагою і значно полегшить вашу адаптацію в компанії.
Англійська мова
Також не забуваємо про англійську мову. За окремими виключеннями володіння мовою на рівні B1 є обов’язковим. І це не примха. У великих міжнародних компаніях, якою є EPAM, спілкування на проєкті з замовниками і колегами проходить англійською, не кажучи вже й про технічну документацію, яка доступна тільки англійською. Тож знання технічних термінів, можливість підтримати розмову — усну та письмову — є абсолютно необхідними навичками для початківця.
Soft Skills
Наступний критерій — soft skills («гнучкі навички»), які також називають навичками міжособистісного спілкування і взаємодії. IT передбачає командну роботу, а це означає, що ви будете співпрацювати з іншими людьми. Необхідно розуміти, що ви спілкуватиметесь з колегами, а їм має бути комфортно спілкуватися з вами. Це запорука теплої, дружньої атмосфери в команді, а це вже половина успіху будь-якого проєкту.
Hard Skills
З технічних знань в нагоді стане знайомство з системами контролю версій. Вони можуть бути різними: наприклад, Git, Subversion, Mercurial. Якщо у вас немає досвіду роботи хоча б з однією з них, то це не проблема. Найбільш поширеною системою контролю версій є Git, а повний курс з її вивчення триває приблизно 3 години. Також добре мати досвід користування хоча б одним профільним середовищем розробки, як-от IntelliJ IDEA, Eclipse, Visual Studio Code, Web Storm, NetBeans.
Кілька слів про те, що потрібно знати, якщо ви бажаєте стати Java-розробником.
Що потрібно знати початківцю у Java-розробці
Якщо ви збираєтеся пов’язати своє життя з Java, в першу чергу вам потрібно знати основи об’єктно-орієнтованого програмування. Також непогано було б розумітися на принципах розробки: SOLID, DRY, YAGNI та KISS. Важливо мати уявлення про те, що таке бази даних, які вони бувають і навіщо взагалі потрібні. Незайвими будуть основи багатопотокової та конкурентної обробки даних Java. Не завадить знайомство з GoF-патернами проєктування, а також базові знання веб-розробки: HTTP, URL, які бувають запити, що таке сесія.
Загалом, цих знань буде достатньо, щоб пройти відбір на програми з основ Java, де вам вже детальніше розповідатимуть про розробку цією мовою.
Тепер коротко відповім на часті питання про старт:
- Чи складно це? Так, непросто. Якщо хочеться «просто», можливо ця сфера не зовсім те, що ви шукаєте.
- Чи обов’язково мати технічну освіту? Щоб стати розробником, технічна освіта не обов’язкова. Освіта радше впливає на швидкість розуміння технічних особливостей.
- Чи вийде в мене? Так, якщо ви докладатимете зусиль. Усього, про що я написав, можна навчитися і для цього не знадобиться багато років.
Головне — не боятися складних завдань. Пам’ятайте: немає складних завдань, є такі, що вимагають більше часу на вирішення.