Quit Coding? Here's How To Start Building Apps Again
Learning how to code iOS apps is challenging. When you’re working on your projects, you may not always as inspired or motivated to solve that next bug or error. Bugs, errors, mistakes, chaos, frustration and confusion – enough is enough! You don’t want to be stuck forever, so you give up on coding and quit.
Sounds familiar? If so, then this tutorial is for you. I’ll show you how to get back to learning how to code, back to building iOS apps again, and how to have a fun time doing it.
Ready to give it one more shot? Let’s go.
- What’s Your Motivation?
- Keep A (Mostly) Clean Desk
- Start and Finish New Projects Regularly
- Enjoy Getting Stuck!
- Further Reading
What’s Your Motivation?
Before we discuss iOS development, we need to figure out why you want to learn programming. How do you stay motivated, even when it’s hard and challenging? In part, that comes down to motivation and staying motivated.
Conventional wisdom says motivation works like a bank account. You make withdrawals and deposits:
- Positive experiences, like completing an app feature, deposits motivation in your bank account
- Negative experiences, like wasting days on a frustrating bug, withdraws motivation from your bank account
Sounds plausible, right? Staying motivated is not as black-and-white as deposits and withdrawals, though! Think about the last time you did something challenging, like competing in sports, hiking a steep mountain trail, or going on a run.
Those things challenged you – they might even have been painful – but you felt good about it all the same. This seemingly negative experience didn’t take motivation out of your bank account, it even appears to have added motivation to it. How’s that possible?
Motivation works more like a rubber band, than a bank account. You stretch it as you’re exerting yourself, up to a level that’s comfortable for you. When you stretch it too far, the rubber band needs some time to bounce back and heal. Once you get into the habit of stretching – of finding motivation – you’ll see that it gets easier next time. It’s easier to bounce back, and easier to stretch further. Think of it as motivation fitness!
In his book Deep Work, Cal Newport argues that work needs to be meaningful to be sustainable. Research into happiness has shown, for example, that the feeling of happiness isn’t just a balance between gaining pleasure and avoiding pain over a longer period. Happiness and motivation are intertwined; one affects the other.
When you feel fulfilled by doing work that matters, you’re more likely to stay motivated. This is equally true for a job, as it is for learning a new professional skill. In fact, things like inspiration, willpower and the ability to focus are more like a balance between many forces, than a just a balance between positive and negative.
Once you understand how motivation works, it becomes much easier to get motivated again. Ask yourself these questions:
- What got you interested in coding in the first place? Since you started, did you experience any of the things you thought would be interesting or exciting?
- What’s the end goal for you? Why are you learning to code, and building apps? Do you think this end goal is (still) attainable?
- Looking back on past experiences, were there situations that motivated you, and what did you feel depleted your motivation? In coding, what do you look forward to, and what do you dread?
When you’ve answered these questions, it’s smart to reflect on how they shape your experience of learning how to code. For example, you thought that you’d make more progress, but you haven’t, and now you’re unhappy with your results. Now that you know that you expected to make more progress, can you change your expectations, or change your learning approach?
Keep A (Mostly) Clean Desk
“If a cluttered desk is a sign of a cluttered mind, of what then, is an empty desk a sign?” – Albert Einstein
If you’re doing challenging work, it helps to keep your work environment clean, tidy and without distractions. But not too clean, as Einstein so aptly put it!
- Is your desk riddled with paper, books or trash?
- Is your working environment quiet enough to focus?
- Are you constantly being distracted by Facebook, email and incoming messages?
Learning to code, and building apps, is an intensive task for your mind. You need to focus 100% on what you’re doing right now. Research has shown that humans perform poorly on doing multiple tasks at the same time. But we can accomplish a lot if we do just one thing.
In our increasingly distraction-rich workplaces, the ability to work undistracted will become an important skill that distinguishes you from those that won’t get ahead. Differently said, you gotta learn how to stay focused if you want to make progress.
Your desk isn’t the only workplace you have. Your PC or Mac is perhaps even more important than your desk. What notifications are coming in? How many open tabs, apps and windows do you have? Can you find the file you’re looking for, or is it buried in downloads, documents and funny memes?
What about the stuff that’s inside your mind? It’s hard to focus if you’re constantly worried and anxious. Being mindful while coding is a great way to stay focused and motivated.
Now that you know that a clean work environment is important, how do you move forward? I want to argue against always keeping it clean. Life happens, funny cat videos happen, and you can spend your entire life getting and keeping your ducks in a row – and get nothing done.
Seth Godin puts it very aptly:
Getting your ducks in a row is a fine thing to do. But deciding what you are you going to do with that duck is a far more important issue.
Here’s a few ideas on how to move forward:
- Distractions, trash, chaos, change – it comes and goes. Understanding this is important. Learn to work with it, without it, and try to leave your desk clean at the end of the day.
- Spend some time to organize the files on your computer from time to time. It helps, but don’t overdo it.
- If you want, practice with meditation. If you think that’s too much, then practice simply getting back to what you were doing when you notice you’re being distracted.
Now that you have a duck, what are you going to do with it?
Start and Finish New Projects Regularly
I regularly “meet” many beginner app developers like yourself, mostly through email. Recently I received an email from a developer, it went something like this:
I’m doing this project. There should be a map view, with a table view, that connects to a back-end that has information on locations around the user. There should also be a button for filtering. Can you help?
I replied back, as I always do, with the question if he could break it down into smaller pieces.
When you ask me such a “complete” question, that lets me do the hard work, I also always ask you what you’ve done so far to solve the problem yourself.
This email came from a person who is close to giving up learning iOS development. He’s already given up on finding an answer to the problem, because he’s asking the easy questions. Can I help? Of course!
Think of everything you know about building iOS apps as a big toolbox with tools. Your skills, information you have, experiences you’ve gained, are all in the toolbox.
When you want to solve a problem, or build something, you look into your toolbox and find a tool that helps you solve it. You take it out of your toolbox, and use it to build your app.
The developer that emailed me has two problems:
- He doesn’t know the tools he’s looking for
- He doesn’t have the full toolbox he needs
See the difference between those two? You don’t know the tools you’re looking for until you start filling your toolbox. And you can’t fill your toolbox until you have some ideas about the tools you need.
A lot of frustration in learning something new comes from trying to find out what you don’t know. You’re effectively looking for a path in the dark. You need to find the path before you can walk it. Where do you even start!?
Here’s a different approach:
- It’s important to work on a project while you’re learning to code, but forget about your Big App Project for now. Don’t focus on the big app you’re dreaming about, or that Facebook-like app you want to build, or the million dollar business you hope to create – just build something.
- Every time you work on your app, and on learning how to code, find a new skill to learn. It doesn’t matter what: how to code functions, how optionals work, how to use ARKit, or how to apply the DRY principle. Anything!
- When you learn something new, try to connect it to what you already know. How can you use a map view together with a table view? How does it fit the bigger picture?
You’ve already guessed that this expands the number of tools you have in your toolbox. It also reinforces what you know, because you’re connecting what you don’t know with what you already know. This is crucial for learning, I can’t emphasize that enough!
In time, you’ll start to make more connections, learn the fundamentals, and recognize how it all fits together. The more you learn, the better you get at learning more.
Enjoy Getting Stuck!
What kind of advice is that? Who enjoys getting stuck!? Well… coders do! It’s said that 75% of programming is solving bugs, and 25% is building new things.
It’s easier to understand that developers enjoy getting stuck if you don’t think of getting stuck as a bad thing. No one enjoys frustration – so to enjoy getting stuck, you must think of getting stuck as “being somewhere”. Be dispassionate about setbacks; leave out the frustration!
“The problem is not the problem. The problem is your attitude about the problem.” – Captain Jack Sparrow (Pirates of the Caribbean)
If you think it’s not a problem, is it still a problem? These are not Jedi mind tricks – it’s just looking at challenge, frustration and problems from a different perspective.
App developers spend a lot of time on these activities:
- Designing technical projects
- Writing lines of code
- Finding causes of problems
There’s nothing really wrong with any of those facts, right? So let’s take a look at the same list, from a different perspective:
- Feeling overwhelmed by the size of a project
- Feeling lost in supposedly simple lines of code
- Being stuck solving a bug and not knowing how
Now these things suck! If you compare the two lists, you’ll quickly see that the causes of frustration, confusion and challenge aren’t the things you do, but how you feel about them.
Feeling overwhelmed, lost and stuck are experiences no one enjoys. Should you always avoid them, then?
No. It’s said that all suffering in life comes from avoiding pain and clinging onto pleasure. You gain more by accepting both, accepting that they pass, and recognizing them for what they are.
Once you realize this, you’ll see that the problem goes away when you close Xcode. When you leave work, to do something nice, you can leave the frustration, confusion and challenge right were it is.
Of course it’ll be there when you get back, but now that you know it, it doesn’t seem so confusing, frightening and frustrating anymore. You realize you have a tool in your toolbox just for this occasion (or you now know how to find the new, right tool).
The hardship from solving a coding error or a bug comes with a bit of pain, but you know that it passes.
Before you know it, you start looking forward to solving bugs. You welcome it, instead of wanting to avoid it. And in time, you notice that the bugs get smaller, and you keep growing bigger.
Thanks for reading! I sincerely hope that you’ll get back to coding again, and have a fun time doing it. In case you have a question, let me know!
Check out a few of these superb follow-up resources:
- Learn Swift Programming The Simple Way
- How To Learn iOS App Development
- Going from Coding Tutorials to Building Your Own App Projects
- How To: Xcode Tutorial for Beginners
- Create an iOS Game with Swift and Xcode
- Create UIs with Views and Modifiers in SwiftUI
Want to learn more? Check out these resources:
Code Swift right in your browser!
Go to the Swift Sandbox