Note: This post was written in 2015. Some links may no longer be valid. The recommendations reflect the ecosystem at that time, but the core learning path and methodology remain relevant.
Foreword
We all start somewhere. For any technology, everyone begins with Hello World. What puzzles me is why some people improve 100% in a year while others only 20% — or even stagnate. Is it IQ? In my opinion, it is more likely a matter of learning method.
While on my wedding leave, I was writing blog posts and searching for learning materials. I found that relying solely on Baidu was terribly inefficient — at least half the time was wasted on useless pages. I decided to spend a few evenings organizing my bookmarks, making sure most resources are accessible from within China. The following is a curated list for beginner-to-intermediate Android developers. As for advanced-level topics — I’m not quite qualified to speak on those yet.
Android Beginners
For newcomers, I recommend buying a solid introductory book and browsing through Android fundamentals. Most Android books on the market are similar in quality — Turing Books (Turing Publishing) puts out decent ones. I received Android Programming: The Big Nerd Ranch Guide (link may no longer be available) from Turing Education, and I bought Professional Android 4 Application Development myself. Either works — just keep it on your desk and flip through it. If your English is good enough and you can bypass the firewall, go straight to the Android API Guides — most books are just translations or extensions of this content.
Beginners must write lots of code. When I was learning, I went through the examples on the eoe forums (link may no longer be available) and rewrote them from scratch — well, maybe a few hundred examples, not literally thousands.
Once you can write simple apps, start reading other people’s code. I began by fixing bugs in an open-source course schedule app (link may no longer be available). Reading code, fixing issues bit by bit — that sense of accomplishment kept me going.
When you reach the point where you can understand most code, it is time to learn Android’s design guidelines:
- Material Design Guidelines (Chinese Translation) (may load slowly due to Google Fonts)
- Getting Started: Android’s basic characteristics and standard UI naming conventions
- Style: Design principles — especially useful for screen adaptation: icon sizes, spacing, which folder to put different resolution images in
- Patterns: When and how to use Android elements — notifications, navigation, etc.
- Components: Basic widget usage — progress bars, activity indicators, etc.
Another essential resource is the Chinese translation of Google’s official training course: Android Training Course in Chinese
Android Intermediate
At this stage, writing a typical app feels effortless — what you need is time, not new skills. You’re comfortable with most Android APIs: databases, networking, custom Views. Now it is time to level up through blogs.
Recommended CSDN Bloggers
| Blogger | Blog | Known For |
|---|---|---|
| Hongyang | blog.csdn.net/lmj623565791 | Practical tutorials, MOOC courses |
| Guo Lin | blog.csdn.net/guolin_blog | Author of The First Line of Code |
| Ren Yugang | blog.csdn.net/singwhatiwanna | APK dynamic loading framework, Baidu |
| Mr.Simple | blog.csdn.net/bboyfeiyu | Source code analysis, HTTP framework tutorials |
| AigeStudio | blog.csdn.net/aigestudio | Deep custom View series |
| Android_Tutor | blog.csdn.net/android_tutor | Detailed beginner tutorials |
Code Samples
- 23CODE (link may no longer be available) — great examples, updated irregularly
- APKBUS (link may no longer be available) — like iOS’s code4app, sample code collection
- xiulian (修炼源码) (link may no longer be available) — personal site, good examples
- godcoder (link may no longer be available) — sample code collection
Other Resources
- IBM DeveloperWorks Java Community — where I learned HashMap…
- stormzhang — Android Studio tutorial series
- Google Android Training Course in Chinese (GitHub)
Q&A
- Stack Overflow — the programmer’s essential tool. Search Chinese forums for simple questions; hit Stack Overflow for the tough ones.
Android Advanced
At this stage… well, I don’t have much to write — my sophistication level is about to drop.
- Git: The modern VCS, essential for interviews at internet companies
- Git Cheat Sheet (Chinese)
- Git Complete Guide (link may no longer be available)
- GitHub: Your resume booster, open-source essential
- Chen Hao - CoolShell — interesting tech topics and deep thoughts
- Luo Shengyang — deep Android source code analysis, for those who want to understand how Android works internally
- Programming Coder Weekly Categorized — organized by language and topic
- Android Open Project Collection — curated by Trinea
- The Art of Programming: Interview and Algorithms
- Awesome Android UI — curated list of Android UI/UX libraries
Gear Advice
I recommend non-.NET developers use a Mac. Check out Chi Jianqiang’s Mac tutorials. The main advantages:
- Native command-line environment
- Wide selection of quality software
- Easy setup — can dabble in iOS development
- Battery life — 9 hours by 2015 standards
For IDEs, most companies in 2015 still used Eclipse + JDK 1.6. I personally recommended Android Studio + JDK 1.8 — it was clearly the future. Today, Android Studio is the official standard; Eclipse is no longer recommended.
Notes
All resources above were verified at the time of publication. You are free to share them without attribution — my goal in posting this is to help every Android developer. It took me about an afternoon to compile these links, and I hope they help you.
I also ask that content aggregators respect the hard work of the bloggers listed above. Even if you share just a simple Activity after your own efforts, that carries its own pride. Thank you.