The following isn't a universal truth. It's a report about my observations of a recurring theme in everything that's great.
First you imitate. Then you improvise. And then you may innovate.
Imitation means repeating existing things to reach a deeper understanding of how it was done in the past. Improvisation means connecting the static patterns in creative ways to solve problems. Innovation means deviating from the known patterns in new and effective ways.[^ins]
[^ins]: I had a very inspiring conversation with my friend and trainer Sascha Fast about the topic of giving any practice its proper attention, and how this conflicts with the addict's mindset of getting your quick fix here and now; a trope I got from Silverman's Love Sick, a great book if you're interested in humans. The point is that all of us are nowadays conditioned to become this kind of addict. That we become shallow. And that depth requires some sort of dedication.
This is the case for Japanese martial arts. It's the same for gymnastics. First you progress towards being able to hold your body. Years of practice; not much that's interesting along the way. Then you add some flow to the game. And then you can come up with sequences and, magically, have become incredible strong in the process.
Or take musicians. Without learning how to play properly, you cannot produce beauty. You have to make hitting chords second nature early on. You become better at playing music others wrote, finding your style of interpretation and deepen your understanding of how music works. Only then can you begin to jam and improvise properly. Without really grasping the basics your own songs may be played correctly but will lack depth and appeal.
Properness is the key term, really. It's about meeting the expectations and high standards that are already present in the tradition of the respective craft or art.
I can tell you from experience that it's just the same with painting and drawing. You know that Picasso infamously told people he had to study fine arts only to then unlearn the dominant notion of beauty that was superimposed upon him – and draw like a child. Kind of. Turns out copying Picasso's style isn't so trivial after all.
When you run a randomized algorithm that puts colors on the screen, one of the many resulting pictures will eventually resemble the Mona Lisa. Or you let chimpanzees throw paint on canvases for years. By chance something they produce will look just like a well recognized piece of art. But it's not the product that counts and makes art; it's the performance. We value the whole process and person which brought a beautiful painting into life. The years of practice seem to matter, too. All the thoughts that went into the product, all the blood and sweat and tears – that's the kind of stuff humans seem to revere. It's the hard work and the dedication.
Or maybe it's just the flip side of our ideal that hard work pays off to value "overnight successes" for the years of hardship they endured. (Oddly, though, this seems to have changed for the worse: media doesn't mention the years of hard work at all and focuses on the dream of making it big in a couple of life-changing hours.)
My point is: the pattern is the same in every art or craft: You are an apprentice first whose job it is to learn and listen. Only later can you enter a productive discourse with your teacher and innovate in light of the tradition you were brought up in. (After all, it matters from which master you learn your craft as everyone embodies her own piece of tradition.)
There's no compelling reason to make learning to program an exception. Programming apps without a formal education in the field or a computer science degree is possible. Programming without adhering to basic principles of "good" coding practices is possible, too. When you don't learn the former, you'll have to look up more stuff on the web. When you don't learn the latter, you'll end up writing code that works first but breaks later. And you'll have a harder time fitting into existing teams which do adhere to some standard.
You can throw together an app as a newcomer and release it on the App Store in a few short weeks. The barrier to entry is very low. The barrier to succeed is very high.
Making it quick and making it big will be mutually exclusive for most people. There's always the lure of Flappy Bird. Don't bet your life on it, though.
If you want to get good at programming, there's no way around learning to be strict in the style of your craft first. You will learn how to improvise quickly when you combine components creatively. You need to learn some basics of the How, though, to make informed decisions in software engineering.
A mentor can help you a lot, too. Just ask people you admire for tips and resources. You'll have to do the hard work yourself anyway. But a mentor can help you reflect upon the process and make sense of it all.
Some will yell at me and claim all this "doing it right" attitude is only slowing you down. Don't listen to them. Don't just listen to me, either. Find out for yourself what you're looking for in the first place.
The stuff you value is what matters. Do you want to quickly jump on the wagon of desperate iOS gold diggers and try your luck? That's fine with me.
But if you want to make a career of this and if you value the craft itself, you may consider dropping me a line and ask for help.
Browse the blog archive