Step 2 (S-37445)

From Stepik Wiki
Jump to: navigation, search

Step on Stepik: https://stepik.org/lesson/12908/step/2

Всем привет!

Меня зовут Михаил Густокашин. Я работаю в Яндексе и научу вас программировать.

Зачем изучать программирование

Во-первых, это очень интересно.

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

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

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

Как изучать программирование''''

Самое сложное в нашей области — это первые шаги. Можно, конечно, взяться сначала за какую-нибудь большую серьёзную книгу — например, «Искусство программирования» Дональда Кнута. Но это тяжело, хоть книга и хорошая. Чтобы не получилось как в анекдоте — «вы сначала плавать научитесь, а потом мы вам воду в бассейн нальём» — начинать лучше с практики. Именно ей и будет посвящён наш курс. Мы напишем сотни несложных программ, не углубляясь в теорию. С таким опытом вы сможете потом самостоятельно справиться и с более сложными задачами.

Чему учит курс

Мы будем изучать практические основы языка C++. Научимся работать с числами, их последовательностями, таблицами, а также освоим несложные структуры данных и алгоритмы: сортировку, ассоциативные массивы, множества. У нас нет цели глубоко погрузиться во внутреннее устройство языка, поэтому даже после окончания курса в наших программах для вас останется немного необъяснимой «магии». Это нормально.

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

Почему C++

Это один из самых популярных языков программирования. Он хорош своей быстротой и универсальностью. Почти все высоконагруженные сервисы Яндекса написаны на C++, как и браузер, в котором вы, возможно, читаете этот текст, и многие другие программы. С языка C++ легко перейти на любой другой — все они в целом очень похожи. Можно заняться чистым C, чтобы писать операционные системы, драйвера и распределенные программы. Можно перейти на Java или C# и писать софт для организаций. Или можно выучить немного другой вариант Java или Objective-C и писать приложения для Android и iPhone. В любом случае после C++ осваивать новые языки вам будет гораздо легче.

Мы изучим C++11 — стандарт языка 2011 года. Из всех нынешних стандартов он самый удобный.

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

Он состоит из 12 видеолекций, к каждой из которых есть конспект и набор задач — их вам предстоит решать в тестирующей системе. Задачи будут проверяться автоматически и сразу. К этому занятию задач нет, к следующему будет всего две, а затем их станет больше. Если решить задачу не получается, вы всегда сможете задать вопрос. Двигаться дальше можно только когда решены все предыдущие задачи (хотя бы без «звёздочки»).

На первых занятиях мы познакомимся со средой программирования MS Visual C++ Express Edition 2013 и тестирующей системой. Затем вас ждёт первая программа, переменные и арифметические операции. После этого изучим конструкции «если», «иначе» и «пока». Следующий этап — методика отладки программ. Это важная тема, которой часто уделяют мало внимания. Отладка позволяет понять, где именно программа работает неправильно, и исправить ошибку. Потом перейдём к массивам, в том числе двумерным (таблицам), вещественным числам, функциям и строкам. Затем поговорим об  увлекательнейшем математическом явлении — рекурсии. Мы подойдём к нему с чисто программистской точки зрения, и всё будет понятно. Последние два занятия посвящены использованию готовых алгоритмов и структур данных. Всегда приятно пользоваться чужим трудом в своем деле.

Домашнее задание

Заполните, пожалуйста, небольшую анкету, чтобы мы с вами познакомились. Ее вопросы в следующих степах. Спасибо!