Разработчик Java. Базовый уровень. Обучение программированию на Java Если я захочу прекратить обучение, то смогу ли вернуть деньги


Я собираюсь переучить на Java-программистов миллион человек.
Я собрал команду и сделал обучающий сервис, которым могу гордиться.
Рад сообщить, что теперь стать программистом легко, независимо от образования и опыта.

JavaRush - изучение программирования на Java в виде онлайн-игры


Как насчет совсем нового подхода к изучению программирования и образованию вообще? Не похожего ни на что из того, что вы видели раньше. Как насчет обучения, где есть цель, средства и результат?

Рад представить вам новые онлайн курсы обучения программированию на Java.

1 Обучение сделано в виде онлайн-игры

Вы берете задание, выполняете его и получаете награду. Думаю вам это и понятно и привычно. Задачи будут самые разнообразные: чтение кода, решение задач, видео-уроки, просмотр Футурамы , исправление ошибок в коде, добавление новых фич и многое другое.

Возможно, вам даже придется писать программы для своего робота, чтобы сражаться со своими друзьями на «арене» или что-нибудь еще.

2 Только самое необходимое

Чтобы курс не растянулся на 5 лет, я выкинул из него все полезное и оставил только самое необходимое. Я проанализировал десятки вакансий на рынке труда. В курс включены все темы, которые нужно знать новичку Java Junior Developer , чтобы устроиться на работу.

3 Я основательно подошел к вашему обучению

Полный курс содержит 900 мини-лекций и 2500(!) практических задач . Задачи небольшие, но их много, очень много. Как раз тот минимум, выполнив который, вы получите столь ценный опыт.

Также есть работа в парах, различные игры, большие задачи, реальные проекты и другие виды практики.

4 Вы не можете пройти игру до конца и не стать программистом

Курс разбит на 80 уровней. Вы можете перейти на следующий уровень, только если решили большую часть задач текущего уровня. Начиная с маленьких и легких, и заканчивая большими и очень полезными. Каждый, дошедший до конца, получит 500-1000 часов практического опыта. Серьезная заявка на победу. И на работу.

5 Целенаправленная подготовка к собеседованию

Последние 10 уровней посвящены написанию резюме, подготовке к прохождению собеседования и навыкам работе в команде. Будут добавлены видео-записи собеседований и их разбор. Ну и, конечно, типичные вопросы на собеседованиях с ответами .

Чему вы учитесь



Первые 40 уровней вы изучаете Java Core. Следующие 40 – основы таких технологий как JSP, Servlets, Hibernate, Spring. Изучение Java Core – очень детальное, все остальное - в той минимальной версии, которая может понадобиться Java Junior при устройстве на работу.

Если в вашем городе есть крупные IT-компании, после 40 уровня можно попробовать устроиться к ним на стажировку. Если их нет или вам недостает опыта, вы можете продолжить изучение технологий Java, пока не дойдете до 80 уровня.

В конце много времени будет уделяться составлению резюме, разбору типичных вопросов на собеседованиях и рекомендациям по работе в команде.

Курс в разработке (сделано 25%)



В настоящий момент курс находится в разработке . Уже сделано около 25% всей работы. Вполне достаточно, чтобы примерить на себя роль Java-программиста, оценить и свои силы и JavaRush. Пробуйте, может быть с этого маленького события и начнется череда волшебных изменений в вашей жизни.

Планы на будущее

Многие фичи уже сделаны, над многими еще идет работа, а остальное - скромно ждёт своей очереди. Будет добавлена анимация, обучающие игры, нелинейный сценарий развития. Полный курс будет включать 80 уровней, 900 лекций и две с половиной тысячи практических занятий. А также видеозаписи собеседований и их разбор. Образцы составления резюме и удобный сервис для этого.

Многое будет зависеть от ваших отзывов и от посещаемости сервиса.

Почему Silverlight?
Игра написана на Silverlight. Обучающий курс изначально проектировался именно в виде онлайн-игры: много анимации, встроенные мини-игры, видео, мультфильмы и еще много чего. Так что выбор тут был между Silverlight (в котором у меня хороший опыт) и Flash (в котором опыта гораздо меньше).

Простые задачи решаются на сайте, для всего остального есть MasterCard Intellij IDEA.

Программирование – это просто и интересно.

Оплата

Сейчас сервис бесплатен. В то же время, для его успешного развития нужны средства. Законченный сервис лучше, чем заброшенный.
Образовательные гранты
Очень бы не помешали. Надеюсь, мое видение образования, описанное в статье «правильный университет» найдет свой отклик в сердцах единомышленников.
Также, надеюсь на ваши отзывы. Чем больше восторженных отзывов получит проект, тем больше шансов, что какой-нибудь хороший фонд, заинтересованный в развитии образования, даст нам грант на развитие.
Модель Freemium
При этом подходе основной функционал сервиса - бесплатен. Развитие же сервиса осуществляется на доходы, которые получены с дополнительных платных услуг. Это могут быть личные консультации, наборы специально написанных задач, более глубокое обучение ключевым темам. Еще, например, видео лекции, видео уроки, написание резюме, подготовка к собеседованию.

Или я слишком оптимистичен или слишком наивен, или одно из двух.

В же чем прелесть эры онлайн-курсов?

Они уничтожат индустрию, которую по ошибке называют высшим образованием. 

А как же вуз?



Чтобы устроиться на работу новичком Java-программистом, надо хорошо знать Java Core, основы базовых фреймворков (Hibernate, Spring, JSP, Servlets) и иметь опыт программирования хотя-бы несколько месяцев.

Формально многому из этого вас в вузах и учат. По факту – почти ничему из вышеописанного.

Все вузы разные, поэтому я, для простоты, сравню средний технический вуз со средней вакансией на Junior Java-программиста и напишу своё видение полученной ситуации. Не стоит воспринимать эту схему как истину в последней инстанции, скорее как упрощённый взгляд на вещи, с целью внести хоть какую-то ясность.

Java Junior Developer

Так, скорее всего, обстоят дела, когда вы уже закончили вуз и только ищите работу:

Все, чему вас не научил вуз, но что нужно в работе, вам придется выучить самому. Скорее всего по книжкам месяцев за 6-12. Если у вас есть друг-программист, который готов быть вашим наставником, этот срок можно сократить в 2-3 раза.

Также очевидно, что в вузе вы учили много всего, что не нужно вам при первом устройстве на работу. Возможно большая часть этих знаний не нужна вам сразу, но понадобится в будущем. Вот как изменится ситуация лет через 5.

Еще год назад такого сервиса не было даже в планах, и мне приходилось обучать одновременно всего по несколько человек. Сейчас JavaRush пользуются больше тысячи человек и где-то треть из них занимается каждый день.

Так что, имеющие желание, но не имеющие возможности – пробуем .

Повторюсь. В настоящий момент курс находится в разработке . Сделано около 25% всей работы (20 уровней из 80). Вполне достаточно, чтобы примерить на себя роль Java-программиста, а также оценить и свои силы и JavaRush.

Всегда ваш, General

Личные данные и друзья
Надо для того, чтобы отображать на карте звездного неба прогресс вас и ваших друзей.

Ваши аудиозаписи и видеозаписи
Серии Футурамы залиты в ВК. Я показываю их прямо оттуда.
(Чтобы не сильно нагружать мой сервер раздачей видео)

Работа со стеной
Чтобы вы могли приглашать друзей изучать Java вместе с вами.
(Это можно сделать в разделе «Друзья»)

И ничего более.


Проверял работу только под Windows

Похоже, что под Linux с Moonlight не работает.
Под MacOSX еще никто не отписался.



Почему выбран Silverlight

1 Нет никакой связи между тем, какой язык мы учим и на чем написано приложение для занятий
Если бы я писал обучающее приложение для iPad, я написла бы его на Objective C, а не на Java
Если бы я обучал SQL, я тоже не стал бы писать клиента на SQL

2 У каждого языка/фреймворка есть свое преднозначение
У Java - это Android и Enterprise.
А для RIA-приложений лучше всего подходят Flash & Silverlight

3 У меня много опыта на Silverlight
Из всех технологий, которые я знаю, я выбрал самую подходящую для онлайн-игры.
Если бы я не знал Silverlight, но хорошо знал Flash, клиент был бы на Flash.

4 На хабре много тру айтишников, которые принципиально используют Linux и не используют ВК.
Если вы тру айтишник и у вас только Linux, возможно вы уже переросли курс джава-джуниора.

5 Надо бы писать все на Java!
Не слишком ли много требований для проекта, который начинался просто как желание помочь людям и хобби?

6 Увидел что Silverlight и сразу закрыл
Если технология используемая для создания клиента перевесила для вас все преимущества проекта, то может быть не очень то и хотелось?
Кто хочет - ищет возможность (и я ее предоставил), кто не хочет - ищет причину.

Java. Быстрый старт
Основы языка Java на примере разработки небольшой игры

Видеокурс познакомит вас с одним из самых популярных, красивых, широко применяемых, надёжных языков программирования – Java. В первой части вы научитесь основам языка и научитесь писать простые консольные приложения. Далее мы расскажем, как можно буквально за несколько минут создать простую игру с графическим интерфейсом и не использовать при этом сторонние библиотеки. Цель курса: раскрыть некоторые возможности языка и показать, что Java – это просто и увлекательно. После успешного прохождения курса вы сможете использовать созданную нами модель для разработки собственных игр. Для эффективного освоения материала требуется минимальный опыт программирования, поэтому совсем начинающим разработчикам мы рекомендуем сначала пройти бесплатный онлайн-курс “Основы программирования”.

Урок 1. Знакомство с языком Java

Краткое описание языка; установка необходимых инструментов разработки; написание первой программы.

Урок 2. Переменные, типы данных, ветвления

Описание фундаментальных понятий языка Java на примере простого консольного калькулятора.

Урок 3. Циклы; игра «Угадай число»

Начинаем писать консольную игру «Угадай число», на примере которой будем продолжать изучение основ языка.

Урок 4. Методы

Демонстрация методов на примере усовершенствования игры «Угадай число».

Урок 5. Завершаем разработку игры «Угадай число»

Доводим код игры до конечного варианта.

Урок 6. Разработка игры «Поймай каплю». Часть 1

Создаём окно игры.

Урок 7. Разработка игры «Поймай каплю». Часть 2

Учимся загружать и рисовать картинки; реализуем игровой цикл.

Урок 8. Разработка игры «Поймай каплю». Часть 3

Ловим события мыши и заканчиваем разработку игры.

Урок 9. Итоги

Собираем проект в один jar-файл, чтобы его было удобно запускать без среды разработки; подводим итоги.

Программистами не рождаются, ими становятся. А это значит, что необходимо как минимум пробовать. Для этого мы и создали интерактивный курс «Основы программирования». Вы узнаете всё самое полезное и актуальное о современных языках программирования и получите первый опыт написания кода. Мы думали, как создать такой онлайн-курс, чтобы он стал ярким и запоминающимся событием в жизни каждого начинающего программиста. Ведь во многом от первого знакомства с кодом зависит дальнейший интерес к этому направлению. Мы расскажем и покажем, как что работает, какие профессии востребованы и какие существуют перспективы развития в каждом направлении IT-сферы. В течение курса мы создадим веб-сайт с браузерными играми и опубликуем проект на github.com. Этот сайт станет первым кейсом в вашем будущем портфолио, что очень важно, ведь портфолио - первое, на что обращают внимание при трудоустройстве. Пройдя этот курс, вы сделаете первый шаг к серьезному обучению и сможете чётко определиться с направлением интересов!

Урок 1. Понятие алгоритма, переменные, типы данных.

Вступление: что будем делать на курсе?
Стану ли я успешным программистом?
Понятие алгоритма. Установка рабочей среды. Hello world.
Знакомство с переменными.
Архитектура компьютера
Типы данных: строки и числа. Операции с числами и строками.

Урок 2. Ветвления. Циклы.

Ветвления: if/else
Циклы: while, for
Логические операции. Цикл do while.
Разработка игры «Угадайка»

Урок 3. Массивы и функции

Знакомство с массивом. Программа по развитию памяти.
Изменение длины массива. Многомерные массивы. Программа по изучению английского языка.
Знакомство с функциями. Функции без возвращаемого параметра.
Функции с возвращаемыми параметрами.
Рекурсивные функции. Разработка программы по обучению слепой печати.

Урок 4. Верстка сайта: знакомство с HTML и CSS

Знакомство с HTML
Знакомство с CSS
Размещаем игру в загадки на сайте
Размещаем игру «Угадайка» на сайте
Публикация сайта на хостинг

Урок 5. Обзор современных языков программирования

Как выбрать язык программирования и направление?
Выбор языка программирования: веб-разработка
Мобильная разработка. Универсальные языки программирования
Как выучиться на программиста?

Курс для начинающих разработчиков, тех, кто хочет быстро освоить основы объектно-ориентированного программирования (ООП) и научиться создавать собственные проекты. Главной особенностью курса является сочетание изучения теоретических основ языка Java и практических онлайн-тренировок под руководством наставника.

Урок 1. Введение в Java

  1. Как работает Java. JVM. Общие принципы. Инструменты.
  2. Hello, world!
  3. Переменные и типы данных.
  4. Методы и их применение.
  5. Условные операторы.

Урок 2. Циклы и массивы

  1. Понятие циклов. Цикл while;
  2. Циклы for, foreach;
  3. Понятие массива;
  4. Разбор решения домашнего задания.

Урок 3. Практикум. «Крестики-нолики» в процедурном стиле

  1. Разработка алгоритма;
  2. Создание логики;
  3. Создание логики противника-компьютера;
  4. Разбор домашнего задания.

Урок 4. Введение в ООП

  1. Что такое ООП и зачем он нужен? Основные понятия;
  2. Создание классов и объектов;
  3. Инкапсуляция;
  4. Наследование;
  5. Абстрактные классы, интерфейсы и полиморфизм;
  6. Разбор домашнего задания.

Урок 5. Память, хранение данных

  1. Хранение данных в Java: стек, куча;
  2. Сборка мусора;
  3. Строковые классы, пулы строк;
  4. Разбор домашнего задания.

Урок 6. Графические интерфейсы

  1. Библиотека Swing и другие графические библиотеки. Основы Swing;
  2. Менеджеры размещения и выравнивание элементов;
  3. События в Swing. Меню и диалоговые окна;
  4. Разбор домашнего задания.

Урок 7. Практикум. «Крестики-нолики» в ООП

  1. Определение классов и GUI;
  2. Разработка логики, часть 1;
  3. Разработка логики, часть 2;
  4. Разбор домашнего задания.

Введение в Git
Основы работы с Git

В течении 13 роликов мы познакомимся с основами системы контроля версий Git. Выясним почему она важна в современной разработке и коллективном программировании. Познакомимся с основными понятиями Git: репозиториями, коммитами, ветками и тэгами. Изучим базовые операции: создание и клонирование репозитория, слияние веток, запрос истории изменений и многое другое. Посмотрим, как при помощи Git сдавать домашние задания. Данный курс является базовым и после него можно приступать к изучению любого языка программирования. Кроме того, вы будете готовы к прохождению собеседования, где несколько вопросов обычно посвящены системе контроля версий.

Урок 1. Введение в системы контроля версий

Что такое система контроля версий?
Виды систем контроля версий
Git и его преимущества
Документация

Урок 2. Работа с командной строкой

Что такое командная строка?
Почему важна командная строка?
Как открыть командную строку?
Полезные команды

Урок 3. Локальная работа с Git-репозиторием

Введение в консольный клиент
Настройка git
Инициализация репозитория
Клонирование репозитория
Графические git-клиенты

Урок 4. Базовые операции

Индексирование
Публикация изменений
Коммиты
Отмена индексирования
Текущий статус

Урок 5. История git-проекта

История изменений
Откат по истории проекта
Авторы изменений: git blame
Игнорирование файлов.gitignore
Сайт gitignore.io
Сохранение папок.keep

Урок 6. Ветки

Управление ветками
Создание и удаление веток
Переключение между ветками
Конфликты способы и их разрешение
git merge

Урок 7. Создание удаленного Git-репозитория

Git-хостинги (GitHub, GitLab, Bitbacket)
Создание собственного bare-git репозитория
Регистрация на GitHub
Публикация изменений в удаленном репозитории

Урок 8. Удаленные ветки

Названия репозиториев
Несколько репозиториев в одном проекте
.git/config
Управление ветками на удаленном репозитории

Урок 9. Версионирование

Способы версионирования
Тэги и их связь с коммитами
Добавление тэга
Удаление тэга
Управление тэга на удаленном репозитории

Урок 10. Слияние и переносы

Сливаем изменения. git merge
Переносим ветки. git rebase
Переносим коммиты. git cherry pick
Сливаем коммит в один. git squash
Хуки
Псевдонимы

Урок 11. Gitflow

Как используется и зачем?
Циклы тестирования
Возможно Blue/green
Релизные ветки
Хотфиксы

Урок 12. SSH

Протокол SSH
Зачем используется?
Создание ключей
Форвардинг
SSH-агент
Копирование файлов по SSH
Windows: Git for Windows
Использование SSH совместно с Git-ом

Урок 13. Сдача домашней работы через Git

Основы баз данных. 20 уроков.
Проектирование БД и запросы SQL

Базы данных (БД) - это системы хранения и обработки данных, для доступа к которым используется язык SQL (Structured Query Language). Любой современный сайт, игра или настольное приложение нуждаются в хранении данных. На данный момент существует множество различных систем управления базами данных (СУБД), самой популярной является MySQL. “Основы баз данных” - это 20 интенсивных видео-уроков (по 10 минут), где мы вместе пройдём все этапы проектирования БД на примере интернет-магазина с использованием языка запросов SQL. После этого курса вы сможете использовать различные базы данных, такие как MS SQL и Postgre Sql, так как синтаксис языка SQL для них практически не отличается.

Урок 1. Реляционные базы данных

Чем отличается БД от СУБД; какие базы данных называются реляционными; обзор современных СУБД.

Урок 2. Установка СУБД

Установка СУБД MySql и графического приложения Mysql Workbench.

Урок 3. Проектирование базы данных, нормальные формы

Проектирование данных в Excel; нормальные формы; первичный ключ.

Урок 4. SQL-команда CREATE

Создание таблиц в графическом интерфейсе MySql Workbench; команда CREATE; типы данных; работа в консоли.

Урок 5. SQL-команда INSERT

Заполнение таблиц данными с помощью графического интерфейса; команда INSERT; AUTO INCREMENT.

Урок 7. SQL-команды DISTINCT, ORDER BY, LIMIT

Получение и фильтрация данных с помощью SQL-команд DISTINCT и LIMIT; сортировка с помощью команды ORDER BY.

Урок 9. Согласованность данных

Понятие согласованности или консистентности данных.

Урок 10. Внешний ключ

Понятие внешнего ключа и ограничений на значения столбцов; FOREIGN KEY CONSTRAINTS.

Урок 11. Создание таблиц с отношением “многие ко многим”

Добавление корзины в базу данных интернет-магазина.

Урок 12. Составной первичный ключ

Использование составного первичного ключа при проектировании таблицы с отношением “многие ко многим”.

Урок 13. Объединение данных из нескольких таблиц

Получение данных из нескольких взаимосвязанных таблиц; несостоятельность подхода с использованием нескольких SELECT-ов.

Урок 14. Оператор INNER JOIN

Объединение данных из нескольких таблиц с помощью оператора INNER JOIN.

Урок 15. Операторы LEFT JOIN, RIGHT JOIN

Объединение данных из нескольких таблиц с помощью операторов LEFT JOIN и RIGHT JOIN.

Урок 16. Оператор UNION

Объединение результатов нескольких SQL-запросов с помощью оператора UNION.

Урок 17. Агрегирующие функции

Агрегирующие функции COUNT, SUM, MIN, MAX.

Урок 18. Оператор GROUP BY

Группировка выбранного набора строк с использованием оператора GROUP BY.

Урок 19. Индексы

Фильтрация в GROUP BY с использованием HAVING; увеличение скорости выполнения запросов с использованием индексов.

Урок 20. Транзакции

Понятие транзакции; оператор TRANSACTION; требования ACID к транзакционной системе.

Курс для тех, кто хочет укрепить свои знания в Java. На курсе ученики осваивают теорию и параллельно под руководством преподавателя с нуля разрабатывают полноценный проект на Java, получая таким образом практический опыт применения сложных объектно-ориентированных концепций, характерных для языка. Перед прохождением курса рекомендуется освоить курс для новичков: "Java. Уровень 1".

Урок 1. Объектно-ориентированное программирование Java

Углубленное изучение вопросов ООП в Java: основные принципы ООП, абстрактные классы, интерфейсы.

Урок 2. Исключения

Концепция обработки исключений, её сравнение с традиционным механизмом обработки ошибок, блок try-catch-finally, типы исключений, стандартные исключения в Java и их роль, выброс исключения из метода

Урок 3. Коллекции

Виды контейнеров в Java: List, Map, Set. Основные реализации и приемы использования, проход по элементам коллекции, сравнение и сортировка элементов коллекции

Урок 4. Продвинутые вопросы создания графического интерфейса

Создание собственных элементов управления. Работа с графикой. Обработка событий

Урок 5. Многопоточность

Потоки в Java, способы создания и управления состояниями потоков, основные проблемы при работе с потоками и синхронизация.

Урок 6. Работа с сетью

Сокеты. Написание простого эхо-сервера и консольного клиента.

Урок 7. Написание сетевого чата. Часть I

Написание клиентской и серверной части чата. Многопоточная обработка клиентских подключений.

Урок 8. Написание сетевого чата. Часть II

Разработка интерфейса для клиентской части. Авторизация. Механизмы взаимодействия клиента и сервера.

Java. Уровень 3. 2 месяца.
Профессиональная разработка программного обеспечения

Курс предназначен для тех, кто хочет узнать о продвинутых возможностях языка Java и получить практический опыт в написании приложений. Для успешного прохождения курса студентам необходимо понимать базовые понятия программирования и иметь начальный опыт работы с Java. Курс охватывает все основные темы, необходимые для профессиональной работы.

Урок 1. Обобщения

Что такое обобщения, обобщенные классы, методы и интерфейсы, наследование обобщенных классов, ограничения при работе с обобщениями

Урок 2. Базы данных

Реляционные базы данных, язык запросов SQL. Операторы SELECT, INSERT, UPDATE, DELETE. Подключение к базе через JDBC, отправка запросов и обработка результатов

Урок 3. Средства ввода-вывода

Обзор средств ввода-вывода. Байтовые, символьные, буферизированные потоки. Сетевое взаимодействие, сериализация/десериализация объектов

Урок 4. Многопоточность. Часть I

Многопоточность в Java, разделяемая память, управление потоками и вопросы синхронизации, взаимодействие потоков исполнения, взаимная блокировка

Урок 5. Многопоточность. Часть II

Классы для работы с многопоточностью, Concurrent collections, разбор практических примеров

Урок 6. Обзор средств разработки

Логирование. Тестирование с использованием JUnit, написание тестов, класс Assert

Урок 7. Reflection API и аннотации

Понятие рефлексия, тип данных Class, метаданные классов, доступ к полям и методам, аннотации и их использование, написание собственных аннотаций.

Курс посвящен использованию структур данных и алгоритмов в программировании на Java. С помощью структур данных определяется способ хранения данных в памяти компьютера. В курсе будут рассморены следующие структуры данных: массивы, стек, очередь, списки, графы, деревья, хэш-таблицы. Для каждой структуры данных будут рассмотрены алгоритмы, которые обеспечивают различные операции над этими структурами, например, поиск или сортировка. Курс рассчитан на слушателей, которые освоили основной курс по Java SE.

Урок 1. Общие сведения об алгоритмах и структурах данных

Введение в алгоритмы и структуры данных.

Урок 2. Массивы и сортировка

Работа с массивами и способов их сортировки.

Урок 3. Стек и очередь

Обзор структуры данных, стек, очередь и приоритетная очередь.

Урок 4. Связанные списки

Учимся создавать и использовать списки.

Урок 6. Деревья

Рассмотрим работу с двоичными деревьями.

Урок 7. Графы

Рассмотрим работу с одной из самых гибких и универсальных структур.

Урок 8. Хеш-таблицы

Быстрый поиск и вставка с помощью хеш-таблиц.

Стажировка в GeekBrains. 2 месяца.
В формате вебинаров

Во время стажировки студентам предстоит поработать в режиме удаленной занятости над Open Source-проектом либо стартапом. Студентам будет предложено выбрать один из набора доступных для разработки проектов. Студенты научатся работать в команде, коммуницировать с другими разработчиками, product- и project-менеджерами, дизайнерами, изучат гибкие методологии, фреймворк SCRUM, освоят принципы дистанционной работы. Результат стажировки - умение работать в команде, пополнение портфолио, возможность указать работу над проектом в качестве профильного опыта работы в резюме. Стажировка проходит в формате дистанционной работы с частичной занятостью, еженедельными встречами-статусами с преподавателем в формате вебинара.

Урок 1. Знакомство, выбор проекта

Какие роли бывают в разработке. Product Manager, Project Manager, разработчик, дизайнер. Что такое MVP. Архитектура современного сервиса. Как разработчики взаимодействуют между собой. REST API, Web Socket. Backend, Frontend, мобильные приложения. Микросервисная архитектура. Основы удаленной работы. Запись в команды.

Урок 2. Методологии разработки

Обзор методологий. Каскад (водопад), Agile-манифест, Канбан, Скрам. Где и для чего применяются. Смешанные методологии.

Урок 3. Методология SCRUM

Работа по SCRUM. Планирование спринта. Причесывание бэклога (backlog grooming). Цель спринта. Инкремент. Гибкая методология в условиях дистанционной работы. Таск-трекеры (Trello, Favro)/

Урок 4. User Story Mapping

Типы задач. Декомпозиция задач. Построение карты пользовательских историй. Работа над пользовательскими историями. Работа с ТЗ по водопаду и в гибких методологиях.

Урок 5. Ответственность, мотивация, личностный рост

Чем и как мотивировать себя. Какие уровни мотивации бывают. Как не сгореть на работе. И как не забить на работу.

Урок 6. Написание резюме

Как написать резюме, чтобы HR его не отсеял. Как заинтересовать работодателя. Как продемонстрировать навыки, полученные в учебе, если профильного опыта работы пока еще нет.

Урок 7. Предварительное подведение итогов, подготовка к защите проекта

Разбор студенческих резюме. Предварительное подведение итогов. Немного о стартапах, монетизации, инвесторах.

Урок 8. Подведение итогов, демонстрация выпускного проекта

Демонстрация рабочего прототипа студентами. Обсуждение полученных результатов. Обратная связь от преподавателя. Напутствие.

Как стать программистом. 13 уроков.
Пошаговая инструкция по поиску работы

Карьера в сфере программирования - это увлекательное путешествие в мир современных технологий. У каждого разработчика своя история и свой опыт. Однако существует базовый алгоритм, который поможет правильно сделать первые шаги и приведёт к вашей цели. Мы подготовили 13 видео-уроков, в которых ответили на самые актуальные вопросы о карьере программиста в компаниях и на рынке фриланса. Часто думаете о трудоустройстве и чувствуете, что готовы начать зарабатывать? Тогда этот видео-курс для вас.

Урок 1. Профессия “Программист”

Особенности профессии; часто задаваемые вопросы; востребованность на рынке труда.

Урок 2. Профориентация

Стану ли я успешным программистом? Факторы успеха.

Урок 3. Начинаем составлять резюме

Самое важное - первое впечатление; как назвать должность.

Урок 4. Выбор языка программирования: веб-разработка

Обзор языков для разработки сайтов: HTML, CSS, JavaScript, PHP, Python, Ruby, C#, Java; правильный выбор.

Урок 5. Мобильная разработка. Универсальные языки программирования

Обзор языков: Java, Objective-C, Swift; C#, C++, Python: правильный выбор.

Урок 6. Правила эффективного резюме

Список технологий; портфолио; дипломы и сертификаты; личностные качества. Взгляд технического специалиста и HR.

Урок 7. Поиск работы: что, где, когда

Работа мечты, психологические аспекты; техника запроса.

Урок 8. Собеседование и испытательный срок

Собеседования для программистов: как себя вести, что говорить, к чему прислушиваться; испытательный срок и правила его прохождения.

Урок 9. Фриланс: первые шаги

Обзор площадок для фриланса; особенности регистрации; оформление аккаунта; как выделяться среди большинства исполнителей.

Урок 10. Фриланс: начало работы и поиск заказов

Стратегия поиска заказов; приоритет заказов: что брать в работу; ведение переговоров; задания и подводные камни ТЗ; методы обращения к клиенту; написание ответов и привлечение внимания клиентов; правильные вопросы.

Урок 11. Фриланс: выполнение заказа и оплата

Способы оплаты: безналичный или наличный расчёт; предоплата или постоплата; обзор ситуаций, в которых лучше сработает каждый из способов; подготовка к работе и обязательные договорённости с клиентом; особенности процесса работы; завершающие этапы сотрудничества; обмен отзывами; техника "посоветоваться".

Урок 12. Специальности в сфере IT

Как проходит разработка в крупных компаниях? Кто такие аналитики, дизайнеры, тестировщики, архитекторы, projectmanager-ы, team-lead-ы и пр.

Урок 13. Карьерная лестница в сфере IT

Как выглядит карьерная лестница в сфере IT? В каких специальностях проще начинать свой путь? Какие есть перспективы развития?

Курс, разработанный совместно с школой EnglishDom, поможет освоить ключевые англоязычные темы, актуальные для начинающих IT-специалистов. Максимум практики и фокус на IT-лексику. На 10 уроках разбирается составление CV, технических заданий и деловых писем, собеседования и переговоры, международное общение при продвижении своего проекта. В живых диалогах на английском студенты закрепят фразы, которые пригодятся в работе разработчикам и тестировщикам, маркетологам и дизайнерам.

Урок 10. Start up

Рассказываем о своем проекте и представляем команду на английском.

Самое основное - личная проверка преподавателем ваших домашних заданий, которые вы получаете после каждого занятия. Преподаватель вам даст рекомендации, укажет на то, что можно улучшить, сделать по-другому, т.е. проведет полноценное Code Review.

Так же, вы всегда можете написать или договориться с преподавателем о звонке, если накопились вопросы по занятиям.

Кто преподает на курсе?

Наши преподаватели - действующие, практикующие разработчики из крупных компаний и студий создания сайтов и приложений. Они не просто знают свою профессию, но еще и умеют точно и доступно объяснять материал.

Смогу ли я?

Очень актуальный вопрос для всех, кто ни разу не сталкивался с програмированием и работал совершеено в иной сфере. Программировать и писать приложения на Java может каждый, не важно, работали ли Вы до этого переводчиком, менеджером или космонавтом.

Обучение в нашей школе проходит с нуля и благодаря практическим заданиям и реальным проектам, знания усваиваются довольно просто. От Вас потребуется лишь выполнение всех заданий, желание и активное участие.

Что я получу по окончании обучения?

В конце обучения мы разработаем свое собственное "Облако", аналог Яндекс Диска, которое станет хорошим дополнением Вашего портфолио, а так же знания одного из самых популярных и востребованных языков программирования. Кроме этого, при успешной защите финального проекта Вы получите серификат Школы о прохождении курса и полученных навыках.

Насколько востребованы Java-программисты (Java-developers) в настоящее время?

Спрос на Java-разработчиков очень высокий. Задач и вакансий значительно больше, чем специалистов на рынке. И им довольно много платят.

Начинающие Java-разработчики без большого опыта могут рассчитывать на зарплату в 50-60 тысяч, но уже через год она может вырасти до 100-130. Специалисты с опытом работы 1-3 года могут претендовать на позиции с зарплатой 150 и выше.

Кстати, работа программистом дает возможность работать удаленно из любой точки мира! :)

Если я захочу прекратить обучение, то смогу ли вернуть деньги?

Да, Вы сможете вернуть деньги. Мы работаем под образовательной лицензией и возвращаем оплату за не пройденные часы обучения.

Москва - огромный мегаполис. Это значит, что здесь есть почти всё. Курсы программирования в Москве можно найти на любой вкус, однако новичку от такого разнообразия не легче. У него возникает резонный вопрос: по какому принципу искать? Кому доверить собственное образование? В этой статье мы не будем рассматривать вузы в качестве источника знаний и умений будущего программиста, а поговорим о частных курсах. О том, какие они бывают, в чём их особенности и на что следует обратить внимание при выборе.

Курсы можно разделить на очные (оффлайновые) и онлайновые.

Форма обучения: очная

Платные курсы по программированию

Для начала рассмотрим платные курсы Java в Москве. Они предполагают работу в компьютерном классе с преподавателем плюс выполнение домашних заданий. Обычно студент должен написать от 1 до 3 задач по программированию в неделю. Всё примерно как в вузе, только аудитория обычно поменьше и, теоретически, внимания к каждому студенту больше.

Месторасположение

Каждый, кто живёт в столице, знает, что первый вопрос, который нужно выяснить, это где территориально находятся курсы по программированию, Москва-то большая. Если вам повезёт найти школу неподалёку от места работы или проживания, тогда можно присмотреться к следующим факторам. Если нет… Даже серьезно настроенные люди порой бросают учёбу после того, как они не попадали на занятия несколько раз подряд из-за двухчасовых пробок.

График посещений

Обычно под занятия отводятся два будних вечера после работы. Занятия длятся 2-3 часа. Некоторые курсы по программированию в Москве предлагают группы выходного дня. Пожалуй, это удобно: голова свежее, пробок меньше. Однако семейным людям такой вариант чаще всего не подходит.

Компьютерные классы

Перед началом занятий нужно уточнить, предлагают ли курсы компьютеры или есть необходимость возить собственный ноутбук. Второй вариант встречается всё чаще. В этом есть свои плюсы и минусы. Если вы и так носите свой компьютер с собой на работу, то вы особого дискомфорта не испытаете, но вот если вам не очень хочется возить своего железного друга с собой в метро, возможно, нужно поискать другие варианты.

Преподаватель

Очень важный фактор! До того, как вы заплатите за курс, нужно узнать:
  1. Квалификацию учителя. Он - профессиональный программист или преподаватель технического вуза, который решил немного подработать по вечерам? Если он программист, в какой компании он работает, как звучит его должность (Junior, Middle или Senior Java Developer)? Желательно, чтобы вам попался человек, который знает программистскую отрасль изнутри, а не из рассказов других.
  2. Какова загруженность у преподавателя. Будут ли у преподавателя ассистенты или он работает один. Сколько групп одновременно будет вести этот учитель? Это тоже немаловажно. Представьте: в группе обычно 10-15 человек, у каждого нужно проверить домашнее задание. А если таких групп у преподавателя много? Он физически не сможет внимательно изучить код каждого студента.
  3. Давно ли он работает на этих курсах. Если да, попытайтесь найти форумы и отзывы, что о нём пишут: сочетание “хороший преподаватель (то есть тот, кто умеет хорошо объяснить сложный материал) + хороший программист” встречается очень редко. Если вдруг нашли такого, считайте, вам очень повезло.

Цена

Количество казначейских билетов, которые вам придётся выложить за курсы программиста в Москве, зависит в первую очередь от предыдущего пункта. То есть от квалификации и запросов преподавателя. Хороший программист уровня Middle зарабатывает не меньше 2000 долларов в месяц, смело умножайте на два, если он - Senior. Как вы понимаете, заинтересовать такого человека в подработке непросто. Если же ваш преподаватель - сам недавний студент, то курсы будут дешевле, но вот качество… Впрочем, не будем судить. Бывают прирождённые учителя, которым просто очень нравится преподавать. Такие могут много зарабатывать на основной работе, а преподавательскую деятельность считать своим хобби.

Учебная программа

Обычно один курс по программированию, например “Java с нуля” длится 2-3 месяца, и таких курсов предлагают 1-2-3. Два занятия в неделю, 2-3 задания в ту же неделю. Это примерно 36 заданий за курс - для начинающего программиста это катастрофически мало. Практически любая образовательная компания предлагает курсы программирования с нуля, в Москве таких курсов для новичков очень много. А вот если у вас уже есть определённый опыт, выбор резко сужается. Причина всё та же: слишком мало программистов, готовых преподавать. И если курсы для новичков ещё допустимо вести зелёному преподавателю или профессору информатики, то с “продолжающими” это уже не прокатит. Итого, достоинства:
  • Личное общение с преподавателем-программистом (если повезёт);
  • Столь же личное общение с другими студентами;
  • Есть программа обучения, по которой можно “идти”.
Недостатки:
  • Нужно тратить время на дорогу до курсов;
  • Строгий график, от которого работающему человеку легко отстать;
  • Мало практических заданий;
  • Часто - высокая цена или низкое качество курсов;
  • Обычно - высокая загруженность преподавателей.
Разумеется, мы приводим лишь обобщённые достоинства и недостатки очных курсов. Если повезёт найти курсы с хорошим учителем и удобным месторасположением, недостатки сразу же нивелируются.

Курсы / стажировки при компаниях

Курсы при ИТ-компаниях резко отличаются от очных курсов, которые мы рассмотрели выше. Обычно такие курсы представляют собой неоплачиваемую (а иногда и оплачиваемую) стажировку. Обычно крупные ИТ-компании проводят набор на такие курсы несколько раз в год. Это очень полезно, и жителям Москвы стоит отслеживать подобные мероприятия. Только вот на них нужно поступать, и сделать это непросто, поскольку кандидатов на каждое место - тьма. И ещё один немаловажный момент: подобные курсы рассчитаны на так называемых “опытных новичков”, по сути - почти готовых Junior Developer’ов без реального опыта работы. Соответственно, обычно такие курсы длятся полгода. Они очень сложные и требуют большой отдачи. Из первоначальной группы к концу отсеивается ⅔. В итоге самых лучших могут взять уже на штатную работу, на оклад “джуна”. Достоинства курсов при компаниях:
  • Бесплатность;
  • Преподаватели - действующие программисты;
  • Много релевантной практики (той, которая нужна в современном ИТ);
  • Почти реальный опыт работы в ИТ-компании;
  • Шанс получить работу в компании.
Недостатки(с позиции новичков):
  • Чтобы поступить на курсы, нужно быть почти готовым программистом и пройти сложный отбор;
  • Огромная нагрузка (часто несовместимая с основной работой);

Форма обучения: онлайн-курсы

Групповые онлайн курсы программирования

Этот тип курсов мало чем отличается от очных. Мы имеем те же 2 занятия в неделю в строго определённое время в течение трёх месяцев. Только группа студентов и преподаватель собирается не в аудитории, а каждый за своим компьютером. Во всём остальном всё то же самое. Вероятно, такие курсы предпочтительнее для занятых москвичей: как минимум отпадает проблема траты времени и нервов на дорогу до школы программирования. Кроме того, эти курсы могут быть несколько дешевле, чем очные, поскольку их организаторам не нужно тратиться на аренду аудиторий и покупку оборудования. Есть и другой вариант групповых онлайн-курсов. Студенты смотрят не лекции в прямом эфире, а записи вебинаров, а в определённое время преподаватель проводит серию консультаций по теории и домашним заданиям. Достоинства:
  • Не нужно тратить время и деньги на дорогу
  • Общение с преподавателем и другими студентами
Недостатки:
  • Те же, что и у очных курсов (за исключением траты времени на дорогу)

Индивидуальные онлайн курсы Java в Москве

Такие курсы чем-то похожи на менторство, поэтому обычно они дороги. Как правило вы двигаетесь по составленной преподавателем программе, слушаете записи его лекций, делаете домашние задания, получаете их проверку и короткие персональные консультации. Неплохой и гибкий вариант: тут уже нет жёсткой привязки ко времени занятий, вы смотрите лекции, когда вам удобно и договариваетесь с преподавателем о консультации в удобное для вас время. Достоинства:
  • Персональный график занятий
  • “Живой” ментор
Недостатки:
  • Высокая цена
Можно представить более бюджетный вариант, при котором один преподаватель “расшарен” на большое количество студентов. Соответственно, каждому уделяется не слишком много внимания (тут всё зависит от ответственности автора курсов). Задания при таком подходе очень часто проверяются простым автовалидатором, в случаях похуже - сравнивая с чужим кодом на GitHub.

“Платформенные” онлайн-курсы

Платформы Coursera, Udemy, edX и другие содержат огромное количество курсов по программированию. Среди них много бесплатных, записанных мастерами своего дела (тот же “Гарвард CS50. Основы программирования” на английском лежит на edX, а на сайте JavaRush есть русский этого популярнейшего курса для начинающих). На некоторых платформах установлен приблизительный график прохождения курсов (чаще всего задания разбиты на недели) и лучше из этого графика не выбиваться. Обычно такие курсы состоят из видеороликов, дополнительных материалов, тестов и домашних заданий. Иногда задания можно проверить с помощью простых встроенных валидаторов, но чаще всего правильность кода достоверно проверить невозможно. Достоинства:
  • Гибкий график
  • Часто бесплатны или не очень дорогие
Недостатки:
  • Отсутствие обратной связи, из-за чего студенты чаще всего бросают такие курсы;
  • Мало практических заданий.

Особенные Java курсы: JavaRush

JavaRush - это и до уровня Java Junior Developer.

Курс разбит на 4 блока (квеста), в каждом из которых 10 уровней. Проходя курс, вы, как в компьютерной игре, переходите с уровня на уровень, тем самым прокачивая свои знания и умение программировать. Каждый уровень содержит несколько коротких текстовых лекций, написанных в форме диалога весьма оригинальных персонажей, а также множество задач. Только решив большинство задач уровня вы наберёте достаточное количество баллов (тут они называются “тёмной материей”), чтобы пройти дальше. Каждая задача снабжена списком требований, что облегчает понимание новичкам. Также в курс встроена автоматическая проверка решений и система рекомендаций - этакий “виртуальный наставник”. Вы просто нажимаете на кнопку, и решение отправляется “наставнику”. Через мгновение приходит ответ, в котором вы получаете информацию о правильности решения и список рекомендаций, как исправить ошибки, если таковые есть. Так вот, внимание: таких задач на JavaRush - больше 1200 штук! Их проработка - и есть тот самый ценный первый опыт программирования, которого так не хватает новичкам. Из-за этой особенности преподаватели очных или онлайн-курсов часто рекомендуют JavaRush в качестве источника дополнительных задач. Большинство задач довольно просты, но начиная с середины курса JavaRush предлагает мини-проекты - это большие задачи с пошаговыми инструкциями, которые помогают студентам создавать первые сложные программы. Например, игру 2048 или эмулятор работы ресторана. В зависимости от загруженности студента и его навыков до начала курса, JavaRush можно пройти за время от 3 месяцев до года. По окончании курса можно записаться на онлайн-стажировку, изучить стек технологий Java EE и создать собственный проект. Те, кто ищут курсы очень часто боятся, что в онлайн-среде нет полноценной обратной связи, что делает серьезные проблемы практически неразрешимыми. На JavaRush успешно справляются с этой проблемой с помощью сообщества JavaRush и раздела “Помощь”, где можно задавать вопросы по задачам и теории. Обычно на вопросы студентов отвечают довольно быстро. Делают это либо другие студенты, либо кто-то из команды JavaRush.

Выводы

Выводы делать вам! Независимо ни от чего, желаем вам найти лучшие курсы по программированию в Москве или онлайне!
Что ещё почитать: