» »

Алгоритмы и структуры данных на Python. Базовый курс. курсы, зарплата, тест, плюсы и минусы профессии

10.03.2024

Программист Python использует высокоуровневый язык программирования для создания приложений client—server, разных видов игр, микросервисов, крупных и маленьких сайтов, ботов для социальных сетей. Занимается не только созданием ПО, но и технической поддержкой, интеграцией, оптимизацией, обучает персонал компании работать с программами и сервисами. Профессия подходит тем, кого интересует информатика (см. выбор профессии по интересу к школьным предметам).

Краткое описание

В начале 90-х годов прошлого века голландским разработчиком был создан Python, в котором объединились черты разных языков программирования. Рассматриваемый высокоуровневый язык занимает 4 место в мировом рейтинге, его в работе используют и поддерживают компании Mail, Pinterest, Youtube, создатели крупных поисковых систем.

Опытные программисты Python выделяют следующие сильные стороны языка и плюсы работы с ним:

  • расширяемость языка, интеграция с C/C++;
  • упрощенный синтаксис, поддержка Unicode;
  • кроссплатформенность;
  • динамическая типизация;
  • возможность оперативно создавать самый сложный код;
  • огромное количество сред разработки;
  • можно использовать для написания всех видов программных продуктов;
  • упрощенное сопровождение созданного ПО;
  • свободная лицензия;
  • большое сообщество грамотных программистов.

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

Особенности профессии Python-программиста

Опытные программисты постоянно обучаются, ведь если не получать новые знания, то разработчик быстро потеряет и квалификацию, и ценность на рынке труда. Python — это язык программирования широкого назначения, который разработчику желательно знать. Чаще всего за изучение Python берутся программисты, которые уже имеют солидный опыт работы с C++ или Java. Дело в том, что навыки работы с объектно-ориентированным программированием позволяют освоить Python в сжатые сроки.

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

Разработчик Python занимается сопровождением ПО, которое он разработал или модернизировал, обучением сотрудников, подготовкой инструкций, документации.

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

Плюсы

  1. Возможность обучаться самостоятельно, что удобно для людей, которые решили отойти от сложного программирования.
  2. Быстрое обучение.
  3. Большое русскоязычное сообщество программистов.
  4. Красивый и простой код языка, что существенно ускоряет процесс разработки.
  5. Небольшое количество программистов, хорошо владеющих Python.
  6. Востребованность, поэтому работы будет много.

Минусы

  1. Язык Python менее популярный, чем Java, C/C++, что оказывает существенное влияние на размер заработной платы.
  2. Рассматриваемый язык программирования может быть вторым, но не первым языком.
  3. Программисты Python востребованы в известных компаниях, базирующихся в Москве, СПб и других крупных городах. Поэтому с поиском работы в отдаленных регионах у разработчика, который владеет только одним языком программирования, могут возникнуть проблемы.
  4. Для трудоустройства в крупную компанию необходимо иметь 2-3 года работы с Java, C/C++.

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

  1. Терпеливость.
  2. Трудолюбие.
  3. Решительность.
  4. Инициативность.
  5. Целеустремленность.
  6. Самоуверенность.
  7. Внимательность.
  8. Самоконтроль.

Обучение на программиста Python

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

Изучить язык можно за 2-6 месяцев на курсах программирования Python, которые могут быть как платными, так и бесплатными. Выучить Python можно и самостоятельно, используя видеоматериалы, блоги, учебники. Еще один хороший вариант — это поиск практикующего программиста, который готов взять себе ученика.

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

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

Место работы

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

Зарплата Программиста Python

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

Зарплата на 17.09.2019

Россия 50000—200000 ₽

Москва 80000—200000 ₽

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

  1. Знание основ программирования Python, опыт работы не мене 1 года.
  2. Свободный фреймворк Django.
  3. Желательны практические навыки работы с Java, JavaScript, C/C++.
  4. Знание REST, HTML, CSS, AJAX, Canvas, Web Sockets.
  5. Version Control System.
  6. Системы управления базами данных, верстка страниц.
  7. Английский язык, который необходим для чтения и составления тех. документации.

Должностные обязанности

Разработка приложений и сервисов на основе языка Python;
- поддержка, интеграция, оптимизация приложений и сервисов;
- написание технических заданий и документации.

Заработная плата и требования работодателей

Средняя заработная плата разработчика Python в Москве составляет 105 000 руб., в Санкт-Петербурге – 84 000 руб., в Волгограде – 50 000 руб., в Воронеже – 53 000 руб., в Екатеринбурге – 67 000 руб., в Казани – 53 000 руб., в Красноярске – 60 000 руб., в Нижнем Новгороде – 58 000 руб., в Новосибирске – 66 000 руб., в Омске – 53 000 руб., в Перми – 60 000 руб., в Ростове-на-Дону – 60 000 руб., в Самаре – 60 000 руб., в Уфе – 53 000 руб., в Челябинске – 61 000 руб.

I зарплатный диапазон
Без опыта работы на данной позиции

Требования к начинающим разработчикам Python достаточно лаконичны. Соискателям, не имеющим опыта работы, необходимо иметь законченное или неполное высшее образование (профильное либо техническое), знать CSS, HTML и основы программирования на Python. Стартовый оклад составляет от 50 000 до 70 000 руб. (Москва), от 40 000 до 56 000 руб. (Санкт-Петербург).



Город Уровень дохода, руб.
Москва 50 000 – 70 000
- Высшее/неполное высшее образование (техническое/IT)
- Знание основ программирования на Python
- Базовые знания CSS, HTML

Портрет соискателя в 1 диапазоне

Санкт-Петербург 40 000 – 56 000
Волгоград 24 000 – 34 000
Воронеж 25 000 – 35 000
Екатеринбург 32 000 – 45 000
Казань 25 000 – 35 000
Красноярск 30 000 – 40 000
Нижний Новгород 28 000 – 40 000
Новосибирск 32 000 – 44 000
Пермь 25 000 – 35 000
Омск 30 000 – 40 000
Ростов-на-Дону 30 000 – 40 000
Самара 30 000 – 40 000
Уфа 25 000 – 35 000
Челябинск 30 000 – 40 000

II зарплатный диапазон
С опытом работы от 1 года

Вход в следующий зарплатный диапазон открыт программистам со стажем разработки на Python от 1 года. Также востребован опыт работы с MySQL и навыки разработки web-сервисов. Соискателям необходимо знать JavaScript и владеть «техническим» английским. Верхняя граница зарплатных предложений для разработчиков, соответствующих указанным требованиям, составляет 80 000 руб. (столица) и 64 000 руб. (Санкт-Петербург).


Город Уровень дохода, руб.
Требования и пожелания к профессиональным навыкам
Москва 70 000 – 80 000
- Знание английского языка на уровне чтения технической документации
- Знание JavaScript
- Опыт работы с MySQL
- Опыт разработки web-сервисов
- Опыт программирования на Python от 1 года

Портрет соискателя во 2 диапазоне

Санкт-Петербург 56 000 – 64 000
Волгоград 34 000 – 38 000
Воронеж 35 000 – 40 000
Екатеринбург 45 000 – 50 000
Казань 35 000 – 40 000
Красноярск 40 000 – 46 000
Нижний Новгород 40 000 – 44 000
Новосибирск 44 000 – 50 000
Пермь 35 000 – 40 000
Омск 40 000 – 45 000
Ростов-на-Дону 40 000 – 46 000
Самара 40 000 – 45 000 Уфа 35 000 – 40 000 Челябинск 40 000 – 46 000

III зарплатный диапазон
С опытом работы от 2 лет

Повышает «стоимость» специалиста на рынке труда стаж программирования от 2 лет, опыт разработки высоконагруженных проектов и навыки работы с системами контроля версий. Соискателям также необходимо знать Linux. Нередко работодатели требуют знания дополнительного языка программирования (PHP, Java, С). Дополнительными шансами на трудоустройство обладают программисты, имеющие портфолио выполненных проектов. Разработчики Python указанного профессионального уровня зарабатывают до 120 000 руб. в Москве и до 96 000 руб. в Санкт-Петербурге.


Город Уровень дохода, руб.
Требования и пожелания к профессиональным навыкам
Москва 80 000 – 120 000
- Высшее образование (техническое/IT)
- Знание Linux на уровне пользователя
- Опыт работы с системами контроля версий
- Опыт разработки высоконагруженных проектов
- Опыт программирования на Python от 2 лет

Возможные пожелания:
- опыт разработки на языке PHP/Java/С/С++/C#
- наличие портфолио выполненных проектов

Портрет соискателя в 3 диапазоне

Санкт-Петербург 64 000 – 96 000
Волгоград 38 000 – 58 000
Воронеж 40 000 – 60 000
Екатеринбург 50 000 – 77 000
Казань 40 000 – 60 000
Красноярск 46 000 – 68 000
Нижний Новгород 44 000 – 66 000
Новосибирск 50 000 – 75 000
Пермь 40 000 – 60 000
Омск 45 000 – 66 000
Ростов-на-Дону 46 000 – 68 000
Самара 45 000 – 67 000
Уфа 40 000 – 60 000
Челябинск 46 000 – 70 000

IV зарплатный диапазон
С опытом работы от 3 лет

Максимальный доход – у программистов Python с опытом работы более 3 лет и навыками руководства командой разработчиков. «Потолок» зарплатных предложений в Москве – 160 000 руб. В Санкт-Петербурге разработчики Python могут рассчитывать на доход до 130 000 руб.


Город Уровень дохода, руб.
Требования и пожелания к профессиональным навыкам
Москва 120 000 – 160 000
- Опыт руководства группой разработчиков
- Опыт программирования на Python от 3 лет

Портрет соискателя в 4 диапазоне

Санкт-Петербург 96 000 – 130 000
Волгоград 58 000 – 75 000
Воронеж 60 000 – 80 000
Екатеринбург 77 000 – 100 000
Казань 60 000 – 80 000
Красноярск 68 000 – 90 000
Нижний Новгород 66 000 – 90 000
Новосибирск 75 000 – 100 000
Пермь 60 000 – 80 000
Омск 66 000 – 90 000
Ростов-на-Дону 68 000 – 90 000
Самара 67 000 – 90 000
Уфа 60 000 – 80 000
Челябинск 70 000 – 95 000

Портрет соискателя

Большинство претендентов на должность программиста Python – молодые мужчины с высшим образованием. Женщин среди соискателей немного – всего 5%. Молодежь составляет 70% кандидатов. Высшее образование имеют 74% программистов Python. 22% соискателей этой должности свободно владеют английским языком.

Код для вставки в блог

Разработчик Python

Исследовательский центр рекрутингового портала Superjob в ноябре 2014 года изучил предложения работодателей и ожидания претендентов на позицию «Разработчик Python» в 15 городах России.

Виталий Адучиев , инженер по обеспечению качества в «ИнПлат»:

«На Python я пишу около 3 лет. Люблю его за гибкость, простоту в циклах, маленькое количество типов данных, команды без лишних строк и букв, а ещё за точность указания ошибок в консоли.

После получения некоторых «шишек» по пути, важно научиться представлять алгоритм решения задач. Без этого вы рискуете потерять много времени. Обязательно учитесь работать с форматами данных в API: JSON, XML, SQL. Желательно уже во время обучения попасть на работу, связанную с программированием на Python, или самому практиковать полученные навыки. Так вы яснее увидите перспективы и возможности, быстрее освоите нюансы разработки».

Как и где учиться разработке на Python

Человеку, который решил связать свою жизнь (или её часть) с Python, повезло: есть множество способов обучения этому языку программирования.

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

Самообразование. Пожалуй, самый популярный способ изучения Python. Можно начать с литературы, например, книг с систематической программой. Разработчики советуют присмотреться к «Автоматизации рутинных задач с помощью Python» Эла Свейгарта, «Скрапингу веб-сайтов с помощью Python» Райана Митчелла и «Python в системном администрировании UNIX и Linux» Ноа Гифта.

В сети доступно множество онлайн-курсов по Python: Codecademy , DataCamp , Coursera , edX и другие. Англоязычные онлайн-курсы ценятся разработчиками выше отечественных.

Екатерина Нижникова:


Наставник/ментор.
Найти опытного пайтониста в сети или оффлайн несложно. Такой человек подскажет, с чего лучше начинать работу, проанализирует код и расскажет о частых ошибках и способах их исправить. Нужно только учитывать «человеческий фактор»: у наставника могут появиться неотложные дела, да и оценивать код он будет субъективно. Есть специализированные ресурсы, где можно найти ментора — например, Codementor .

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

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

Основы языка Python. 1 месяц.
От основ программирования до построения программ с использованием ООП

Язык программирования Python - это мощный инструмент для создания программ самого разнообразного назначения, доступный даже для новичков. С его помощью можно решать задачи различных типов. Курс “Python Basic” отлично подойдет как для опытных программистов, желающих познакомиться с новым инструментом разработки, так и для совсем начинающих. Мы пройдем путь от основ программирования(переменные, циклы, ветвления), до построения программ с использованием объектно ориентированного подхода. На протяжении курса мы рассмотрим различные примеры применения языка для решения практических задач. Погрузимся в мир python и проникнемся его идеологией и философией.

Урок 1. Знакомство с Python

Где используется Python? Сильные стороны языка. Установка и запуск. Операции и инструкции. Переменные и типы данных. Динамическая типизация. Ввод-вывод. Логические операции. Операторы ветвления. Циклы.

Урок 2. Встроенные типы и операции с ними

Последовательности (итераторы). Строки, списки, кортежи, словари, множества. Обход последовательностей в цикле.

Урок 3. Функции и работа с файлами

Функции как строительные блоки программ. Встроенные функции. Области видимости и lambda-функции. Работа с файлами. Сохранение Python-объектов в файл. Формат JSON.

Урок 4. Полезные инструменты

Урок 5. Модули и библиотеки

Понятие модуля. Создание модулей. Пространство имен и пакеты модулей. Дополнительные возможности модулей. Библиотеки os, sys.

Урок 6. Объектно Ориентированное Программирование

Введение в ООП. Классы. Инкапсуляция, полиморфизм и наследование.

Урок 7. Интерфейсы

Перегрузка операторов. Интерфейс итерации. Метод как атрибут. Статические методы. Расширение встроенных типов.

Урок 8. Несколько полезных паттернов

Паттерн Builder. Паттерн Делегирование. Создание собственных исключений. Подведение итогов и несколько слов о программе Python Advanced.

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

Базы данных. 1 месяц.
Быстрый старт

Урок 1. Вебинар. Установка окружения. DDL - команды

Урок 2. Видеоурок. Управление БД. Язык запросов SQL

Урок 3. Вебинар. Введение в проектирование БД

Урок 4. Вебинар. CRUD-операции

Урок 5. Видеоурок. Операторы, фильтрация, сортировка и ограничение. Агрегация данных

Урок 6. Вебинар. Операторы, фильтрация, сортировка и ограничение. Агрегация данных

Урок 7. Видеоурок. Сложные запросы

Урок 8. Вебинар. Сложные запросы

Урок 9. Видеоурок. Транзакции, переменные, представления. Администрирование. Хранимые процедуры и функции, триггеры

Урок 10. Вебинар. Транзакции, переменные, представления. Администрирование. Хранимые процедуры и функции, триггеры

Урок 11. Видеоурок. Оптимизация запросов. NoSQL

Урок 12. Вебинар. Оптимизация запросов

Студенты углубят базу программирования на языке Python и «прокачают» алгоритмическое мышление. Курс учит понимать фундаментальные алгоритмы и использовать их для решения практических задач. Знакомит с методами анализа данных на Python и всеми необходимыми библиотеками.

Урок 1. Введение в алгоритмизацию и реализация простых алгоритмов на Python

Введение в алгоритмизацию. Решение практических задач.

Урок 3. Массивы. Кортежи. Множества. Списки.

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

Урок 4. Эмпирическая оценка алгоритмов на Python

Измерения времени работы с использованием timeit. Профайлер.

Урок 5. Коллекции. Список. Очередь. Словарь.

Понятие коллекции. Основные типы коллекции. Стандартные методы работы с коллекциями. Примеры применения коллекций для решения практических задач.

Урок 6. Работа с динамической памятью

Представление в памяти коллекций. Управление памятью.

Урок 7. Алгоритмы сортировки

Сортировка пузырьком. Быстрая сортировка (Quick sort). Сортировка Шелла. Сортировка сложных структур с использованием ключа. Обратная сортировка. Сортировка с использованием функции attrgetter.

Урок 8. Деревья. Хэш-функция

Двоичные деревья поиска. Проход по дереву. Хэш-функция.

HTML/CSS - язык гипертекстовой разметки, основа для изучения серверных ЯП. Изучив HTML, вы сможете создать статичную веб-страничку или веб-сайт. CSS - каскадные таблицы стилей - позволит оформить сверстанный сайт так, как вам хочется. Вы сможете смотреть видеокурс в удобное время и по всем вопросам обращаться к наставнику, который будет контролировать ваш прогресс. Формат располагает к общению и самодисциплине в обучении. За месяц вы научитесь: * верстке статических сайтов, * валидной кроссбраузерной вёрстке, * блочной вёрстке, * выполнению базовых операций в Photoshop, * использованию препроцессоров LESS и Bootstrap. Для перехода к следующему занятию курса необходимо, чтобы ваше домашнее задание прошло проверку. Это покажет, что вы поняли предыдущий урок и легко освоите новые знания. Задание может проверить как ментор, так и одногруппники, знаниям которых вы доверяете, и получить за это ачивку. С каждой проверкой количество ачивок растет, а навык работы с чужим кодом увеличивается. От количества ачивок зависит уровень итогового сертификата: чем их больше, тем выше статус. Эта в чем-то игровая механика делает занятия еще интереснее.

Урок 1. Основные понятия в веб-разработке

Что представляет собой веб-страница; виды сайтов; процесс разработки сайта; что такое гипертекст, теги и атрибуты; подготовка рабочего места; структура HTML-документа; основные теги оформления текста; простой пример HTML-странички; пример сложной веб-страницы; горячие клавиши для перемещения по документам.

Урок 2. Основы языка разметки документов HTML

Урок 3. Основы языка оформления стилей документа CSS

Что такое CSS; синтаксис CSS; способы объявления CSS; селекторы (id, class, tag); селекторы атрибутов.; основные свойства стилей; вложенность; наследование и группирование свойств; проверка подключения файла стилей.

Урок 4. Псевдоклассы и псевдоэлементы, табличная верстка

Приоритеты применения стилей; псевдоклассы и псевдоэлементы; создание таблиц; объединение ячеек; вложенные таблицы; стилевое оформление таблиц.

Урок 5. Формирование блочной модели, блочная верстка

Основные теги для верстки (div и span); отступы элементов (margin и padding); обтекаемые элементы; позиционирование блоков.

Урок 6. Работа с макетом дизайна в формате PSD

Основные функции и знакомство с Photoshop; выделение основных частей макета; нарезка макета; вёрстка макета сайта при помощи блоков; вставка частей макета в вёрстку;

Урок 7. Разметка сайта и знакомство с Bootstrap

Создание основной разметки сайта; применение overflow и clear в реальной вёрстке; заполнение разметки частями нарезанного макета; приёмы позиционирования элементов; знакомство и применение Bootstrap.

Урок 8. Стандарты web и вспомогательные инструменты

Загрузка проектов на сервер; проблема «кроссбраузерности»; стандарты HTML/CSS; будущее за стандартами HTML5 и CSS3; грамотная, универсальная вёрстка; знакомство с препроцессорами на примере LESS.

Студенты знакомятся с основами JavaScript, позволяющего делать веб-страницы интерактивными. Учатся создавать динамические страницы и приложения, используя опыт HTML-верстки. Отрабатывают навык программирования на JavaScript, разрабатывая мини-игры.

Урок 1. Основы языка JavaScript

Синтаксис; структура кода; внешние скрипты и порядок их исполнения; переменные и типы данных; Hello world; современные стандарты.

Урок 3. Циклы, массивы, структуры данных

Циклы в JavaScript; массивы в JavaScript; структуры данных; практикум; игра «Быки и коровы».

Урок 4. Объекты в JavaScript

Знакомство с понятием объектов; объекты в JavaScript; работа с объектами; перебор значений; практикум; игра «Квест».

Урок 5. Введение в DOM

Понятие DOM; DOM в JavaScript; манипуляции с DOM в JavaScript; практикум; игра «Квест 2.0».

Урок 6. Обработка событий в JavaScript

Понятие события; обработка нажатий; браузерные события; практикум; игра «Крестики-нолики».

Урок 7. Урок-практикум

Реализация игры «Змейка».

Урок 8. Анонимные функции, замыкания

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

Основы Django Framework . 1 месяц.
Создание веб-сайта

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

Урок 1. Знакомство с фрэймворком

Зачем нужен Django. Сильные стороны фрэймворка. Установка и настройка. Общие сведения о структуре проекта. Знакомство с urlpatterns. Первая страничка и ее отображение.

Урок 2. Шаблон + Контекст = html

Шаблонизатор Django (теги, фильтры и наследование). Работа со статикой и ссылками на страницах. Отправка контента в шаблоны и загрузка его в контроллеры из внешних источников.

Урок 3. Модели + ORM = данные

Краткая теория баз данных. Введение в Django-ORM. Подключение и создание базы данных. Несколько слов о миграциях. Работа с данными. Встроенная админка. Пространства имен.

Урок 4. Аутентификация и регистрация пользователя

Урок 5. Пользователь + товар = корзина

Выполнение запросов при помощи ORM. Работа с меню. Создание корзины.

Урок 6. Корзина + AJAX + декораторы

Работа с корзиной. Добавление динамики в «горячее предложение». Создание страницы продукта. Ограничение доступа к корзине. AJAX: выполнение асинхронных запросов.

Урок 7. Собственная админка

Интеграция нового приложения в проект. Ограничение доступа к админке. Реализация механизма CRUD для пользователей и категорий товаров.

Урок 8. Полезное: страничный вывод, шаблонные фильтры, CBV

Реализация механизма CRUD для товаров. постраничный вывод объектов. CBV: готовые контроллеры. Шаблонные фильтры.

Django Framework. Инструменты оптимизации. 1 месяц.
Разработка сайтов на Python

Продолжая изучать Django, студенты разовьют личный проект: создадут контекстный процессор, добавят подтверждение регистрации пользователя по email. Продолжат знакомство с механизмом Django ORM, решая задачи по агрегации данных, сложным запросам, кешированию, оптимизации работы с БД. Научатся использовать наборы форм (fromsets), чтобы одновременно создавать нескольких экземпляров одной модели например, добавлять несколько записей в категорию на странице в админке. Рассмотрят механизм привязки статических файлов (CSS, JS) к формам в Django. После завершения разработки любой проект должен быть протестирован и развернут на production web-сервере – эти вопросы будут изучены в курсе.

Урок 1. Отправка электронной почты. Контекстные процессоры

Переходим на Django 2.0. Отправляем сообщение с кодом активации пользователя. Работаем с контекстными процессорами на примере корзины.

Урок 2. Регистрация через социальную сеть. Django-ORM: связь один-к-одному

Регистрируемся в магазине через ВКонтакте. Создаем профиль пользователя и заполняем его данными из социальной сети.

Урок 3. Работа с заказом пользователя: CBV, Django formsets

Создаем приложение ordersapp. Работаем с наборами форм Django formsets, используя CBV.

Урок 4. Работа с заказом пользователя: обновляем остатки товара, добавляем код jQuery

Корректируем количество товара при работе с корзиной и заказом. Обновляем статистику заказа при его редактировании. Работаем с набором форм при помощи jQuery и django-dynamic-formset.

Урок 5. Развертывание Django-проекта на сервере

Готовим проект к развертыванию. Переходим на базу данных «PostgreSQL». Имитируем работу с VPS – устанавливаем и настраиваем сервер Ubuntu Server 17. Реализуем связку «nginx»+«gunicorn».

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

Смотрим на работу проекта изнутри. Находим медленные контроллеры. Проводим нагрузочное тестирование. Оптимизируем работу с базой данных.

Урок 7. Еще быстрее: кеширование в Django

Декоратор «@cached_property»: кешируем методы моделей.
Тег «With» – кешируем переменные в шаблонах.
Кешируем функции, фрагменты шаблона и контроллеры при помощи «Memcached».

Урок 8. Продвинутая работа с Django-ORM. Тестирование в Django

Работа с атрибутами модели на уровне БД. Объекты «F» и «Q». Реализация сложной логики при помощи «Case» и «When». Класс «TestCase» – основа тестов в Django. Smoke-тестирование. Тестирование приложения аутентификации. Тест контроллеров.

Клиент-серверные приложения на Python. 1 месяц.
GeekUniversity

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

Урок 1. Концепции хранения информации

Особенности хранения символов в памяти компьютера. Недостатки кодировки ASCII. Введение в кодировку Unicode. Unicode в Python 3. Конвертация байтов и строк - понятие и примеры. Ошибки преобразования.

Урок 2. Файловое хранение данных

Введение в файловое хранение данных. Использование файлов в формате CSV при сохранении данных. Файлы JSON как средство обмена данными. Работа с YAML-файлами при обработке и сохранении данных.

Урок 4. Основы тестирования

Введение в тестирование. Оператор assert. Модульное тестирование и модуль unittest.

Урок 5. Логирование

Журналирование событий и модуль logging.

Урок 6. Декораторы и продолжение работы с сетью

Декоратор. Декоратор с параметром. Сетевое программирование (продолжение).

Урок 7. Модуль select, слоты

Особенности использования модуля select. Слоты, их назначение и применение.

Урок 8. Потоки

Введение в потоки. Введение в многопоточное программирование. Модуль threading. Примитивы синхронизации. Модуль Queue. Модуль multiprocessing.

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

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