Программирование – легко и комфортно: топ-6 приложений по информатике

Как научиться побеждать на олимпиадах по информатике и хакатонах, к окончанию школы уже иметь убедительное IT-резюме? Ольга Старунова, победитель олимпиады «Новый учитель новой информатики. Перезагрузка», учитель информатики «Школы на Юго-Востоке им. Маршала В. И. Чуйкова» уверена, чтобы достичь хороших результатов, важно правильно начать. А помогут в этом бесплатные онлайн-курсы.

– Люди делятся на два типа: тех, кто считает, что программирование доступно лишь сверхинтеллектуалам с четырехзначным IQ, и тех, кто правильно начал изучать программирование, – уверена Ольга Старунова. – А чтобы успешно начать «кодить», побеждать в олимпиадах и хакатонах, проходить летние стажировки и иметь к концу школы убедительное IT-резюме, нужно всего два условия. Первое – погружение в программирование должно быть комфортным (когда не слишком страшно, не слишком сложно и не слишком однообразно), и второе – процесс должен приносить эстетическое удовольствие, в программировании все должно быть прекрасно: и язык, и среда, и задачи, и мысли. Сегодня я поделюсь с вами своим топ-6 ресурсов, которые позволят даже новичку комфортно и с большим удовольствием освоить языки программирования.

«Питонтьютор»

Ресурс «Питонтьютор» – прекрасный способ овладеть основами языка Python, самого востребованного на данный момент и одного из наиболее дружественных к тому, кто использует его. Курс подойдет школьнику, если он владеете математикой на уровне 7 класса и не боится пробовать и ошибаться. Курс состоит из 11 тем, в каждой – краткая теория и набор из 10–15 задач. Для его прохождения большинству будет достаточно месяца ежедневных занятий.

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

Минусы: многие задачи требуют знаний математики и неочевидны, отрабатываются только основы языка без особого углубления в детали.

«Поколение Python»

Курс по языку Python для новичков «Поколение Python» – победитель конкурса Stepik Awards–2020 в номинации «Лучший бесплатный онлайн-курс, размещенный на платформе Stepik». В отличие от «Питонтьютора» он гораздо основательнее, объемнее, содержит больше простых и сложных задач. Его единственный минус – скорость прохождения: пока не закончил предыдущую тему – следующая не откроется. Подходит тем, кто располагает временем и серьезно готов погрузиться в изучение языка.

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

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

Replit

Чрезвычайно удобная платформа Replit позволяет легко учиться программировать прямо в браузере практически на любом современном языке, ничего не устанавливая на компьютер. Над одной программой могут работать сразу несколько пользователей, причем одновременно. Для каждого языка платформа содержит примеры для быстрого старта и позволяет писать практически все, что может захотеть новичок: олимпиадные задачки, чат-ботов, 3D-сцены и многое другое. Портал стремительно набирает популярность, уже более миллиона человек пользуются им ежемесячно.

Плюсы: обучение бесплатное, удивительное удобство, универсальность, возможность работать над проектом в команде, разнообразие поддерживаемых языков (более 40), примеры, позволяющие начать новичку с нуля.

Минусы: русскоязычной версии нет, только англоязычная. Не поддерживает Pascal, с которого во многих российских школах традиционно начинается курс программирования. Зато поддерживает QBasic.

Codeforces

Международная платформа Codeforces посвящена спортивно-олимпиадному программированию. На ней несколько раз в неделю проходят соревнования по решению олимпиадных задач по информатике для всех желающих, доступны тренировки, а также есть пилотный курс по спортивному программированию от ITMO Academy. У каждого пользователя есть рейтинг. Вдохновляет наблюдение за ростом рейтингов Легендарных Гроссмейстеров – самых опытных и сильных участников. Видно, что каждый из них, как и все, был когда-то новичком. Для тех, кто увлечется по-настоящему, есть возможность составлять свои задачи и проводить собственные соревнования.

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

Минусы: те же, что у любого профессионального спорта.

«Информатикс»

Ресурс «Информатикс» – это самое полное собрание материалов по олимпиадному программированию на русском языке. Множество авторских курсов и задач с занятий кружков, со сборов и олимпиад разного уровня по всей России. Все очень структурировано и понятно. Незаменимый инструмент для подготовки к олимпиадам.

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

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

JetBrainsAcademy

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

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

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

В завершение добавлю, что в Московском центре технологической модернизации образования можно выбрать один из бесплатных курсов по ИТ-направлению. Например, для школьников есть занятия по основам кодирования информации, 3D-моделированию, а также онлайн-курсы по языкам программирования С++ и Python.