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
- Every Monday: get curated app marketing news, resources, tools and goodies in your inbox
- Grow your app's userbase with the latest App Store Optimization and app marketing strategies
- FREE: Get the free step-by-step Get Started With Your App Idea guide to set yourself up for App Store success!
Comments & Thoughts
On The Blog
Ultimate Guide To Building & Publishing Your First iPhone App
Are you considering making your own app? This is what you need to know. Learn about the app ecosystem, programming languages, toolsets, and time and effort involved. Let’s not tell you what you should know, but rather explain how you can actually get started today to get an app published in the App Store.
Creating App Install Opportunities With Deeplinking
For any app developer or app publishing company getting new customers to install their apps is paramount. Gaining traction, growing a customer base and making sales is key to any business, but for an app publisher it all starts no sooner than their app is installed on a user’s phone. One way a publisher can increase their install-rate, is to use a system called deeplinking.
Question: "Why I can't learn Swift fast enough while studying full time?"
Recently, I came across this great question on Quora. The original poster wanted to know why he couldn't learn Swift fast enough, he'd spent 3 months on learning it while seeing no progress. Read on to find out what advice he got.