Ви завжди повинні намагатися зрозуміти систему побудови, яку ви використовуєте.
Це не обов'язково означає, що ви повинні мати можливість створювати всі файли збірки вручну. Важливою частиною є розуміння того, що система збирання робить для вашого проекту, і загальна здатність збирати невеликі проекти вручну (як у «введенні команд на терміналі»).
Я просто схильний думати, що створення (простих) Makefiles - це найпростіший крок, щоб зрозуміти, що відбувається, але у вас можуть бути інші засоби розуміння того, як будувати речі.
Чому / коли вчитися Makefiles
Якщо ви продовжуєте програмувати лише для Windows і не сподіваєтесь, що хтось інший скомпілює ваш код, сміливо складіть код так, як вам подобається.
Якщо ви хочете запрограмувати компілятор агностик (як у "нехай інші вирішують, який компілятор чи IDE вони хочуть використовувати"), тоді вам слід вивчити іншу систему побудови, ніж просто дозволяти вашому IDE "займатися цим".
Якщо ви хочете запрограмувати різні платформи, то вам неодмінно потрібно використовувати широко розроблену систему збірки.
Це все ще не означає, що ви повинні знати, як автогенеровані Makefiles працюють докладно. Ви просто повинні знати, як працюють вхідні файли для системи збирання. Іноді вони мають подібний синтаксис.
Мені особисто дуже подобаються Makefiles і використовую їх для багатьох речей. Не тільки компілюючи код. Я створюю Makefile для кожного більшого PDF-файлу, який я створюю (за допомогою LaTeX), і для кожного проекту мені потрібно автоматизувати пару завдань (створення, упаковка, завантаження, оновлення залежностей із сховищ джерел, витягування / натискання вручну резервних копій)
Однак я багато працюю над терміналом і працюю з Linux. Я не використовую те, що ви б назвали IDE, крім vim (потужний текстовий редактор) та консольні інструменти. Це може бути для вас дуже різним.
Якщо ви коли-небудь скаржилися на необхідність запускати різні команди, що повторюються, лише для "оновлення" / пакета / завантаження / .. "проекту", то навчитися писати Makefiles може бути для вас корисним.
Якщо у вас є і використовуєте інструменти / графічні інтерфейси / IDE для всього, ви, можливо, нічого не отримаєте з цих знань.