Wednesday, June 29, 2011

How to learn to develop for Android/anything.!!!

Hi all,

    Its been around a month or so I have been learning Android. I have got nice experience with the books I have been learning Android from. So just wanted to share my experience with all you guys.

   I started of learning Android when I felt like I have a good hold of Java. My protocol to learn computers is simple, take a reference book/reference website and start reading.

  This is something I have seen  many people criticizing. They say, why take a book and learn,
They would say
1. Write some App and you will learn it.
2. Use Google to learn things on the fly.

1. Write some App and you will learn it.
 But what I believe is writing an App will give knowledge of that particular API part that you have used in your App.

For instance, I will give you a scenario. It was sometime when I had written my own Download Manager in Java. I developed it all though, I never came into a scenario where I would want to change color of JPanel. When I was doing some other project, I ran into such a scenario and learned something interesting about changing it background color.

     JPanel jp = new JPanel();

       a. jp.setBackgroundColor();                              // did not work, as I tried a lot.
       b. jp.getContentPane.setBackgroundColor();    // DID WORK.

 Merely writing an App did not teach me these things. I had to read it somewhere.

Using Google to learn something, what methinks, is wrong. It wont teach you anything, it will just get you the work done.

2. Use Google to learn things on the fly.

   Google is, not doubt, a great utility to use to learn something. But let me ask, did I just say 'learn something', it should be 'get done something'.
   As you all know, by profession, I am a software developer. I keep working on computer, solving problems, developing something everyday. When I need to do to something I have been asked for, I just google it, get the solution and do the work. Thats it.

   But did I learn something? No, I just got done something.

 For example,
take another scenario(This is a very basic example, but imagine of some bigger than this). I want to embed some HTML page in my android project. My naive approach would be, I will fire Android Web Browser, to show the HTML page.

    Now, I have been through the API using either a reference book or Android reference website. I know there is something called WebView in Android that can be used to display HTML in the currently running App itself, than firing separate browser process and display it.

Another instance, try writing HTML5 App, you get all the help and code snippets using Google. But referring to W3C website is always good. In a sneak peek it will give a view of what method and properties are provided by that HTML5 API rather than just getting you work done using Google

So I would suggest, learning things from their respective reference website/guide is always better. I am not saying to by-heart everything, just a watchful overview might take about 3 days or a week or a couple of weeks, but will do great.

The biggest advantage to reading from books/ reference websites is 
1. You can fore plan how your project is going to behave and how its going to be developed.
2. What would be the correct design patter for it.
3. You can easily figure out what is easily possible and what is going to take tolls.

So coming back to learning Android. I bought 2 books and what I have found about these books. (Note: none of these books act as guide books)

1. Wrox Professional Android 2 Application Development.
Its a good book to get started with. They seem to be missing somethings sometimes, but later in chapter 5 they caught the track.

2. Manning Android in action.
It is ok, but its more App development oriented. I needed something that will teach me how to play around with basic building blocks of Android.

for example, teaching me how to fire an Intent and invoke BroadCast Receiver or how to create a service which count till 100 in the background etc.

3. Hello Android (e-learning)
This is totally Application development based book. They teach me developing for Android from the perspective of tick-tac-toe. Though you are doing it step by step, it comes to the case explained in '1. Write some App and you will learn it.' above.

I did not find any book which gives me a reference of API as well as they small demos with code to use those APIs
I would suggest, learning from Developer Guide from official Android website. I am currently referring the same while developing for Android.

Above is my perception of learning things.

Thanks and bye. I expect a lot of criticism for this blog post. You can just fill it in the comments box below.

1 comment:

  1. Simply the answer to this will be internet as it gives you almost everything what is required to learn to android development. One will find books, references and guidance everything on it.



Related Posts Plugin for WordPress, Blogger...

Share This

Share |