Me

Уползище

Убежище для тех, кто не бегает


Previous Entry Поделиться Next Entry
Me

Регенерация программиста

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

После поста о психологии программистов мне поступил запрос программиста, которого в процессе лечения поломали психологи (подлечили как человека, поломали как программиста): восстановить профессиональные качества программиста.

Нижеследующее - первые наброски методики. Прошу дополнять и корректировать.

Тезисы:
1. Курс должен проходить в обстановке, приближённой к нормальной работе программиста. То есть годиться для индивидуальной самостоятельной работы. Роль ведущего - направлять и подсказывать, если понадобится. Дистанционно.

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

3. Я планирую фокусироваться на следующих качествах:
* способность к рабочему трансу (состоянию потока)
* в качестве помощи - техники организации работы и времени
* мышление абстракциями и категориями
* деятельный интерес к тому, как всё устроено, как работает и как это можно улучшить
* удовольствие от программирования как процесса

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

1. Рабочий транс:
Программы для упражнений в трансе вообще - headspace и им подобные.
Игры, требующие сосредоточенного напряжения мыслей, но не скорости реакций. Puzzle Forge.
Игры, требующие сосредоточенного внимания, но не скорости реакций. Shisen, Mahjongg, 2048.

1a. Техники организации. Тут полностью хватит "Джедайских техник" Дорофеева.

2. Абстракции и категории:
Казуальные игры на логическое мышление и внимание, с минималистической графикой или без неё. Simon Tatham's Puzzles, Sudoku, Sherlock (Эйнштейн), Triple Town.
Тестовые стратегии и бродилки. Nethack, ADoM, Dwarf Fortress, что ещё? Принципиально: никаких графических надстроек, только условные текстовые символы.

Следующий уровень: взять несколько принципиально разных языков программирования, не для практического применения, а чтобы прочувствовать, какие идеи и способы несёт каждый из них, ощутить, как каждый из языков выворачивает мозги в свою сторону. Примерный список: C (не C++), Forth, Scala, Haskell (или F#), javascript (Node.js). Изучить основы, порешать на них простые упражнения типа CodeKata.

3. Интерес "как это работает":
Упражнения: Возьмите любую программу или устройство, которыми вы регулярно пользуетесь. Изучите все его возможности как пользователь: разберитесь в назначении каждой кнопки и рычажка, изучите все режимы работы; пройдитесь по всех пунктам меню, настройкам и панелям, убедитесь, что понимаете назначение всего, что там есть. Обращайтесь к инструкциям и Google для прояснения.

Следующий этап: изучите хотя бы в первом приближении, как оно устроено внутри, что там к чему и зачем. Опять же инструкции и Google, how stuff works. Следующий этап: найдите хотя бы три условия или ситуации, на которые эта штуковина не рассчитана и заглючит. Придумайте хотя бы по три способа, как это исправить.

Общее развитие: смотрите лекции с TED.com и им подобные

4. Удовольствие от программирования:

Подберите себе pet project - программистскую задачку, которую вам будет интересно сочинять и делать, не связывая себя обязательством вообще кому-либо её показывать. И делайте её на любом известном вам языке программирования. Позвольте себе делать только интересные части, наплюйте на документацию и рутинное вылизывание скучных подробностей, если они вам не интересны. Снимайте в этой задаче сливки и слизывайте крем с тортика. Позвольте себе бросить её недоделанной, когда надоест, и переключиться на другую подобную задачку. Цель - получать удовольствие от самого процесса сочинения структур и алгоритмов с последующим их кодированием. Дисциплине в рабочих проектах вы научитесь отдельно в соответствующих курсах, а это - место для игры.

Уф. Комментарии, мнения, дополнения?

[ DW ]

  • 1
imonah November 6th, 22:46
Не лезли бы Вы туда, в чем нихрена не понимаете...

andrzejn November 7th, 6:04
Не, не подойдёт. Из такой установки программисты не получаются.

fdo_eq November 7th, 6:52
А откуда уверенность, что программисты получаются из каких-то установок? Мне вот, например, кажется, что на программиста учиться нужно...

andrzejn November 7th, 7:21
Опыт расплодившихся курсов "войти в IT" и прискорбного качества выпускников показывает, что учиться, конечно, необходимо, но без правильного настроения и стиля мышления нихрена не получается. А когда душа лежит правильно, то программисты отлично вырастают и самоучками.

fdo_eq November 7th, 8:17
Опыт расплодившихся курсов говорит только о том, что это не обучение, а халтура. А что касается ваших аргументов, то да, когда человек хочет, он и сам научится. А когда не хочет, то он и к вам не пойдет...

А правильный стиль мышления - это не условие, а результат программистской практики. Общая схема такова: человек осознает свое желание стать программистом -> начинает практиковаться -> постепенно вырабатывается правильный стиль мышления -> появляются результаты -> результативная деятельность приносит удовлетворение -> человек ощущает, что у него "лежит душа". Так всегда и бывает. Где в этой схеме вы?

andrzejn November 7th, 19:23
Вот переход "начинает практиковаться - вырабатывается стиль мышления" можно облегчить, а можно пустить на самотёк. Результат, в принципе, плюс-минус один и тот же, но за разное время и с разными побочками.

Может быть, и не надо его облегчать. Но попробовать - интересно.

fdo_eq November 7th, 8:20
Или я не понял ситуацию, и запрос от программиста, упоминавшийся в изначальном посте, это на самом деле запрос лично от вас?

andrzejn November 7th, 19:23
Нет, не от меня.

otawa November 6th, 23:37
Моя мысля - про необходимость переключения режимов. Потренировать именно то, чтоб в рабочее время думать как программист, а дома в выходные переключаться на общечеловеческое восприятие, чтоб не возникало по инерции историй про десять палок колбасы (яйца были - взял десяток).
И собссно вопрос: а в чем заключается поломатость программиста? Знания-умения-навыки не могли просто так испариться - значит, проблема с их применением? Или где?

andrzejn November 7th, 6:06
Перестало переть и тащить от программирования, а раньше пёрло, и это было здорово. Хочется вернуть это ощущение, оно было прекрасно. Ну, индивидуально я ещё буду с этим разбираться, но мне интересно, получится ли сделать общую методику.

Переключения режимов, ага. Спасибо.

nasse November 7th, 11:52
Кстати, я не уверена, что таращенье от программирования может быть навсегда.

Странная мысль - не "пытаться восстановить", а "исследовать, как изменилось"

(Подумав.) А ведь да.
1. Структура "пёрла" с возрастом и опытом изменяется.
2. Программирование очень подходит для эскапизма. Если вдруг необходимость в эскапизме уменьшается, место программирования в жизни меняется. Это нельзя просто "вернуть на место"

Edited at 2017-11-07 11:56 am (UTC)

otawa November 7th, 18:21
Согласна с Нассэ.
Вот были у человека любимые башмаки, потом усохли, стоптались, стало неудобно - и человек приходит с запросом: "меня раньше от этих башмаков пёрло, а теперь перестало, хочу вернуть как было".
А этот программист осознает, из-за чего его перестало переть? В чем тот пёр заключался? Может, дело и правда в эскапизме, который теперь не манит? Или не в эскапизме, а в нарциссической крутости "ай-да я, как я стройно мыслю, а вам слабО". Или еще в черте лысом в ступе. В общем, мотивацию бы покопать.

celen_me November 7th, 10:02
Еще можно добавить школьную олимпиадную математику уровня всероса. Тамошние задачи для решения заставляют погрузиться а поток еще так.

nasse November 7th, 11:49
Умение создать себе "песочницу". В которой можно просто играть, не думая о деньгах, мнении окружающих, а также осмысленности и полезности.

julianikolaeva November 7th, 14:43
Что-то не сходится. Человека вылечили - человек целый день лежит, улыбается и пускает слюни. Просто как профессионал сломался, а "как человек" - совершенно счастлив.
Чинить надо как человека.
Предположу, что изначальная история - про отношения с девушкой. Бывает такой недолгий, но неприятный сенситивный период, когда кажется, что случайный спутник важнее работы, в референтную группу попадают невероятные уродцы, попирающие своим существованием все законы логики и физики, и нет навыка восстанавливать свой психологический комфорт короткой обсценной репликой. А психологи-неудачники присоединились к упомянутой референтной группе и стали доказывать нормальному человеку, что его врожденные и нередактируемые особенности надо редактировать и улучшать под их, психологов-неудачников, жизненные стандарты. Чтобы не смущал уродцев тем, что у него два глаза и ходит, выпрямившись.
В ответ на вопрос - вижу две стратегии.
Стратегия один - со стороны профессии. Посмотреть, какие величины он приписал к самореализации, и почему свои профессиональные навыки, конкретные действия или успехи обозначил как что-то нежелательное или неприятное. Где-то ошибка в константах, не в формуле.
Вторая - имхо, более эффективная, но менее реальная в предлагаемом контексте: уравновесить дефицит, изначально приведший к психлогам. Дать почувствовать эмоциональный комфорт, принятие и собственную безусловную ценность. Показать, что есть девушки нормальные. Убедить, что с ним все в порядке. А если кто-то из близких ставит вопрос ребром: "Я или работа!", - он ни разу не близкий.

a_bronx November 11th, 12:18
твиттером сегодня принесло:

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

_adept_ November 21st, 20:17
Можно добавить.
Бродилки: dungeon crawl stone soup

Языки: ocaml

andrzejn November 22nd, 8:45
Годится :)

ascan December 11th, 13:46
Не знаю, тот ли это случай, и поможет ли, но добавлю от себя... Долгие годы я плотно сидел на игле программирования, весь предыдущий пост о психологии программистов - это про меня в чистом виде. Кстати, если вдруг заходит речь, всем говорю, что мыслю образами, потому что понять способ мышления потоками, абстракциями, структурами и т.п. далеко не все могут, и комментарии это подтверждают. Так вот, лет эдак в тридцать пять я с грустью понял, что хоть кайф я всё ещё ловлю, но для входа в "поток" мне нужно уже порядком поднапрячь мозги, для чего, с одной стороны, передо мной должна вставать существенно более сложная задача, а с другой - отсутствие внешних раздражителей (начальство с отчетом, ребенок с "домашкой") и ти-ши-на.
Ничего внезапного в этот период у меня в жизни не происходило. Как мне кажется, просто исчерпался запас энергии, гнущей короткие дофамин-эндорфиновые петли. Да, некоторая пустота ощущалась, но я не скажу, что это требовало лечения - со временем я открыл иные удовольствия, по силам.
Собсно, я это к тому, что люди разные, и такие изменения могут произойти и в 45, и в 25, и не обязательно искать техники и средства, чтобы вернуть прежнее состояние, но принять его и полюбить. :)
Хотя, возможно, я слишком рано сменил бродилки на 2048 и Euclidea. :)

andrzejn December 11th, 14:20
Спасибо :)

С возрастом физически ослабевает внимание и ухудшается оперативная память, в результате производительность сильно падает (хотя до определённой степени ещё можно компенсировать опытом). Поэтому могучие программисты (не архитекторы, а творцы кода) старше 45 - счастливая редкость.

miller777 December 11th, 19:52
Значит, в 47 сменить специальность с эникея на программиста - надежды практически нет?

Не для хобби, а именно чтобы работать по этой специальности.

andrzejn December 12th, 5:45
Будет трудно. Больше шансов, если хорошо освоить какую-нибудь специфическую технологию, и осесть в поддержке соответствующих продуктов.

  • 1
?

Log in

No account? Create an account