Навчання і працевлаштування java-програмістів від junior до senior

Навчання і працевлаштування java-програмістів від junior до senior

У цій статті я розповідаю, як стати Java-програмістом: з чого слід починати, які книги обов'язково прочитати, які технології і бібліотеки вивчити, а після закінчення вашої підготовки пропоную виконати тестове завдання. Тестове завдання покриває всі технології, необхідні для влаштування на роботу Java-програмістом.

Перш ніж розбиратися, як стати Java-програмістом, давайте спочатку усвідомлюємо, навіщо ми хочемо стати програмістом і саме писати на Java. Справжнім мотивом придбання необхідних навичок в будь-якій професії повинен бути справжній інтерес до цього виду діяльності. Іншими словами, вам дійсно має подобатися писати код, придумувати алгоритми, займатися оптимізацією бізнес-процесів і вирішувати багато інших завдань, з якими стикається програміст. Якщо вашим мотивом є тільки фінансова сторона питання (а Java-програмісти заробляють хороші гроші), то хочу відразу вас розчарувати - великих результатів, а тим більше задоволення від виконаної роботи, ви не отримаєте. Навіть більше - вам буде нудно й сумно.

Тому спершу дайте відповідь на просте запитання: які мотиви лежать в основі вашого бажання стати програмістом Java?

На початку будь-якого шляху потрібно визначити, звідки ми рухаємося і куди хочемо потрапити в кінцевому підсумку. Весь маршрут досягнення даної мети можна відобразити на простий прямий з двох точок А і Б. Точка А описує ваше поточний стан. Нижче наведено список питань для визначення вашої початкової точки старту.

Дайте відповідь на питання:
1. Чи можете ви встановити ОС Windows?
2. Чи можете ви встановити ОС Linux?
3. Чи можете ви працювати в командному стороке?
4. Чи знаєте ви, що таке бази даних? Яким чином зберігаються дані в базі даних?
5. Чи знаєте ви, що таке мови програмування?
6. Чи маєте ви досвід програмування з використанням будь-якого з мов програмування?
7. Чи знаєте ви, що таке алгоритми? Можете навести приклад алгоритму?
8. Чи зможете ви написати алгоритм для проходження статичного лабіринту? Рух задається в кроках і за напрямком. Наприклад: 2 кроки вперед, 3 кроку вліво, 8 кроків прямо. Вихід.
9. Чи знаєте ви, як працює браузер?
10. Чи знаєте ви, що таке бездротова мережа? Наведіть приклади.

Якщо на більшість питань ви відповіли позитивно, значить, у вас є всі шанси стати Java-програмістом. На жаль, якщо більшість відповідей негативні, вам потрібно починати з основ. Чи не турбуйтеся - ці знання можна придбати самостійно.

Тепер перейдемо до другої точки нашого шляху. Для її досягнення потрібно скласти список необхідних навичок:
1. Зібрати список всіх вакансій, які доступні у вашому місті.
2. Виписати всі вимоги, зазначені в кожній вакансії.
3. Згрупувати часто зустрічаються вимоги, відкинути непотрібні.
Такий список і буде вашою другою точкою.

При виборі кінцевої точки (досягнення мети) зазвичай керуються мінімальними можливостями. Наприклад, з роботою програміста вибирають пристрій на позиції Junior. Отже, список буде складатися з вимог до позиції Junior Java Developer. І ось тут є хитрий психологічно момент: при такій постановці завдання для її 100% -ного виконання потрібно освоїти всі навички з вашого списку, але зазвичай, щоб завершити завдання реально на 100%, потрібно докласти дуже багато зусиль. Завжди виникають якісь дрібні недоліки, редагування, переробки і бажання щось удосконалити. Тому я рекомендую ставити мету на 30% вище, тобто готуватися так, як ніби ви хочете зайняти позицію Middle Java Developer.

Нижче наведено мінімальний список технологій і бібліотек, необхідних для влаштування на позицію Java Junior developer.

1. Спадкування, Інкапсуляція, поліморфізм. (Interface. Abstract Class, Inner Class and so on)
2. SOLID principles
3. Collections: List, Set, Tree, Hashable
4. JDBC
5. Multithreading (synchronize, monitor, wait, notify, notifyAll, deadlock)
6. Servlet, JSP, JSTL
7. SQL
8. Junit
9. Основи HTML, CSS, JS
10. Ajax
11. Maven
12. GIT
13. Tomcat

Також нижче наводжу список літератури, який необхідно прочитати будь-якого Java-програміста:

1. Head first Java
2. Head first Servlet, JSP
3. Head first SQL
4. Head first Design Patterns
5. Effective Java
6. Офіційна документація по Tomcat, Git і Maven

Після того як ви вирішили, що готові почати шукати роботу, я пропоную вам спершу виконати тестове завдання, щоб ви могли перевірити свої знання на практиці.

Як бачите, вам треба буде пройти нелегкий шлях, але подужає дорогу що йде. Так що починайте сміливо! Як і на будь-якому новому шляху, найлегше його пройти, якщо вас поведе досвідчений провідник. Найбільш швидкий спосіб опанувати даними знаннями - пройти курс під моїм керівництвом.