[Android Software Development] fxn:
Hello all, nice conversation that hasn't been diverted yet so I think I shall make a small contribution to this.

Programming courses and books that you can buy are a good way of learning but is not always an option due to mainly money constraints luckily we have this thing called internet ;), it has never been easier to learn programming than it is at the moment the plethora of resources available is absolutely incredible the only problem might be in finding things in a structured and well ordered way.

One of the tricks I've used in the past is to look up books that either get recommended or you like the look of and then find the index listing for that book which is usually given away free by sites selling books, then all you need to do is Google for the given topics =o)

As for learning Java to get started on the path to Android application building I think the biggest issue most people will be facing is that they find Java books but none of them seem to be making anything exciting, the problem is to make exciting things you really need to know a fair bit more about developing.

So that having been said I think as a short check list for someone looking to go from zero programming experience to developing their first android apps I would recommend something like this:

1. Go and read about Object Oriented Programming model

You won't fully grasp all the concepts straight away without having done any programming but it is good idea to get this stuff into your head straight away as it will start making more sense once you've learned a bit and then makes it easier to later on come back to this and get the lovely eureka! moments. Good place to start could be something as simple as Wikipedia.

2. Write console applications

By this I mean little java applications that you will be running from the command line on your computer. This is where most people I think get discouraged as they can't see how this relates to Android development.

Forget about graphics, user input, mobile devices etc for now, you can learn so much by writing these:

-Basic types & Variables

-Arrays

-Basic arithmetic and working with strings

-Loop structures

-Logic such as IF statements

-Creating new classes and objects

-Calling functions and returning values

Now all of the above will be used over and over and over again no matter whatever you are writing and the good thing is that it can all be learned by learning 1 additional non android specific thing: how to print out text to command line.

A good example application that you can write that uses most of the above would be a simple application you run from the command line, it fills an array with randomly generated integers between 1 and 20, lets say it generates 10 of them and then displays them to you in the order of smallest to highest.

No user input required, no graphics required etc, its not the most exciting thing but it will get you using all the basic building blocks.

3. Revisit the object oriented model

Do this again as it is pretty vital you understand it and after completing step 2 it will start making a whole lot more sense.

4. Install Eclipse and complete the Hello World tutorial on the android site:

There are plenty of guides on how to install the Android SDK and Eclipse environment and the best ones are from Google themselves. Follow them, if something doesn't work, try and figure out why it doesn't and then search for it, chances are that someone has already figured out why and you've just missed something.

Then complete this tutorial: http://developer.android.com/resources/tutorials/hello-world.html

5. Modify the Hello World tutorial:

Don't get ahead of yourself and start writing your killer app now, start slowly modifying the Hello World tutorial, learn how to display a piece of text from your application.

Now do everything you did with Step 2 but do it all on the Android app.

Visit this list but don't get too stuck with it:

http://developer.android.com/resources/faq/commontasks.html

6. Complete the Notepad tutorial:

If you've blindly followed my steps/similar steps this will be difficult and you should spend a good while dissecting all of it. The tutorial is actually excellent and touches on everything you pretty much need to write a fully functioning application. Don't go for the way of downloading sample source blindly following the tutorial, compiling in the end and then checking this as done.

I bet there are million things you won't understand about it so just keep going through it line by line and when you understand how it works, make it your own, start adding features to it, just silly things but do it =o)

7. Read, Read, Read & Start small.

You should now be at a point where you can start thinking about why you originally wanted to develop for android, if its a simple app you wanted to make start reading about topics that are specific to your app. Also this is a perfect time now to pick up an android application development book, up until this point all the free information has been as good as if not better than books.

If you want to make a game...be prepared to be spending atleast 2-3 times as long as you have to this point before it becomes even viable.

And final piece: Start small, for your first app don't start writing a full fledged facebook killer android social networking location based interactive photo editing physics calculator, do something simple and gradually build up to bigger projects...trust me on that =o(.

Anyhoo bored at work as you can probably tell, hope the above is a good outline for someone thinking of undertaking Android development if they have no previous experience. I don't mean to put people off just be prepared to spend a LONG time with this, it's not overly difficult but if you haven't done development before the sheer amount of new concepts you will have to understand from early on and WELL is very daunting.

.FxN