"Programming is problem-solving." <-- This is the main thing about programming. It's a language that helps you build tools that solve problems. If you're the type of person to force things into place, programming probably isn't for you. Sure, you can force things into place with programming, but it'll often cause lots of headaches or cost lots of money down the line as needs grow.
It's like a carpenter, there's a certain way to build buildings, you can build many different shapes and sizes and as they get bigger you have to consider different methods. Sure you can use cheap wood and jam things into place but the structure probably wont last very long but it really depends on what you're using it for. If it's a quick program to last a day to get a simple task done, use cheap tools and build it fast. If it's a structure that you want to use for a very long time, do it properly and plan it out.
Programming is easy, great programming takes effort and very few people are naturally good at it.
Anyone can play heart and soul on the piano, being a great pianist takes time, practice, and effort.
Your carpenter analogy really hit. A fantastic way of explaining this - Don't hate me if I steal this :P
Thanks for the comment!
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.