Стендап Сьогодні 📢 Канал в Telegram @stendap_sogodni

🤖🚫 AI-free content. This post is 100% written by a human, as is everything on my blog. Enjoy!

27.03.2024

Програміст проти інженера

Хоч я зазвичай використовую “програміст” та “інженер” як синоніми для простоти, проте насправді це окремі ролі. Приблизно так само, як робітник та інженер на заводі.

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

Інженер (програмний) - це той, хто розвʼязує задачі за поєднанням програм. Для інженера найкрутіше — це використати готові рішення та взагалі нічого не писати. Або, якщо це звучить ліниво, сформулюю інакше: зробити найбільший результат найменшими зусиллями. Якщо власне рішення займе місяць, а доробка готового — тиждень, інженер обере останнє, навіть коли інтеграційний код не буде таким чистим (а він ніколи чистим не буває.)

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