Задачи обезьянке для программиста

Обсуждаем вопросы личной эффективности: как есть слонов, лягушек, летучих мышей...
Ответить
Winexcel
Сообщения: 1
Зарегистрирован: Чт июл 04, 2019 2:38 pm
x 2

Задачи обезьянке для программиста

Сообщение Winexcel » Чт июл 04, 2019 3:01 pm

Здравствуйте! Я программист :D , читаю вашу замечательную книгу, конспектирую, пересказываю своими словами, чтобы полностью понять материал. Сейчас остановился на 5-й главе (ещё не прочёл). Возник вопрос к автору, Вы пишите, что обезьяне нужно поручать только те задачи, над которыми не надо думать, а если и надо то делать это минимально, цитата из книги (стр. 70)
3. Задачу можно выполнить, по минимуму используя мышление (в
идеале формулировка должна вызывать внутренний возглас: «Да это уже
проще сделать, чем записать!»).
Подскажите пожалуйста, как быть в этом случае программисту? У меня большая часть задач интеллектуальная, и чтобы их решить там нужно всегда использовать мышление по максимуму.

Например задача вида: Написать код для многопоточности в юните UserStore по ответу Асама с GitHub.
Здесь подразумевается, что во время написания кода я буду думать, и на мой взгляд здесь должно быть исключение из правил, если я не прав, объясните пожалуйста этот момент.
2 x

Аватара пользователя
Дмитрий Неумойчев
Сообщения: 279
Зарегистрирован: Пт июл 10, 2015 10:50 am
x 515
Контактная информация:

Re: Задачи обезьянке для программиста

Сообщение Дмитрий Неумойчев » Чт июл 04, 2019 3:45 pm

Обезьян не должен думать, чем ему заняться, где взять пререквизиты и тд.
По примеру: не должно быть "Написать код ... по ответу Асама с GitHub"
Должно быть или " изучить ответ Асама" - в процессе ответ дербанится на ИНФО и задачи
Или уже "Написать код для многопоточности с учетом ХХХ", где ХХХ - конкретный контекст, а не ссылка на руководящий документ.
3 x

Аватара пользователя
cartmendum
Site Admin
Сообщения: 1529
Зарегистрирован: Вс июн 28, 2015 1:56 pm
x 2826
Контактная информация:

Re: Задачи обезьянке для программиста

Сообщение cartmendum » Чт июл 04, 2019 6:00 pm

У программистов более прокачанная обезьяна :) Она умеет немного думать.

Написать код для многопоточности в юните UserStore по ответу Асама с GitHub

Звучит вполне себе как задача...

Иногда можно попробовать формулировки вида:
Вставить сниппет из ответа Асама, посмотреть, заработает ли
2 x

Ivan Kopylov
Сообщения: 28
Зарегистрирован: Ср мар 02, 2016 1:33 pm
x 48

Re: Задачи обезьянке для программиста

Сообщение Ivan Kopylov » Сб июл 06, 2019 8:46 pm

@Winexcel, а какова цель вопроса - задачи пробуксовывают? В вопросе способа выполнения задачи нет позиции "прав - не прав", а есть "работает ли мой подход доведения задачи до конца". Если задачи выполняются, не прилагайте излишнее давление на работающую систему :)

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

Написать код для многопоточности в юните UserStore по ответу Асама с GitHub - высокоуровневая задача. Перед тем как приступать к выполнению задачи, делю высокоуровневую задачу на понятные мне куски. Куски должны быть понятны лично мне, а не коллеге \ тимлиду \ заказчику. Эти куски - вехи, без которых задача не будет считаться выполненной. Пример обезьянопонятных вех:
- попробовать послать запрос к github и посмотреть глазами содержимое ответа
- запустить прогармму в дебаггере и смотреть как работают различные сценарии текущей реализации многопоточности

Большинство моих задач начинаются с "Засечь помидор и тупить в заведенную задачу в системе таскооборота, пока не станет понятно что именно непонятно, затем записать вехи".

Если же есть факт пробуксовки выполнения задач, то хорошо отмечать для себя триггеры тупняков и избавляться от них. Примеры тупняков:
- вообще нихрена непонятно, фрустрация, ад, хочется к маме на руки. Нужно идти и узнавать что всё-таки подразумевается. Задавать вопросы пока не станет понятно, а ответы записывать.
- по мере выполнения задачи резко стало понятно что возникнет такой-то баг или уязвимость, в общем, какая-то критическая вещь, про которую вот никак нельзя забыть. Либо стало понятно что нужно уточнить у заказчика что-либо. Например, что github не отдает нужных данных. Предпочитаю не переключаться и судорожно фиксить, а сформулировать хоть как-то и после помидора доформулировать уже в годную задачу. А конкретно текущий помидор - доделываю чтобы код начал работать и выполнять свою бизнес-задачу (за которую уплачены ресурсы заказчика).
- лежащий билд - невозможность погонять свой код (отвлекают ошибки, потому что понимаю что может наложиться сложность и будут непонятные баги).
- отсутствие возможности запустить программу чтобы подебажить. Возможность дебажить и видеть содержимое переменных - сильно экономит мыслетопливо. Не нужно в голове удерживать хрустальный замок (хотя это очень приятно, через 2 недели уже не вспомнишь что написал).
- если проект большой, бывает трудно найти место для своего кода. В таком случае нужно найти место, где можно писать хоть как-нибудь, главное чтобы писалось, а позже уже перенести.
- никак не придумываются имена методов, имена переменных, хотя понятно что надо написать. В таком случае у меня переменные dasd, dsajdl12, и перед коммитом придумываю что-нибудь понятное коллегам.

Так или иначе, хотелось бы больше информации по вашей проблеме :)
3 x

Ответить