How to study and practice Android Development
by: Ted Hagos on 8.Jul.2012
  1. Size up what you are up against. Learning android is not as simple as diving into it or taking it head on. You need prior knowledge of the Java programming language. You can quickly find out if you are ready to dive to Android right now, and when you realize finally that you cannot avoid Java, try to find out how much Java you really need for Android

  2. Pick up a book on android programming, choose one that is designed for beginner. There are plenty of books to choose from, I used Learning Android. Read this page if you want to see a short list of books for android

  3. Dedicate a notebook for your android learning, I don't mean a computer, I mean a physical notebook. I like this approach because there is something about the tactile feel of notetaking 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---this 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

  4. Leaf through the first few chapters of the book to familiarize yourself with the vocabulary, there will be quite a few of them

  5. Set up your development environment. You will need this now to try out your first few dances with the SDK. Start simple, try to understand the Hello World example (I think every beginner book has this example)

  6. 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. There is a short android programming tutorial in this site that could be useful for a beginner

  7. 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

  8. Attend 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. <shameless-plug> If you happen to be in Metro Manila, Philippines, I do hold a workshop on Android Development </shameless-plug>

  9. Make a firmer schedule for your learning. Set aside a block of time each day, everyday 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. You should have organized your study and reading material 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 the (physical) 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. I taught a programming concepts course for non-programming folks quite a few times, you can look at the format of the journal here if you need some sample format.

  10. Read voraciously. Pick up a second book, maybe a third book on android. Learn who writes the (reliable and coherent) content for android programming, you can go to android10.org that is a good site to begin with, include developer.android.com as well, it is the official site of android development after all---you can visit theLogbox.com also, I try to write all my notes on Android and Java development on this site quite regularly

  11. 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

  12. Do some pet projects on your own. 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---you know, those stuff, corny as they are, they will help you get started in coding your first few apps

  13. At this point, you can only go one direction. March towards that 10,000 hours of practice to become an android guru. 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

Now be on your way! Happy coding.

customizable counter
comments powered by Disqus