Онлайн-школу для мобильных разработчиков.

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

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

Необходимые знания для обучения

Начинаем не с нуля. Программа предназначена для начинающих разработчиков со знанием Java.

Твоё первое приложение

Научим работать с Android-платформой и покажем распространённые архитектурные подходы. Изучим популярные библиотеки, Unit- и UI-тестирование, работу с Google Play Services.

Каждый студент в процессе обучения будет создавать собственное приложение. По окончании каждого учебного блока будет выполнять задания - использовать полученные знания для работы над собственным проектом. Итогом обучения станет рабочее приложение, которое можно смело показывать работодателю или коллегам.

Программа обучения

рассчитана на 9 месяцев. Программа состоит из 6 блоков, каждый блок длится 6 недель. Загрузка студента - 4-6 часов в неделю.

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

Блок 1

Познакомьтесь с платформой Android, Android Studio и системой сборки - Gradle. Узнайте, что такое дебаг и логгирование. Изучите основные сущности Android-приложения и поработайте с Activity и Fragment. Познакомьтесь с элементами интерфейса - View, ViewGroup.

Блок 2

Преподаватели расскажут о работе со списками с помощью RecyclerView и покажут средства для обеспечения многопоточности в Android. Вы изучите работу с сетью с помощью Retrofit2/Okhttp3 и познакомитесь с реактивным программированием, в частности, с RxJava2. Научитесь работать с уведомлениями и Room - ORM-обёрткой над SQLite.

Блок 3

Вы узнаете, как правильно делить приложение на модули. Изучите MVP и MVVM паттерны, а также познакомитесь с CLEAN - чистой архитектурой. Осознаете мощь внедрения зависимостей с помощью библиотек Dagger2 и Toothpick.

Блок 4

Рассмотрите Unit- и UI-тестирование: Mockito, PowerMock, Espresso, Robolectric. Поработаете с ORM-обёртками: Room, GreenDAO, Realm, а также с популярными библиотеками - Picasso, EventBus, ButterKnife и другими стандартами отрасли.

Блок 5

Преподаватели расскажут о Material Design Components. Научитесь работать с анимациями и создавать кастомные элементы интерфейса. Познакомитесь с кастомным LayoutManager.

Блок 6

Вы научитесь работать с кастомными сервисами и периферией: Google Firebase, Google Analytics, Google Maps, Push-уведомлениями, сенсорами и камерой. Научитесь подписывать и публиковать своё приложение в Google Play.

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

Новые знания. Каждый учебный блок содержит видеолекции и live coding-сессии.

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

Общение. Задавайте вопросы и получайте фидбек от преподавателей, общайтесь с другими студентами в чате.

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

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

Вы будете учиться у ведущих разработчиков e-Legion. Знакомьтесь:

Разработчики Азрет Магометов nullpex и Марат Тайчинов много лет создают мобильные продукты для разных сфер бизнеса, которыми ежедневно пользуются миллионы людей. В программе ребята рассказывают не только теорию, но и делятся лайфхаками.

Собеседование в e-Legion

Прособеседуем каждого выпускника. Количество проектов в e-Legion постоянно растёт, поэтому мы всегда в поисках талантливых разработчиков.

Мы организовали уже 6 онлайн и оффлайн школ мобильных разработчиков в Санкт-Петербурге и Казани, выпустили 857 разработчиков и 10 из них работают у нас.

Заканчивайте обучение, получайте сертификат OpenProfession и присылайте ваше резюме HR-менеджеру e-Legion.

Го учиться

- 5-го февраля.

Остались вопросы? Присоединяйся ко - вебинару, где преподаватели и организаторы Академии ответят на все вопросы и подробно расскажут о процессе обучения.

Ежедневно миллионы людей запускают на своих смартфонах мобильные приложения - это целая культура, развивающаяся в бешеном темпе. Разработчики этих приложений - новые романтические герои, люди, способные в одночасье стать миллиардерами, как создатели Instagram, имея под рукой несколько компьютеров и хорошую идею. Их нигде этому не учат, и в этом они чувствуют своё преимущество и уникальность - всё зависит от тебя самого. Ты берёшь и пишешь программу, и если она работает - значит ты всё сделал верно, если нет - твоё место в топе Apple Store займёт кто-то другой. Главное тут - скорость. Совершенно не обязательно пять лет сидеть за партой, чтобы начать программировать. Это как раз тот случай, когда всё зависит от желания и практики. С чего же всё-таки стоит начать разработку мобильных приложений, Look At Me обсудил с опытными девелоперами.

Мэтт Томпсон о том,
что лучшие программисты - самоучки

Мэтт Томпсон

разработчик и дизайнер в Heroku, автор блога про Objective-C и Cocoa NSHipster.com , автор многих Open Source проектов, например AFNetworking, который использовали хотя бы раз все iOS разработчики

Лучший и единственный способ стать мобильным разработчиком - начать разрабатывать! Правда, сейчас в интернете столько вспомогательных ресурсов, что освоить профессию просто, как никогда раньше. Никто, кроме вас самих, не научит вас программировать. Просто прочтите туториал в книге или в Сети и начните создавать интересующее вас приложение, начните с самого простого. Или я бы рекомендовал вообще начать с веб-разработки: HTML и CSS или jQuery, если вас тянет к приключениям.

Некоторые стремятся обязательно пройти школу программирования, но я не раз убеждался, что лучшие разработчики - самоучки, причём с разноплановым бэкграундом. Чёрт возьми, да я сам бросил курс Computer Science в университете, чтобы изучать философию! Хорошим программистом двигает страсть к поиску решений проблемы. Если в вас есть эта страсть - у вас всё получится.

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

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

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

Сергей Шаповалов о базовом образовании
для разработчиков и о том, почему
в США у них больше перспектив

Сергей Шаповалов

разработчик приложений для iOS и OS X, кандидат физико-математических наук, cоздатель приложений Qik, Auto-Assistant, Moow и др., в настоящее время живёт и работает в Кремниевой Долине, США

Современные языки программирования, используемые для написания приложений под мобильные устройства, довольно просты. Освоить азы и написать своё первое приложение за месяц нетрудно. Можно начать штамповать простенькие игрушки, стандартные безликие бизнес-приложения и т. д., даже получать какую-то прибыль с их продаж. Примеров таких разработчиков и таких приложений море: и в App Store, и в Google Play таких программ, наверное, 9 из 10. Но я бы посоветовал начинающему разработчику начать совсем с другого.

Чтобы сделать что-то своё, особое и неповторимое, по-настоящему оригинальное, нужен хороший фундамент. Надо изучать computer science, классические алгоритмы, структуры данных, знать, что такое быстрая сортировка и за какое время она работает, как устроены хэш-таблицы и многое другое. Нужно хорошо усвоить базовые понятия, используемые в программировании на любом языке под любое устройство: процессы и потоки, управление памятью, указатели, параллельные вычисления. Знать назубок C++ (пригодится, и ох как неправы те, кто отправляет его на свалку истории). Понимать и уметь применять на практике design patterns (шаблоны проектирования). Знать, что такое клиент-серверная архитектура и как правильно организовать взаимодействие клиента с сервером в условиях ненадёжного канала связи с помехами. В качестве факультатива почитать что-нибудь про шифрование, защиту данных, сетевые протоколы и ядро Unix.

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

.

«Помимо чисто технической подкованности, для достижения успеха нужно прививать себе хороший вкус»

Третья составляющая - маркетинг. Надо уметь чувствовать рынок, понимать, что окажется востребованным, а что будет никому не нужно. Это совсем не то же самое, что «следить за мировыми тенденциями». Есть изречение великого хоккеиста Уэйна Гретцки, которое очень любил повторять Стив Джобс: «Я мчусь туда, где шайба будет, а не туда, где она была». Вот именно это умение - понять, где на рынке есть новая ниша, которая пока никем не занята, но которую можно заполнить своей разработкой, - в сочетании с первыми двумя требованиями и приводит к успеху.

Нигде в мире нет такого места, где заплатив за курс обучения, вы сможете быть на 100% уверены, что станете успешным создателем мобильных приложений. Есть университеты, где хорошо учат computer science, и в смысле базового образования в России в некоторых местах до сих пор держат планку: МГУ им. Ломоносова, МФТИ, МГТУ им. Баумана, МЭИ и в некоторых других. Классикой жанра в части программирования (конкретно под мобильные платформы) считается курс лекций Стэнфордского университета (США). Конечно, всё то же самое можно узнать из книг и интернета, но, уверен, грамотно построенный курс позволяет достичь цели намного быстрее, спрямляя к ней путь. Но в любом случае самостоятельная работа по самосовершенствованию необходима.

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

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

Куда ходить

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

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

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

Хотите, чтобы ваш ребенок освоил одну из самых востребованных и трендовых профессий IT-сферы и узнал, как сделать собственное приложение? Тогда подарите ему обучение на курсе по созданию мобильных приложений в школе программирования для детей CODDY!

Обучение разработке приложений

Мобильное приложение - это программа, предназначенная для использования на мобильных устройствах. Это программное обеспечение обычно разрабатывается исходя из интересов людей и их потребностей под конкретную платформу (iOS, Android, Windows Phone) на языке высокого уровня и компилируется в собственный код операционной системы, что дает максимальную производительность.

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

Первоначально использование Android было очень ограничено, зато теперь это наиболее общепринятая платформа при разработке мобильных приложений, которая является одним из самых сильных соперников другой популярной ОС – Apple.

Преимущества разработки приложений на- Android

  • Рентабельность. С Android можно создавать сложные приложения при минимальных затратах, поскольку комплект средств разработки для Android находится в свободном доступе.
  • Простая интеграция. Android может быть легко интегрирован в любую систему. Разработчики в полной мере могут использовать свое воображение и креативность для создания привлекательных приложений, которые ранее никогда не использовались другими платформами.
  • Кодирование приложений для Android намного проще, чем кодирование приложений на других платформах. Используемые в Android приложения кодируются в Java.
  • Простое распространение приложений. Помимо Google Play, являющегося официальным рынком приложений, можно пользоваться другими сторонними ресурсами по распространению.
  • Отличная совместимость с устройствами. Приложения для Android беспрепятственно работают на устройствах от различных производителей.

Что даст обучение программированию мобильных приложений?

На курсах ваш ребенок:

  • научится программировать под Android;
  • сможет разработать собственное мобильное приложение для Android;
  • узнает, как создать удобный мобильный интерфейс.
Курс разработки мобильных приложений под Android состоит из 3 модулей.
Первый модуль посвящен основам языка программирования Java, а также изучению средств разработки приложений.
На занятиях первого модуля мы изучим темы:
  • язык программирования Java: его синтаксис и основные конструкции
  • написание и компиляция Java программ на компьютере
  • объектно-ориентированная парадигма в программировании с использованием классов
  • среда разработки Android приложений: Android Studio
На втором модуле дети начнут писать свои собственные приложения, на примере которых мы изучим основные аспекты Android-разработки, такие как:
  • структура Andoid приложения
  • работа с ресурсами
  • создание XML файлов разметки
  • понятие Activity и работа с экранами
Третий модуль посвящен разработке индивидуальных проектов детей. На занятиях мы будем проходить:
  • обработку событий, происходящих в программе
  • динамическое создание и управление элементами UI
  • работу с многопоточностью
  • работу с интернетом в приложении

С учетом того, что платформа Android развивается крайне активно, эти знания дадут возможность ребенку начать зарабатывать уже сейчас, а в будущем найти перспективную работу. Он получит практические навыки создания приложений и будет эффективно использовать возможности платформы и ресурсов Android сразу же по окончании обучения на первом модуле.

Как мы понимаем, что учащийся освоил программу?

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

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

Введение в 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

Курс для начинающих разработчиков, тех, кто хочет быстро освоить основы объектно-ориентированного программирования (ООП) и научиться создавать собственные проекты. Главной особенностью курса является сочетание изучения теоретических основ языка 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. Разбор домашнего задания.

Java Core. Продвинутый уровень. 1 месяц.

Курс укрепит знания в Java, научит применять продвинутые объектно-ориентированные концепции, характерные для языка. Студенты научатся создавать графические пользовательские интерфейсы, работать с потоками ввода/вывода, исключениями, многопоточностью и сетями. В практической части под руководством преподавателя «с нуля» разработают клиент-серверную программу – сетевой чат.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Java Core. Профессиональный уровень. 1 месяц.
Программирование на Java SE 8,9

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Android. Базовый уровень. 1 месяц.
Разработка под мобильные устройства на Android Studio v 3

Курс дает теоретическую базу и практический старт для Android-разработчиков: учит работать в IDE Android Studio, грамотно проектировать и реализовать приложения, учитывая форм-фактор устройства. Программа курса включает разработку погодного приложения, получающего актуальную информацию из Интернета.

Урок 1. Android. Первое приложение, пользовательские элементы

Знакомство с Android. Перспективы. Как работает Android. Создание проекта. Activity.

Урок 2. Макеты приложения. Отладка

Урок 3. Жизненный цикл Activity. Сохранение состояния

Сохранение и восстановление переменных Activity. Паттерн «Одиночка». Приложение с двумя Activity. Запуск Activity с помощью Intent и OnClickListener. Передача параметров.

Урок 4. Компоненты приложения. Интенты

Стиль кодирования. Горячие клавиши. Отладка в Android Studio. Ресурсы.

Урок 5. Фрагменты

Фрагменты, их жизненный цикл, взаимодействие с activity. Стек обратного вызова. Менеджер фрагментов. Создание разных интерфейсов с использованием фрагментов.

Урок 6. Списковые элементы пользовательского интерфейса

Класс View. Макет. Контейнеры. Разметка. Обзор элементов и их свойств. Навигация.

Урок 7. Элементы материального дизайна

Обзор ListView и RecyclerView. Принципы работы. Переопределение Adapter. Использование RecyclerView.ViewHolder, RecyclerView.Adapter, RecyclerView.LayoutManager.

Урок 8. Выход в интернет

Элементы материального дизайна. CardView. TextInputLayout. CoordinatorLayout. ConstraintLayout. SnackBar.

Android. Продвинутый уровень. 1 месяц.
Разработка мобильных приложений на Android Studio v3

Продолжая разработку погодного приложения, студенты научатся использовать системные службы Android SDK, поставщики контента, базу данных и другие аппаратные и программные возможности платформы. Получат опыт создания интерфейса приложения в стиле Material Design. Узнают о способах распространения программного продукта.

Урок 1. Материальный дизайн. Меню. Навигация по приложению

Материальный дизайн. Menu, AppBar, ActionBar и ToolBar. Navigation Drawer. Темы, атрибуты тем, свои стили.

Урок 2. Жизненный цикл View. Создание View. Вызов телефонного номера. Датчики

Жизненный цикл View. Создание Custom View на конкретном примере. Краткий обзор телефонии, работа с сенсорами.

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

Многопоточность в Android. Thread, AsyncTask на примере загрузки http-страницы. Handler. Альтернативы AsyncTask. Service. Методы разгрузки главного потока. Синхронное и асинхронное выполнение.

Урок 4. Интернет. Сохранение настроек и состояний приложения

HTTP-протокол. HTTP-запросы с помощью HttpUrlConnection. OkHttp. Shared preferences.

Урок 5. Работа с Интернетом через Retrofit. Библиотеки Gson и Picasso

Продвинутая работа с сетью: Retrofit, парсинг json, библиотеки Gson и Picasso. Примеры работы с сетью и открытыми API (погодный сервер).

Урок 6. Базы данных. Принцип работы Content Provider

База данных SQLite: создание, обновление и подключение. Демонстрация работы с Content Provider.

Урок 7. Широковещательные сообщения и Intent Filter. Push-уведомления

Broadcast Receiver и Intent Filter. Push-уведомления. Пример с определением, открыто ли приложение.

Урок 8. Геолокация и GoogleMaps API. Публикация приложения на Google Play

Позиционирование и GoogleMaps API. Публикация приложения в Play Store. Как загружать приложения в маркет. Версии приложения, локализация и другие атрибуты приложения, необходимые для распространения.

Android. Популярные библиотеки. 1 месяц.
Профессиональная разработка под Android

Курс учит создавать современные и максимально отказоустойчивые клиент-серверные приложения. Разбирает на практике популярные программные решения и способы тестирования продукта. Студенты завершат разработку своего проекта – клиента для Instagram.

Урок 1. Понятие об архитектуре приложения

Шаблон проектирования MVP; библиотека Mosby; как можно и нужно проектировать архитектуру приложения.

Урок 2. Реактивное программирование

Реактивное программирование, реактивная лапша; введение в rxjava: как красиво и без головной боли работать с асинхронными задачами?

Урок 3. Лямбда-выражения. Rxjava 2

lambda expression, rxjava – продолжение – версия 2.

Урок 4. Взаимодействие с сервером

Варианты реализации взаимодействия с сервером; использование библиотеки Retrofit; преобразование серверных данных в текст; загрузка картинки из Интернета с использованием Picasso.

Урок 5. Android. Популярные библиотеки. ORM и хранение данных

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

Урок 6. Dependency Injection

Коротко о Dependency Injection; использование библиотеки dagger2: почему круто использовать эти инструменты?

Урок 7. Тестирование кода

Покрытие тестами в целом; почему это важно? Что, как, чем и зачем нужно тестировать? В каком случае это бессмысленно?

Обсудим эффективный набор инструментов, которые можно использовать в проекте; зачем это надо и что улучшает каждый в отдельности? Использование и принцип работы инструмента Proguard, сервиса Crashlytics, библиотеки Leakcanary; некоторые решения, которые помогут улучшить приложение.

Урок 9. Консультация с преподавателем.

Урок 10. Консультация с преподавателем. Сдача проекта

На новом уровне комплекса курсов по базам данных студенты получат исчерпывающую информацию о долговременных хранилищах. Плотно поработают с MySQL – системой управления БД, зарекомендовавшей себя на популярных крупных проектах. Пошагово разбирается проектирование баз данных и работа с ними. Курс знакомит и с альтернативными БД: MongoDB, Redis, ElasticSearch и ClickHouse.

Урок 1. Быстрый старт

1.1. Типы баз данных.
1.2. Основы реляционных баз данных.
1.3. MySQL и клиенты.
1.4. Управление базами данных.
1.5. Разбор домашнего задания.

Урок 2. Язык запросов SQL

2.1. Введение в SQL.
2.2. Числовые и строковые типы данных.
2.3. Календарные типы данных и множества.
2.4. Индексы.
2.5. CRUD-операции.
2.6. Разбор домашнего задания.

Урок 3. Операторы, фильтрация, сортировка и ограничение

3.1. Операторы.
3.2. Условная выборка.
3.3. Сортировка и ограничения.
3.4. Предопределенные функции.
3.5. Предопределенные функции (продолжение).
3.6. Разбор домашнего задания.

Урок 4. Агрегация данных

4.1. Группировка данных.
4.2. Агрегационные функции.
4.3. Специальные возможности GROUP BY.
4.4. Разбор домашнего задания.

Урок 5. Сложные запросы

5.1. Типы многотабличных запросов и UNION
5.2. Вложенные запросы
5.3. JOIN-объединения таблиц
5.4. Внешние ключи и ссылочная целостность
5.5. Разбор домашнего задания

Урок 6. Транзакции, переменные, представления

6.1. Транзакции.
6.2. Внутренняя реализация транзакций.
6.3. Переменные, временные таблицы и динамические запросы.
6.4. Представления.
6.5. Разбор домашнего задания.

Урок 7. Администрирование MySQL

7.1. Администрирование MySQL.
7.2. Администрирование MySQL (продолжение).
7.3. Права пользователей.
7.4. Репликация.
7.5. Репликация (продолжение).
7.6. Разбор домашнего задания.

Урок 9. Оптимизация запросов

9.1. Типы таблиц.
9.2. Подробнее об индексах.
9.3. Оптимизация запросов.
9.4. Разбор домашнего задания.

Урок 10. NoSQL

10.1. NoSQL-базы данных.
10.2. Key-Value хранилища Redis.
10.3. Документ ориентированная СУБД MongoDB.
10.4. СУБД Полнотекстового поиска ElasticSearch.
10.5. Колоночная СУБД ClickHouse.
10.6. Разбор домашнего задания.

Стажировка в 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

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

Введение в 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

Курс для начинающих разработчиков, тех, кто хочет быстро освоить основы объектно-ориентированного программирования (ООП) и научиться создавать собственные проекты. Главной особенностью курса является сочетание изучения теоретических основ языка 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. Разбор домашнего задания.

Java Core. Продвинутый уровень. 1 месяц.

Курс укрепит знания в Java, научит применять продвинутые объектно-ориентированные концепции, характерные для языка. Студенты научатся создавать графические пользовательские интерфейсы, работать с потоками ввода/вывода, исключениями, многопоточностью и сетями. В практической части под руководством преподавателя «с нуля» разработают клиент-серверную программу – сетевой чат.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Java Core. Профессиональный уровень. 1 месяц.
Программирование на Java SE 8,9

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Android. Базовый уровень. 1 месяц.
Разработка под мобильные устройства на Android Studio v 3

Курс дает теоретическую базу и практический старт для Android-разработчиков: учит работать в IDE Android Studio, грамотно проектировать и реализовать приложения, учитывая форм-фактор устройства. Программа курса включает разработку погодного приложения, получающего актуальную информацию из Интернета.

Урок 1. Android. Первое приложение, пользовательские элементы

Знакомство с Android. Перспективы. Как работает Android. Создание проекта. Activity.

Урок 2. Макеты приложения. Отладка

Урок 3. Жизненный цикл Activity. Сохранение состояния

Сохранение и восстановление переменных Activity. Паттерн «Одиночка». Приложение с двумя Activity. Запуск Activity с помощью Intent и OnClickListener. Передача параметров.

Урок 4. Компоненты приложения. Интенты

Стиль кодирования. Горячие клавиши. Отладка в Android Studio. Ресурсы.

Урок 5. Фрагменты

Фрагменты, их жизненный цикл, взаимодействие с activity. Стек обратного вызова. Менеджер фрагментов. Создание разных интерфейсов с использованием фрагментов.

Урок 6. Списковые элементы пользовательского интерфейса

Класс View. Макет. Контейнеры. Разметка. Обзор элементов и их свойств. Навигация.

Урок 7. Элементы материального дизайна

Обзор ListView и RecyclerView. Принципы работы. Переопределение Adapter. Использование RecyclerView.ViewHolder, RecyclerView.Adapter, RecyclerView.LayoutManager.

Урок 8. Выход в интернет

Элементы материального дизайна. CardView. TextInputLayout. CoordinatorLayout. ConstraintLayout. SnackBar.

Android. Продвинутый уровень. 1 месяц.
Разработка мобильных приложений на Android Studio v3

Продолжая разработку погодного приложения, студенты научатся использовать системные службы Android SDK, поставщики контента, базу данных и другие аппаратные и программные возможности платформы. Получат опыт создания интерфейса приложения в стиле Material Design. Узнают о способах распространения программного продукта.

Урок 1. Материальный дизайн. Меню. Навигация по приложению

Материальный дизайн. Menu, AppBar, ActionBar и ToolBar. Navigation Drawer. Темы, атрибуты тем, свои стили.

Урок 2. Жизненный цикл View. Создание View. Вызов телефонного номера. Датчики

Жизненный цикл View. Создание Custom View на конкретном примере. Краткий обзор телефонии, работа с сенсорами.

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

Многопоточность в Android. Thread, AsyncTask на примере загрузки http-страницы. Handler. Альтернативы AsyncTask. Service. Методы разгрузки главного потока. Синхронное и асинхронное выполнение.

Урок 4. Интернет. Сохранение настроек и состояний приложения

HTTP-протокол. HTTP-запросы с помощью HttpUrlConnection. OkHttp. Shared preferences.

Урок 5. Работа с Интернетом через Retrofit. Библиотеки Gson и Picasso

Продвинутая работа с сетью: Retrofit, парсинг json, библиотеки Gson и Picasso. Примеры работы с сетью и открытыми API (погодный сервер).

Урок 6. Базы данных. Принцип работы Content Provider

База данных SQLite: создание, обновление и подключение. Демонстрация работы с Content Provider.

Урок 7. Широковещательные сообщения и Intent Filter. Push-уведомления

Broadcast Receiver и Intent Filter. Push-уведомления. Пример с определением, открыто ли приложение.

Урок 8. Геолокация и GoogleMaps API. Публикация приложения на Google Play

Позиционирование и GoogleMaps API. Публикация приложения в Play Store. Как загружать приложения в маркет. Версии приложения, локализация и другие атрибуты приложения, необходимые для распространения.

Android. Популярные библиотеки. 1 месяц.
Профессиональная разработка под Android

Курс учит создавать современные и максимально отказоустойчивые клиент-серверные приложения. Разбирает на практике популярные программные решения и способы тестирования продукта. Студенты завершат разработку своего проекта – клиента для Instagram.

Урок 1. Понятие об архитектуре приложения

Шаблон проектирования MVP; библиотека Mosby; как можно и нужно проектировать архитектуру приложения.

Урок 2. Реактивное программирование

Реактивное программирование, реактивная лапша; введение в rxjava: как красиво и без головной боли работать с асинхронными задачами?

Урок 3. Лямбда-выражения. Rxjava 2

lambda expression, rxjava – продолжение – версия 2.

Урок 4. Взаимодействие с сервером

Варианты реализации взаимодействия с сервером; использование библиотеки Retrofit; преобразование серверных данных в текст; загрузка картинки из Интернета с использованием Picasso.

Урок 5. Android. Популярные библиотеки. ORM и хранение данных

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

Урок 6. Dependency Injection

Коротко о Dependency Injection; использование библиотеки dagger2: почему круто использовать эти инструменты?

Урок 7. Тестирование кода

Покрытие тестами в целом; почему это важно? Что, как, чем и зачем нужно тестировать? В каком случае это бессмысленно?

Обсудим эффективный набор инструментов, которые можно использовать в проекте; зачем это надо и что улучшает каждый в отдельности? Использование и принцип работы инструмента Proguard, сервиса Crashlytics, библиотеки Leakcanary; некоторые решения, которые помогут улучшить приложение.

Урок 9. Консультация с преподавателем.

Урок 10. Консультация с преподавателем. Сдача проекта

На новом уровне комплекса курсов по базам данных студенты получат исчерпывающую информацию о долговременных хранилищах. Плотно поработают с MySQL – системой управления БД, зарекомендовавшей себя на популярных крупных проектах. Пошагово разбирается проектирование баз данных и работа с ними. Курс знакомит и с альтернативными БД: MongoDB, Redis, ElasticSearch и ClickHouse.

Урок 1. Быстрый старт

1.1. Типы баз данных.
1.2. Основы реляционных баз данных.
1.3. MySQL и клиенты.
1.4. Управление базами данных.
1.5. Разбор домашнего задания.

Урок 2. Язык запросов SQL

2.1. Введение в SQL.
2.2. Числовые и строковые типы данных.
2.3. Календарные типы данных и множества.
2.4. Индексы.
2.5. CRUD-операции.
2.6. Разбор домашнего задания.

Урок 3. Операторы, фильтрация, сортировка и ограничение

3.1. Операторы.
3.2. Условная выборка.
3.3. Сортировка и ограничения.
3.4. Предопределенные функции.
3.5. Предопределенные функции (продолжение).
3.6. Разбор домашнего задания.

Урок 4. Агрегация данных

4.1. Группировка данных.
4.2. Агрегационные функции.
4.3. Специальные возможности GROUP BY.
4.4. Разбор домашнего задания.

Урок 5. Сложные запросы

5.1. Типы многотабличных запросов и UNION
5.2. Вложенные запросы
5.3. JOIN-объединения таблиц
5.4. Внешние ключи и ссылочная целостность
5.5. Разбор домашнего задания

Урок 6. Транзакции, переменные, представления

6.1. Транзакции.
6.2. Внутренняя реализация транзакций.
6.3. Переменные, временные таблицы и динамические запросы.
6.4. Представления.
6.5. Разбор домашнего задания.

Урок 7. Администрирование MySQL

7.1. Администрирование MySQL.
7.2. Администрирование MySQL (продолжение).
7.3. Права пользователей.
7.4. Репликация.
7.5. Репликация (продолжение).
7.6. Разбор домашнего задания.

Урок 9. Оптимизация запросов

9.1. Типы таблиц.
9.2. Подробнее об индексах.
9.3. Оптимизация запросов.
9.4. Разбор домашнего задания.

Урок 10. NoSQL

10.1. NoSQL-базы данных.
10.2. Key-Value хранилища Redis.
10.3. Документ ориентированная СУБД MongoDB.
10.4. СУБД Полнотекстового поиска ElasticSearch.
10.5. Колоночная СУБД ClickHouse.
10.6. Разбор домашнего задания.

Стажировка в 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

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