10 років я працював програмістом в кращих компаніях Києва, останні 5 - паралельно навчав програмування і допомагав кращим своїм учням знайти першу роботу!
Я провів більше 200 технічних співбесід на посаду Java Програміст, знаю конкретно все, що необхідно для того щоб вивчитися і влаштуватися на роботу!
01. Поставити конкретну мету.
Ви повинні точно визначитися коли ви хочете стати програмістом. Реально вийти на роботу! І що конкретно Вам необхідно знати, а головне - мати в наявності для свого першого співбесіди. Один з моїх кращих учнів пройшов шлях з першого дня знайомства до першої роботи за 11 місяців, причому він до цього, як думав, уже вмів програмувати і закінчив інститут з технічної спеціальності.
Друкуєте це на крутий папері, ставите в рамочку і показуєте всім своїм родичам і знайомим! Це називається декларація. Тільки це дію вже гарантує вам 50% успіху.
02. Створити собі портфоліо.
Так, саме створити собі портфоліо. Роботодавця не цікавлять Ваші пізнання в програмуванні, його цікавить Ваш досвід. У світі бізнесу вважається, що людина здатна з високою часткою ймовірності повторити те, що він вже робив до цього! Тому одним з основних критеріїв прийому на роботу є реальний досвід і довести його можна тільки за допомогою портфоліо!
Є два варіанти, як створити собі портфоліо. Перший знають всі - це реальна робота. Другий не так очевидний - стажування або навчальний проект.
03. Підготувати резюме і відвідати кілька співбесід.
Пошук роботи і підготовка резюме - це взагалі окремий проект. Завдання резюме - пройти рекрутера і потрапити на співбесіду до технічного фахівця, до того, хто буде перевіряти технічні знання і рекомендувати Вас на роботу.
Необхідно обов'язково розібрати Всі основні питання співбесіди і потренуватися проходити автоматичні тести, які часто задають для перевірки «на дурня».
Особисто я свою першу роботу шукав два місяці і відвідав близько 20 співбесід перед тим як мене взяли. Тоді я не вмів ні складати резюме, ні відвідувати співбесіди. На кожному з них необхідно теж вчитися і робити нотатки, інакше можна так ходити до посиніння
04. Вивчити Java Core.
Портфоліо створити просто неможливо не вивчивши спочатку Основи програмування, Об'єктно орієнтоване програмування (ООП) і Java Core. Сюди я відношу такі розділи:
01. Числа і рядки.
02. Методи, логіка, цикли.
03. Масиви.
04. Основи ООП, Інкапсуляція.
05. Запуск з командного рядка.
06. Спадкування, Константи.
07. Статичні змінні і методи.
08. Виняткові ситуації.
09. Інтерфейси.
10. Абстрактні класи.
11. Поліморфізм.
12. Java колекції.
13. Інтерфейс користувача (AWT, Swing).
14. Дата, Час і Календар.
15. Система введення-виведення.
16. Нить.
Це лише загальний план, не вдаючись у подробиці.
05. Основи архітектури додатків.
Недостатньо просто знати синтаксис мови і основні бібліотеки. Найважливіше - це як Ви напишете сам додаток, скільки буде файлів з кодом і як вони будуть між собою взаємодіяти, складаючи один єдиний живий організм. Необхідно враховувати постійні зміни і доповнення в програмі.
Якщо архітектура програми побудована неправильно, то дуже швидко настане момент коли будь-який, навіть дрібне зміна буде приводити до виникнення купи помилок і приводити всю програму в непридатність. Таке трапляється досить часто і проект доводитися переписувати з нуля.
06. Основні шаблони проектування.
У програмах є безліч типових ситуацій, наприклад, обробка кліка миші і, відповідно, є стандартний підхід до написання такого коду. Ми вивчаємо 4 основних шаблону, без яких просто неможливо щось нормально запрограмувати.
07. Навчитися писати Unit тести.
Крім коду, програміст обов'язково пише тести, щоб автоматично перевіряти свій код після внесення змін і відразу бачити, що зламалося і де.
08. Навчитися працювати з базами даних. Вивчити мову SQL.
Основа будь-якої програми - дані. І для їх зберігання використовують спеціальні програми - бази даних. Для початку необхідно вивчити MySQL і Derby.
Для спілкування з базами даних програмісти використовують мову SQL.
09. Вивчити технічна англійська.
Комп'ютер розмовляє англійською мовою - відповідно програміст теж повинен його знати. Базового технічного для читання листів і книг спочатку буде досить. Потім доведеться розмовляти
10. Освоїти систему контролю версій.
Програмісти не працюють поодинці. Команди бувають найрізноманітніші, іноді доходить до 20 і більше осіб. Весь код зберігається на спеціальному комп'ютері, до якого завжди є доступ. І для роботи з ним використовують спеціальні програми. Вони називаються - система контролю версій. Найпопулярніша на сьогоднішній день Git.
11. Вміти користуватися IDE.
Програмісти пишуть код в спеціальних програмах. Вам доведеться вивчити дві найкрутіші - eclipse і idea. Я особисто користуюся Idea, починав і довго працював на eclipse. Що краще не знаю, скажу лише що знаю багато людей, які перейшли з eclipse на Idea і не знаю жодного хто зробив навпаки
12. Вивчити кілька програм для роботи в команді.
Після того як програміст написав код, він відправляє його в систему контролю версій, потім спеціальна програма забирає його, компілює, запускає тести і створює архів для установки її на сервер (Bamboo, TeamCity).
Завдання програмісти отримують теж не в усній формі, тому необхідно навчитися працювати хоча б з Jira.
13. Програми для збірки.
Bamboo і TeamCity збирають проекти, використовуючи спеціальні конфігураційні файли, створені для обробки програмами Ant, Maven, Gradle. Я перерахував їх в за часом створення і зараз на нових проектах часто використовують Gradle. Просто почніть використовувати Gradle в своєму проекті - це дуже зручно і Ви вивчіть його в процесі.
14. Зв'язка клієнт - сервер.
15. Spring і Hibernate.
Це назви фреймворків (програм для написання програм). Для того, щоб знайти роботу Вам необхідно знати про те, що вони роблять і основні ідеї їх роботи. Не потрібно витрачати на їх вивчення свої сили, візьметеся за них на роботі.
ОС Linux і їй подібні системи майже завжди використовують для запуску програм на Java. Є базовий набір з 20 десь команд, які я постійно використовую. Їх цілком достатньо для 99% ваших завдань.
Як бачите, матеріалу тут дуже багато, причому ми не просто навчаємо мову програмування і пишемо приклади на зразок калькулятора У цей список я включив тільки найнеобхідніше, без нього ймовірність влаштування на роботу прагне до нуля. ↓
У мене є гарна новина для Вас! Якщо Ви дійсно хочете стати програмістом і добре заробляти починайте займатися прямо зараз c трьох безкоштовний уроків!
Переконайтеся в відмінній якості навчання і йдіть до роботи своєї мрії!