вторник, 4 августа 2015 г.

Программирование - обучение и тренировка

Предыстория

Впервые с программированием я столкнулся в 5 классе. В то время (1996 год) в школах еще было очень мало компьютеров и компьютерных классов, и многие школьники изучали информатику как чисто теоретический предмет.
Мне в этом плане очень повезло, в нашем лицее было достаточно машин для проведения уроков информатики даже в младших классах. В то время было невозможно сразу обучать детей реальному языку программирования (даже простому, типа BASIC). Сейчас это звучит странно, но в 96 году около 5-10% учащихся имели дома компьютер. Для развития наших алгоритмических навыков нам предложили особенную игру – Исполнитель Муравей. Это был простейший интерпретатор с элементарными задачами для детей. Работал он из под DOS.
Выглядело это примерно так:
Как и любому ребенку, мне нравились игры. А в особенности компьютерные игры. Думаю эта игра была одним из тех импульсов, которые и привели меня в будущем в класс с углубленным компьютерным обучением.

Кому все это надо?

Но вернемся в 2015. В современном мире появилось масса специальных программ, вебсайтов и других ресурсов направленных как на обучение детей, так и просто на обучение всех желающих различным языкам программирования.
Сегодня мы обойдем вопрос обучения детей программированию и сосредоточимся на ресурсах, которые позволяют людям уже умеющим программировать на базовом уровне, попрактиковать свои навыки, научиться новым языкам или технологиям, или посоревноваться с другими программистами.
Первый вопрос, который задает себе человек, перед тем как начать что-то делать – а зачем все это надо? Представьте себе молодого человека, которые решил на досуге повысить свои навыки программирования. В школе ему рассказывали какие-то базовые вещи и он даже писал простейшие программы. Но это было давно и он уже ничего не помнит. Что делать?
Конечно, можно пойти в магазин, купить книжку и засесть ее изучать. В большинстве случаев вы приобретете что-то вроде книги Б. Страуструпа “Язык программирования c++”, после которой в лучшем случае решите, что программирование это не ваше признание, а в худшем больше никогда в жизни не станете программировать. Отмечу, что я не считаю книгу Страуструпа плохой. Просто она совершенно не подходит для обучения языку, она скорее является отличным справочным материалом.

В чем плюс?

Те сайты, про которые я пишу сегодня, предлагают удобный интерактивный формат, который дает вам ряд преимуществ. По этому поводу, я даже слайдик для презентации делал:
Начну рассказывать с последнего пункта:
Для обучения доступен любой живой язык программирования. Будь то Javascript, C#, Java, Ruby, Python и многие многие другие.
Эти сайты рассчитаны на любой уровень. От нулевого с расчетом на детскую аудиторию до серьёзных сайтов, где по результатам соревнований можно получить реальные деньги и реального заказчикам.
Геймификация. Отличная мотивация для большинства людей. Вы получите различные уровни, достижения, значки и так далее, которыми можно похвастаться знакомым.
Масса интересных практических заданий. На мой взгляд один из самых важных пунктов. Теория мертва без практики. А придумать самому себе хорошее задание на нужную тему не так то просто. Плюс многие школьные сайты грешат заданиями, которые являются скорее практикой математики, нежели информатики. Вычислять на первых этапах корни уравнений – скукота. И создатели сайтов это отлично понимают. Поэтому и готовят куда более интересные задания, частенько с различного рода графикой.
Соревнование. При достижении определенного результата, нам становится интересно сравнить себя с другими людьми. Узнать на сколько хорошо у нас все получается? В нас живет дух соперничества. И обучающие ресурсы позволяют нам соревноваться с другими учениками по множеству параметров, в том числе проводя различные олимпиады в реальном времени.
Интерактивность. Эти ресурсы не требуют от вас установки специальных пакетов программ (типа Visual Studio). Вы сразу можете видеть результаты своей работы, допущенные ошибки и сразу можете внести коррективы.

Куда идти? 

Дам парочку адресов самых интересных на мой взгляд сервисов обучения программированию:
Новые сайты обучающие прогграммированию появляются каждый день, так что возможно на момент когда вы читаете этот пост появилось что-то более интересное. В любом случаег Google всегда вас выручит, по запросу "спортивное программирование". Удачи в обучении!