Recently a few people asked me, what are my methods for gathering knowledge and being up to date with all news connected with Android. I didn’t really think about that. I just grabbed all knowledge from a various places and then tried to use it in practice. I decided to sum everything up and create a collection of my knowledge resources. Of course, we are not able to use all of that every day, because it’s too much, but it’s good to know where we can find something interesting. Android is very dynamic mobile platform, which changes really fast. It’s hard to be up to date with all of new features and programming techniques. That’s why it’s worth to find places where we can gather interesting information. Below, I collected some resources, links and information, which I find useful for learning Android & Java and being up to date with Android development.

Podcasts

  • Fragmented Podcast - talks about building good software and becoming better Android developer - you can hear interviews with famous developers like Jake Wharton here

Videos

Collections of articles, issues & libraries

  • Android Weekly - free newsletter that helps us to stay cutting-edge with our Android Development
  • Android Arsenal - huge collection of categorized open-source Android libraries and tools
  • Slicedham.co - collection of engineering stories (not only about Android)

Blogs

Not all articles on the blogs below are connected with Android.

StackOverflow

We can browse interesting topics tagged with Android tag, read them and even try to solve some problems. It will allow us to learn something new or improve existing knowledge.

GitHub repositories

It’s worth to check open-source repositories of great companies and developers to see how smart people solve the problems. Not all repositories of the companies and developers below are connected with Android, but most of them do. Moreover, we can still learn a lot from various kinds of OS projects.

Companies

Organizations

Developers

We can also check trending Java repositories or trending repositories in general. In addition, we can try to analyze source code of various repositories and try to contribute back to them. I guarantee, we’ll learn a lot. We can start with small steps and we don’t have to implement the most complicated features in the beginning.

Twitter

We can follow famous developers or companies. We can also check tags like: #AndroidDev, #Android or #Java and so on.

Experiments & open-source projects

We can create our own projects. We can publish our app on Google Play or create an open-source library on GitHub and let other people use it and review it. Then, we’ll be able to determine if our libraries are usable, code is clean, API is simple and documentation informative enough. In addition, other developers can report bugs or new issues, which will allow improve our projects and develop our programming and communication skills.

Other

Meetings, conferences, hackathons, etc.

Sometimes it’s good to go to a conference, meeting, etc. to talk with people and learn from them. We can take a look at the events around us, attend them or maybe present something. If there’s no events in our location, we can always organize one and ask others for help!

Books

It’s good to have strong basics. Not every book is universal and valuable over the time, but there’re a few fundamental positions for programmers worth reading like Clean Code, Effective Java, Java Concurrency in Practice & Test Driven Development: By Example. It’s an open list and we can always extend it with another position on our shelf.

What else?

Everyone has his or her own method of learning new things. If you know another interesting resources or methods, share them in comments below this article.