How to Learn to Code The Mobile App You Want in Less Than 30 Days
You have a great app idea.
It’s a great premise, but how will you get it to market? As you know, there’s a lot more to creating an app than just thinking of the idea.
So, what’s the first step? You’d like to create it yourself, but you don’t even know how to code. Is it even possible to design your own app if you lack the basics of coding?
Here’s the honest truth: it’s going to be hard, but you can definitely learn to code your mobile app in less than 30 days.
If you’re going to be successful, though, you’ll need to put in lots of work. You’ll need to dedicate time towards learning mobile app development every day in order to see real progress.
The time and energy you can devote to learning will pay for itself in the skills you learn. Like most things worth learning, the more you dedicate yourself, the faster your results will be.
But it isn’t just a race of working at blinding speed through a few textbooks you picked up at the library.
If you’re going to learn how to code your mobile app in just 30 days, you need to work smarter.
Understand the final goal for your app
First and foremost, you need to know what you want to learn before you start coding.
Then you can use the right development tools to assist you.
I see a lot of people who say they want to “learn how to code,” but don’t know what their real goals are. You can spend your whole life learning new pieces of app development.
In truth, new features are being developed so fast, nobody will be able to keep up with it all the time.
And when you only have 30 days to learn how to code, you need to be really clear on what your goal is. Exactly what will your app do, and how will you get that process to work?
Start by learning about your target users. What will they be expecting in the app? What must you deliver?
Get a clear feel for what the app should offer at a bare minimum. Remove anything that doesn’t fulfill this requirement. You can always add it later.
For example, you might want users to be able to login to your app with Facebook, Twitter, and Google. But you don’t have to add that in the first version.
Instead, consider which one is the most important. Only learn how to do that, then you can build your skills once you release the first version of your app and see what needs to be improved.
Who knows? You might find that 99% of your users are on Facebook, and Twitter and Google login options are a waste of your time.
Once you understand the core functionality, you want to wireframe everything your app will do. Wireframing is the process where you create a basic layout of your app.
You want to understand what each button does. Write all this down to help you remember it later.
True, it’s not very fun to do all this planning, but it’s a lot easier now than once you’ve started coding your app. You want to understand exactly what you need to learn now, so there aren’t surprises down the road.
If you don’t put in the work during this step and really understand what’s necessary to build out the app, you’re going to learn the wrong things during your 30 days, or forget key elements.
When you sit down to code the app, you’ll find gaps in your knowledge, and it’ll put the project far behind schedule.
The wireframe should incorporate elements of the design, but make sure to understand the user flow. Ensure it makes sense. Lay out all the features in advance so you know what’s required.
Once you have the functionality down, you’re going to need to focus on what that looks like on the backen. What kind of architecture do you want to use?
You should consider a few different pieces to this. Will you be storing data on the user’s device, or in the cloud? Will you need to send push notifications?
Think also about how you want to connect your databases.
A ticket app might have a primary database of events with a simpler user database, while a social app would have a main database of users with secondary functionality for events.
Decide what your focus is going to be, and decide on this structure. You need to figure out the basic backend of your app as soon as possible, preferably in a sketch or illustration.
If you don’t know what that will look like yet, that’s okay. You may need to become more familiar with computer programming before you can choose the absolute best method.
But it’s best to have a working idea you change now, rather than a blank slate where you have to build everything from scratch later.
Up next, you need to choose the right language to learn. The primary language used for most Android development is Java.
It’s used in a number of other platforms as well, so this can be a good place to start if you’re looking to expand beyond apps one day.
However, if you’re going to want to design an app for the Apple iOS software, you’re going to need to learn Objective-C or Swift.
These are specifically designed for Apple software, and unfortunately aren’t very applicable elsewhere. The experience you get learning any language, however, will serve you well later.
Choosing the right language is important, because your skills will be worthless if you can’t program in the correct framework.
If you’re unsure, go with the platform you feel most comfortable with, whether that’s Android or iOS. You’ll have a head start working with an operating system you already know well.
Up next, you need to learn the basics before you can start with the meaty code that will take you closer to developing your app.
Start by learning the critical basics
Before you get started, you need to understand the basics.
Just like you need to learn how to chop vegetables and turn on the oven before going to cooking school, these building blocks aren’t difficult, but they’re mandatory for effective learning.
First, you need to learn how to set up your code to run. A lot of online programs that teach programming forget this step. They leave you with plenty of knowledge, but zero experience on actually making your app run.
Don’t fall into this trap. Instead, learn how to take your code and put it into an app that you can actually test.
Second, learn how to set up an environment that will let you work efficiently. You’ll need a place to type in your code and see it in action.
If you’re coding with Swift or Objective-C for iOS, you’ll want to look into Xcode.
Android developers will need to learn about Android Studio.
These are programs that give you the tools you need to actually design and publish apps, instead of just tinkering around with code.
Third, you need to learn version control. The most common version is Git, which is a free tool that saves revisions of your code.
When you make errors, you can restore an earlier version of your code to remove the bug.
If you’d like to take to the next level, learn how to use GitHub. You can think of GitHub like Dropbox for code.
You can store updated code, share it with teammates, and view revisions in the platform.
The time you spend learning the system will likely pay off once you start development, especially if you’re working with a team.
Finally, learn about the language you’ll be using. I recommend getting familiar with the basic errors you might get and common problems beginners face.
Yes, you’ll learn the syntax and commands of the language in a little bit. But it’s helpful to know that most beginners struggle with if statements, for example, before you’ve wasted an afternoon.
Now that you have a good overview of the language and how to use it, let’s create a roadmap for your learning.
Be strategic about what you choose to learn
In a perfect world, you’d be able to learn about all the different app development features you want to.
But in the real world, our resources are limited. This means you only have a certain amount of time to learn, and you need to make the best use of it.
In your 30 days, you need to choose the 20% of work that will give you 80% of the results you’re looking for.
Depending on the type of app you’re developing, these numbers might vary. You may find that it’s more or less than this.
Perhaps 40% of the learning will give you 60% of the features, or even only 10% of the skills you need will deliver 90% of your features.
Either way, you need to focus on the most important functions for your app. Look for the key differentiators, or what makes your app different from everything else out there.
With that in mind, do some research on what skill you’ll need, and create a basic outline for your 30 day learning plan.
If you’re creating a productivity app, you might spend the first week learning how to create a to-do list feature, the next two weeks on how to incorporate project folders, and the final week on accounts and authorization.
Whatever your app requires, make sure you schedule time to learn the skills necessary to turn those dreams into reality.
Creating a timetable of what you need to learn will give you a reliable way to move forward, and will reduce a lot of the stress that’s inherent in learning a new skill.
Once you have your roadmap in place, you’re going to need to decide on the best method for your personal learning style.
You may already know this, or you might have to play it by ear and see what works the best for you.
Some of the most common ways to learn programming are through books, tutorials, YouTube videos, and online courses.
If one of those stands out like a perfect match, plan on using it for most of your instruction. If you’re not sure where to turn, I recommend online courses as a starting place.
These provide you with instruction and instant feedback on your progress through interactive exercises, and many cost very little or even nothing to get started.
It’s worth your time to choose a learning method ahead of time. When you switch halfway through, you can miss out on valuable pieces and skip important information.
When you’re on a course for quick learning like this, it’s a good idea to focus on reference, not memorization.
You can spend hours reviewing flashcards, or a few seconds looking something up in a handy reference guide you’ve created. When your time is limited, the reference method is much faster.
To do this, take detailed notes of everything you learn. You can use a program like Evernote for this, since you can search for anything in the system later.
FInally, I want to warn you about the biggest temptation you’ll face as a beginning developer: don’t learn while designing your app.
Yes, your ultimate goal is to design this app. It’s been your dream, and it’s your motivation for learning to code in the first place.
But if you start the app and learn as you build it, you’re going to have to go back and erase much of the code you originally wrote.
Even if you don’t have to erase it, it might have errors or bugs you missed because you weren’t aware of them at the time.
Instead, work on smaller projects while you’re learning, and leave the real app development until you’ve finished learning all the processes you need for programming it.
A classic problem beginning coders face is writing a basic structure for their app, then adding more and more features of top of this without a solid foundation.
This leaves your app wide open for security gaps you didn’t realize when you were just starting.
This can make your users vulnerable because you started without the top-down knowledge you need.
Resist the tempation to learn as you go. Spending 30 days learning to code correctly before you touch the big app development project you have in mind will be time well spent.
How to learn day-to-day
Now that you know the general framework for developing a process to learn faster, let’s take a look at what exactly that looks like on a more granular, day-to-day basis.
The cornerstone of your daily efforts to learning how to code in 30 days is to be consistent. It’s far better to work on the process for 20 minutes every day six days a week than two hours every Saturday.
The reason is that your knowledge builds upon itself, and you’ll start to notice patterns in different things as you continue working. You’ll be thinking about code throughout the day if you do it regularly.
So instead of finding one large block a week, try to work on it a little bit every single day.
You’ll need to review what you’ve learned frequently. One of the most powerful tools I know for this is CodeCode.ninja, which allows you to create flashcards for programming snippets.
Again, the focus isn’t on memorizing a bunch of formulas you’ll only need a few times. Instead, use your flashcard review time to become familiar with the most common commands.
Learn how to set up variables, close lines of code, and create if and while statements. You’ll be using these over and over again, so you need to know them cold.
As you quiz yourself with the most important pieces you’ve learned, you’ll retain the knowledge you gain even better.
Another strategy that will accelerate your learning (as well as prepare you for the final app design project you’ll eventually be working on) is finishing small projects.
You’d be amazed how difficult it is to finish a project. It’s very easy to start something, but the finishing part can be incredibly difficult.
Instead of finding that out on the final app that really matters, practice finishing on smaller pieces you’re working on as you learn.
This means that the dummy app you’ve created just to learn one new component needs to be finished.
That doesn’t mean it should be polished enough to sell, but it does mean the basic functionality should be bug-free and usable. If a project is too far gone, don’t waste time trying to salvage it.
But if the project isn’t done simply because you didn’t want to finish it, remember: you need to learn the mental process behind app development just as much as the coding itself.
If you’re struggling to understand the complex abstract concepts at work in code, take a cue from Tim Ferriss’s strategies for rapid learning.
There are a number of strategies he’s worked to popularize, but one ofthe most basic is to remember with memory devices.
If you need to remember the order of the variables for a function, for example, you can find a word with the same first letters in the same order.
Another technique that will speed up the process is connecting the new skills to whatever you’re familiar with already.
Coding is related to a number of other fields and interests, including science, cyphers, logic, language, and even giving someone directions (like in a recipe).
All of these can be used to help you understand what’s going on, even if your head is swimming with complicated numbers and symbols.
As you work, remember to test your code and get instant feedback about what’s working and what isn’t. Don’t waste time hacking around a problem. You’ll only reinforce bad habits.
Instead, research a solution, understand the method used, try it out, and see how you can apply it to other situations.
This is much more effective than mindlessly browsing your code for errors.
Another method is to look on a site that offers help. There are a number of sites with experts ready to answer your coding questions for free.
When you’re stuck, look to a place like Stackoverflow to help you get unstuck.
Use strict deadlines
If you’re going to learn a completely new system of doing something in just 30 days (or even less), you need to set a realistic deadline for completing your project.
I’d recommend breaking it up into two steps. The first, of course, is the learning you’re going to need to understand how to code apps.
But the second step is developing your app, since that’s your ultimate goal anyways.
You need to have a clear deadline for your learning to end so you can get started with the app development process.
I recommend looking at the timeline for the app development. When would you like to have it ready to ship?
Prepare a realistic estimate of how long it will take to design the app itself. The simplest type of app will probably take around 2-3 months to develop, plus the approval process.
In addition to the estimate you’ve prepared based on your research, include at least a few weeks as extra space since you’re just starting.
No matter how well you prepare, you’re going to encounter new problems you weren’t expecting, and you need to have the flexibility to solve them without jeopardizing the project.
From there, calculate a deadline for your learning to end and your development work to begin. Having a clear boundary of when your learning must end provides finality to the process.
It’ll motivate you to keep pushing through even when you’re confused or stuck.
As you work through the material you’ve saved, take time each week to revise your timeline. Ensure you’re meeting your goals, and correct course if need be.
Don’t push the deadline back, but consider focusing on fewer tasks and skills if you don’t have the time to commit to everything you had planned.
But what if you don’t have the time investment to make in learning code? Well, there are a few shortcuts you can take to get your app to market faster.
Shortcuts to building the app you’ve always wanted
There are a few ways to increase the speed of development.
If you don’t have the months it will take to design the app on top of the 30 days you’ll need for learning the basics of coding, these are options you need to consider.
The first is to use a library or template for your app. This is a body of work that you can use to speed up the process.
If you’re making a strategy game, for example, you can start with code someone else has already written for a similar strategy game. If it’s available to use, you can start with their code.
This strategy won’t let you learn as much about how the code works, but you can cut learning and development time by as much as half.
The second method is simply to hire someone else to design the app for you. This is probably the easiest strategy, but it’s certainly not the cheapest.
Hiring a developing team can be very expensive, with costs as high as $170,000. For a lot of would-be app developers, this is too prohibitive.
Another alternative is using a builder that takes care of the basic framework for you, while allowing you to learn basic coding for your advanced features.
This means you won’t have to deal with the basics that are difficult to learn, but won’t make much of a difference for your users.
Tasks like creating users, building in security, and formatting basic layout elements will suck away precious hours without much return.
A builder like BuildFire can handle these pieces for you so you can focus on the important code you’ll need to learn for the best user experience possible.
Can you really learn to code a mobile app in under 30 days?
If you’re committed to developing your app into a reality, you know that it will take work.
If you’re new to coding, it can be a tremendous challenge to learn everything there is to know about speaking and writing in a new language.
Like a new language, there is different grammar and vocabulary, and if you get things wrong you won’t be understood.
But like learning a language, learning how to code is a huge skill you’ll use for the rest of your life.
Even more importantly, you can put it into use immediately turning your napkin sketches of an app into reality, and maybe even making a little side money while you have fun.
Start by understanding exactly what skills you need to learn to develop your app. The more focused you are, the faster you’ll learn how to code, and the faster you can develop your app.
Be strategic about what you learn when, and create a careful order for each skill. Learn the basics first, even if they don’t sound fun.
Build pieces on top of a solid foundation, and whatever you do, don’t start building your app immediately.
Wait until you have the skills to do it right, or you’ll be erasing all your old code anyways.
Put in consistent effort, and use speed learning strategies to hack your way to fast learning. Strict deadlines can help give you the push you need to keep going.
Finally, you might consider a few shortcuts. Use a library or template to get started with the app, or hire someone else to do it for you.
You can also use a platform like BuildFire to give you a headstart without learning how to code from scratch.
Whichever way you choose, learn as fast as humanly possible by studying in a smart way that saves you time and pushes you closer to your dream than you ever thought possible.