» » Що саме тяжке для програміста?

Що саме тяжке для програміста?

Фото - Що саме тяжке для програміста?

Розкриваючи цю сторінку, відразу сідав зручніше, дорогий читачу. Будеш здавати іспит.

Спробуй відповісти на поставлене в заголовку питання. Бачу роботу думки на твоєму злегка насуплені лобі. Давно нічого не здавав? Або ця чаша тебе минула? Зараз це неважливо. Отже, почали.

Ось ти стрепенувся і з радістю подивився на мене ... точніше, на назву статті. Звичайно ж, створення складної програми, і термінової до того ж! Відповідь - неправильний. Мова, природно, не йде про тих, для яких наша робота - каторга. Для них - будь-який крок може бути тягарем, крім отримання грошей, зрозуміло. Я говорю про захоплено програміста, якого складність заворожує, а терміни розбурхують уяву. Він, по суті справи, і є справжнім програмістом. З проблемою справиться і отримає колосальне задоволення разом з ... невеликими грошима.

Бачу, екзаменований задумався. Друга спроба. Коригування чужій програми! Лоб розгладився. На обличчі - розуміюча посмішка. І правильно! «Влізати» в чужу програму часом набагато складніше, ніж з нуля написати свою. Не всі на це швидко вирішуються. Але якщо треба? Тоді доводиться. Чужа думка, чуже мислення. Увібрати його в себе не завжди вдається. Можна виправити одне, а зачепити зовсім інше. Так, ось в чому труднощі, підсумував ти. Ні в якому разі! Освоєння програми звільнився - процес все-таки досить захоплюючий, хоча і дуже каверзне. При перемозі (а куди ж вона дінеться, якщо з усіх боків насіли?) - Тріумф куди більше. Одним словом - це тяжко, але не смертельно.

Пауза довшим. Задума глибше. Нарешті, осяяння! Слово «тяжко» - воно говорить саме за себе! Перетягувати важкі речі. Техніку, столи при ремонті приміщення або переселенні в іншу аудиторію. Для цього відривають від улюбленої справи, іноді на день або два, а то й більше. Не хочеться? Звичайно! Стороння робота знаходить не лише особин чоловічої статі. Жінкам доводиться підмітати, витирати все від пилу і оберігати горщики з квітами, щоб «хлопчики» їх ненароком не зачепили. Пам'ятаю, як у нас в бюро робили терміновий ремонт до приїзду іноземних партнерів. Без нашої участі, звичайно, не обійшлося. Ми всіляко намагалися прискорити процес, тим більше що тулитися в «гостях» у сусідів було вкрай незатишно. Ми навіть самі прокладали мережевий кабель, не дочекавшись відповідної служби. У мого начальника добре виходило працювати і молотком і дрилем, а я терпляче тримав під ним стілець, щоб ця дрель ненароком не впала ... Інших чоловіків в бюро не було ... Не було і почуття нестерпності. Зрештою все закінчилося, і ми приступили до свого звичайного справі, задоволені і радісні.

Непростий іспит, так? Відповіді не проходять, думки вже плутаються, а я навис над душею мало не в матеріальній оболонці і вимагаю, вимагаю ... Ага! Дійшло! Робота із замовниками! Якими противними і невгамовними вони бувають! Всі соки вичавлять і ніколи не скажуть, що задоволені. Просто промовчать. Дзвонять тільки тоді, коли щось не йде. Але і з ними програміст може впоратися. Викрутитися, домовитися, а якщо надати маленьку дещицю випереджаючого уваги, то клієнт - твій! Дзвониш йому трошки раніше, ніж він, і питаєш, як поводиться розробка. А він часто не готовий відповісти, бо ще не брав у руки мишку і до клавіатури з учорашнього дня не торкався. Відповідає мало не вибачаючись. А потім, коли зіткнеться з проблемою, уже не налетить на тебе, як бомбардувальник, а буде м'яко просити.

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

Ось і все. Програма створена, доробки зроблені, ремонт у рідному приміщенні теж, замовник приручений, впровадження успішно пройшло. То де ж справжня суперважка трудність? Мовчиш, читачу? Добре, допоможу. Крім усього вищеописаного є одна невід'ємна частина, без якої ніхто програму експлуатувати не буде.

Інструкція! До неї потрібна детальна і зрозуміла інструкція! Це і є камінь спотикання для дотепер не сумує програміста. Він може швидко зміркувати, що потрібно користувачеві і з нальоту добитися результату. Поставлена задача майже моментально переводиться в оператори конкретної мови. І цього ніхто не помічає! Часом навіть сам програміст. Але кілька папок писанини, яку необхідно здати, він не помітити не може. Нехай, що не писанини, а комп'ютерного набору тексту, нехай не кілька папок, а всього одна. Все одно, для звиклого літати різке приземлення рівносильно краху.

Пам'ятаю, як сам я, на великій швидкості Налагодивши чергову програму, зібрав всю силу волі для написання інструкції. Я поспішав швидше скинути з плечей ненависний вантаж, роблячи масу помилок і не надто виразно описуючи режими робіт. Начальник довго сидів зі мною, змінюючи, де міг, обороти і приводячи «праця» до стерпного вигляду. Внутрішньо я дуже сердився. Потім була наступна програма (як цікаво!) І така інструкція (скоріше б звільнитися!). На якомусь етапі я навчився їх випльовувати, а, точніше спльовувати. Але щось не домовлявся, а щось відображалося укрупненим планом. Не думаю, що я був самотній.

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

Найдивовижніше, що я зустрічав і програми, вихідні тексти яких були схожі на інструкцію з їх створення. Акуратні коментарі описували, що робить кожен оператор. Уявляю, скільки часу йшло на те, щоб виконати вимогу начальника. Ці програми, правда, було легше виправляти. Але як далеко можна було просунутися без коментарів! Хоча робота велася за принципом «повільно, але вірно і зручно в майбутньому». Програми в той ЄС-івських = СМ-івської час робилися на десятки років, а актуальність вони втратили набагато раніше, років через два.

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

Ось ми і відповіли на поставлене запитання. Іспит закінчений. Але куди ти, любий читачу? Давай заліковку. Як навіщо? Поставлю відмінну оцінку. Чому відмінну? Ти так старався. Перебрав усі варіанти, думав. А поки ти розмірковував, я і сам остаточно зрозумів, що ж саме тяжкий для програміста ...