A few years ago, I decided to really dig in and explore ways to make myself a better Android Developer. Rather than finding ways to read documentation quicker or to queue blog posts that I should be reading, I knew that I wanted to accelerate my ability to learn. I wanted to immerse myself in everything Android. My guess was that if I surrounded myself with every medium (Podcast, Meetup, etc.) on Android development, then I would be able to advance my career quicker than I would otherwise.
At this point in time, I had already been developing Android applications for 4 or 5 years, but I was amazed at what I had been missing out on. There is so much content and support out there. It’s unbelievable. The people in our community are some of the kindest, most excitable folks I’ve ever met. They’re the kind of people who look forward to helping you out. And the community is producing high-quality, professional content all of the time. You just need to know where to look.
Rather than posting a bunch of links to help you understand what’s currently out there (which I’m still going to do), I’d rather help you find ways to build a routine which will help you learn how to learn quicker. Yes, it’s about to get meta.
First, make sure you understand what type of learner you are. Do you learn faster with audio, visual, or written text? Maybe you’re more of a hands-on learner? Do you absorb information better in the morning, in the evening, or in small breaks throughout the day? If you’re unsure, that’s totally fine. I’ll give some examples of what works best for me and, using that, you can start to experiment with different methods and routines.
Next, we’re going to walk through the different types of mediums. As we walk through each, consider whether you’d like to add it to your daily/weekly routine. The resources and techniques below are categorized as “Social”, “Written Text”, “Audio”, “Visual”, and “Hands-On” to help you jump to the categories that are best fit for you when you refer back to this article.
I highly recommend getting involved in the “Social” mediums here especially if you’re introverted, like me, because networking with other individuals is invaluable. It can help you solve problems quicker, build greater things together, and even help you find your dream job faster.
This is how I got started. I was never really all that into social media. I found that social media can really suck the life out of you and waste exorbitant amounts of time. However, Twitter changed all of that for me. Instead of treating Twitter like other social media (wasting time scrolling through peoples’ pictures of selfies and food), I decided to treat Twitter as a source of Android Developer news; a way to keep myself updated with what the “experts” are talking about.
Go to the Google Developer Experts page, filter by “Android” to find all of the current Android GDEs, click on each of their bio cards, and click the Twitter icon to follow them.
Here’s the link to the Android GDEs list for you: https://developers.google.com/experts/all/technology/android
Doing this, you’ll be notified about all of the latest trends, blog posts, happy moments, frustrating annoyances, and best advice from folks who really enjoy contributing to our community. The best part about this is that it feels more unfiltered than blog posts or tech talks. Also, you have direct access to ask questions to people who work at Google, who maintain the libraries you use, and who are going through the same troubles as you. I can’t tell you how many times I’ve received a response back from people who I look up to (Reto Meier, Ian Lake, Huyen Tue Dao, Christina Lee, Joe Birch, just to name a few).
Once you’re finished with that, follow a couple more important accounts:
- Android Developers… https://twitter.com/AndroidDev
- Rebecca Franks’ Lady Android Devs List… https://twitter.com/riggaroo/lists/lady-android-developers/members
- Android Studio… https://twitter.com/androidstudio
- Google Developers… https://twitter.com/googledevs
- Bad Android Advice… https://twitter.com/anddev_badvice
You can also take a look at who I follow on Twitter. Every Android Developer I come across on Twitter, I follow. https://twitter.com/w3bshark/following
(If I haven’t added you, please DM me or follow me and I’ll follow back!)
Join an Android Developer Meetup in your area. If you’re traveling to a larger city, take a look to see if there is a local Meetup happening while you’re there. It’s a great way to meet new people and learn from others. It is also a perfect opportunity for you to test the waters with public speaking. If you’ve always dreamed of giving talks at conferences and giving back to the community, try hosting a talk at your Meetup.
Search for Android Developer Meetups: https://www.meetup.com/topics/android-developers/
If you don’t have an Android Dev Meetup in your area, start one!
We have a local Meetup here in the Raleigh-Durham, NC area and it has undoubtedly helped me become a more knowledgable developer.
Meet up 😏
Once you’ve found other Android Developers in your area, ask to meet up with some of them every so often for coffee. Every time I’ve done this, I ended up talking with someone for hours. It’s something special to be able to sit down with someone and talk Android development, especially if you’re in a more rural area where Android Developers are few and far between.
There are way too many conferences to list here, so I’ll refer you to this wonderful, community-driven project which keeps a running list of Android Developer conferences: https://androidstudygroup.github.io/conferences/
If and when you decide to attend an Android Dev conference, please make sure you network with other people. I probably wasted my first two conferences because I thought I’d get the most out of it by strictly abiding by the talk schedules and only talking to the people I know. If you’re introverted, it may be difficult, but you’ll form some really great relationships with brilliant people this way. And you may even get to meet some of the experts that you look up to.
Last year, I went to 360AnDev and got to meet Yigit Boyar. It was awesome because he had unknowingly inspired me to do my first talk on building Android applications for offline use. So, it was great to meet him in person and chat.
There are a few Slack communities which also provide a great outlet for getting quick feedback on issues, discussing trendy new architecture patterns, or figuring out who’s going to the next conference. Slack is great because you can access it anywhere (mobile app, desktop app, and web). I keep the Android United Slack group on my phone and desktop just to peruse what people are discussing.
Let’s be honest, Reddit can cost you hours and hours of lost time if you’re reading the front page. In order to prevent this, I have a Reddit application installed on my phone which allows me to sign in with one account and only subscribe to the /r/androiddev subreddit. I’ll typically check it once or twice a day, usually in the morning as I’m eating breakfast and once before I go to bed.
Here are the links to subreddits you should consider subscribing to:
This is an honorable mention. I think the Google+ community used to be great and several people who work at Google still announce their new blog posts on Google+. Unfortunately, the majority of the Android Development Google+ community has dissolved into developers asking for help on specific issues.
Before I go into each sub-category here, I want to fill you in on a secret trick I have for blogs and publications. You may already have several blogs and publications that you regularly follow, but, if you’re like me, there are a few blogs that stand out above the rest. And, if you’re like me, you want to get notified as soon as new content is released. For instance, I want to be notified of new posts on Google’s “Android Developers Blog”, which announces important updates for us as Android Developers.
To do this, download the IFTTT Android application or use the web application. Then, go to “My Applets” and click on the “+” button to add a new Applet. For the “this” part, search for RSS Feed, add a new feed item for your favorite blog’s RSS feed. For the “that” part, select how you want to be notified, such as “Notifications” or “Gmail”. Once you’re finished, you’ll have a new IFTTT trigger which will send you an immediate notification when your favorite blog posts an update. Awesome, huh? 😁
If you want to find some of the best RSS Feeds for Android Developers, take a look here.
This is the category which I think is probably the most saturated with content. My advice here is to find a few that you enjoy reading and follow them. Don’t attempt to read every possible blog post or article written each day. You’ll just end up wearing yourself out.
Here are a few tags and community-driven publications to get you started:
Also, don’t forget the GDEs that I mentioned earlier. Most of them have their own blogs! Most people have a link to their blog on their Twitter profile.
Pro-tip: If you find an article that you’d like to read, but you don’t have time to read it, what I like to do is save it to either Google Inbox or Evernote. Google Inbox has a chrome extension and a share intent for Android devices so that you can easily save links to posts. I’ve also used Chrome bookmarks in the past. You can access your desktop bookmarks from your phone’s Chrome app, so it makes it easy for people who’re constantly switching between laptop and phone. Try finding an application which lets you create a queue of blog posts so that you never miss out on something due to timing.
Bonus Pro-tip: Contribute back to the community by writing your own blog posts. There are a lot of people who write blogs and articles… don’t get discouraged about writing your own post if there are several other people who’ve already talked about the same topic. Your perspective is unique and someone else may find your experience and your writing more helpful than the other posts. Also, writing your own posts is a great way to learn even more. Other developers will sometimes open up discussions in the comments of your post and this can be beneficial for everyone. I can’t tell you how many times I’ve learned invaluable information just from the comments on the blogs I follow.
Subscribe to a few email newsletters. This is a great way to find the top trending blog posts and articles if you’d rather not manually sift through Medium, Reddit, etc. yourself. I follow all of these. They typically send out weekly emails, which I’ll save for breaks throughout my work day. Once I’m on a break, I’ll pick out one or two articles in these newsletters to read quickly.
- Android Weekly… http://androidweekly.net/
- #AndroidDev Digest… https://www.androiddevdigest.com/
- Kotlin Weekly… http://www.kotlinweekly.net/
- #AndroidSweets… https://androidsweets.ongoodbits.com/
- AndroidLibHunt… https://android.libhunt.com/newsletter
For the sake of brevity, I’m not going to list out every book recommendation. There are plenty of amazing resources on Android Development, Kotlin, etc. out there. My advice here is to find a book that people are talking about in blogs, podcasts, and newsletters and make yourself a goal to read 1 to 4 of them per year. Development books can be pretty hefty, so sticking to one book per quarter is a nice goal.
Here are a few books I recommend:
- Android Programming: The Big Nerd Ranch Guide (3rd Edition)… https://www.bignerdranch.com/books/android-programming/
- Design Patterns: Elements of Reusable Object-Oriented Software… http://a.co/5ugq8nT
- Head First Design Patterns: A Brain-Friendly Guide… http://a.co/htmBh9X
- Clean Code: A Handbook of Agile Software Craftsmanship… http://a.co/9oA44vW
- Kotlin books… https://kotlinlang.org/docs/books.html
If you don’t have the money to spare, a nice option here is to find books that are “open-sourced”. They may not be the most up-to-date, but at least it’s free. Here’s one resource on GitHub: EbookFoundation
Or you can download documentation sets of programming languages. For instance, you can download the entire doc set of the Kotlin language as a PDF. I particularly enjoyed reading the documentation on Kotlin. I was able to read the majority of it while traveling to/from conferences. The best part about this is that you can read it while offline and you don’t have to lug around a heavy book.
Pro-tip: you can usually get an EPUB or PDF along with your physical copy of software dev books these days. Find an Android app, like Google Play Books, which lets you import these files so you can read them while offline.
You can find many great slides from speakers who’ve given tech talks on SpeakerDeck. The readability of this content can vary from speaker to speaker, but I thought it was worth mentioning. I’ve found that many speakers will post their slides here after their talks so that people can have a copy to remember the concepts that were taught. https://speakerdeck.com/search?q=android
Google has their own app for developers which gets regular updates for new articles that are written by Googlers. I’ve found it pretty handy as a supplemental resource. https://play.google.com/store/apps/details?id=com.google.android.apps.secrets
This is my current favorite category. I thoroughly enjoy listening to podcasts. In the last few years, the number of podcasts on Android Development alone has exploded 💥. I love to listen to these on long drives or on a flight while traveling. Before I started working remote, I used to listen to them on my drive to/from work.
The best way to consume podcasts is to find an Android app which allows you to search for your favorite podcasts and download them ahead of time. You don’t want to wait until the last minute to download them because, depending on how long the episode is, the download can eat up your phone’s data.
Here are my favorite podcasts. I’m sure this list will grow over the next year. If you find one that’s missing, let me know in the comments!
- Fragmented… http://fragmentedpodcast.com/
- Android Developers Backstage… http://androidbackstage.blogspot.com/
- Talking Kotlin… http://talkingkotlin.com/
- Android Snacks… http://androidsnacks.com/
- The Context… https://github.com/artem-zinnatullin/TheContext-Podcast
- Neapolitan… https://soundcloud.com/user-779456994
- Material… https://www.relay.fm/material
- Android Authority… https://www.androidauthority.com/podcast/
- Android Leaks… https://androidleakspodcast.com/
If you’re more of a visual learner, there are some great resources available. Here, I’ve listed several of my favorite YouTube Channels that I subscribe to. When I have free time on the weekends, I like to pull up a few videos on my Android TV device, sit back, and enjoy.
- Android Dialogs… https://www.youtube.com/channel/UCMEmNnHT69aZuaOrE-dF6ug
- Android Developers… https://www.youtube.com/channel/UCVHFbqXqoYvEWM1Ddxl0QDg
- Google Developers… https://www.youtube.com/channel/UC_x5XG1OV2P6uZZ5FSM9Ttw
- Nate Ebel… https://www.youtube.com/channel/UCVysWoMPvvHQMEJvRkslbAQ
This is not a definitive list, but just a list of course websites that I use. If you’re new to Android development, I would recommend Caster.io, Udacity, or Treehouse. And if you’re an advanced Android Developer looking to step up your game, I highly recommend Caster.io, again. Note: I have no affiliation with any of these businesses. I am only speaking from my personal experience; you may find others which are more helpful to you.
- Caster.io… https://caster.io/
- Udacity… https://www.udacity.com/
- Treehouse… https://teamtreehouse.com/
- Udemy… https://www.udemy.com/
- Tuts+… https://code.tutsplus.com/categories/android
- Vogella… http://www.vogella.com/tutorials/android.html
Some of these even have their own communities where you can talk with other developers who are in the middle of learning the same stuff as you. Udacity has a large community. Udacity also has a few certification programs, which may be of interest to those looking to beef up their résumé.
Pro-tip: if you decide to commit to a multi-course software development program, make sure you have enough time to dedicate to it. Some programs require ~10 hours per week, others require more. The best ways to set yourself up for success are: block time on your calendar for learning so that you can make a routine of it and get involved in the community (if there is one) so that it adds more of a sense of belonging and excitement to the program.
Realm has produced some great video content of tech talks and they’ve even consolidated similar talks into “learning paths”. Their RxJava learning path helped me out tremendously in understanding how to use RxJava for Android development. https://academy.realm.io/section/android/
GitHub / Open Source
My favorite way of giving back to the community and interacting with other Android Developers is to work on open-source projects. In my opinion, this is one of the easiest ways to network, give back, and learn all at the same time. There are many ways you can help with open-source projects:
- If you use an open-source library and you’ve found an issue, open a ticket on the project. Make sure it’s an actual issue and not a question about how Android APIs work 😜. Make sure to provide all reproducible steps and any contextual information.
- Again, if you use an open-source library and you think it’s lacking a feature that other developers could benefit from, then open up a feature ticket on the project. It’s very possible that the developers never thought of your feature idea.
- If you find yourself writing reusable, extensible code which could be genericized to help out other developers, consider opening up your own public project or gist.
- If you’re looking to contribute to other open-source projects, the /r/androiddev subreddit can be a good way to find people looking for help. You can also message the maintainers of your favorite libraries to see if they’re looking for help in any particular areas.
A great way to spend an afternoon learning something new is to complete a Codelab course. On several occasions, I’ve worked on these alongside some of my Android Developer friends. It’s a great way to dive into a new topic and learn together. https://codelabs.developers.google.com/
If you have the time, find a mentor/mentee. This is a great way to spend an hour or two each week to boost your career and/or to give back to the community.
- Code Mentor… https://www.codementor.io/android
- StackExchange Code Review… https://codereview.stackexchange.com
If you have free time during your breaks throughout your day, consider giving back to the community by contributing answers and votes on StackOverflow. There are several tags you can follow to find new unanswered questions, but here’s my go-to tag: https://stackoverflow.com/questions/tagged/android
Download New Apps
If you know of someone or read about someone who built an app, download it, play around with it, and maybe even provide helpful feedback to them. This is a good way to find inspiration from the community and, who knows, maybe you’ll learn about something you previously thought was impossible.
I realize this is a lot to take in. It can be overwhelming. Whatever you do, don’t attempt to add all of these mediums to your daily life at once. Add one or two at a time and see what sticks. Maybe you’re the type of person who learns better with audio and visual mediums. If you’re this type of person, maybe add a podcast to listen in the morning or a YouTube video to watch over dinner. Then, slowly add more and more to your routine. Eventually, you’ll get to where you feel immersed in the community. And from then on, it’s smooth sailing.
This is my first post in a seemingly unorganized series on helping Android Developers in their career. So, look out for more posts in the future.