The Right Mindset For App Developers

Written by Reinder de Vries on January 16 2018 in App Business

The Right Mindset For App Developers

Learning how to code iOS apps is hard. Just like learning any other skill, it takes time, effort and a bit of talent.

The majority of people who want to learn to code, give up early. That’s why skilled developers make five and six figure salaries.

It’s also why there is a shortage of developers in just about any industry you can think of. The supply is low and the demand is high.

I have seen one differentiator between the people who want to learn how to code, but never do, and those that got the job and built great apps.

It’s not talent. It’s not intelligence. It’s not (even) persistence. I’ll tell you what it is…

  1. 20% Coding, 80% Debugging
  2. Coding, Fast and Slow
  3. Learn Something New Every Day
  4. Further Reading

20% Coding, 80% Debugging

Most professional developers spend 20% of their time writing new code and 80% on debugging, testing and refactoring.

Finding bugs and fixing them can be frustrating work. Pick a random post on StackOverflow and you’ll find at least one person complaining about how that one bug cost him or her hours of work.

Typical work that developers do consists of:

  • Writing a block of code, like a function or feature
  • Testing that bit of code by hand – does it work?
  • Finding bugs in the code and fixing them one by one
  • Testing the code again for “edge cases” – what happens when you do X?

Finally, you refactor the code you wrote. This means you rewrite the code so it has better architecture1, better performance, and is more readable.

Ideally, you also write unit tests so you can automate testing your code in the future. (Unit testing, refactoring and discipline are signs of an intermediate-level developer.)

Refactoring your code means rewriting it. You’ve added so much new code by now that there has to be a better, clearer way of writing it.

You now see that it’s easy to spend 4 hours on debugging, for every hour of writing new code.

Learn how to build iOS apps

Get started with iOS 12 and Swift 4

Sign up for our iOS development course Zero to App Store and learn how to build professional iOS 12 apps with Swift 4 and Xcode 10.

Coding, Fast and Slow

Do a quick Google search and you’ll see that developers are in high demand these days.

Over 2 million search results for “iOS developer jobs”, thousands of job posts on LinkedIn, and hundreds of pages with job descriptions of recruitment firms.

It’s no surprise that Udemy’s latest iOS course has almost 50.000 students at $10 a pop. But is $10 and 40 hours of video courses all it takes to become an iOS developer?

Imagine that all those 50.000 students become successful iOS developers. There would not be a shortage of good developers any more. No, there’s something else going on.

Anders Ericsson, a Swedish psychologist who studied human performance, wrote about the 10.000 Hours Rule. It stated that any one could master any skill, with no innate talent, given that you spent 10.000 hours to practice it. That’s about 10 years of practicing programming!

Provided you can fill 10 years of practice with Udemy video courses, can anyone learn to code well and become a great developer?

It depends…

As it turns out, time spent is a determining factor. Intelligence, talent and guidance all play a role, but what matters most of all is deliberate practice.

Are you racing through iOS tutorials and coding exercises as fast as you can, or are you deliberately examining and practicing as you work through your 10, 100 or 1000 hours of practice?

Chris Ching from CodeWithChris.com puts it very aptly: “It’s a journey, not a race!”

Don’t code on auto-pilot, ticking off iOS tutorials from your to-do list. Develop your critical thinking and technical design skills by going slow. Be patient. Deliberately practice your craft to get better at it.

It’s better to code the same app 10 times, improving it every time, than it is to code one app idea once, poorly.

Learn how to code your own iOS apps by mastering Swift 4 and Xcode 10 » Find out how

Learn Something New Every Day

The difference between an iOS developer and a quitter is that the iOS developer is willing to learn something new every day.

”Willing” is key here. Most aspiring developers dream of a six figure salary, but not many of them are willing to put in the work.

It is the ability to do emotional labor, making mistakes, and getting back up again, that defines the mindset of a successful developer.

Surprised? Don’t forget that there are footsteps on the moon. They weren’t put there by people who wanted to go to the moon. They were put there by people that got to the moon!

Interestingly, the difference between a junior and senior developer is that one of them is willing to make mistakes. But which one is it?

The airplane from Paris to New York didn’t turn back when it realised that it was 2 degrees off course. It adjusted course, and kept adjusting its course, until it got to New York.

You know what the cool thing is? When you learn to code like this, learning to code is easy. Your mindset makes all the difference.

Further Reading

The right mindset to learn how to code is this:

  • Expect 20% coding, 80% debugging – and refactor your code
  • Go slow rather than fast, and practice deliberately
  • Learn something new every day

And last but not least: cultivate your ability to put in the work by taking action.

Ready to get to work? Learn to code apps with Zero to App Store. We’ll help you build your deliberate practice.

1 “Better architecture” here means rewriting for better structure, and making sure your code better follows the architectural patterns and design patterns you chose before coding the project.

Reinder de Vries

Reinder de Vries

Reinder de Vries is a professional iOS developer. He teaches app developers how to build their own apps at LearnAppMaking.com. Since 2009 he has developed a few dozen apps for iOS, worked for global brands and lead development at several startups. When he’s not coding, he enjoys strong espresso and traveling.