For the purpose of this article I’ll assume that the reader has no connection to IT business or has no experience with any programming language.
So, you want to change your career path and your life by becoming an Android Developer. I congratulate you! This is a very rewarding occupation with diverse assignments and a non-stop learning process. But where should you start and is that programming thing even for you? I’ll try to answer these questions from my personal experience and stories I overheard during my time in the IT business.
Is that really your thing?
First of all — is it for you? The short answer: yes. The long one: “it depends”. 😀 Yes, you’ll be getting that a lot from your colleagues. It depends on what kind of person you are. It is always great to work with a nice, easy-going person that doesn’t succumb to stressful situations. But having said that I’ve also worked with people swearing left and right whenever something went wrong and they were all good programmers. Since we’re on the topic of things going wrong — and they will go wrong frequently — one of the most important things is not to be discouraged by failures. This comes especially handy when debugging a problem and also when you’ll be looking for the first job as junior Android Developer. So, patience is not only a virtue but also a necessity in this occupation. You need to have some degree of stress tolerance. On the contrary to common belief, a developer’s work is not always smooth sailing. There will be many features which won’t work and deploys that will fail on production. You need to deliver a working solution while error reports will pile up all around you.
I hear a “but” coming, don’t I? Ok, so let’s address it. But I’m X years old — you say? I started my career as an Android developer in my early 30’s and my age wasn’t an issue on any recruitment processes. What’s more, I started my first job with a colleague that was a few years older than me. As long as your skills speak for themselves you can count on IT companies’ interest. Same goes for education. It helps to have some sort of technical education, but it’s not necessary. I’ve worked with a miner, a bus driver, a builder, an account manager, and also people straight out of high school, and they were and still are successful programmers.
Where to start?
Ok, sounds good! So where should I start — you say? Well, the good news is that you already have achieved something. You speak English. It is essential for you to understand the documentation for the code, but also read the articles to learn new things. “Ok, so now I should choose some bootcamp and I’ll be on my way to success” — you think? Well, that would be too good to be true, won’t it? Start small. There are tons of YouTube lessons on Android development for free. Why not start there? Starting from a small project presented on YouTube is a great first step. Just make sure that the material you’re watching is not something old. Anything from the last 3–4 years should do the trick. And what’s important is that it should be written in Kotlin.
While you’ll be working on these sandbox projects, you may find a need for some experimenting. By all means — go for it! This is a great way to learn. “What if I change something here or use a different method there?” While answering those questions, you’ll dig through stackoverflow.com — the cornerstone for us developers. You’ll learn how to find solutions to the problems that will eventually come from your experiments.
What’s next? Simple (or not so much sometimes 😀) — write your own code. It doesn’t have to be a breakthrough like Netflix or something. It should show what you can do. Most of the apps you’ll create will simply retrieve data from some server and present it in readable format. Or an app that allows you to store data locally to read it later. A shopping list perhaps? Also — it does not have to be beautiful! Most of the graphics are provided by a graphic designer. It will suffice for you to be able to implement it.
A subjective step-by-step guide
So, what’s the roadmap? Here’s what I think:
Learn Kotlin basics
You can do it easily by writing your first app in Android. Start from implementing a one-screen app. Learn to use the documentation on Kotlin page https://kotlinlang.org/docs/home.html when you’re in doubt. Get familiar with Android Studio. You can also start with some codelabs from Google https://codelabs.developers.google.com/?product=android . They are great step-by-step tutorials and they will help you get familiar with basic as well as more advanced stuff. Also learn about GIT. 🙂
Time for your initiative — write a one-screen app that will store some data locally.
Maybe write a calculator, a shopping list? It is important to stop copying the code from tutorials and start to implement your solutions to your ideas. If you’ll store some data locally, then you’ll need to learn about asynchronous work and databases.
Feeling a bit more confident?
You can connect to the Internet. There are plenty of free APIs. Maybe you can display some data about countries (rudimentary world atlas) or a list of pictures of some cute animals — your choice. After that it will be a good idea to connect to some API that logs users in.
Wouldn’t it be nice if your app worked offline?
Let’s combine two previous steps. Download data and store it in the device’s database. This will be a good time to separate your code to some smaller parts. Ever heard of a MVVM pattern? Now it will be a good time to implement it. Doing it on a small app will help you understand it. Next app you’ll build should be following that MVVM design pattern from the start.
Ok, now’s the time to get familiar with custom views.
Not everything you’ll build will be based on standard switches, lists, text fields. At times the customer and the graphic designer will go bonkers with their ideas and it will be your job to make them happy. This will also be a good time to experiment a bit with UI. Navigation between screens with animations (and passing some data to them), displaying dialogs.
Time to prepare for your interview for a Junior Android Developer
There are many approaches to the recruitment process. Some companies send you a task and by the code you wrote they decide if you’re a developer candidate material. Some want to speak to you and perform a technical interview. Some use a combination of both. Be aware that there are many people like you trying to get into that business. Don’t do shortcuts. Write the best code you can. There are many companies that offer feedback after the recruitment process. Treat this as your treasure. In fact, you can first apply to companies you don’t want to work in. That way you can familiarize yourself with those processes and be confident about your skills. You can also search in forums about what are the FAQs for an Android developer position and also what are the examples. Most of the time you should expect the following from the recruitment tasks:
- connect to specific API and retrieve the data
- implement custom view like sudoku board or compass
- store and display data in a list (usually includes some operations on the list like sorting and filtering)
Last words of advice
In the last part of this article I’d like to write some good advice for people starting their adventure in Android development. I know there’s usually a shortage of time, especially among people “working from 9 to 5”. Changing your profession is never an easy task. It will take some time. What helps? Implement a strict regime — work one day on weekends and maybe also once or twice during workdays. Maybe try to reduce your working hours on Friday or negotiate a home office so you’ll have more time to learn.
Also, you’ll probably need some help, especially in the later stage of learning. There will be times when you’ll be stuck. Try finding help among people offering private lessons for IT students. They can provide a code review or a whole lesson in a specific subject. Regarding your first job: you’ll probably want to work in an environment that will help you grow as a developer. Software houses are highly recommended for that purpose. There you’ll be facing a lot of hard work but also a ton of learning experience. It will be hard but it will all be worth it.
There are some drawbacks though. Software houses conduct recruitment processes very rarely. And also — since you’ll be a very inexperienced developer — you’ll probably won’t get paid as much as you’d hoped. The alternative is to try to apply for a job in a big international company. They usually have a very predictable recruitment process. After a short HR call you’ll probably be required to solve an algorithmic problem in the most efficient way (reserve a significant amount of time to practice them first). The recruitment task will be performed either by live coding or on an interactive website. The main drawback here is that you could probably work with a very old code, maintained for years, closed for new solutions. Main cause for that situation is that the big IT companies thrive on carefully negotiated long term contracts. Last but not least: create your own portfolio of projects and share it on github. This will show that you work constantly on something and you develop your new skills.
Ready, set, go!
To sum up, working as an Android Developer offers a lot of satisfaction on solving problems and helping people. Don’t be discouraged by the lack of proper technical education or your age. The quality of your code will most likely get you the job you want. There’s a long hard work waiting for you, but it will be worth it. Choose spending your own time instead of spending money on bootcamps. They don’t necessarily guarantee success in getting your first job. Give yourself time to learn and develop your apps to be gradually more advanced. Don’t forget to share the code. 😉 Choose your first job carefully. Software houses offer a lot of learning opportunities, but big IT companies are easier to get into. Don’t give up, work hard and you won’t regret it.