Привет, меня зовут Дмитрий, и я преподаватель.
Я хотел преподавать примерно с шестого класса, чтобы исправить учебники, которые мне в целом нравились, но и возмущали одновременно. Правда, тогда я не решил, преподавать что. Это был 1986 год.
В 1990 году сразу после физмат школы я стал программистом-лаборантом, последним поколением программистов Советского Союза. Потом учился на физика на физфаке и в ИТМО.
По принятому в 80-е разделению, я был законченным "технарём", хотя потом менял, как перчатки, в основном "гуманитарные" работы.
В 2000 году меня попросили почитать "Основы информационных технологий" для социальных работников в педагогическом университете им. Герцена. Читал их несколько семестров, и это был первый крупный опыт преподавания.
В 2008 году я круглосуточно кодировал стартап, и чтобы не спятить, устроился по вечерам преподавать основы программирования на 40 часовые (10 сдвоенных пар) курсы для всех, но на для 95% "гуманитариев". Это был второй крупный опыт, сначала временный, как отдых от программирования. "Временное" затянулось на 10 лет и постепенно стало моим основным занятием.
Я за эти 10 лет учил сотни совершенно разных людей, от 10 до 60 лет, от школьников до бизнесменов и уезжающих в Европу узбеков, но я расскажу самый трудный урок.
Это было индивидуальное занятие с девочкой лет десяти, назовём её условным именем Алиса. Она пришла с мамой, которая рассказала, что Алиса учится в математическом лицее (то ли "тридцатке", то ли 239-ом), увлекается роботами и теперь захотела узнать про программирование.
Как обычно, я начал исполнять про функцию printf ( "Hello world" ), а потом спросил, знает ли Алиса, что такое функция? Нет. А переменная? Тоже нет.
Это абстрактные понятия, которые начинают проходить по математике только в 7 классе, с 12-ти лет, и 10-тилетняя Алиса с ними ещё не встречалась.
Дальше последовали полчаса мучительных объяснений. Мучился в основном я, осознанием полной дичи, которую я несу невинному ребёнку про математику, функции и переменные. Спасибо маме, которая потребовала остановить эту шарманку и досрочно увела Алису с урока.
Но если разобраться, о программировании-то я рассказал самую суть. Стандартное программирование - это программирование "технарей". Чтобы читать и писать программный код, надо думать, как "технари" - алгоритмами. Алгоритмы - это математика. Математика - это особый язык, понятный достаточно узкому слою людей, думаю, всего процентам 10%.
Хотя с высоты 30-летнего опыта, я считаю программирование чисто "гуманитарной" специальностью. Во-первых, по полному отсутствию строгости в подходах, во-вторых, по количеству "гуманитариев" в профессии, итд.
Однако, стандартное преподавание всегда строилось на алгоритмах, доступных только "технарям". А я честно исполнял стандарты.
К сожалению, остальные слушатели приходили на наши занятия без мам. И некому было прервать моё высокомерное токование.
Поэтому мы с "гуманитариями" продолжали мучать стандартный поход "технарей".
Мы занимались быстро, весело и безнадежно.
И как-то однажды решили забить на стандартный план занятия, и вместо написания программного кода стали его раскодировать.
Я показывал код, а класс хором переводил числовые действия программы на русский язык. Обычно это делал я, по сто раз как попугай разъясняя одни и те же закодированные действия, а стало наоборот: слушатели разъясняли мне. Результат тоже получился обратный: всем вдруг стало легко, понятно и с первого раза.
После этого случая мы постепенно поменяли подход. Вместо обречённых попыток писать программный код мы стали писать шагайку - пошаговое описание действий речью, - которую потом легко и быстро переводили в расчёт.
Всё встало с головы на ноги. Трудное стало лёгким, непонятное - ясным, безнадежное - пошло вперед.
Однако прежде ясное стало туманным. А тому ли я учу? Это основы программирования, или анти-основы? Смогут ли мои нестандартно обученные слушатели понять стандартный мир закодированных программ?
А потом в наш центр пришли настоящие преподаватели, "технари" без страха и упрёка, а я ушёл. Мои сомнения и попытки впихнуть невпихуемое закончились. Но я продолжил искать способ, чтобы закончить свой курс и сделать его одновременно:
- доступным для "гуманитариев",
- коротким, а не бесконечно размазанным "семестром",
- подходящим хоть под какие-то стандарты, а не чистой ересью.
В отношении краткости - я брал пример с себя. В мат-классе меня два года учли писать какую-то чушь на фортране. Чушь я исправно писал, но в чем смысл программы, так и не понял. Зато понял это за два частных занятия при подготовке к поступлению в вуз. Вот примерно такими мне виделись правильные занятия.
Дальше последовали долгие поиски и неожиданные находки. Как говорится в русских сказках, я исходил "три пары железных сапог", вероятно, это про подковы.
Пока наконец, не нашёл нужные стандарты: стандарты Стива Джобса и Льюиса Кэрролла.
Стандарт Джобса был изложен им самим в "Потерянном интервью" 95 года, которое потом 17 лет пролежало в коробке, увидел свет в 2012 году, и опять легло в коробку забвения.
В этом интервью Джобс говорит:
- Что программа для него - это не алгоритмы.
- что программа - это зеркало собственного мышления.
- Что программа учит думать.
- Что надо думать иначе.
- И что программирование должно стать общеобразовательным предметом.
Это было именно то:
- что хотел сказать я,
- чего хотели мои слушатели,
- и что я должен был им дать, но не дал.
Джобсу повезло, он никого не слушал и научился программировать сам, в 10 лет. Он не был замордован сотнями бессмысленных упражнений, и поэтому сразу писал такую программу, которую считал полезной.
Слова, что "программа - это зеркало собственного мышления", были просто прекрасны. Под ними могли подписаться все 100% программистов.
У "стандартных программистов" программа отражала алгоритмическое мышление, вколоченное стандартным обучением, и ставшее их собственным.
У "самоучек" программа отражала многоликое собственное мышление, и это отражение помогало мышлению стать лучше, чётче и безошибочнее. Как зеркало помогает девушке лучше выглядеть.
Благодаря кое-как полученному математическому образованию, сопровождаемому постоянными прогулам и самообучением, мне были близки и понятны обе стороны: и "математики", и "самоучки".
Примечательно, что в "Потерянном интервью" тоже сошлись две стороны: "стандартный" ведущий, изучавший программирование в колледже, и самоучка Джобс, который в колледже не учился.
Ведущий спросил, что Джобс имеет в виду, говоря о программе-зеркале и её пользе, потому что сам он никакой пользы в изучении программирования не нашёл. Джобс переспросил: "по потом-то вы поняли, насколько это было полезно?" На что последовал честный ответ гуманитария: "нет!" А Джобс расстроился и чуть не заплакал. Ведущий резко сменил тему.
Джобс не был преподавателем, и не мог объяснить, как программный код отражает мышление.
А мы со слушателями нашли этому объяснение независимо от слов Джобса.
Мы отразили мысль сначала в "шагайку" - в речь, что является общепринятым и очевидным отражением, а потом уже отразили речь в расчёт - это было нашим собственным изобретением, тоже простым и несомненным.
Таким образом, в программе мысль отражается в речь, а речь - в расчёт, а в итоге: мысль - в расчет.
Мы доказали великое утверждение великого Джобса, и узнали об этом несколько лет спустя.
И это было тем самым искомым стандартном для нового нестандартного курса.
Пускай все 100% стандартных курсов учат программировать алгоритмами, как удобно "технарям".
Один нестандартный курс может, имеет право учить программировать, как удобно самоучкам и "гуманитариям". Во-первых, великому программисту Стиву Джобсу, во-вторых, 70% профессиональных пгс без профильного образования, которые просто не смеют в этом признаться.
Объясню про "великого программиста". Джобс лично руководил разработкой приложений в компании Эпл, и в частности, созданием первой пользовательской операционки Система 1.0, потом "эко-системы" Эпл, и между этим - создал с нуля жанр компьютерной мультипликации, руководя разработками Пиксар.
Если измерять величие совершенным делами, то Джобс - великий.
И что-то без Джобса ни Эпл, ни Пиксар ничего нового миру не показали, несмотря на свои миллиарды, в том числе вложенные в рекламу того, какие они необычные.
Необычным был как раз Джобс, а не Эпл.
А ещё Джобс был великим стратегом.
В 1997 году он запустил рекламу без товара, знаменитую "Думай иначе".
Там были такие слова: "Слава безумцам. Бунтарям. Неудачникам. Тем, кто не соблюдает правила. И несёт перемены. Лишь безумец верит, что он в состоянии изменить мир, — и потому меняет его."
Слова многим понравились, но немногие поняли, о чем они.
Я выскажу свое скромное мнение. Я думаю, в это время Джобс не переставал мечтать о новом, нестандартном преподавании программирования. И заранее разрушал стену стандартных, священных, авторитарных подходов.
И он разрушил эту стену. "Думать иначе" стало можно, модно и молодёжно.
Узаконенное Джобсом инакомыслие стало стандартом и основой нового курса "Программируй иначе, или программа по-русски".
По-русски - это игра слов: 1) шагайка на русском языке, 2) просто и ясно, по-русски, а не на птичьем языке абстрактных терминов.
Суть понимания программы по-русски, то есть легко и быстро, курс излагает за один урок.
Остальные уроки - дань моему технарскому образованию. Я по возможности строго, занудно и последовательно описываю:
- Особенности подхода Джобса к программе - "икона мышления", делающая видимым невидимое (мышление)
- Строение языка программы как краткую систему единиц языка, естественно, нестандартную,
- Написание программы с помощью простой формулы и вспомогательных правил.
- Систему разработки программы, которая описывает все вопросы разработки, а других, неполных систем и не бывает.
- Настоящую работу пгс, которая обычно состоит в дописывании программы, а не в написании с нуля, как в стандартных учебных примерах.
- И наконец придумывании успешных программ. Если обычно из слушаетелей готовят стандартные шестерёнки для кодирования, то тогда уж мы будем нарушать до конца, и учится не у шестерок, а у руководителей.
Этот курс я готовил 5 лет, и большая часть времени была потеряна на борьбу с алгоритмическим подходом, его критику и попытки разоблачения.
Я пытался написать условный курс "Программирование без алгоритмов", и не мог его закончить.
Потому что борьба "против" чего-угодно трудна и по сути бесконечна.
И в конце концов, когда закончились все сроки и деньги, я понял, что мне нужно писать другой курс: "Программирование для гуманитариев".
И новый курс был быстро закончен. Борьба "за" оказалась гораздо легче и короче.
А подготовленные за пять лет примеры и мысли разделились на два курса:
- Программируй иначе, или программа по-русски.
- Зазеркалье, или алгоритмы по-русски.
Если мои слушатели захотят продолжить программировать, им придётся войти в мир "математиков", понять и простить алгоритмическое мышление, которое в нём царит. И по настоящему помочь им сможет только один человек - Льюис Кэрролл, который описал мир математического мышления предельно точно и безжалостно, хотя и в виде детской сказки, в книгах "Алиса в стране чудес/в Зазеркалье".
А я, как почётный выпускник физмата, переведу иносказания коллеги на современный язык. Это сделает алгоритмический подход совершенно понятным, слушатели узнают истину, а истина освободит их от алгоритмов окончательно.
Как и Стив Джобс, Льюис Кэрролл является непререкаемым авторитетом, и на его описание абстрактного мышления, отражающегося в программном коде, можно смело положиться.
Итак, после 5-летнего перерыва, проведённого в подготовке, я собираюсь продолжить преподавание основ программирование в виде двух курсов по 24 часа каждый (по 6 сдвоенных пар).
Надеюсь, что эти курсы помогут в кратчайшие сроки подготовить столько программистов, сколько нужно нашей великой стране. Честно говорю об этой мечте, ведь это исповедь.
Спасибо за внимание!
Вдруг, этим заинтересуются специалисты
Комментарии
Математика. Физика. Химия. Программист
Вы философа забыли:) без него получится не программист а андроЕд, копирующий куски других андроедов, тоже кривые:))
Ну для него и
Специально перечитал вики и др, может что-то забыл, не знаю. Думал просто программист, оказалось непрограммист.
Хотя менеджер великий.
Автор забыл указать "авмяк".
Указал, ссылка на VK.
Девушки не любят?
Эмм, вы еще и секс услуги предлагаете ?
СЕО спам на пульс. Понятно
В итоге, этот поток попыток рассмотреть одно и тоже через разноцветные зеркала и с разных углов упирается в стандартные КРУДы, которые надо сделать по ТЗ.
Зачем перекручивать что-то и изобретать, если рынок просит прямого и безыскусного понимания и исполнения технического задания?
Выглядит как реклама каких-то курсов, но не понятно, где их посмотреть
Подход, конечно, интересный. Но дальше что? У вас есть ютуб или дзен какой-нить? Или вы тут будете нам курс вести. Или что вообще?
Уже вторая рекламная статья на Пульсе за сегодня
Дальше автор повторно изобретет Karel The Robot или что то похожее и...
Ну, какая это реклама... Рассказ о своём желании и готовности почитать нестандартный курс. Сначала в живую, потом сделать печатную или электронную версию, но сначала надо убедиться в его чудесной силе: начнут ли хромые бегать, а безграмотные писать.
Поход, конечно, интересный. Я хотел выразить его уникальность, но дотянул только до "интересного". Вот ради этого и пишу на АШ, чтобы услышать честные, но добрые отзывы. Так что не реклама, и не рассказ, а проверка. В понедельник буду обзванивать учебные центры, предлагать сотрудничество. И ваши отзывы меня к этому отлично готовят!
Так это учебный курс? Он платный? Какие могут быть отзывы, если вы никакого урока не привели? Вместо тысячи слов. И какой смысл "обзванивать", если вы не можете показать результат? А результат - это как раз наши отзывы, но по чему-то конкретному. Тем более, не написали, что это для питерцев
"Результат" преподавателя - учебная программа курса. Висит по ссылке ВК.
Так это да, учебный курс. Который я хочу читать вживую, поэтому буду обзванивать.
Отзывы людей, которые понимают, что здесь написаны. ну, и вопросы, если что-то непонятно, как вот ваши.
Я ее посмотрела. Там также ничего конкретного. Просто пустая реклама. Вы понимаете, что рекламировать можно что-то известное. С разными качественными (не в смысле качества курса) критериями - быстрее, доступнее, дешевле, онлайн-офлайн и прочее. А неизвестное можно рекламировать - только показав результат, которого в вашей рекламе нет. Хотя бы дать один урок, по которому можно сделать выводы
И вы не ответили - курс платный?
О чтении курса пока не условились, условия не известны.
Пусть реклама. Алексворд уже снёс с пульса как "наглую, помойную" рекламу. Ну, лет ит би.
Реклама и правда так себе, поскольку рекламой не задумывалась. Но пусть будет.
Вы так ничего и не поняли
Так все программы пишутся словами.
Большинство команд на английском.
Но 1С использует русский язык в качестве командного.
Для знания процесса алгоритма всё равно необходимо естественно- научное образование(математика, физика, химия, русский язык)
(голосом Йоды) Коллега, ошибку в утверждении вижу я. Алгоритм - прежде всего логика. Это описание последовательности действий для получения результата. И оно может использоваться без всякого матана. Даже простое нарезание бутерброда можно алгоритмизировать без использования тонкостей ООП и математики. В ваших терминах получится именно шагайка: последовательность действий. Ваша история не нова: многие математики, которые не получив педагогического образования, пытаются преподавать что-либо, сталкиваются с подобным. В наше время, как никогда, актуально Прутковкое: "специалист подобен флюсу, полнота его одностороння". Рад, что вы смогли выбраться из глубин математики к истокам программирования.
Коллега, понятие алгоритма очень неоднозначно. Прям очень. Не зря его нет в Википедии: "точная совокупность КАКИХ-ТО действий" не есть определение, это отмазка.
Если говорить грубо, то "какие-то действия" - это выученные действия, показанные математиками. В таком виде программирование доступно от силы 20% людей. Это дискриминация. Поэтому "программируй иначе".
И купите велосипед. Станьте добрее!
Узнаю стиль математиков Вам всегда нужно "тогда и только тогда" или на крайняк "необходимо и достаточно".
Почему именно математиками? Не надо дискриминации. Задам вам простой вопрос: для чего вообще нужно программирование, кроме каких-то вычислений? В зависимости от ответа будут разные варианты дискуссии. Кстати, вот вам пример алгоритма с условием )))
А с чего вы взяли, что я злой? Несмотря на вашу, явно рекламную, простыню текста, я не пожалел времени ознакомиться, найти что-то разумное, что-то не очень. Вот истины ради и вступил в дискуссию с тезисом "алгоритм - это не математика". Вы своим ходом, на физ-мат базе, докопались до истин, которые мне дали на втором курсе лохматого года по специальности, связанной с программированием. Ваш напор не может не вызывать уважения. Как и ваша самокритика. Так что не ищите обиду, где её нет.
Программирование - это помощь пользователю в выполнении умственной работы.
Например, вместо чтения карты - навигатор. Прикладная программа.
А вот как раз вычисления нафиг не упали, это 1/100 процента от современного использования программ. Имеется в виду вычисления, которые нельзя произвести в уме.
Бинго! Я бы сказал уточнил: устранение рутины. Собственно, автоматизация какого-либо процесса (для чего зачастую и требуется программирование) - есть устранение человека из этого процесса. А теперь вернёмся к моему тезису: "алгоритм - не математика": Чтобы автоматизировать-либо процесс, его нужно разложить на действия и связать их в последовательность. Вот эта последовательность действий и есть алгоритм. В ней может и не быть математики. Собственно, вы в своём тексте это прекрасно показали. И я не понимаю: зачем настаиваете на явной ошибке.
Ну, "устранение человека" - это какая-то не наша цель, Т-800, покиньте чат.
А какая ошибка "явная"?
Алгоритм и автоматизация это уже математика, т.к. вы формализуете задачу и строите формулу команд.
Ваша снисходительность и словечки "рекламная", "флюс" говорят о вас больше, чем вам кажется. Но я не в обиде, у всех свои недостатки (ц).
"Флюс" относится к любому специалисту. Я тоже технарь и умею в самокритику А насчёт "рекламная" - кого вы обманываете? Размещение офигительной истории, плавно подводящей к осознанию, что есть жениаль-обучающий курс (со скромной ссылочкой на этот курс внизу) - это не реклама, нет. Это глубокая аналитика. Вот вы реально думали, что ваш посыл никто не поймёт?!
Нет, я думал это ненавязчивое приглашение. Ну, ошибся, все ошибаются.
Давайте я вот прямо не разуваясь с ходу из головы рожу его определение:
Алгоритм это упорядоченное множество условных и безусловных действий, которые при выполнение при одних и тех же входных параметрах всегда дают один и тот же результат и этот результат не зависит от исполнителя.
Нет, МАТЕМАТИЧЕСКОЕ понятие алгоритма абсолютно однозначно. Это программа для машины Тьюринга, или, эквивалентно, частично-рекурсивная функция, или, эквивалентно, клеточный автомат, или, эквивалентно, нормальный алгорифм Маркова. Есть и другие эквивалентные и абсолютно математические точные определения МАТЕМАТИЧЕСКОГО понятия "алгоритм". Эквивалентность всех этих определений доказали математики.
А "определение" из Вики алгоритма как "точной совокупности каких-то действий", это, коенчно, не определение, а чушь собачья, тут Вы правы.
Все в Творцы метят, а нужны маляры.
Еще в далеком 196 (или 1977?) году состоялась в Японии конференция по ИИ. Тогда был романтический период "бури и натиска", казалось, что уже завтра вот-вот...
Так вот, посреди споров о сравнительных достоинствах языков программирования, специально предназначенных для решения логических задач (все эти тогдашние Ада и т.п.) один истинно великий гуру сказал примерно так: "Для программиста в первую очередь важно хорошее знание и понимание японского языка".
=========
Программирование практическое - это вовсе не про знание конкретного языка программирования. Это в первую очередь - умение "разломить пирожок", ремесленное искусство декомпозиции задачи.
Между прочим, любой манагер - программист в параллельных процессах (сотрудники суть нити). А выпускающий редактор журнала (где невозможно "согласовать с заказчиком" перенос срока) - программист реального времени.
=========
Програмимрование на содержательном уровне - совсем не технарство, технарством оно становится при спуске с содержательного уровня на уровень реализации.
100%.
Ну и какой был выхлоп у этого гениального подхода, извините? Просранные впустую миллиарды и потрясающая беспомощность в области ПО?
Ещё в те времена, когда японское компьютерное железо было ого-го-го они перешли на софт из Штатов, а сегодня что осталось от творений этого великого гуру?
Класс! Мы в восхищении! Написать так много и не сказать ничего.
Это уже третья аналогичная статья.
Курсы поди платные ? Кто хочет - бесплатно нагуглит как проги писать
И исправьте название - не исповедь, а реклама курсов
Так это еще и реклама?
Совсем обнаглели, с такими помоями на Пульс лезут.
Так третий раз уже.
Джобс не просто велик, он гений. Только не в программировании.
Поясню. Много вы знаете гениальных авиаконструкторов, не разработавших ни одного успешно летавшего самолёта? А гениальных гонщиков, не выигравших ни одной гонки?
А вот гениальный программист, не создавний ни одной серьёзной программы — у нас есть.
Вы вообще в курсе что в принципе создал Джобс в своё первое пришествие в Apple? Apple III и Apple Lisa. Провал и полный провал.
Apple II создал Возняк, Джобс только цвет корпуса для него выбрал, Macintosh создал Раскин.
А вот уже когда Стива выперли и он понял, что он программировать не умеет, зато умеет отлично выдавать созданные другим людьми вещи за свои — вот тогда он сумел “создать” массу разных интересных вещей.
И да, найти людей, способных что-то создать и заставить их работать на тебя — это круто, вот реально круто… только вот к программированию это отношения не имеет.
Я привел объяснение, почему Джобс великий программист - по своим делам в разработке программ. У вас есть возражения по приведенным доводам?
Тогда любой архитектор, это великий каменщик.
А Миллер из Газпрома великий сварщик.
Джобс РУКОВОДИЛ разработкой Эпл. Дебилы-биографы этого не понимали. А завистники из айти усиленно замалчивали. Но это несомненный факт.
Я понимаю, если вы кодируете 8 или 16 часов, то считаете всех управляющих, которые не кодируют, бездельниками и дураками. Наверно, на редутах стояли какие-то пехотинцы, которые считали Кутузова слепым одноглазым идиотом. Вот только это ошибочное мнение.
Вы как-будто не слышите многих комментаторов здесь. Джоб - великий человек, он великий создатель Apple, и великий продавец, великий менеджер, и великий руководитель. Пусть так. Но он не программист. Поскольку не написал ни одной сколько-нибудь среднесложной программы. Это не значит, что он не Велик.
Не имелось в виду, что Джобс какой-то уникальный кодер-стукальщик клавиатуры.
Подразумевалось, видимо, что он смог понять, какая программа нужна пользователю и как это реализовать практически на имеющейся технике. Вот есть такая специальность "постановщик задачи" (или была).
Такая специальность есть и была, только Джобс ею не владел.
Все его попытки что-то этакое замутить кончились провалом, я про них уже писал.
А уметь придумать как “продать” что-то, разработанное и сделанное другими (где Джобс действительно был гениален) — это другой навык, непосредственно к программированию имеющий очень слабое отношение.
Есть. Ещё раз: менеджер, управляющий разработкой не является программистом. Как менеджер, управляющий стороловой не является поваром.
Джобс, за свою жизнь, не написал ни одной программы. Как можно человека, не написавшего буквально ничего называть программистом, или, круче того, великим программистом?
Откуда сведения, что Джобс НИЧЕГО не написал?
Кутузов тоже не выиграл Отечественную войну, поскольку не сделал ни одного выстрела?
Насколько я знаю, в менеджеры проектов переходят программисты не хуже синьоров. Руководят разработкой компаний минимум архитекторы.
Страницы