Сайт о телевидении

Сайт о телевидении

» » Обучение программированию на Java. Разработчик Java. Базовый уровень Курсы по java программированию 1 год

Обучение программированию на Java. Разработчик Java. Базовый уровень Курсы по java программированию 1 год

Я собираюсь переучить на 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 и сразу закрыл
Если технология используемая для создания клиента перевесила для вас все преимущества проекта, то может быть не очень то и хотелось?
Кто хочет - ищет возможность (и я ее предоставил), кто не хочет - ищет причину.

Сергей
Торчиков

Программа.

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

Команда OTUS

Результат.

Николай
Добровольский



Антон
Матвеев

Алексей
Маянов

Павел
Стрекалов

Михаил
Пыльцин

Daniil
Klipov

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

Сергей
Новожилов

Давно искал подобный курс, рассчитанный не на новичков. Было очень интересно и полезно. Особенно хочу отметить преподавателей. Не каждый, кто даже очень хорошо знает предмет может доступно рассказать и объяснить. У Виталия и Дмитрия это хорошо получается. Еще большой плюс - это разбор домашних заданий преподавателем, очень полезно получить комментарии, рекомендации. Вообщем, 5 баллов из 5.

Ольга
Штыка

В целом курс очень понравился. Нетривиальные домашние задания, понятные и доступные лекции преподавателей. Сами темы занятий актуальные, порой не задумываешься о их значении в текущей разработке, но при обсуждении становится понятна степень необходимости их понимания. Домашние задания проверяют относительно быстро, я сдавала на проверку в выходные и в течение недели их проверяли с подробными комментариями. Единственный минус - это щекотливая ситуация с оплатой. Я платила отдельно за каждый месяц. Все домашние сдала вовремя. На проект, сразу понимала, что физически не хватает времени, поэтому отказалась от его выполнения. И получается, что оплата последнего месяца (в котором нет домашек) предполагает лишь выдачу сертификата. 10000 за сертификат? Не комильфо.

Алексей
Потехин

С апреля 2018 прошел почти год, а кнопку увидел только сейчас).
Если коротко, курс шикарный!

Понравилась манера подачи материала, подготовленность преподавателей к занятию, если возникали вопросы в ходе занятия отвечали на них сразу же, даже была возможность спросить голосом. Нравились домашние задания, по началу это были дз направленные на понимание языка или технологии(web, jdbc). Потом начались повеселее, свой junit-framework например. Очень понравились домашние задания по design pattern и json-сериализатор. Домашки проверяли часто, советы и подсказки куда копать были всегда по делу. Иногда было видно, что проверяющий старается намекнуть на ошибку по разному. Т.е. не было такого, что исправь здесь и я приму. Так же проверяющие могли дать задание с + домашней работе. Правда я помню отказался, уж очень хотел закончить все, а по факту был с долгами.

Не понравилась платформа, через которую проходил вебинар ее меняли несколько раз - лагает, зависает, интернет обрывается, ужас одним словом). Надеюсь сейчас стало лучше. Некоторые темы, которые рассматривались были очень сильно скомканы и скакали по ним галопом. Есть объективно большие темы в java и в рамках 1-2 занятий их не объяснишь(Темы связанные с бд).

Я бы еще пошел, пусть меня научат, но готовлюсь к OCA/OCP
Всем удачи!

Юрий
Суворов

В апреле стукнул год как я занимаюсь программированием на java, имея в виду начало прям с базового курса. Резюме в плане java-экспиренса не блещет, но независимые эксперты, дающие тестовые задания и проверяющие код говорят, что пишу аки миддл, и что джуниору нужно полгода работы для написания "так". На самом деле курсы OTUS, это мощный бустер в практике написания. Имея полгода небольшого опыта в java, взял сразу два курса здесь на OTUS, это "Разработчик Java" и "Разработчик Java Enterprise". Выполненные за последующие полгода(на самом деле заметно меньше) 28 домашних заданий с ревью преподователей(на самом деле специальных проверяющих) определенно не прошли даром. Такое количество домашних заданий это конечно невероятный time-kill, поэтому сильно думайте прежде чем взять два курса сразу. На данном курсе "Разработчик Java" у вас будет "всего" 16 разномастных заданий, но и их вывозят далеко не все. В общем будет интересно. Чего не будет так это принуждений в виде тестирования после каждой пройденной темы, хотя незнаю, может администрация и заведет(завела). А также не будет принуждения к написанию проектной работы по окончанию курса, и, что хуже, те кто решатся на проект останутся с ним один на один, но с возможностью задавать вопросы. А вот возможности получить опыт промышленной разработки в рамках проектной работы не предоставится, поэтому получайте его на решении д.з..

Дмитрий
Олейник

В курс включены актуальные на сегодняшний день технологии. Домашние задания, закрепляющие лекционный материал, максимально приближены к боевым задачам. Возникает чувство, что ты создаешь что-то действительно ценное и не простое. Итоговый проект дает отличную возможность применить новые знания и получить ценные рекомендации от преподавателей по дальнейшему пути развития. Благодарю всех преподавателей за профессионализм и интересные вебинары!

Александр
Иванов

Только положительные впечатления.
Изначально думал, что будет не удобно заниматься в связи с большой разницей во времени(+7 от Мск), но как оказалось - зря: в будний день смотришь запись вебинара, а в выходной участвуешь онлайн.
Получил много полезной информации и "фишек", которые уже пригодились в работе. Нельзя не отметить взаимодействие с преподавателями и проверяющими в процессе работы над ДЗ. Это особенно полезно, если ранее не было подобного опыта: так сказать имитация реальной работы.

Спасибо преподавателям и всей команде Otus:)

Роман
Мусий

На мой взгляд формат курса очень хорошо подходит тем, кто хочет расширить свой кругозор и получить представление о состоянии дел в Java разработке. Например, такой курс может быть полезен как интенсив для быстрого погружения в Java разработку, либо для более опытных разработчиков, которые изучают Java и которые хотят получить новые знания. Живое общение с возможностью задать свой вопрос и получить ответ - то что существенно выделяет формат курса среди традиционных MOOC. Множество практических занятий с обратной связью хорошо закрепляет пройденный материал. Хотел бы отметить очень хорошую подготовку к занятиям Сергея Петрелевича. Материал лекций хорошо структурирован и хорошо подаётся. Так же было несколько удачных лекций от Вадима. От лекций Виталия Куценко ожидал наверно больше - кажется грамотный преподаватель, но материал занятий показался недостаточно проработанным.

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

Пожелание к преподавателям. Лекции я обычно пересматривал, иногда по 2-3 раза. Как правило, я это делаю на перемотке 1.25, 1.5, 1.75. Скорость перемотки 1.75 я мог ставить только у Сергея - речь грамотная, размеренная, не прерывистая - отдельное спасибо ему за это.

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

Сергей
Торчиков

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

Программа.

Изначально конечно в голову закрались сомнения, а есть ли смысл слушать лекции по программированию, которые затрагивают самые азы (типы данных, например), но как говориться повторение – мать учения, решил слушать, и не пожалел. Разбирали действительно все детально и домашние задания очень интересны, одно задание по замеру работы разных сборщиков мусора чего стоит. Приятно, что в программу включены Hibernate и Spring, хоть и основы, но этого действительно достаточно, чтобы понимать в какую сторону копать в случае чего. Достаточно было и сносок на дополнительный материал расширяющий тему урока.

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

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

Команда OTUS

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

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

Второй минус даже вовсе и не минус, а скорее неудобство – один преподаватель. Будущим группам повезло, у них, насколько я знаю, будет два преподавателя. В основном это относиться к проверке домашнего задания, на проверку уделялось 48 часов и, если есть замечания к решению, есть шанс не сдать в срок, т.к. исправленную версию вновь отправляешь на проверку. Хотя к этому относились также лояльно и никто не ругался, тут скорее проблема в моем перфекционизме, нужно все сдать в срок

Результат.

Через несколько дней я выхожу на работу в Москве именно в ту компанию, где хотел работать. Все интервью организовывали сотрудники Otus, так что результатом я конечно доволен На собеседованиях кстати пригодились те самые знания о сборщиках мусора, о которых я говорил ранее. Так что хотелось бы поблагодарить еще раз всю команду сайт за профессионализм и работу, а также всех ребят с курса за интересные обсуждения и за то, что делились своими знаниями. Я продолжу следить за курсами и если будет что-то интересное для меня, обязательно приду снова!

Николай
Добровольский

На курс записался в большей степени потому, что преподавателем был объявлен Виталий Чибриков. Знал преподавателя по другим курсам, плюс ранее прослушаны записи лекций в МГТУ им. Баумана в рамках проекта ТЕХНОПАРК (Москва). Поэтому сразу решил записаться в группу.

Курс очень понравился. Впечатление очень положительное. Был освящен достаточно большой список тем. Некоторые моменты до курса были не очень хорошо знакомы (например тема про GC - были теоретические знания, но без практических навыков).

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

Курс помог не только систематизировать уже имеющиеся знания, а также приобрести новые. Особенно понравились темы про GC, JVM, многопоточность в Java, межпроцессное взаимодействие в Java.
После окончания курса гарантированы приглашения на собеседования, так что это огромный плюс)
На мой взгляд было бы здорово в рамках курса более подробно рассмотреть Spring, но основным направлением курса изначально было заявлено Java Core, поэтому за этой темой возможно стоит записываться на курс по Java EE.

Антон
Матвеев

Курс OTUS "Разработчик Java" был очень полезен для меня, не имевшего ранее опыта коммерческой Java-разработки. Именно он помог собрать воедино знания, полученные посредством самообучения и других курсов. В отличие от других курсов был упор на формирование понимания процесса: как работает та или иная технология и какие задачи решает, а не на общее описание ее возможностей. Домашние задания подобраны таким образом, что заставляют проявить творчество и перечитать немало полезной информации. Особенно интересными были задания: написать json сериализатор, упрощенный тестовый фреймворк, свою маленькую orm, сервер обмена сообщения между бд и фронтэндами. Хотя домашние задания, может быть за исключением первых, совсем не укладывались в заявленное время на домашнюю работу по 4 часа в неделю - для того чтобы успеть сделать последние 2 задания в курсе мне пришлось брать отпуск.

Конечно основную ценность курс представляет из-за преподавателя. Очень качественное объяснение: не помню, чтобы хоть какой-то заданный по теме вопрос остался без ответа, также очень приятно и полезно было получать от Виталия не только информацию о недоработках в ДЗ, но и предложения об их возможной доработке уже за рамками задания.

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

Алексей
Маянов

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

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

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

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

Павел
Стрекалов

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

Как недостаток (или особенность) хотел бы отметить то, что чувствовалась изолированность от группы. При выполнении заданий казалось, что ты один на один с преподавателем (чат в slack не очень спасал в этом плане). Мне кажется, что общение между студентами через code review дало бы хороший эффект. Сначала преподаватель проверяет задание, принимает его, а потом студент должен еще посмотреть, выдать комментарии/замечания по двум-трем выполненным и принятым работам.
Также Виталий упоминал, что хорошо бы делать "выставку интересных работ" - тоже, думаю, что стоит, но не понятно в каком формате, т.к. набираются долги за всё время курса и некоторые задания сдаются в конце.

Хорошо было бы добавить блок теоретических вопросов по каждой теме (но об этом Виталий тоже уже говорил). Работу над проектом начинать в середине курса (месяца с третьего), а не в конце.

Михаил
Пыльцин

Здравствуйте. Я уже много раз благодарил за курсы, но хочу это сделать еще раз - многие курсы, что сейчас есть в рунете, довольно поверхностны и дают только основы. Ваши курсы как раз дают более глубокие знания по программированию. Сам курс очень интересен, но мне не хватило домашних заданий - нет, сами задания интересны и их довольно много, особенно последнее, но, к сожалению, они не охватывают весь материал. Виталий - высококлассный специалист и преподаватель, думаю, ради него многие и записались на курсы. Честно, устроенные собеседования, хоть и были объявлены, стали сюрпризом, так как не верилось, что такое возможно. Часть собеседований и выполнение тестового задания сорвалось по личным обстоятельствам. Сейчас прохожу несколько финальных собеседований - есть маленький шанс получить первую работу в Москве в сфере программирования. Хотелось бы более углубленные темы по Spring/Spring MVC/Spring Boot/Hibernate/Сокеты/Обмен данных по сети или интернету/более больше данных по ConcurrentCollection. А так - буду советовать Ваши курсы. Очень хочется отдельный курс по тем темам, что написал выше + Java ee (в части, которая наиболее востребована сейчас работодателями).

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

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

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

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

Для начала рассмотрим платные курсы 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.

Выводы

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

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

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

Илья Бакланов

Во-первых, огромной спасибо за курс! Супер домашняя атмосфера! Мы занимались в небольшой группе, всего 5 человек, попались очень разговорчивые люди с разными интересами. Хорошо тем, что наш преподаватель уделял много времени каждому студенту, никаких размытых ответов и поверхностных объяснений. Да, даже я все понял. Уровень у меня был нулевой. Курс построен грамотно, Алексей не давал возможности забегать вперед, все step by step и после занятий еще отвечал на все жизненные вопросы по HTML и разработке сайтов в целом. Сразу видно, что преподаватель очень любит свое дело. Огромное спасибо!

Денис Воробьев

Я пришел на курсы с практически нулевыми знаниями по HTML и CSS. Очень понравилось то, что на протяжении каждого из курсов, а я прошел HTML первый уровень и HTML второй уровень, дается много практических заданий и разрабатываются реальные сайты (на каждом уровне свой). Поэтому понять, к чему вся теория и как ее использовать совсем не сложно. После окончания второго уровня у меня уже получился хороший современный сайт, чего от себя не ожидал). Решил продолжить обучение, хочу освоить JavaScript, без него, как получилось, дальше никак).

Анна Старик

Галкина Мария

Прошла 1 курс обучения HTML и перешла на 2 ступень. Курс построен логично, задания основаны на пройденном материале и нет ничего невыполнимого. Преподаватель Алексей просвещал во всех интересующих вопросах, чувствуется хорошая школа, большой опыт, а главное - интерес к своему делу. Материал преподносился очень доступным языком. Мое основное образование не в технической сфере, но при обучении непреодолимых трудностей не возникало. Преимуществом так же является то, что курс не является ни затянутым, ни чрезмерно сжатым и поверхностным.

Болдинова Елена

Мой сын прошёл 1 уровень курса JavaScript у преподавателя Вячеслава Жукова. Во-первых, хочу выразить благодарность этому педагогу! После занятий у Вячеслава, я увидела, как у моего сына проснулся неподдельный интерес к программированию и появилась мотивация на будущее образование. Теперь компьютер для нас – это не просто инструмент для компьютерных игр, а возможность научиться новым «фишкам». Во-вторых, очень удобно выбраны дни обучения – три дня в неделю в будни или полный день в воскресенье. Мы остановились на втором вариант, потому что в будни затруднительно совмещать учёбу в школе, дополнительные уроки, спортивные секции и курсы. На занятиях сын получал теоретические знания, которые сразу же закреплялись практикой и обязательно домашнее задание, что, я считаю, важным в процессе обучения. После занятий педагог обязательно присылал записи, так что в процессе выполнения домашнего задания всегда можно было вернуться к сложному вопросу и восстановить пробел. Спасибо за эту уникальную возможность. Мы уже поспешили записаться на 2ой уровень курса.

Винтоняк Татьяна

Добрый день! Хочу выразить благодарность Соколову Алексею за великолепное преподавание курса HTML и CSS уровень 1. Все было рассказано доступным языком и в интересной форме, время пробегало просто не заметно. Очень уютные аудитории и группа из 4 человек, Алексей всем уделял время и с каждым разбирал ошибки. Записалась на 2 уровень - буду с нетерпением ждать продолжения занятий с Алексеем. Спасибо огромное!!!

Чернов Владимир

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

Удобное месторасположение неподалеку от Ленинградского вокзала с отличной транспортной доступностью: как общественным транспортом (три станции метро площади трех вокзалов + неподалеку Сухаревская + неподалеку Красные ворота) и наличием постоянно свободных парковок на улице Большая Спасская.