Дмитpий Hecтepук

Блог о программировании — C#, F#, C++, архитектура, и многое другое

Archive for the ‘Education’ Category

Воспоминания про универ

11 комментариев

Я не фанат высшего образования. Я вообще не фанат организованного образования, т.к. в упор не понимаю, почему это вообще нужно организовывать в какую-то систему. В этом посте я постараюсь описать мой опыт в универе и прочих местах. Но в основном в универе.

Когда я пошел в универ, я уже умел программировать. На первом курсе, куча людей пришли вообще без опыта, и только осваивали Java. Я знал больше чем большинство, но меньше чем те, которые не только знали но еще и имели опыт. А такие тоже конечно были.

В то время, я считал что если ты уже не кодер когда тебе 18, то тебе поздно. Сейчас, смотря на современных детей, я понимаю что планка съехала вниз… дети сейчас программируют с начальных классов, и годам к 10 «написать программу» это для них нормальное явление, хотя конечно они еще не вкуривают программы так же системно, как мы. Но всякие Lego MindStorms и прочие плотно захавали из мозг, а С/С++ и Arduino на курсах робототехники тоже практически стали нормой.

Так вот, к 18 годам я попал в один из «топовых» универов Англии который, впрочем, специализируется в основном на электронике а не на comp sci. И я не сказать чтобы впечатлился тем, что я увидел, хотя свою университетскую программу на то время (2000-2003 год) я запомнил описательно.

В плане программирования у нас была Java и С++. Часть преподавалась как теория, часть как практика в лабораториях (которыми руководили всякие postgrads), а для особо продвинутых студентов (таких как я) были доролнительные занятия под названием Space Cadets где можно было написать что-то более сложное.

Если честно, меня не впечатлило ничего. Было очевидно, что преподавателям было глубоко пофиг на эту джаву, они витали в облаках своих абстрактрых hypermedia и язык знали ровно на том уровне, который им позволял что-то преподавать. При этом, те темы которыми занимались преподы были унылы, академичны и к реальной жизни не относились от слова совсем. Например, все пели песню про semantic web, двунаправленные гиперссылки и кучу всяких других абстракций которые индустрия никогда бы не вредила. Пожалуй это первый раз в жизни когда я почувствовал пропасть между академией и реальной индустрией которая делала что-то полезное.

Практически сразу же у нас начались такие бессмысленные предметы как «формальные методы» — это когда используешь языки формального описания программ которые позволяют, например, доказать их корректрость. Хорошо в теории, но если ты не разработчик NASA или Boeing, тебе такие навыки нафиг не нужны. Особенно при том что сами преподы не могли банально объяснить, как язык Z или B ложился на реальный код. Все это было выкинутым временем и можно было сжать до одной 45-минутной лекции. Хотя исследований на эту тему в академии тоже было уух. В этом предмете я впервые увидел препода, который заваливает тебя десятками статей. Это правда было факультативно, а то бы я повесился.

На первом курсе у нас также был семестр электроники, где мы с осциллоскопом и макетными платами делали что-то с простыми схемами. Этот предмет тоже меня не особо зацепил, просто потому что меня в то время не интересовалал электроника и я не знал как все это применить. В те времена еще не существовало литий-ионных батарей и вся тема с созданием портативной электроники только начиналась. О 18650 я в те времена не слышал.

Еще один предмет что у нас был это data structures and algorithms, который почему-то поместили в один семестр. Там были, в принципе, годные идеи о сложности и том какие структуры и когда использовать, но в то время меня интересовало только одно: как получить результат малой кровью. Напомню, что в то время Java была в зачаточном состоянии, структуры были нетипизированные (они и сейчас по факту нетипизированные, несмотря на дженерики) и все это выглядело немного адово.

У нас была дискретная математика и обычная математика (на достаточно базовом уровне — не «вышка» как в универах в РФ). Это как раз то что у меня получалось лучше всего, как ни странно.

У нас было 2 предмета связанных так или иначе с «логическим» программированием. В одном мы изучали Scheme (этакий LISP), в другом — Prolog. Оба эти языка мы прошли очень поверхностно, и я помню что преподам было очень неприятно когда я приставал к ним со всякими распросами. Мне кажется им самим было глубоко параллельно на все это.

В плане собственно software engineering у нас было несколько предметов. Был предмет Professional Issues который обсуждал всякие soft skills и всякую хрень которая происходит в индустрии, как нужно делать презентации, копирайт и прочие этические вопросы. Мимо меня это прошло все чуть более чем полностью.

Кстати, часть всей этой кухни была игра под названием software management game — достаточно безумное времяпрепровождение для студентов, этакий fantasy league, где нужно выбирать на что твоя компания потратит деньги каждую неделю чтобы завершить проект. Пользы от такого симулятора — почти нуль, но хоть был какой-то контекст чтобы пообсуждать как это все менеджится. Победителям, если я правильно помню, выдали кнут (!) в рамочке.

Групповой проект… эхх, это было немного жестоко конечно. На 3 курсе нам впятером нужно было сделать именно групповой проект, который подразумевал переиспользования уже готового куска чьего-то легаси кода для управления взлетно-посадочной полосой. Не суть важно что там было, я ринулся в код, в то время как другие участники этого процесса решили отдохнуть… ровно до того момента как руководство сказало что баллы за проект будут распределяться поэтапно путем голосования каждого из участников. Тут-то я подумал что все баллы должны быть мне, а коллегам минимум.

Все конечно встрепенулись и начали вкладывать хоть какую-то лепту в общий проект. При этом, пока все работали в notepad, у меня был JBuilder и эффективность моя была все-таки повыше. Также, в этом проекте у меня создался первый в моей жизни профессиональный конфликт. Интересно? Ок, рассказываю.

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

Но вкладывать что-то ей все-таки хотелось, еще бы, перспектива остаться без баллов мало кого порадует. Так вот, она в какой-то момент решилась делать иконки для нашего приложения. Сделала она иконки и получилось у нее… плохо. Не то чтобы ад, но совсем плохо, так что я вместо этого просто взял готовые у меня где-то иконки а ля Word, всавил эти иконки, и собственно все.

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

Ну, как-то вся эта история замялась, но потом эта девушка напечатала отчет, который на самом деле должен был делать тот кто «вел» нашу группу (очередной graduate student), но она его написала для него и послала всем нам чтобы проверить. И я написал ей «честный» фидбэк про то где у нее какие ляпы, приправив мои комментарии изрядной долей D&D-юмора про unholy destruction upon us all и все в этом духе.

Вот тут девушка на меня обиделась уже не на шутку. Нужно понимать, в то время еще не было никаких oppression olympics, поэтому девушка по имени Донна просто написала мне грозное письмо с недовольствами и перестала являться на групповые втречи. Было очевидно, что критика ее сильно задела и она восприняла ее как нападение на ее личность. Вообщем, она рано или поздно вернулась в реальность, но все это было очень неловко, а я, как и мои друзья, не мог понять что это она с цепи сорвалась. Забегая вперед, скажу что все мои попытки работать с женщинами над совместными проектами провалились именно из-за излишней эмоциональности оных. Хочется больше профессионализма!

Отдельно хочется упомянуть мой индивидуальный проект. С 3го курса, как я уже говорил, я попал к психологам — атмосфера на психологии мне понравилась намного больше чем на comp sci, поэтому мой дипломный проект я сделал там, написав систему для проведения онлайн исследований в области психологии (система кстати проработала лет этак 10!).

Так вот, мой основной фейл был такой: в то время, вместо java applets, я использовал плагины Macromedia Authorware, ныне умершей технологии. И не подумал про то, что этот плагин не будет работать в стенах моего собственного факультета. Вообще нигде. Часть людей использовали Linux (а плагин был Windows-only), а на студенческих компах банально не было прав чтобы его запускать в браузере! Так что когда я пошел «защищаться», все пошло не очень хорошо. Я не помню какая у меня была оценка, но невысокая.

Конечно, за 3 года было много «элективов» разной степени булшитистости. Был французский язык (нужно было иметь хоть 1 гуманитарный предмет), странные предметы вроде Artificial Intelligence (прогулял все лекции, готовился за ночь, получил >50%), а также предметы которые я просто забыл.

Какой вывод — да простой вывод из всей этой истории. Универ — это какой-то потрясный способ сжечь 3 года жизни и денег и при этом получить минимом скиллов. Программировать меня не научили… я даже Java забросил на 3 курсе т.к. вышел C# а я всегда хотел работать только на Windows поэтому мне было пофиг на всю эту кроссплатформенность и иже с ним. А на С++ в универе никто не умел программировать тогда и не умеет сейчас. Единственное исключение — это русские! Поэтому они сейчас и рулят там HPC делами.

Будь я сейчас студентом, я бы пошел на математику. Это и сложнее, и более фундаментально, и не устревает, применимо много где. А программирование — это не наука. Это навык. Чтобы программы писать. Ведь ключевым вещам вроде отдадки или юнит-тестирования нас в универе не научили от слова вообще… да и сейчас студентов таким вещам не учат.

Универ офигенен для социалочки. Девушки, пьянки, свободная жизнь в общежитии. Все вот это. Я на 3 курсе посетил дай сотона 50% лекций, а то и того меньше. Были дни когда мы по 4 часа в день играли в теннис. Смотрели фильмы (DVD, тогда еще), играли в игры, я прочитал тонну кних R A Salvatore на своем выигранном PDA (мы заняли 2 место на конкурсе программирования Barclays Capital Programming Challenge), ну и всякие MtG/D&D в больших количествах.

Для социалочки хорошо, а для развития все это какой-то фарс. Да и в исследованиях там сплошной фарс, обман и бессмыслица. Так то. ■

P.S.: тем временем…

Реклама

Written by Dmitri

28 марта 2019 at 1:11

Опубликовано в Education

Заметка про видеокурсы

17 комментариев

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

  • Работая в JetBrains, я делал всякие рекламные видео. Их, к сожалению, никто не смотрел. Максимум просмотров было где-то 5к, что в контексте YouTube равно нулю. Но мне за это платили зарплату, так что я делал, и вроде делал неплохо. Скиллы хоть поднял.

  • Я решил сделать свой YouTube канал для того чтобы постить видосики. Также, я постил некоторые из них на TechDays.ru пока ms зами на забили на эту платформу в угоду Channel9.

  • Я понял что мои видосы на YouTube не смотрит ровным счетом никто. 1к просмотров, где-то 2к подписчиков: хвастаться нечем. На yt вообще доход только от рекламы, а я подозреваю что у всех разработчиков стоит AdBlock.

  • В какой-то момент, я вышел на Pluralsight, и начал писать для них курсы. Completion fee (сколько денег платят за завершенный курс) для одного курса где-то $4k. Серьезно, 4к это больше разработческой зарплаты. Так что норм. Особенно если еще и работаешь.

  • Пассивный доход с ps был где-то в районе нуля. А потом один курс выстрелил. Причем самый нежданный. И понеслась.

  • Я сделал много видосиков для ps, а также рискнул сделать что-то на Udemy. К сожалению на Udemy у меня доход был где-то нуль, поэтому я на это подзабил.

  • В какой-то момент я решил выкладывать на Udemy все, что я изучаю в данный момент. Просто «в потоке». И постепенно оно начало более менее приносить.

  • Далее во времени, я насобачился маркетить в Udemy и вот тут уже пошел заметный love.

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

Впрочем, я не против. Я когда делаю курсы, я делаю их хорошо. Очень хорошо. Качество везде. Иначе не выдержать конкуренции, да и вообще, самооценка, «ачивки» — это не только деньги (они уже не волнуют), это когда ты победил себя и поставил все точки над i. ■

Written by Dmitri

27 августа 2017 at 22:54

Опубликовано в Education