From Zero to Play Store in 6 Months: My experience as a budding self-taught Android developer
Updated: Jun 29, 2020
Last summer I was pretty much code illiterate, and yesterday launched my first app on the Play Store. I can’t say much that hasn’t been said already in one form or another, but here is my list of most notable takeaways from my experience:
Tutorials are a good starting reference, but don't feel obligated to finish.
The “pros” of tutorials are that they hold your hand pretty well through the basics, are comprehensive, and are curated by people who know what topics are most important to learning a new platform or language. That said, they are slow and boring. Don’t be afraid to sample from them a la carte. I only completed about 15%-40% of the content in the handful of tutorials I used before I took the training wheels off and let Google and StackOverflow be my references. Udemy tutorials are relatively cheap, so try out a bunch of different teaching styles and seek out the modules most relevant to what you want to learn or make.
Here are the tutorials that served as the foundation for my learning, loosely ordered by when I first accessed them (I jumped back and forth quite a bit):
Java Programming Masterclass for Software Developers (Tim Buchalka)
Android Java Masterclass — Become an App Developer (Tim Buchalka)
The Complete Android Oreo Developer Course — Build 23 Apps! (Rob Percival, Nick Walter)
Android O & Java — The Complete Android Development Bootcamp (Philipp Muellauer and London App Brewery)
Have a project in mind.
I know it can be hard to think of an idea that you’re highly motivated to pursue, but I wouldn’t have learned nearly as much or as quickly if I didn’t have this app to struggle through and create.The entire app doesn’t have to be novel, it need only work and have some proprietary elements to it to make it truly yours. Nothing is nearly as powerful of a motivator as bringing your own vision to life.
Google example of specific things you are trying to implement in your project
You’ll quite often find yourself getting stuck on a very specific task or problem with a language/API/tool. StackOverflow and the documentation can be good for these things, but the things I found there often felt like they were written for someone beyond my level of knowledge. What I found most effective is looking for small, specific video tutorials to walk me through what I was trying to do. Things like “git tutorial” or “RecyclerView example” led me to videos that ended or prevented days of struggle.
When starting a day's session, put as mush effort as possible into just opening your IDE or text editor
A lot of blogs about learning to code deal with staying motivated, and it’s a challenge I share with you all. There are no silver bullets that will automatically make you the person you need to be to commit to coding. However, one mental hack that I found somewhat useful was focusing my energy into simply opening my development environment as soon as I found myself thinking about coding. I found that getting past that silly little barrier and looking at my code’s current challenges again increased my momentum considerably, sometimes even drawing me into the work. Make opening your program of choice part of your daily routine, even if you have no intention of coding that day. You might turn a day you had written off into one of your most productive and inspiring sessions.
I’m not exactly breaking the advice mold here, but this is still so underrated. Brisk walks of even just 15–20 minutes can be great for your mental and cardiovascular health, which can erode at your desk if not actively nurtured. It’s also 1000% true that stepping away from your code helps break through mental blocks and solve the problems that have been plaguing you. I’ve had several walks that resulted in epiphanies that saved me an amount of time several times that of the walk! Consider any type of exercise an investment not only in your health, but in your productivity as a programmer.
So what did you make?
I made Theo, my take on the location-based genre of social apps. Its an app that let’s you check into chat rooms at any place in the Google Places API, as well as direct message anyone you encounter there. I built it using Firebase and its variety of tools, which I recommend enthusiastically. I’d like the next stage of my learning to be more hands-on with regard to backend stuff, but having things like my database, authentication, cloud functions, and crash reporting abstracted away to a significant degree greatly increased the scope of the project and my reach as a new developer. This app took me about four months of 1–2 hours of coding per day after my full time job, and I credit most of that to Firebase. The team is also very active to help on StackOverflow.
And now that I’m thinking of it,
Make sure you read the documentation well and spend a good amount of time researching problems yourself before you ask questions on any forum.
Be respectful of people’s time and the communities you inhabit. The skills and knowledge of experienced developers are a valuable commodity that you are not entitled to. I’m sure there have been times that I inadvertently acted like a leech and and sought help on a problem I could have solved myself if I was a little more patient. Just do your best and value self-sufficiency.
That’s all I’ve got for now. I hope I’ve done more with this post than just pontificate about my own accomplishment. For those of you in the in the situation I was in 6 months ago and maybe feeling a little overwhelmed, let me remind you that you are smart enough and capable enough to code and create something, and that you have worth no matter what you end up doing with your life.