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

Ежедневно миллионы людей запускают на своих смартфонах мобильные приложения - это целая культура, развивающаяся в бешеном темпе. Разработчики этих приложений - новые романтические герои, люди, способные в одночасье стать миллиардерами, как создатели 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 это чувствуется, как ни в одной другой индустрии. В наши дни зачастую можно жить где угодно, и, не выходя из своего дома, работать на заказчика с другого конца света. Для независимого разработчика-одиночки, фрилансера или создателя собственных приложений в этом смысле никаких ограничений нет.

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

Куда ходить

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

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

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

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

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

Множество компьютерных программ перебазировалось на мобильные устройства и успешно там функционирует. И в будущем их «мобилизация» только усилится.

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

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

Особенности профессии

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

  • подготовительный период в создании приложения — определение конкретных требований заказчика в виде технического задания;
  • создание мобильного приложения, сочетающего в себе такие обязательные качества, как безотказная работа на одной из мобильных операционных платформ (Apple iOS, Google Android, Windows Mobile), удобный пользовательский интерфейс, многофункциональность, прибыльность для заказчика.

Плюсы и минусы профессии

Плюсы

  1. Высокооплачиваемая, востребованная профессия.
  2. Чёткость стандартов и гайдлайнов значительно облегчают дизайнерскую часть работы мобильного разработчика. Гайдлайн — это подробные описания элементов в мобильных приложениях, причём для каждой платформы они свои.
  3. Вложение ресурсов для мобильной разработки невелико.

Минусы

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

Место работы

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

Важные качества

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

Необходимые личные качества:

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

Профессиональные навыки и знания

знание языков программирования:

  • Apple iOS - Objectiv-C, Swift
  • Google Android - Java, Scala
  • Windows Mobile - C#, VB.NET;
  • умение создавать приложения для Android, iOS, Windows Mobile;
  • отладка приложений;
  • знание основ программирования под iPhone и iPad;
  • знание новых библиотек технологий
  • для iOS — Siri, для Android — «OK, Google»;
  • работа с базой данных SQLite.

Обучение на Мобильного разработчика

Международное учебное заведение, проводит обучение . Работает с 1999 года. 42 филиала в 16 странах мира. Крупнейший авторизованный учебный центр Microsoft, Cisco, Autodesk. Студенты получают международные сертификаты и международный диплом. Главная цель - трудоустройство каждого выпускника.

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

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

Курс предназначен для тех, кто не имеет опыта работы в разработке мобильных приложений в Android Studio, и посвящен изучению современных способов разработки мобильных приложений для операционной системы Android. У Вас есть шанс научиться разрабатывать мобильные приложения с первого занятия. Запускать приложение на своем телефоне или на виртуальном эмуляторе. Сделайте шаг в мир мобильной разработки!

О курсе

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

После прохождения курса слушатели смогут создавать приложения для операционной системы Android; управлять навигацией между различными активностями приложения; использовать фрагменты и т.д.

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

Формат

В состав курса входят видеолекции, видеопрезентации, интерактивные формы обучения в формате видеоконференций. Длительность курса составляет 10 недель. Трудоемкость курса – 3 зачетные единицы. Средняя недельная нагрузка на обучающегося – 10 часов.

Информационные ресурсы

Требования

Для успешного освоения курса необходимы соедующие знания, умения и навыки:

Знания:

на уровне представлений:

  • Сущность мобильной разработки;
  • Стадии цифровой революции, прорывные технологии в области цифровизации, мобильная разработка;
  • Сущность и понятие системы мобильной разработки;
  • Существующие платформы в мобильной среде;

Умения:

  • теоретические:
    • Оперировать понятийным аппаратом в сфере программирования;
    • Определять перспективные рыночные ниши для реализации проектов мобильной разработки;
  • практические:
    • Способность анализировать перспективные рыночные ниши для реализации проектов в области мобильной разработки;
    • Способность самостоятельно разрабатывать проектные решения в области мобильной разработки;

Навыки:

  • Умение спроектировать интерфейс мобильного приложения средствами онлайн-инструментов.

Для освоения курса необходимо бесплатное программное обеспечение: Android Studio.

Программа курса

В курсе рассматриваются следующие темы:

Тема 1. Знакомство с ОС Android.

    Введение

    Установка необходимого программного обеспечения

    Настройка SDK Manager и создание эмулятора

    Создание проекта и запуск на устройстве

    Настройка внешнего вида Android Studio

Тема 2. Работа с разметкой.

    Интерфейс Android Studio

    Редактор макета

    Работа с TextView

    Родительские макеты

    Класс Activity, внутренние и внешние отступы

Тема 3. Элементы управления

    Основные элементы управления

    Создание приложения «Тест» ч.1

    Создание приложения «Тест» ч.2

    Создание приложения «Список сериалов» ч.1

    Создание приложения «Список сериалов» ч.2

Тема 4. Активити и интенты

    Множественные активности и интенты

    Создание приложения «Передача данных» ч.1

    Создание приложения «Передача данных» ч.2

    Создание приложения «Вызов сторонних приложений» ч.1

    Создание приложения «Вызов сторонних приложений» ч.2

Тема 5. Жизненный цикл активити

    Управление жизненным циклом активити

    Создание приложения «Жизненный цикл активити» ч.1

    Создание приложения «Жизненный цикл активити» ч.2

    Создание приложения «Таймер» ч.1

    Создание приложения «Таймер» ч.2

Тема 6. Адаптеры и списки

    Адаптеры и списки

    Создание простейшего спискового приложения

    Создание приложения «Спорт» ч.1

    Создание приложения «Спорт» ч.2

    Создание приложения «Спорт» ч.3

Тема 7. Элемент RecyclerView

  1. Построение RecyclerView

    Создание приложения «Grumpy Cat» ч.1

    Создание приложения «Grumpy Cat» ч.2

    Создание приложения «Grumpy Cat» ч.3

Тема 8. Фрагменты

    Фрагменты

    Создание приложения «Фрагменты» ч.1

    Создание приложения «Фрагменты» ч.2

    Заключение

Каждая тема предполагает изучение в течение одной недели.

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

Результаты обучения

  • Способность устанавливать необходимое ПО (РО-1).
  • Способность разрабатывать визуальный пользовательский интерфейс (РО-2).
  • Способность управлять жизненным циклом активити (РО-3).
  • Способность создавать динамические списки (РО-4).
  • Способность эффективно использовать интегрированную среду разработки Android Studio (РО-5).
  • Способность запускать приложения на реальном или виртуальном устройстве (РО-6).
  • Способность осуществлять подготовку данных для реализации работы над приложением (РО-7).
  • Владение навыками разработки приложений для ОС Android (РО-8).

Формируемые компетенции

09.03.02 Информационные системы и технологии

    способность использовать архитектурные и детализированные решения при проектировании систем; проводить выбор исходных данных для проектирования информационных систем, проводить сборку информационной системы из готовых компонентов, адаптировать приложения к изменяющимся условиям функционирования (ПК-2);

    способность использовать архитектурные и детализированные решения при проектировании систем; проводить предпроектное обследование (инжиниринг) объекта проектирования, системный анализ предметной области, их взаимосвязей, проводить выбор исходных данных для проектирования информационных систем (ПК-4);

    способность проводить выбор исходных данных для проектирования информационных систем (ПК-12);

    способность применять математические методы для решения практических задач (ОК-10).

09.04.02 Информационные системы и технологии

    способностью осуществлять сбор, анализ научно-технической информации, отечественного и зарубежного опыта по тематике исследования (ПК-7);

    умение проводить разработку и исследование методик анализа, синтеза, оптимизации и прогнозирования качества процессов функционирования информационных систем и технологий (ПК-9);

    способность воспринимать математические, естественнонаучные, социально-экономические и профессиональные знания, умением самостоятельно приобретать, развивать и применять их для решения нестандартных задач, в том числе в новой или незнакомой среде и в междисциплинарном контексте (ОПК-1);

    способность анализировать и оценивать уровни своих компетенций в сочетании со способностью и готовностью к саморегулированию дальнейшего образования и профессиональной мобильности (ОПК-3).

Навыки разработки приложений для мобильных телефонов и планшетов может получить каждый. Теперь любой пользова­тель интернета сможет зарабаты­вать на любимом деле. Если вы не только любите использо­вать различные приложения, разбирать их природу и устройство, но и интересуе­тесь их созданием, вам необходимо пройти online обучение разработке мобильных приложений от наших опытных специали­стов. На сегодняш­ний день технологии постоянно развивают­ся и не стоят на месте. Видеокурсы – это прекрасная альтернати­ва привычным видам обучения, они также дают возмож­ность оформить новую увлекатель­ную профессию без учебы в ВУЗе и получить хорошие знания и навыки.

Онлайн-курсы по разработке мобильных приложений

Курсы разработки мобильных приложений необходимы для:
  • повышения собствен­ной квалифика­ции;
  • приобрете­ния знаний с нуля;
  • ознакомле­ния со спецификой работы приложений, с их устрой­ством;
  • самостоя­тельного создания мобильных программ на Android или IOS, а также для других популярных систем.
Если вы знакомы с IT-сферой, но хотите приобрести новую профессию, такие курсы станут отличным решением для переподго­товки. Станьте специали­стом по устрой­ствам Apple или на базе Android. Согласно статистиче­ским данным, сейчас на рынке IT-технологий лидирует продукция на основе андроида, а потому переквали­фикация из сисадмина в разработчи­ка мобильного ПО и приложений, в это время как никогда актуальна. Курсы по созданию мобильных приложений помогут неопытным юзерам получить весь комплекс знаний и навыков, а в дальнейшем станут отличным началом вашей карьеры. Вы сможете зарабаты­вать не только в компании, но и на условиях фриланса, находясь за компьюте­ром дома. После наших курсов вы получаете сертификат, подтвержда­ющий у вас наличие всех необходи­мых навыков. При желании, вы можете не только получить обучение, но и стать преподава­телем, записав свой курс!