Yesterday I bought a copy of The Pragmatic Programmer: From Journeyman to Master, by Andrew Hunt and David Thomas, because it was on sale for $2.99 (it’s since gone back up to its original price). It’s an eloquent read, not focused on technical details but on philosophy.
This snippet of wisdom early on in the book was something that I have tried to express to non-programmers but have failed to do so concisely:
if you do all your work using GUIs, you are missing out on the full capabilities of your environment. You won’t be able to automate common tasks, or use the full power of the tools available to you. And you won’t be able to combine your tools to create customized macro tools.
A benefit of GUIs is WYSIWYG—what you see is what you get. The disadvantage is WYSIAYG—what you see is all you get.
GUI environments are normally limited to the capabilities that their designers intended. If you need to go beyond the model the designer provided, you are usually out of luck—and more often than not, you do need to go beyond the model.
Pragmatic Programmers don’t just cut code, or develop object models, or write documentation, or automate the build process—we do all of these things.
Hunt, Andrew; Thomas, David (1999-10-20). The Pragmatic Programmer: From Journeyman to Master. Pearson Education (USA). Kindle Edition.