Про творчість у програмуванні

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

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

Сьогодні усе змінилося. Так, є невеличка купка програмістів, які досі розширюють межі можливого. Вони сидять у Google, Microsoft, Nasa, Facebook та інших місцях створюючи й визначаючи наше технологічне майбутнє. Але світ заповнений величезними ордами програмістів. Більшість із них і близько не ставляться до своєї професії пристрасно. Вони потрапляють до неї лише тому що вона комфортна, безпечна і гарно оплачувана. Перед цими ордами ставлять бізнес завдання і ці завдання мають мало спільного з творчістю. Потрібно порахувати купон по облігації? Ось, будь ласка, формула. Необхідно відсортувати великий масив даних? Ось бібліотечна функція. Необхідно зробити запит до мільйонної бази даних? Ось приклад запиту на StackOverflow. Треба зручний веб інтерфейс? Хапай Angular та Bootstrap! Треба виконати автоматичну транскрипцію аудіо? Смикай IBM Watson web API. Потужне апаратне забезпечення робить економічно невигідним возіння з вишуканими алгоритмами напівосвічених програмістів з астрономічними зарплатами. Дешевше мати немотивованого програміста який пише аби як. Апаратне забезпечення і повільна мережа у 80% випадків перекриє неефективність його програм.

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

Facebooktwittergoogle_pluslinkedinmailFacebooktwittergoogle_pluslinkedinmail

Leave a Reply

Your email address will not be published.