From Beginner to Junior Android Dev: 10 things you need to learn

When it comes to Android Development I think it’s safe to say that there’s the way things are taught, and then there’s the way that things are done. And in my 8+ years of Android development experience it’s safe to say that every Junior Android Developer I’ve ever worked with has known how to do things the way things are taught, but not the way things are actually done.

Now that’s not a slight against anyone, we all have to start somewhere.

But no matter how you’ve learnt to build Android app’s -whether you learnt on a coding boot camp or have just finished a degree, whether you’ve been following a Udemy course or have been following online tutorials..

If you’re truly serious about taking your Android programming skills to the next level. If you want to go from beginner to professional. If you want to go from hobby to career. Here’s a list of 10 things to learn that will put you light-year’s ahead of the competition.

And that’s not hyperbole either. I often get asked to help interview candidates and if your resume crossed my desk for a Junior position with the following skills — you’d be in 💥 (or maybe better put, if your resume crossed my desk without these skills.. 🚮 🤷🏽‍♂️ Real talk.)

1 — Don’t reinvent the wheel

9/10 times whatever it is you’re trying to do has been done by someone else. There’s either a library for it or a gist for it or a tutorial explaining how to go about it. So before you start rolling your own, have a Google, have a look on SO, and benefit from others mistakes.

2 —Learn Retrofit for networking

Learn how to do the basic’s like perform GET’s & POST’s, learn how to add headers to specific calls, learn how to hook it up to OkHttp for performance, learn how to create some basic interceptors, specifically you’d benefit for using one that let’s you log the request/response of calls verbosely (in the vain of not reinventing the wheel I’ll give you a hint, there’s an interceptor you can import that’s built just for this!).

3 — Know how to POJO from Json

The most commonly used libraries for this are Jackson, GSON & Moshi. You can use any that you like the look of, they’re all very similar & they all hook into Retrofit easily. You’ll wanna learn how to parse Json into your objects, how to annotate them correctly, how to override setters so you can control the way the data is parsed & you’ll probably also want to get a basic understanding of custom serializers & deserializers as they’ll almost definitely come to play at some point in your career.

4 — Get to grips with some Image libraries

5 — Learn some patterns

If you’re really against MVP though or something else interests you more I’d say learn that. The main takeaway here should be while you may have learnt to build your app’s with everything in 1 activity or 1 fragment — no one build’s apps like that. Scratch that. Some people do. Let me rephrase — no one is going to hire you because you can do that, but they’ll hire you if you have worked with one of the more commonly used pattern they’re looking to use.

6 — Kotlin

7— Java

8 — Unit testing

Just know the basics. How do you set one up, how do you run it, how do you verify the result. You can later learn the more complicated things as those scenarios come up.

9 —Mockito & Mockk

Mockito & Mockk would be my two go to classes to implement mocking, with Mockk being my go to if you’re writing a Kotlin based test. Learn how to mock objects, mock results, spy objects — which is where the object behaves as normal but you can override methods to mock specific aspects of it. Mock’s also let you run code that might rely on an Android code inside a unit test as you can simply mock that object.

10 — Espresso testing

(Bonus) Butterknife

It’s really not that hard, I’d steer away from learning things like the OnClick annotations as I find them to be bad practice when you’re working on a multi person code base (why are they always linted as unused!) & instead just learn how to Butterknife.bind & the BindView annotation & you’re good to go.

There you have it. My top 10 things you need to learn to go from being a beginner to having some serious Android game!

As always - question, feedback, thoughts.. all would be much appreciated in the comments below 👇🏽

Freelance Android Developer since 2012 🎙️Host of 🌍 World Tourist ☕ Coffee Addict |