Программирование на Java с нуля: дорожная карта разработчика
Авторизуйтесь
Программирование на Java с нуля: дорожная карта разработчика
Java уверенно занимает лидирующие места в списках самых популярных и востребованных языков программирования. Этот язык используется в широком спектре задач: десктопных приложениях, веб- и Android-разработке, в работе с серверами и встраиваемыми системами. Мы вместе с факультетом Java-разработки GeekBrains составили дорожную карту по Java, которая поможет систематизировать изучение этого языка.
Базовые темы для изучения Java с нуля
Начать обучение Java с нуля стоит с того же, с чего начинается изучение любого языка: синтаксиса, терминологии, основных конструкций, операций, условий и циклов. Перед тем, как переходить к специфическим задачам, которые зависят от сферы программирования на Java, нужно изучить:
Не стоит забывать про Maven — инструмент сборки и управления проектом, а также про систему контроля версий Git. Кроме того, любое приложение нужно уметь тестировать и грамотно документировать.
После изучения основ вам могут понадобиться шаблоны (паттерны) проектирования. Также вам может быть интересен Netflix Stack — набор сервисов с открытым исходным кодом для создания и поддержки приложений.
Дальнейший путь обучения программированию на Java зависит от направления, в котором вы планируете развиваться. Мы собрали необходимые для этого материалы: курсы Java, книги для различных направлений и подкасты. А ниже вы найдёте описания инструментов и фреймворков для Java-разработки.
Ресурсы для изучения программирования на Java по сферам разработки
Веб-разработка
Java программирование в веб представлено в виде сервлетов. Эта технология расширяет веб-сервер.
Сервлеты — особый тип Java-программ, который выполняется внутри веб-контейнера. Они являются промежуточным звеном между запросами клиента и сервером. Также могут пригодиться фреймворки: Spring и Netty.
Building Back-End Web Apps with Java, JPA and JSF
Эта книга рассказывает о создании бэкенда веб-приложений при помощи Java Server Faces (JSF), Java Persistence API (JPA) и баз данных MySQL. Процесс разбит на 7 шагов и снабжён практическими примерами.
Программирование WEB-приложений на языке Java
Это исчерпывающее руководство по веб-разработке на языке Java. В книге рассмотрены все технологии, необходимые для создания веб-приложения с помощью сервлетов, JSP, EJB. Материал преподносится не просто какими-то абстрактными примерами, а в контексте реальных проектов, например е-коммерция, программы пересылки файлов, сетевые книги на основе XML.
Android разработка
Разработка приложений под Android — ключевая особенность Java. При этом речь идёт не только о смартфонах, но и о планшетах, смарт-часах, телевизорах и приставках. API Android написана на API Java, поэтому при разработке вы можете использовать всё те же инструменты, что и при нативной разработке. Если вас заинтересовало Java обучение именно в этом направлении, то рекомендуем ознакомиться с этими материалами:
Head First Android Development
В данной книге вы узнаете как проектировать интерфейсы приложений, структурировать их, научитесь создавать базы данных и работать с ними. В книге рассмотрены все основные компоненты приложений Android. Издание рассчитано на новичков.
Android. Сборник рецептов. Задачи и решения для разработчиков приложений. 2-е издание
Здесь вы найдёте примеры для работы с пользовательскими интерфейсами, мультисенсорными жестами, механизмами определения местоположения, веб-службами и конкретными возможностями устройства, такими как телефон, видеокамера и акселерометр. Вы также научитесь упаковывать своё приложение для магазина Google Play.
Книга идеально подходит для разработчиков, владеющими языком Java, основами платформы Android и интерфейса Java SE API. Она содержит примеры кода, предоставленные более чем тридцатью разработчиками.
Нативная разработка
Не стоит забывать и про программирование на Java для десктопов. Основная платформа для десктопной разработки — JavaFX.
Java 3D Programming
Java 3D — это клиентский API для отрисовки интерактивной 3D-графики, который можно применять как в играх, так и в научных визуализациях. Разобраться в нём поможет эта книга, предложив как теорию, так и богатый набор практических приложений. Знание OpenGL и Swing для читателя будет существенным плюсом.
JavaFX 2.0 Разработка RIA-приложений
В этой книге рассказывается о разработке RIA-приложений (Rich Internet Application). Тут рассматриваются компоненты графического интерфейса пользователя, применение CSS-стилей, создание визуальных эффектов, выполнение фоновых задач. Книга сопровождается большим количеством примеров с подробным анализом исходных кодов.
Big Data
Анализ больших данных — процесс обработки большого набора данных для поиска скрытых закономерностей, трендов рынка и предпочтений клиентов. И в этом Java тоже преуспевает.
Big Data Analytics with Java
В этой книге рассматриваются различные исследования, такие как анализ настроений в наборе данных твитов, сегментация клиентов в наборе данных электронной торговли и анализ графика фактического набора данных авиарейсов. В этой книге вы узнаете, как удобно выполнить анализ больших данных именно с помощью Java.
Инструменты Java-разработчика
Фреймворки для разработки на Java
Spring
Spring является одной из самых популярных платформ для Java. Преимущественно она используется для создания веб-приложений, хотя отлично справляется и с другими задачами. С ней программирование на Java становится лёгким даже в высоконагруженных приложениях.
Spring не является одним цельным фреймворком. Он представляет из себя набор модулей для решения конкретных задач. Вот некоторые из них:
Netty
Это асинхронный событийно-ориентированный сетевой фреймворк для простой разработки высокоэффективных клиент-серверных протоколов. На сегодняшний момент его используют Apple, Google, Facebook и Twitter.
Vaadin
В веб-разработке Java обычно используется на серверной части. Но не в этом случае. Фреймворк Vaadin имеет две модели разработки: для сервера и для клиента. Модель работы приложений на Vaadin очень схожа с моделью работы нативных приложений Java — это существенно упрощает процесс разработки. Для генерации кода на стороне клиента фреймворк использует Google Web Toolkit.
Grails
Этот фреймворк создан для языка Groovy, который, в свою очередь, написан на Java. Такая иерархия надстроек отлично облегчает разработку приложений. Так что если вам нужно создать высокоэффективное приложение с низким порогом вхождения — этот фреймворк именно для вас.
Дополнительные материалы для изучения Java
Что дальше?
Конечно, что прочесть несколько книг и посмотреть видеокурсы недостаточно. Вам предстоит написать большое множество программ, ведь знания без опыта почти бесполезны. Вносите вклад в open source проекты, посещайте конференции и обменивайтесь опытом на форумах. Или поступайте на факультет Java-разработки в GeekUniversity — там вас научат всему, что необходимо, чтобы стать Java-программистом, и помогут получить работу после курса.
15+ лучших онлайн-курсов обучения Java-программированию с нуля. Платные и бесплатные 2020-2021. Рейтинг, сравнение, цены.
В этом обзоре разберём ТОП онлайн-курсов по Java-программированию. На курсах научат начинающих специалистов с нуля профессии «Java-разработчик/программист» – включая трудоустройство, обучат программированию на языке Джава, разрабатывать веб-приложения, использовать фреймворки (Spring), ООП, работать с Git.
1 место. Курс «Java-разработчик с нуля» — Нетология
На курсе вы научитесь
Программировать на Java
Изучите основы программирования, синтаксис Java, объектно-ориентированное программирование
Разрабатывать веб-приложения
Узнаете основы клиент-серверного взаимодействия, вёрстку на HTML и CSS, освоите работу с базами данных и SQL
Использовать фреймворки
Освоите шаблоны проектирования и фреймворк Spring, который используют 4 из 10 Java-программистов
Программа курса
Вас ждёт 72 часа теории и 295 часов практики
Кому подойдёт этот курс
Как проходит обучение
Вебинары: 2–3 раза в неделю по вечерам
На живых вебинарах вы будете изучать теорию и практику с преподавателями — и сможете задать им вопросы. Записи занятий будут доступны в личном кабинете
Практика на реальных проектах
После каждой лекции — практическое задание. Вы получите обратную связь по выполненной работе. К концу курса подготовите дипломный проект и сможете добавить его в портфолио
Сопровождение в процессе всего обучения
Эксперты и координаторы курса всегда будут на связи в общем чате. Вы сможете задать любой вопрос: по организации процесса обучения, темам занятий и своей практической работе
Достигнутые результаты
Ключевые навыки
Мы поможем с трудоустройством
Вас ждёт бесплатная программа трудоустройства Центра развития карьеры
2 место.Курс «Профессия Java-разработчик» — Skillbox
Научим программировать на самом востребованном языке.
Для кого этот курс
Помощь в трудоустройстве
Программа
22 темы, разработанные на основе требований работодателей методологами-практиками программирования. Без «воды», только важная информация.
Основной блок
Дополнительные модули
Дипломные проекты
Диплом Skillbox
Подтвердит, что вы прошли курс, и станет дополнительным аргументом при устройстве на работу.
3 место.Курс «Программист Java» — GeekBrains
Java-разработчики входят в топ-3 по востребованности среди IT-профессий, по данным HeadHunter. Чтобы освоить популярную специальность, вам будет достаточно школьных знаний. Вы изучите основы HTML/CSS и язык Java и научитесь создавать веб-приложения с помощью Spring Framework.
Отзывы на сайте.
Вы начнете с основ и получите знания, необходимые для старта карьеры. Вас ждут актуальная программа, 2–3 вебинара в неделю и 2 месяца стажировки. 87 часов обучающего контента. 183 часа практики.
Ключевые навыки
Курс «Профессия Java-разработчик» — SkillFactory
Освойте программирование, backend-разработку на Java, Spring и основы DevOps.
Создайте портфолио проектов и начните откликаться на вакансии уже после 7 месяцев обучения.
Курс подойдет вам, если вы
Изучали Java самостоятельно
Вы сможете систематизировать свои знания, пробить свой “стеклянный потолок”, возобновить практику программирования, достичь профессиональных целей и прокачаться в технологиях Java
Никогда не программировали
Вы можете приступить к обучению без специального образования и опыта, а уже через 7 месяцев выйти на рынок труда начинающим разработчиком, обрести новое окружение увлеченных людей
Знаете другой язык программирования
Вы сможете изучить новый для себя язык и применять полученные знания в рабочих и личных проектах, попробуете себя в качестве “джависта”, узнаете подходит ли вам этот язык
Навыки после обучения:
Курс «Java Developer» — Otus
Программа курса
Ступень 1
Модуль 1: Введение в эко-систему Java, настройка окружения
Модуль 2. Синтаксис Java, первая программа
Модуль 3: Базовая алгоритмическая подготовка
Модуль 4: Введение в архитектуру приложения
Модуль 5. Взаимодействие с внешними системами
Модуль 6. Инфраструктура процесса разработки и эксплуатации
Модуль 7: Проектные работы
Ступень 2
Модуль 1. Язык и платформа Java
Модуль 2. Проектирование
Модуль 3. Работа с окружением
Модуль 4. Spring
Модуль 5. Многопоточность
Модуль 6. Проектная работа
Ступень 3
Модуль 1. Введение в Spring Framework
Модуль 2. Работа с базами данных
Модуль 3. Разработка web-приложений
Модуль 4. “Около” и “Дзен”
Модуль 5. Проектная работа
Курс «Java-разработчик» — Product Star
Вы научитесь программировать с нуля на самом популярном языке программирования Java, добавите сильные проекты к себе в портфолию и станете востребованным специалистом для любой Digital-компании.
Чему вы научитесь
Писать код на Java
Изучите синтаксис языка, познакомитесь с переменными и операторами, научитесь писать и структурировать свой код и разбираться в чужом
Работать с MySQL
Узнаете, как сохранять и изменять информацию в базе данных MySQL. Научитесь писать запросы и управлять большими объёмами данных
Создавать веб-приложения
Поймёте, как превратить строки кода на Java в работающую программу, и научитесь разрабатывать веб-приложения с помощью фреймворка Spring
Пользоваться Git
Научитесь работать с распределённой системой контроля версий вместе с командой, сможете вносить или откатывать изменения в рамках одного проекта.
Программа курса (60 лекций и воркшопов)
Блок 1: “Основы Java“
Блок 2: “Java Core”
Блок 3: “Работа с Git и Spring Framework”
Блок 4: “SQL и базы данных”
Блок 5: Дипломная работа и помощь с трудоустройством
Курс «Онлайн-курс по Java» — Irs.Academy (Hedu)
Программа курса по Java
Урок № 1 – Знакомство
На первом занятии вы узнаете, что такое Java. Мы установим Java JDK, подготовим среду для работы и настроим инструменты, чтобы вам было комфортно ими пользоваться. Создадим первую простую программу.
Урок № 2 – Примитивные типы данных
На втором занятии мы начнем знакомиться с переменными. Рассмотрим несколько типов операторов: условные, циклические, а также Switch. Узнаем, что такое методы и для чего они предназначены. Обучение мы начнем с основ, затем перейдем к более сложным аспектам.
Урок № 3 – Основы объектно-ориентированного программирования. Часть I
Начнем занятие с классов и объектов. Узнаем, для чего нужны методы get() и set(), коснемся модификаторов доступа, константы и перечислений. Вы научитесь работать с конструкторами классов и проводить инициализацию объектов. Интернет-уроки очень удобны – вы можете изучать новое, не отрываясь от работы или вашей очной учебы, заниматься можно в свободное время дома.
Урок № 4 – Основы объектно-ориентированного программирования. Часть II
На четвертом занятии вы узнаете, что такое наследование, составите представление о композиции и встретитесь с полиморфизмом. Мы на практике поработаем с абстрактными классами, разберемся с интерфейсами и вложенными классами. Также мы увидим, как функционируют локальные и анонимные классы.
Урок № 5 – Как проводится обработка исключений?
Пятое занятие позволит разобраться с основами и try-catch блоками. Также выясним, что делать с Checked и Unchecked исключениями. Научимся создавать классы исключений и работать с блоком finally. Создание классов исключений. Try-with-resources.
Урок № 6 – Работа с массивами и интерфейсами
На шестом уроке мы перейдем к одномерным и двумерным массивам. Также коснемся динамического массива. Узнаем, в чем специфика интерфейсов Collection, Queue, Deque, Set, что делают методы equals и hashCode, как проводятся операции с множествами. Рассмотрим классы TreeSet, HashMap, TreeMap.
Урок № 7 – Работа с файлами Ява
На седьмом занятии мы научимся проводить различные операции с FileWriter, FileReader. Наш курс регулярно обновляется, и многие новые фишки вы не найдете в учебниках. Мы познакомимся с байтовым потоком, сохраним несколько объектов с помощью ObjectOutputStream. Поработаем над файлами с java.io.File, узнаем, что делать с классами Paths и Files. Вы освоите чтение и запись файлов с помощью Java NIO. После этого занятия вы сможете работать с директориями и овладеете рекурсивным копированием файлов.
Урок № 8 – Работа с generic
На восьмом занятии мы выясним, что делать с generic типами. Рассмотрим параметризованные методы и процедуру их наследования. Узнаем, как делается подстановка типов.
Урок № 9 – Lambda expressions и Streams
Девятое занятие принесет нам знакомство с функциональными интерфейсами в Lambda и областью видимости переменных выражениях. Мы узнаем, что такое method reference. Проведем детальный обзор интерфейса Stream и попробуем в деле использовать методы.
Урок № 10 – Многопоточность
На десятом уроке мы займемся созданием потоков. Применим приобретенные знания в работе Wait и Notify-методы. Узнаем специфические черты классов ReentrantLock и Semaphore. Выявим специфические черты интерфейсов Callable and Future.
Как стать Java разработчиком за 1,5 года
Меня зовут Сергей, мне 40 лет и сейчас я работаю Java разработчиком в немецкой компании. Мы занимаемся разработкой программного обеспечения для пивоварен оценки финансовых и кредитных рисков. Это моя первая работа в качестве разработчика. До этого я работал в сфере IT-поддержки и системной интеграции. Первого февраля 2019 г. закончился мой шестимесячный испытательный срок, и у меня на руках бессрочный контракт. Я хочу поделиться своим опытом, как можно самостоятельно выучить Java так, чтобы получить работу.
Это мой рабочий стол. Пить пиво в рабочее время у нас разрешено, мы же в Германии.
Disclaimer
Скажу сразу, что всякие варианты «выучи яву за 10 дней» (21 день, 30 дней и т.д.) – это утопия. Нет никакой красной таблетки, чтобы быстро попасть в матрицу. Но за год-два параллельно с основным местом работы – вполне реально.
Что у меня было в активе, прежде чем я начал изучать Java
Сначала я хотел назвать статью «Как стать Java разработчиком за 1,5 года с нуля», но передумал. Я ведь пришел в программирование не из совершенно другой области, а из IT. Но работал я не в разработке, а в поддержке. Вероятно, дальнобойщику будет не так просто повторить мои шаги, чтобы стать программистом. Хотя, если у моей жены получится в свои 34 переквалифицироваться из чистого гуманитария в разработчика (или тестера), то напишу еще одну статью.
Стоит сказать о том, что я уже умел, когда решил стать разработчиком.
В университете в течение 2-х семестров мы изучали программирование на Си и С++. Ничего особенного или каких-то глубоких знаний. Сдали – забыли. Далее, будучи студентом, я писал какие-то простенькие программы на Delphi для себя. И всё. Это было более 20 лет назад.
Дальше моя карьера выглядела так:
Непосредственно программированием я вообще не занимался.
Мой путь
Онлайн-курсы.
Я начал со следующих специализаций на coursera.org:
Java Programming and Software Engineering Fundamentals – 4 месяца
Я прошел следующие онлайн-курсы:
После этой специализации я уже более-менее разбирался в языке, но писать самому программы было еще нереально. Последний capstone-проект я не сделал. Мне было сложно. И у меня, честно говоря, пропал энтузиазм. Я сделал перерыв.
Object Oriented Java Programming: Data Structures and Beyond– 5 месяцев
Через месяц я решил всё-таки вернуться к занятиям снова. Я пошел на специализацию из пяти курсов:
Последний capstone-проект я также не осилил. Но предпоследний курс в списке «Mastering the Software Engineering Interview» помог мне неплохо подготовиться к последующим собеседованиям. А еще я смог написать свой первый простенький парсер простого сайта на чистом HTML. Уже было неплохо, но не впечатляло.
How to Code – 3 месяца
Следующим шагом были эти два странных курса на edx.org:
Я написал «странных», потому что там вообще речь не идет о Java. Авторы курса используют специальный язык программирования Beginning Student Language (BSL). Я где-то прочитал, что они мега-полезные. Наверное, эти два курса помогли мне лучше понять некоторые приемы написания программ и стали хорошим подспорьем для написания Unit-тестов в реальной работе. Но, если быть честным, их можно пропустить.
Data Structures and Algorithms – 2 месяца
Потом я снова вернулся на coursera.org и начал новую специализацию, сотоящую из следующих четырёх курсов:
Но осилил только первых два. На остальные даже не стал записываться. Параллельно с этими курсами я начал читать книгу OCA, о которой речь пойдет дальше.
Топтание на месте
В тот момент я понял, что топчусь на месте. Прохождение новых курсов не давало такого ощутимого количества новых знаний, как это давали первые. Т.е. знания вроде прибавляются, но это никак не приближает меня к получению работы. Я не понимал, как с такими знаниями можно вообще найти на работу. Я всё также не мог написать ничего, что было бы сложнее парсера. Ну как так-то. Я даже пытался написать свой сервис парсинга сайтов с блэк-джеком и путанами, но уже после недели разработки мой проект превратился в кашу из классов. И я уже сам не мог разобраться в том, что я там понаписал. Кроме того, мне всё ещё были непонятны некоторые аспекты функционирования языка. И это после того, как я уже потратил примерно год на все этих курсы. Двенадцать онлайн-курсов и целый год времени, Карл, вы только вдумайтесь в это. На самом деле, это был провал. Я был уверен, что за год я смогу стать разработчиком благодаря этим курсам. Я заблуждался. Мне нужен был план Б.
Альтернатива
Я стал искать курсы, которые бы помогли мне получить какие-то практические навыки, востребованные в реальной работе. Но ничего толкового не было, либо стоило приличных денег. Те же курсы от отуса стоят 50000 за шесть месяцев и отзывы на них противоречивые. Я не был готов к таким расходам. Я был готов впахивать самостоятельно и искал, как это можно сделать бесплатно или совсем недорого. В итоге все онлайн-курсы, которые мне попадались, делились на две категории:
А между ними зияющая пустота. Ну где я и где все эти микросервисы. Получалось, что для «троечников» вообще ничего нет. Или есть, но за хорошие деньги. И как стать «хорошистом» бесплатно, без регистрации и СМС, вообще непонятно.
Сертификация Oracle
Тогда я решил стать сертифицированным разработчиком на Java. Потому как фраза «Я профессиональный программист на Java» звучит очень круто и должна сразить будущего работодателя наповал. Во всяком случае, тогда я так наивно думал.
OCA: Oracle Certified Associate Java SE 8 Programmer – 2 месяца
Для этого я купил книгу:

OCA: Oracle Certified Associate Java SE 8 Programmer I Study Guide: Exam 1Z0-808
На освоение этой книги у меня ушло примерно 2 месяца. Она реально открыла мне глаза на многие аспекты и заставила понять, как работает язык в деталях. Это было хорошее продвижение вперед. Но не в поиске работы, а в понимании языка Java. На экзамен я шел с уверенностью, что сдам его хорошо, и я его сдал. Я набрал 84% при необходимых 65%. Я был безмерно горд собой.
OCP: Oracle Certified Professional Java SE 8 Programmer – 4 месяца
Я с энтузиазмом принялся за вторую книгу тех же авторов:

OCP: Oracle Certified Professional Java SE 8 Programmer II Study Guide: Exam 1Z0-809
На освоение второй книги я потратил уже 4 месяца. И это оказалось реально сложно. Два раза я делал перерывы по одной неделе, потому как понять лямбда выражения или многопоточность мне было действительно непросто. Также меня убивало обилие классов для ввода и вывода. Все эти NIO и NIO2, которые так похожи и которые нужно было знать. Что там базовый класс, что производный? Это был настоящий кошмар. В итоге я назначил дату экзамена за месяц, потом перенес его на две недели, потом еще на две. Меня поджимали сроки, на горизонте маячило собеседование. И мне нужен был этот сертификат. Я не стал переносить экзамен в третий раз и пошел с тем, что имел. В отличие от первого экзамена, я уже не был уверен в хорошем результате. Я вообще не был уверен, что смогу его сдать. От былой гордости не осталось и следа. Объем информации для понимания и запоминания во второй книге раз в пять больше чем в первой. Но я сдал и этот экзамен. К счастью, тестовые задания в книгах оказались сложнее, чем те, которые были на экзамене. Но это был прорыв… для меня. Прорыв в плане знаний и понимания того, как работает язык и какие инструменты он предлагает.
Могу сказать, что эти две книги мне дали больше, чем все те онлайн курсы, что я прошел ранее. Но я не знаю, смог ли бы я вообще сдать эти экзамены, если бы не прошел предварительно курсы. С помощью этих экзаменов я перешел на уровень «три с плюсом». И это было уже что-то. Но я всё также не был способен самостоятельно реализовать какой-нибудь интересный проект. WTF.
Я понял, что я достиг максимума от того, что я мог получить сам, и изучать язык дальше было бессмысленно. Более того, я понимал, что мои знания, которые я с таким трудом получил, без практики очень быстро улетучиваются. Тянуть было нельзя, и я занялся подготовкой к собеседованию и приобретением навыков, которые могут потребоваться при устройстве на работу.
Что нужно, чтобы получить работу?
Нужно пройти собеседование и техническое интервью! Про подготовку к собеседованию писать не буду. Это тема для отдельной статьи. Напишу только про те знания, которые нужны, чтобы пройти техническое интервью.
Подготовка к интервью – 1 месяц
Я купил следующую книгу:
Настоятельно ее рекомендую. Она поможет подготовиться к техническоой части собеседования. На неё я потратил примерно месяц. Многие задания были непонятны, поэтому я нашел еще один экземпляр на русском, и когда мне было совсем непонятно, я смотрел в него.
Дополнительные навыки
К этому моменту я уже активно мониторил рынок вакансий в своём городе и выбрал компанию, в которой хотел бы работать. У них была вакансия Java Developer. В вакансии в числе желаемых навыков стояли знания Oracle SQL, GWT, Eclipse, SVN, Maven, Jenkins. Мне не нужны были глубокие знания всех этих технологий, мне нужно было простое понимание, что это такое и как оно работает. Чтобы на собеседовании можно было сказать, мол да, я знаком, но не глубоко.
Oracle SQL – 1 неделя
SQL я уже неплохо знал, так как по долгу службы приходилось делать много произвольных отчетов для руководства. Но это был T-SQL от Microsoft, а тут требовался SQL от Oracle. Пришлось купить книжку, чтобы вспомнить основные моменты и понять разницу.
Эту книжку я пробежал быстренько за неделю. И понял, что я на 70% готов сдать еще один экзамен. Но мне было уже не до этого.
SVN – 1 неделя
SVN распределённая система управления версиями. GIT или SVN используется в большинстве компаний, которые занимаются разработкой ПО. Курсов по SVN я не нашел, поэтому решил взять короткий курс по GIT: «Version Control with Git», чтобы быть в курсе темы. Я даже подумал, что если спросят про SVN, то скажу, что имел дело с GIT. А потом на месте сориентируюсь. Если вдруг будет что-то непонятно, то всегда можно будет сказать, что в GIT это немного по-другому. И это, кстати, сработало.
GWT – 3 дня
Следующая технология из списка – GWT. Потратив несколько дней на поиски информации, я понял, что с этим Фреймворком от Google мне просто не разобраться. Если упрощенно, то можно писать сложные сайты на Java, а этот Фреймворк преобразовывает твой код в HTML + JavaScript и отображает в браузере без всяких надстроек и дополнений. Слишком всё круто. GWT я решил пропустить.
Eclipse – 3 дня
Eclipse — среда разработки, основной инструмент разработчика, с которым я имею дело каждый день. Каких-то специальных курсов я не брал. Посмотрел несколько видео на youtube, понял основные приемы. Попробовал всё сам руками.
Maven, Jenkins – 15 минут.
На эти две вещи времени просто не осталось. Собеседование было уже утром, поэтому я просто прочитал 2 статьи в википедии и лёг спать.
Время
Мной было потрачено примерно 18 месяцев, 2 недели, 6 дней и 15 минут на получение знаний и навыков, необходимых для получения места разработчика. Этим я занимался по вечерам, тратя 1-3 часа в будние дни. И около 5-6 часов на выходных.
Деньги
Я готов был тратить свое время и не готов был тратить деньги. Но потратить их всё же пришлось.
Курсы:
Книги:
Экзамены:
Дополнительные расходы:
Итого: 702€
Совсем бесплатно, к сожалению, не получилось. Книги покупал на английском, т.к. экзамен тоже на английском.
Результат
Этих знаний хватило, чтобы пройти собеседование и подписать контракт в достаточной крутой немецкой компании. Я бы даже сказал, что их хватило с запасом.
Их также хватило, чтобы пройти шестимесячный испытательный срок и получить постоянное место в штате разработчиков.
За эти 6 месяцев работы в качестве разработчика я закрыл более 200 заявок на разработку, доработку и исправление ошибок в коде совершенно разных подсистем и модулей. И ни от одной заявки я не отказался «потому что я не смог». Да, мне приходилось и сейчас приходится разбираться в новых вещах, искать информацию, вникать в детали. Что-то я делаю медленно, но мне это интересно и процесс идёт. А ещё за это хорошо платят.
Но не надо думать, что я очень умный. Я самый простой парень, который просто решил изменить свою жизнь к лучшему. Я такой же, как и ты. А если смог я, то сможешь, и ты!
Экспресс – путь
На самом деле, чтобы стать разработчиком, у меня ушло не 1,5 года, а два. Но это по моей собственной глупости (читайте об этом в моем телеграм-канале). Непосредственно на яву я потратил 1,5 года. Но необязательно повторять мои ошибки. Думаю, что можно достичь того же результата за более короткий срок. Выкидываем всё лишнее и получаем примерно такой путь:
Часть первая – 5 месяцев
Параллельно читаем книжку:
По результатам сдаем экзамен.
Часть вторая – 2 месяца
Берем следующие курсы специализации Data Structures and Algorithms:
Параллельно читаем книгу:
Часть третья – 4 месяца
По результатам сдаем экзамен.
Часть четвертая – 1 месяц
Смотрим, что конкретно хочет работодатель от соискателей, и тратим по одной неделе на каждую из 4-х самых нужных технологий, программ или Фреймворков (Git, Eclipse, Maven, Spring и т.д.). Плюс изучаем предметную область, в которой работает работодатель, его продукты, если есть и т.д.
Итого год. За год – вполне реально.
Будьте на связи
О том, как я изменил свою жизнь в 40 лет и переехал с женой и тремя детьми в Германию я пишу в своем телеграм-канале @LiveAndWorkInGermany. Пишу о том, как это было, что хорошо и что плохо в Германии, о планах на будущее. Коротко и по делу. Присоединяйтесь – будет интересно.

















