Как Я Создал Методологию Изучения C#

Я с детства любил не только программировать, но и делиться своими навыками и знаниями, рассказывать о своих программах, объяснять, как они работают, как их создавать.

В этом я нашел свое призвание — мотивировать людей изучать программирование.

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

Моя цель — сделать этот процесс максимально интересным, увлекательным, увлекательным, организовать «тусовку», сообщество, в котором можно и хочется решать задачи и развивать свои навыки программирования.

Общество, в котором ты можешь видеть успехи своих коллег, чтобы тебе было к чему стремиться и кого обогнать.



Я пишу программы с детства

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

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

Для меня это была радость, они это оценили.

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

Задания мне присылали почтой (бумажными!), я писал тексты программ на листах А4 и отправлял на проверку.

Язык Паскаль изучался в отсутствие компилятора, только по книгам и листингам.

Летом в этой школе был организован лагерь, в котором мы писали программы полторы недели без перерыва (уже на компьютере).

Каждый день утром, днём и вечером, иногда по одному, иногда в команде, иногда в парах, мы решали самые разные задачи.

Никаких теоретических занятий не было, были практические задания.

Множество задач и программ.

Эта неделя в школе дала мне очень многое.

Именно там я понял, чему хочу посвятить свою жизнь.



Жажда преподавания

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

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

В университете он проходил стажировку, преподавал информатику в городской физико-технической школе (без компьютеров, что интересно) и даже организовал дома собственный кружок «Формула программиста».

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



Интерактивная система проверки задач

Я много общалась со школьниками, уже знала, чем их можно увлечь, а что им не важно.

Да, никто не хочет читать теорию.

Но все хотят действовать.

Работая в ПТУ, я начал создавать «робота» — систему дистанционного обучения программированию.

Это список задач, которые можно решить только последовательно.

Корректность написанных программ проверяется с помощью заранее подготовленных тестов.

После отправки программы на проверку «робот» действует по следующему алгоритму: 1. Компилирует программу.

2. Если возникает ошибка, компилятор возвращает сообщение.

3. Запускаем программу по примеру из условия.

4. Если ответ не совпадает, программа возвращает ответ на анализ.

5. Прогоняет программу еще несколько раз со всеми остальными тестами, которые студент не знает. 6. Дает оценку программе: количество правильных тестов / общее количество тестов * 100%.

7. Если набрано более 50%, это дает доступ к следующему уроку.



Что нравится школьникам?

Школьникам понравилось, что их программы проверял не учитель, а «робот».

Это более объективно, к тому же «не надо ждать, не надо звонить», а отправлять на проверку можно сколько угодно раз и получать результат. Замечено, что большинство студентов не удовлетворяются «полурешениями»; Я постоянно вижу, как решения отправляются несколько раз, пока не будут достигнуты 100%.

Дошло до того, что мои ученики решали задачи на моем сайте на чужих уроках, из-за чего на меня жаловались другие учителя.

Я считаю, что это успех! :)

Кстати, эта система очень облегчила мне процесс выставления оценок студентам.

Я просто задал домашнее задание, скажем, все задачи из раздела «Циклы», их около 10. На следующем уроке я выставил им оценки согласно набранным мной баллам.

В первый раз это была колонка в журнале из 12 единиц и пары двойок и троек.

При этом не было никаких психологических драм, которые обычно сопровождаются ставками.

Есть решения? Нет. Вот счет. Все.

Одного раза было достаточно.

По некоторым сведениям, студенты ПТУ делали домашнее задание только по моим урокам.

Да, это было прекрасное время.

Хотелось бы вернуть его, но на новом уровне.

Еще один важный момент методики — последовательный доступ к задачам.

Это позволяет сконцентрироваться на конкретной задаче и не распыляться.

Попробовал открыть доступ сразу ко всем задачам - эффективность снизилась на порядок - ученики не знали, за что браться, и в результате вообще ничего не решали.



Новый взгляд на старый проект

После работы в ПТУ прошло много лет, моя система покрылась толстым слоем пыли.

Из года в год я мечтал о том дне, когда наконец продолжу этот проект. И вот, этот день настал.

Я записался на тренинг по информационному бизнесу, получил хороший старт и начал действовать.

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

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

класс, куда я ходил, как будто собирался на работу.

Единственное, что я мог выбрать, это язык программирования.

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

Большинство программ я написал на следующих языках: Pascal, Delphi, C#, Java, PHP. Языки Паскаль и Дельфи уже не выдерживают критики, так как теряют популярность.

Мне не очень повезло с Java; Я считаю, что это тяжело для этой цели.

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

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

Больше всего мне понравился язык C# от микрогиганта.

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

Итак, язык выбран.

Как я могу научить этому других через Интернет сейчас, а также зарабатывать на этом деньги в будущем?

Нужен поворот

Я прекрасно понимал, что всяких видеоуроков по изучению языка C# в интернете пруд пруди.

Хороших продуктов много, а профессиональные курсы можно найти бесплатно.

Что я могу предложить, за что у меня хватит смелости попросить денег? Вебинары! Не мертвые видеоуроки, не сухие книги, а живое участие! Бесплатные практические вебинары.

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

Еще лучше — игровая программа.

Школьники и студенты любят создавать свои игровые программы.

Расчет был следующий.

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

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

Только логика игры.

Каждому захочется что-то добавить, изменить, усложнить.

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

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

Ребята, это работает. Мой расчет оказался верным.

Конечно, было много критиков моего метода.

Профессиональные программисты говорят, что я воспитываю деревенских программистов.

Я с этим не согласен.

Я просто поставил песочницу и предложил всем строить замки из песка.

Тот, кто хочет строить настоящие дома, пойдет учиться.

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

Моя цель — не научить, а увлечь, показать, как это круто, дать возможность попрактиковаться и организовать тусовку начинающих программистов.

А учиться и накапливать навыки каждый может только сам.

Итак, метод выбран.

Буду проводить вебинары по созданию программ на C#.



Как провести вебинар?

Я долго искал площадку для проведения вебинаров.

Для моих целей мне нужно следующее: 1. Демонстрация всего экрана без искажений; 2. Трансляция звука без задержки, синхронно с экраном; 3. Адекватная цена.

Не буду перечислять здесь все сайты, которые пробовала, но скажу сразу, что после утомительного поиска мой выбор пал на join.me. Он удовлетворяет всем этим требованиям.

Единственная особенность – с проблемой настройки звука сталкиваются все новички; для этого им нужно «позвонить» и скачать программу для подключения.

В остальном это простая, быстрая и удобная платформа.

Цена: 200 долларов в год. Буду признателен, если кто-нибудь сможет порекомендовать альтернативную платформу для вебинаров, отвечающую указанным требованиям.

Свой первый вебинар я провел 25 декабря 2013 года на тему «Создание программы для смс-рассылки».

Он пригласил на него всех своих друзей.

Все получилось «Ура!» Для записи экрана и голоса я использую бесплатную программу oCam, она очень удобная, компактная и быстрая.

Выкладываю записанные видеоуроки на YouTube.

Как я создал методологию изучения C#

Рабочий стол во время вебинара: Visual Stuido, Join.Me, oCam. Для себя я придумал такую схему: 1. Я выбираю игру, которую хочу создать и пишу сам.

2. Провожу вебинар по его созданию.

3. Сохраняю записи вебинаров для создания собственного видеокурса.

4. Повторите.

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

Такие записи было просто стыдно выкладывать, поэтому сначала я записывал видеоуроки отдельно от вебинара.

Это заняло больше времени, но качество было намного выше.

Итак, процесс создания видеоуроков уже налажен и успешно работает с недельным циклом: Вебинар => Видеоурок => Вебинар => Видеоурок.

Что делать дальше?

Создайте простой веб-сайт

Вероятно, необходимо было создать сайт. И размещайте там записи этих вебинаров.

И приглашайте туда людей.

Я долго выбирала звучное имя и наконец остановилась на videosharp.info .

Буква «це»/«си» не хотела становиться внутри этого слова, поэтому я решил обойтись без нее.

Я нашел бесплатный шаблон, сделал сайт на коленях на зеленом фоне, а обложку нарисовал сам, играя на ассоциации названия языка с нотой «до-диез».



Как я создал методологию изучения C#

На сайте было два раздела: «Вебинары» и «Видеоуроки».

Но как заставить видеоуроки «работать»? У меня уже был готов ответ. Во-первых, одновременно должен быть доступен только один урок.

Во-вторых, нужно отчитываться за выполнение каждого урока.

За несколько дней, используя PHP и MySQL, я набросал алгоритм последовательного доступа к видеоурокам с формой отправки архива созданной программы.

И я сделал интерфейс для проверки домашних заданий.



Кто будет проверять работу?

Поначалу было интересно – смотрел все домашние задания, отвечал на вопросы и с нетерпением ждал новых передач.

Однако объем работы рос и эта деятельность стала отнимать много времени.

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

Он очень ответственно подошел к этому делу, с комментариями, ответами на вопросы и анализом кода.

Потом началась его дипломная работа и я снова остался один на один с горой работы.

Что делать? Пока решения не было, я поставил автоматический доступ к следующему уроку.

Все же лучше, чем ничего.

Однако это противоречит принципу моей методики: последовательный доступ к урокам! Ведь можно отправить что угодно и получить новый урок.

Отправьте манекен еще раз и снова идите дальше.

Не образование, а пустое развлечение.

Что делать? Разрешить другим студентам проверить? Во-первых, мало кому интересно смотреть чужие передачи (я пробовал), во-вторых, не исключен вариант отправки вируса в архиве.

Так что делать? Этот вопрос преследовал меня несколько недель.

Что делать? Наконец меня осенило: отчеты по заданиям должны быть сделаны со скриншотами и ответами на простые вопросы, типа «сколько времени заняло», «что было самым сложным», «как вы оцениваете урок».

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

Убедитесь, что работу смогут проверить все, а не только участники проекта.

Такой подход полностью себя оправдал, превратив «минусы» в «плюсы»: 1. Для перехода к следующему уроку необходимо отчитаться за предыдущий.

2. Студенты могут отправить ссылку на свои отчеты своим друзьям, чтобы а) похвастаться, б) получить десять «хороших» оценок.

Сейчас уже могу констатировать: это работает. Процесс проверки очень прост: посмотрите картинки, прочитайте отзывы, нажмите кнопку «Хорошо» или «Плохо».

Проект сработал успешно!

Робот Шарп

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

Этот раздел называется «Консоль», поскольку в нем прописываются консольные задачи.

Это оказалось не так просто; между языками Pascal и C# слишком много фундаментальных различий, поэтому каждую задачу приходилось адаптировать.

Также были проблемы с вводом данных.

В Паскале, чтобы прочитать два числа, введенные в одну строку, разделенные пробелом, просто напишите:

  
   

readln (a, b);

На C# это сделать нелегко.

Пришлось создать отдельную тему с задачками только по чтению чисел в самых разных формах.

Мой аналог строки Паскаля в C Sharp выглядит так:

string [] line = Console.ReadLine().

Split(); int a = int.Parse (line [0]); int b = int.Parse (line [1]);

Само собой, все алгоритмы компиляции и тестирования программ пришлось создавать заново.

Однако много времени это не заняло, так как я четко представлял, что хочу получить.

Так родилась «Робот Шарп» — программа для проверки решений учащихся.

Более подробно работу робота Sharp — как он составляет и проверяет задания — можно посмотреть в этом видео, которое я записал специально для этой статьи.

Для обеспечения работы раздела «Консоль» используется VPS-сервер с ОС Windows XP, на котором установлен компилятор Visual Studio C# 2008. Robot Sharp — это программа, написанная на том же C#, которая подключается к базе данных MySQL, где ожидает проверки новых решений.

При появлении новой программы робот Sharp сохраняет ее в папку пользователя, компилирует, запускает тесты и записывает результат теста обратно в базу данных текстовым сообщением.

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

Если задание набирает более 50% баллов, оно засчитывается и учащийся может перейти к следующему заданию.



Видео решения проблем

Когда я раньше создавал эту систему, я мечтал об идее размещения теоретического материала в начале урока.

На самом деле я собрал несколько таких текстовых уроков.

Но.

Их никто не читал.

Но у всех всегда было много вопросов: «Как решить эту проблему? Почему моя программа не запускаетсяЭ» Поэтому я решил дать студентам то, что они хотят — решение проблем.

Но не просто текст готовой программы, а видео решение, в котором я подробно и понятно объясняю, как решается данная проблема, какие есть варианты, и пишу код самой программы.

То есть студент должен набрать код своими ручками, хоть что-то останется в его голове, и рано или поздно количество перейдет в качество.

Должен добавить, что видеорешения используются довольно редко, что приятно.

Многие люди хотят «довести» задачу самостоятельно.



Новый дизайн

Через полгода жизни моего проекта в нём было уже более 1024 учеников.

Уже имеется 32 видеоурока по созданию самых разнообразных игровых и прикладных программ.

Вебинары уже посетили не менее 16 человек.

Бесплатный шаблон сайта, который был взят за основу, уже совершенно не подходил.

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



Как я создал методологию изучения C#

Фрилансер создал шаблон для моего сайта с помощью Bootstrap. Красивый, простой, удобный дизайн, два уровня меню, хлебные крошки, кнопки входа/выхода.

Все было красиво, но мертво.

Перенос всего проекта из одного проекта в другой — это все равно что переезд в другой город. Фактически я переписал все с нуля.

И я этому очень рад, код получился лучше, качественнее.



Как я создал методологию изучения C#

Для создания сайта использовались следующие технологии: HTML, CSS, JavaScript, jQuery, Bootstrap, а также PHP, Smarty и MySQL. Раньше тексты всех видеоуроков хранились прямо в моих PHP-файлах, теперь я перенес их в базу данных.

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

Система, конечно, оказалась примитивной, и в этом вся ее прелесть – ничего лишнего, только то, что мне действительно нужно.



Продвижение проекта

Ежедневно на сайте регистрируется около десяти новых участников.

Я запустил рекламные кампании в Яндексе и Гугле, откуда в день приходят 2-3 человека.

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

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



Статистика

В заключение немного статистики по проекту.

Данные по состоянию на 9 октября 2014 года.

Зарегистрировано участников: 1861 Подписчиков рассылки: 840 Проведено вебинаров: 42
ВИДЕО КУРСЫ
Всего участников: 305 Создано видео уроков: 44 Просмотрено уроков: 1351 Проведено уроков: 325 Оценка «Хорошо»: 3384. Оценка «Плохо»: 74
КОНСОЛЬ
Всего участников: 402 Создано выпусков: 140 Общее количество тестов: 615 Решено проблем: 3769 Проблемы решены на 100%: 3642 Отправлено программ: 10651 Написано строк кода: 56069.


Заключение

В этом проекте для меня самое главное не цель, а сам процесс.

Люблю проводить вебинары, записывать уроки, готовить письма для рассылки, следить за развитием проекта.

Это именно то, о чем я мечтал в детстве.

Надеюсь, что в ближайшем будущем это станет моим основным занятием.

Адрес проекта: www.videosharp.info Теги: #обучение программированию #обучение программированию #C++ #вебинары #видеокурсы #система проверки программ #C++

Вместе с данным постом часто просматривают: