Dovresti sempre cercare di capire il sistema di compilazione che stai utilizzando.
Ciò non significa necessariamente che devi essere in grado di creare manualmente tutti i file di build. La parte importante è capire cosa sta facendo il sistema di compilazione per il tuo progetto e la capacità generale di compilare manualmente piccoli progetti (come in "digitare comandi su un terminale").
Tendo a pensare che creare (semplici) Makefile sia il passo più semplice per capire cosa sta succedendo, ma potresti avere altri mezzi per capire come costruire le cose.
Perché / quando imparare i Makefile
Se continui a programmare solo per Windows e non prevedi che nessun altro compili il tuo codice, sentiti libero di compilarlo come preferisci.
Se vuoi programmare il compilatore agnostico (come in "lascia che gli altri decidano quale compilatore o IDE vogliono usare"), allora dovresti imparare un altro sistema di compilazione piuttosto che lasciare che il tuo IDE "gestisca".
Se vuoi programmare per piattaforme diverse, allora devi certamente usare un sistema di build diffuso.
Ciò non significa ancora che devi sapere come i Makefile generati automaticamente funzionano nel dettaglio. Devi solo sapere come funzionano i file di input per il sistema di compilazione. Questi a volte hanno una sintassi simile a volte.
Personalmente mi piacciono molto i Makefile e li uso per molte cose. Non solo compilando codice. Creo un Makefile per ogni pdf più grande che creo (con LaTeX) e per ogni progetto di cui ho bisogno per automatizzare un paio di attività (costruzione, packaging, upload, aggiornamento delle dipendenze dai repository di origine, pull / push backup manuali)
Tuttavia, sto lavorando molto sul terminale e sto lavorando con Linux. Non uso quello che chiamereste IDE diverso da vim (potente editor di testo) e strumenti console. Questo potrebbe essere molto diverso per te.
Se ti sei mai lamentato di dover eseguire diversi comandi ricorrenti solo per "aggiornare" / pacchetto / upload / .. un "progetto", imparare a scrivere Makefile potrebbe essere utile per te.
Se hai e usi strumenti / GUI / IDE per tutto, allora potresti non ottenere nulla da quella conoscenza.