Java – найбільш популярна та затребувана мова програмування. Безпека, мобільність і надійність – це все про Java. Вона підходить для вирішення багатьох цілей і її використовують майже скрізь. За допомогою Java можна створювати програмне забезпечення, комп’ютерні ігри, мобільні додатки. Вона не лише не здає позиції вже більше 20 років в IT сфері, але й продовжує набирати обертів, тим самим формуючи величезний попит на Java розробників.
Олег Новосад, Senior Mobile Software Engineer у SoftServe, засновник та CEO у власному стартапі, викладач курсу Java в ITSTEP Academy, відповів на 5 головних питань про Java.
Чому Java – це круто?
Ще у 2016 році Java зайняла перше місце за кількістю працівників в IT-сфері та за кількістю найзатребуваніших програмістів. Java продовжує зберігати таку тенденцію.
Java використовується в багатьох галузях: виготовлення сайтів, суперстабільних і надпотужних серверів, розробка під Android і навіть розробка ПЗ для побутової техніки.
Хто може стати Java Developer?
Джава спеціалістом може стати будь-хто. Набагато важче навчити людину з поганими, так званими, soft-скілами (комунікація, робота в команді, самокритика, самомотивація тощо), ніж добре підготовлену технічну людину.
Є багато ресурсів, які допоможуть швидко встати на ноги і впевненіше вивчати Java, багато практичних завдань тощо (наприклад, http://codingbat.com, http://codewars.comтощо).
Звичайно плюсом є вміння думати за рамками, бажання багато працювати над собою понаднормово і поглинати знання з різних джерел.
Що має знати та вміти розробник на Java?
Розробник на Java може бути різним відносно його профілю, але будь-який розробник на Java має впевнено почуватись в Java Core. Java Core – це ядро Java, основи та розширені функції Java без застосування зовнішніх бібліотек, готових рішень тощо.
Розробник на Java під Web, окрім навичок роботи з Java Core, має впевнено почуватись у роботі з базами даних, HTML / CSS та Javascript. В останньому достатньо основ, але знання таких фреймворків як Angular, React тощо буде величезним плюсом на співбесіді та в повсякденній роботі.
Є такі поняття як Fullstack Java інженер та Backend Java інженер:
Fullstack повинен знати вище перелічене і Java Core як мінімум. Зазвичай в ІТ-компаніях шукають “джавістів”, котрі знають Spring (це набір готових рішень для розробки на Java)
Backend спеціалісту досить знання Java Core + Spring. Йому необов’язково знати HTML / CSS / Javascript, але це буде плюсом, якщо будуть відповідні задачі на проектах і інженер зможе з цим справитись
Розробник на Java під Android має добре володіти Java Core, XML (спеціальна мова розмітки, на якій будується інтерфейс користувача на мобільних пристроях з ОС Android) та мати хоча б базові навички роботи з Android SDK (Software Development Kit, набір для розробки під Android).
Що відрізняє розробника на Java від інших?
Джава розробники вважались хіпстерами і це їх відрізняє. Насправді різкої різниці немає, адже якщо ти знаєш Java, то:
- за короткий термін зможеш оволодіти подібними мовами, як C# чи C++ (з “плюсами” знадобиться більше часу)
- знаючи розробку під Android, Java спеціаліст зможе швидко перейти на розробку під iOS
- маючи досвід роботи з серверною частиною можна перенести принципи розробки на іншу мову чи технологію (python, ruby, php тощо)
Який кар’єрний зріст та перспективи у Java розробників?
Розкажу на своєму прикладі:
1. Я починав як Fullstack Java інженер з базовими знаннями Spring, та непоганими навичками в HTML / CSS / Javascript (включаючи такий древній фреймворк як Backbone)
2. Потім ми писали додаток під стаціонарні комп’ютери та web на технології GWT (Google Web Toolkit), де все пишеться на Java.
3. Після цього зміг швидко перейти на C# та деякий час попрацювати над проектом на .NET і паралельно розробляючи ігри на Unity3D (також C#)
4. У вільний від роботи час випустив два додатки під Android, де також Java
5. Потім перейшов з Android на iOS (мова Swift) і після першого кварталу роботи паралельно підтримував і розробляв проект на двох мобільних платформах.
6. Зараз розробляю два проекти, один на Android (Java) та Xamarin (Мобільна розробка під декілька платформ на C#)
7. Паралельно з тим в моєму стартапі є мобільний додаток на Android, iOS, весь сервер був раніше написаний на NodeJS (Javascript), зараз він працює на Spring (Java) використовуючи базу даних MongoDB.
8. Відповідно кар’єрний ріст йшов стандартним шляхом Trainee (стажер) → Junior → Intermediate → Senior → за півроку ставатиму архітектором програмного забезпечення і фактично мова чи технологія вже не гратиме ролі.
9. Паралельно з тим розробник на Java може здати дві зовнішні сертифікації OCA та OCP, які в багатьох компаніях рівняються з позиціями Intermediate та Senior відповідно. А для того, щоб їх здати, треба мати глибоке розуміння Java Core та роботі з базами даних на Java.
Перспектив багато, головне – працювати і не зволікати, бо поки ти сидиш на позиції Junior’а, хтось вже отримує Senior’a і відкушує більший кусок пирога.