Programming Isn't Hard
Programming isn’t hard, it’s as easy as baking cookies.
Almost everyone I meet tells me coding is hard. Answers to programming questions on Quora discourage the original poster: first you have to skydive without parachute, then you must swim through shark-infested waters, conquer Scylla and Charybdis, before you can face that Programming Challenge, and make it safe back home. You may as well not start at all.
A lot of professional programmers I know are self-taught. They’ve learned computer science, but learned how to code in their own time. It’s awesome to see that they’re so fluent in it, they think and breathe in computer code. Some of them have an air of arrogance around them: they treat their ability to code as elites, something only they are capable of.
I think a lot of programmers mistake the difficulty of programming with the effort it takes them to solve programming problems. In my work as a developer, I’ve faced many bugs I couldn’t solve. This led me to believe that programming is hard, but then I realized it isn’t: the problems I try to solve are hard.
Many aspiring coders try to build projects that are too big. Unfortunately, no one ever tells them! Instead, when the aspiring coder asks for help, they say: You shouldn’t code, it’s too hard. The aspiring coder agrees, mistakes the tool for the problem, and gives up.
It’s as if you’re trying to create fresly-baked cookies out of thin air, and you don’t know how the oven works. Instead of acknowledging that you suck at handling an oven, you blame your lack of effort, and throw out the plans to bake cookies. You could have had nice cookies, if you would have broken up the project in smaller steps and learned how to execute those individual steps.
How do you make a difficult problem easier to solve?
- You ignore the problem
- You divide it up in smaller pieces and tackle them one by one
- You get someone else to solve it
I once heard a story from Anansi The Spider, about an army. He said that an army is strong because a soldier on it’s own is weak. Anansi showed me a twig and broke it. Easy, he said, twigs are weak and rigid. Then he grabbed a whole bunch of twigs and tried to break them. Harder, he said, because a bunch of twigs are strong and flexible.
People mistake programming for the bunch of twigs. Instead, programming is the hand you use to break the twigs. Try to break a problem that’s too hard to solve: you get stuck and give up. It won’t work. Take the twigs one by one, use programming to break them, and you’ll find that the problem breaks too.
Everbody is an app founder these days. We want to make clones of Facebook, Instagram and Twitter. We expect to be equally successful, we tell ourselves: “They can do it, so I can too. As long as I work hard enough!” It’s what the inspirational quote said, right? We feel entitled to success, because we work hard. We glorify failure, because we think that if you fail enough you eventually succeed.
You start to work on your app’s landing page, try to get a team together, read up on how to pitch to investors, all while listening on the newest growth hacker podcast at 2x speed. You move in with your parents, get a year worth of savings, forget to see your friends, and now only hang out with cool soon-to-be-billionare entrepreneurs like yourself.
If you just would have sat down and wrote one line of code. You’d be closer to becoming a billionaire than after any of the steps above. You’d have a smaller chance at failing, because you wouldn’t have tried so many things at once. Instead of letting your imagination blow up, you’d have gained self-respect and self-confidence by doing the smart work.
Listen to Anansi The Spider:
- Take a bunch of twigs
- Throw them on the ground
- Break the twigs one by one
You’re not going to get there by working hard at it. You have to work smart, too. Don’t believe anyone who tells you programming is hard. They simply mean: the problems I solved with programming were hard.
Don’t discourage yourself by thinking programming is hard, because the problems you solve are hard. Instead, make the problems easier to solve by breaking them up in smaller pieces.
Photo credit: Sean MacEntee, CC BY 2.0
Join 11.000+ app developers and marketers
- Get a weekly curated list of app development tools, articles and resources in your inbox
- 10x your app installs with relevant App Store Optimization and app marketing strategies
- BONUS: Grab a free copy of the App Toolbox 2017 to supercharge your next app project
Comments & Thoughts
On The Blog
Finally, A True App Discovery Platform Is Here: Pinterest Joins Forces With Apple
This week, Pinterest announced that it will join forces with Apple to give users a greater app discovery tool. Right from Pinterest, you can install apps on your iPhone or iPad, and from within the App Store you can pin your favorite apps. What does that mean for app publishers?
How to Make an iOS App for iPhone with Xcode
Making an iOS app for iPhone or iPad isn’t hard, but there’s quite a few tools involved. Xcode, for instance, is the program that’s used to code apps and make their layouts. The iPhone Simulator can be used to view and test your app. To develop your own apps, you don’t start with learning how to code. You start with the end in mind: what do I want to make and what do I need to do that?
Swift Programming Cheatsheet
Learning a new programming language can be daunting. For all aspiring app makers, I’ve made a Swift Programming Cheatsheet to help with that! A cheatsheet shows you most important Swift programming keywords, statements and concepts. While you learn, you can rely on the cheatsheet to help you rememember all those narly programming words.
App Analytics: What Is It And How Does It Change The Playing Field?
Recently, Apple launched its beta campaign for iTunes Connect App Store Analytics. It’s Apple’s new proprietary tool for measuring conversions on an apps page in the App Store and tracking user behaviour and engagement within the app. How does this influence the app analytics playing field?