Блоґ одного кібера

Історія хвороби контуженого інформаційним вибухом

Орудування ліхтариком свідомості в битвах з драконами складності

with 4 comments

Нотатка на дві метафори. І запасайтесь батарейками!

На обкладинці класичної книжки про компілятори дракон символізує складність, про що на ньому й написано. Програміст озброєний генератором парсерів, та іншими грізними штуковинами, які допомагають йому побороти дракона.

Це перша метафора. А друга взята з перекрученої цитати: “Коли ми відмежовуємось від зовнішнього світу ліхтарик свідомості спрямовується всередину”. Так здається писав про медитацію Хофштадтер. Медитація в мене ще не виходила.

Але недавно, в “найкращого програміста в світі“, я вичитав ще одну цитату з “Code Complete” (за який очевидно варто взятись):

The intense inwardness of programming makes personal character especially important. You know how difficult it is to put in eight concentrated hours in one day. You’ve probably had the experience of being burned out one day from concentrating the day before or burned out one month from concentrating too hard the month before. You’ve probably had days on which you’ve worked well from 8:00 am to 2:00 pm and then felt like quitting. You didn’t quit, though; you pushed on from 2:00 pm to 5:00 pm and then spent the rest of the week fixing what you wrote from 2:00 to 5:00.

Коротко – концентрація штука ніжна й недовготривала. І якщо її щосили напружувати – за короткий час зникає. Тому, треба писати код короткий час, але дуже уважно, а решту часу витратити на комунікацію в проекті, навчання, тести, маленькі рефакторинги, і тому подібне. Щоб не витрачати потім час на виправлення того що написав при недостатньому рівні концентрації.

А ще я читаю цікаву книжку Coders at work, яка складається в основному з інтерв’ю суперзірок світу програмного забезпечення. Так, от однією з думок книжки, яку поділяють багато з розробників є наступна:

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

В розробці основне – пам’ять в яку ми можемо помістити частину системи над якою працюємо. Чим більша вона в нас, тим більшу систему ми можемо туди помістити.

Але біда в тому, що системи середньої складності на порядок більші за об’єм найкращої людської пам’яті, і тому повинні розглядатись частинами. Парадокс в тому, що багато з опитаних в вищезгаданій книжці, вважаючи що чим менша пам’ять на код в розробника, тим кращий код він напише. Бо він буде менш заплутаним, і зрозумілим для кожного.

І взагалі, наш ліхтарик свідомості світить крізь рамку вікна в якому відображається код. Чим воно більше тим краще, тому фірми дбають про те, щоб на роботі стояли дисплеї не менші ніж в програмістів вдома, а іноді і два дисплеї. Але це все одно обмежене вікно.

Тому, зростає роль того як ми це вікно рухаємо, і як керуємо своїм ліхтариком свідомості.

Те що середовище розробки це редактор на 20%, і на 80% – браузер коду (привіт Vim, вкладки, буфери, теги, betterthangrep, і все що дозволяє рухатись по коду в правильному напрямку вдесятеро швидше ніж я вмів рік тому) я зрозумів здається ще давно.

Як і те, що ліхтарик свідомості потрібно вмикати на повну інтенсивність лише в потрібні моменти, а далі вимикати і йти спати. Але все ще мушу навчитись це робити краще.

І взагалі, як якось сказав danbst, роботодавцю вигідно щоб ти працював лише на роботі, а решту часу займався рекреаційною діяльністю (сон, їжа, спорт, стосунки).

Але це я теж не можу собі дозволити. Я просто не можу сидіти мовчки коли в голові вирують ідеї. Руки сверблять і тягнуться до клавіатури.

В мене звісно потрохи проходить оце перше враження, коли приходиш на роботу й думаєш “кайф! за це ще й платять?”, і приходять моменти коли треба робити свідоме зусилля для скеровування ліхтарика в потрібному напрямку.

Але трапляються моменти коли хочеться світити ним не жаліючи батарейок, і спроба свідомого зосередження “світла” його тільки затьмянить. І напевне краще використовувати його на всю, ніж старатись економити. Батарейки теж старіють.

До речі, більшість опитаних в “Coders at work” вже не молоді, і на запитання “Чи правда що молодші програмісти мають перевагу в тому що швидше вчаться?” часто відповідають що вони мають перевагу тому, що в старшому віці енергія вже не та.

Будьмо!

P.S. Коли задач 10, і час від часу з’являються критичні, на які треба переключитись, то від паніки все стає гірше. На щастя в нас все переорганізовують на нову гнучку методологію, я зробив багато, і в мені залишилась лише одна задача (хоча сьогодні повернулась ще одна) дослідження Google AdWords API. Я навіть вже попрацював на Google, комусь на халяву допоміг, і мені навіть подякували. Це приємно. Відкритий код творить чудеса – і на Google починають працювати люди (як от я), яким за це платять зовсім інші.

P.P.S. А ще я хотів написати про те як на Python, з WSGI і httplib2 зробити домашній проксі веб-сервер з кешем та енциклонгами, але батарейка сідає, треба йти заряджати, бо завтра доведеться світити на темінь багів авторизації OAuth та сертифікатами в Yandex Direct API. Баги це неприємно, але після їх знешкодження відчуваєш себе кимось подібним до Шерлока Холмса чи Доктора Хауса.

Advertisements

Written by bunyk

Грудень 15, 2011 at 00:53

Відповідей: 4

Subscribe to comments with RSS.

  1. P.P.P.S. Помилки я завтра може й виправлю. Але ви зацініть увесь цей символізм! 🙂

    bunyk

    Грудень 15, 2011 at 00:55

  2. Заценил. Иди заряжай батарейки, всю энергию на блог потратишь 😀

    jtimvv

    Грудень 15, 2011 at 02:09

  3. “та коли спиш 4 години на добу, то вже не до сантиментів” – писав Камю.
    інколи мало спати навіть корисно – тоді ти насправді розумієш, що для тебе важливо, а що – самонавіювання/вплив зовнішніх обставин і тд. але після цієї в певному розумінні “очистки організму” треба давати йому хорооооший відпочинок. інакше дія “очищення” буде дуже негативною.

    а ще на початку “внутрішній ліхтарик” я зрозуміла так, що якщо ти відмежовуєшся від перетравлення проблем зовнішнього світу, то починаєш перетравлювати свої. ти, в принципі, мав на увазі майже те саме, але в тебе більш позитивний контекст – контекст продуктивності.

    daschablume

    Січень 17, 2013 at 10:14


Залишити відповідь

Заповніть поля нижче або авторизуйтесь клікнувши по іконці

Лого WordPress.com

Ви коментуєте, використовуючи свій обліковий запис WordPress.com. Log Out / Змінити )

Twitter picture

Ви коментуєте, використовуючи свій обліковий запис Twitter. Log Out / Змінити )

Facebook photo

Ви коментуєте, використовуючи свій обліковий запис Facebook. Log Out / Змінити )

Google+ photo

Ви коментуєте, використовуючи свій обліковий запис Google+. Log Out / Змінити )

З’єднання з %s

%d блогерам подобається це: