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
Most Popular Content
Grab the App Toolbox 2017 to learn how to save time building your app,
and how to 10x your app installs in the App Store. With the toolbox, you'll immediately know how to move forward to build better, more profitable apps.
Comments & Thoughts
On The Blog
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.
How To Pitch And Close Freelance App Development Clients (From Scratch)
Kickstart your freelance app development career with this guide on finding, pitching and closing prospective clients. Learn how to spot bad clients, how to price your services and how to make sure your acquisition is always full of leads. Let's DO THIS!
5 Skills That Boost Every Career If You Learn Programming
Learning how to program gives children problem solving skills that come in handy later in life, and it primes them for a possible future in engineering or computer science. It helps them to secure better careers and a brighter future. But for those who are already making a career, can the same skill help them too?