python code

Програмування. Творчість чи ремесло?

Hello, World, друзі! Сьогодні я хочу поділитись з читачем роздумами на філософську тему програмування – це твочість чи ремесло?

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

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

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

Я займаюсь програмуванням досить тривалий час (хоча не завжди доводилось безпосередньо кодити). Починав я програмувати не тому, що це було прибуткова та цікава професія. На той момент я взагалі про це не думав. Для мене це була якраз саме творчість.

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

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

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

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

Це і є не творче рішення задачі. Це і є ремесло. Коли ти просто накидуєш кількість коду, котра вирішує задачу прямо “в лоба”. 

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

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

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

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

Даючи відповідь на запитання, чи є програмування творчістю, я однозначно вважаю, що це так. Ця професія творча, але за умови певного підходу.

З іншого боку, чи можна перетворити програмування на рутину? Так, можна. Це можна зробити простим способом. Завантажити себе нецікавою роботою, нецікавими проектами та просто, як то кажуть, витрачати своє життя на те, що тобі не дуже і подобається. Тут ніхто нічого не в силах змінити, ніхто не допоможе.

Я закликаю, перш за все, полюбити програмування. У своїх статтях я намагаюсь показувати цікаві речі.

Насправді речі, у яких ти намагаєшся розібратись, коли ти розбираєшся і починаєш розуміти їх, викликають радість (принаймні у мене точно так і відбувається). Це дозволяє відчувати приємні відчуття пізнання чогось нового. Чого і вам бажаю.

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

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