On Studying and practicing Android programming
These tips might be useful for you if you want to get into Android programming.
- Pick up a book. Ask a friend, your teacher, a developer whose opinion you trust. You can also take a look at the BIBLIOGRAPHY section of this mini site. There are some ideas there that can get you started in choosing reference materials
- Take notes for your android learning. Get notebook, I don’t mean a computer. Get a real notebook, with paper on them. I like this approach because there is something about the tactile feel of note taking that helps me retain the knowledge. You will need this notebook when jotting down unfamiliar terms, or maybe even writing your first android application by hand. Note taking forces your brain to work harder, and hopefully remember the steps (and concepts, more importantly). Intellisense and autocomplete are swell, but I would rather that you do it the hard way first, while you are still learning this new technology. Favor retention over speed of coverage. Don’t skim the headlines
- Flash Cards. This is old fashioned, but they work.
- Get your feet wet. Set up your development environment. Start simple, try to understand the Hello World example (I think every beginner book has this example). Understand the Hello World sample, really understand it. Discover for yourself how can main.xml (the default layout when you create an android project) get exploded into R.java. Why do you need to set the contentView() to R.layout.main? What does a View and ViewGroup mean? Don’t follow the examples blindly, ask the tough questions and look for the answers.
- Join a group. At this point, some frustration and feeling of helplessness might set in. It is a good idea to build a support structure. Join some local user groups or on-line groups. By this time, you are not coming in cold, you have gone through some parts of the book, you tried out a couple of coding exercises—you can add some value to the discussions, not just noise and cry for help, don’t be shy, go on ahead. Go to StackOverflow to get you started.If you are already working in software consulting environment, try asking your officemates if anyone knows android, pick their brains out. When they start resisting, try to bribe them with doughnuts—kidding of course, but not about the doughnuts, that bribe really does work
- Attend some classes. Join some local workshops or training classes if your budget will allow it. This is probably the fastest way to kickstart your learning because the instructor would have taken pains to arrange the learning materials in a coherent and intelligible way
- Block some time regularly so you can investigate the concepts that are not so clear to you. This block of time does not have to be long, but it needs to be rigidly regular. It might not hurt to read about the Pomodoro technique and some books on how to improve your focus, you will need it. When you study, try to avoid the temptation of coding straight away. Organize your study and reading materials ahead of time. Do some reading first, take notes of the vocabulary and concepts that you are encountering. Make a journal out of them. This is where your notebook comes in handy. If you really insist on going green and not use paper, electronic note taking is good too, but the point is, take note of the new things you are encountering everyday
- Get a second book. Maybe even a third book on android. Start being a textbook expert. Your field expertise will follow when you become a serial developer of mobile apps
- Read other books not necessarily about android, “The Pragmatic Programmer: From Journeyman to Master” is good place to start. You will soon run into questions like What editor should I use? and other similar non-sensical questions, the book should offer some insights why this question is not important, then you can stop wasting time and start growing in the direction of skill. While you are at it, pick up “Practices of an Agile Developer: Working in the Real World (Pragmatic Bookshelf)”, there are lots of gems on this book
- Work on your own pet project. This will force you employ some other skills beside coding. It is hard to think of what application to work on, especially when you are the developer. Just try to remember what were the things you really wanted as an app before, you can start with those. If you really come up dry, try to do even the beaten-to-death applications like countdown-to-something, anything, another note-taker, yet another todo list. These applications have been so beaten down already. You may not be able to make money selling your todo apps, but the purpose is not to sell, just to build so you can get started on practice
- Ten Thousand hours. Borrowing a reference from Malcolm Gladwell, it takes 10k hours to gain expertise. I don’t know if you have that kind of patience, for android programming at least. But try to clock some time immersing yourself in Android Programming. The more you do a thing, the better you get at it. There is no magic formula. You just have to do it lots of times. If you work for a software development company, try to ask your manager if you can participate on an android project. You can also try the programmer-for-hire route, I’m sure there are plenty android related work in craiglist, odesk or vworker. If that still does not suit you, you can try working on your own android projects and publish them on GooglePlay
If you find any corrections in the page or article, the best place to log that is in the site's GitHub repo workingdev.net/issues. To start a discussion with me, the best place to do that is via twitter @lovescaffeine