My favorite Android Development educational resources (from a noob's perspective) - Online Courses, Schools, and Other External Resources

As an Android Development noob (at the time of this writing, of course), I've spent many hours watching videos and reading tutorials, only to find out that many are either not very noob friendly, or they are way outdated and thus not very good for those who literally have no clue of what's going on. I've wasted so much time trying to make sense of the endless stream dribble out there, that I nearly gave up entirely. Luckily, I was able to stumble across a few resources that help to tie the pieces together and explain in more detail the things that the others failed to do.
TheNewBostonFirst off, every beginner should know about TheNewBoston. This is a site created by a young man by the name of Bucky Roberts who was tired of not getting anywhere in college, and decided to quit and teach himself. He has a wealth of video tutorials on everything from programming and web development to game development, along with 200 videos on Android Development. It's definitely not my favorite resource, mostly because I have ADHD and the constant stream of “umm...uh...and uh, this,” in Bucky's videos, along with his apparent inability to correctly pronounce the word “build”, is just too much for me to bear....but, I digress. Luckily, the Android Development videos are done by a guy name Travis and they are considerably more professional. You'd be hard pressed to find more topics covered in a single location for free anywhere else, which is exactly why I think it had to be mentioned first.
NewThinkTankA site created by Derek Banas that covers a wide range of topics from web development to...dieting...??? Nevertheless, his Java and Android Development videos are easily the most professional, straight-forward, and easy to understand tutorials I've seen anywhere. If you can walk away after watching his videos and honestly say you still don't understand what's going on, then you should probably pursue a different hobby (or lay off the paint chips).
Level Up TutsThis site has video tutorials that are mostly geared towards web development, but they do have 23 Android App Development videos that are easy to understand, and walk you through building a simple app from start to finish. It's a great resource for newbies that just want to skip over the hours of watching videos, get straight into building their first app., and still be able to understand what's going on. You definitely won't learn everything you need to know about building Android apps, but you will walk away with a decent understanding of how to create your layouts while giving them some functionality, and without needing any prior programming experience.
VogellaThis website has an immense amount of current information regarding Android, Java, Eclipse and various other topics. There are no videos, but all the information is laid out as you were reading it from a college textbook. It is very easy to understand, but you should probably go through a few of the video courses mentioned previously before getting started on this site. This is definitely a great resource for filling in the gaps left behind by other tutorials.
Java RanchJava Ranch is a site specifically geared towards the Java newbie. It mainly consists of a forum where the only rule for posting is to “be nice”. There are quite a few sub-forums for nearly every aspect of Java, including Android and game development, along with a “Java Beginners” sub-forum where there is literally no such thing as a stupid question. Very newbie friendly and a great place to ask your question if you get stuck on something.
A great site for learning good Java coding style. There are several ways to complete a single task in Java, many of which will cause whoever is reading your code to cringe in horror. If you plan to do anything even remotely complicated in Java/Android, you should definitely push yourself to learn good coding practices. It will make your life so much easier when debugging or asking for help.
Obviously, in order to be an effective Android app Developer, you will need to be able to program in Java (or some other language). And if you're like me, you probably won't get a lot out of simply learning how to create loops and conditional statements without being able to put them to good use. The following are a few sites with Java problem solving exercises (Katas) that test your ability to solve common problems. After many hours of watching videos and reading, they are great resources for you to flex your newly found coding muscles.
CodingBatCodingBat has over 150 different interactive problems that test your code against a predetermined set of arguments. There are 48 “warm-up” problems with solutions available so you can get an idea of how it all works, but after that you're all on your own. Each problem increases in difficulty over the previous ones and they will definitely test your logic like no tutorial can.
Cattle DriveJava Ranch's Cattle Drive, is a set of deceptively challenging exercises that are designed to really test your problem solving abilities. The exercises are free to do on your own and you are allowed to ask questions about them in the forums, but you have to enroll in the program if you want experienced developers to “nit-pick” your work and help you develop good coding style and practices. Be sure to research how to pass arguments to your main method using your particular IDE to get the most out of this.
ProgrammrThis site has lots of timed, user submitted, interactive problem solving exercises that are mostly geared towards getting the example code to run. You get points for every task completed, and every two weeks the top ten point leaders get $20 gift certificates for You can choose from several different programming languages including C++, PHP, Javascript, SQL, Python, and they even have an area for Android specific problems (to be added soon). And, although it's kind of buggy, this is a great alternative to the traditional code Katas.
ProgrammingPraxisThe largest collection of programming Katas I've seen anywhere. So many, in fact, that they are sorted into themes. Users post their solutions and let others comment on them. Considering the very nature of Katas, the same problems can be solved in numerous different languages, and this becomes very apparent as you view some of the posted solutions, as there are no separate forums for the different languages.
The following are some great sites that have small tutorials and code examples for performing various tasks that you probably wont find in any of the video tutorials (working with Facebook, sending SMS messages, creating live wallpapers, adding design elements, etc.). These are mostly blog sites with individual entries added periodically, but they're great resources for seeing how the different technologies work and adding to your overall Android Development repertoire. These of course, assume you have at least a basic understanding of the Android Development platform.

Great List Buddy !!!

Thanks for this...really going to save me the hustle.
Sent from my GT-I9082 using xda app-developers app

thanks great value
Sent from my Primo-N1 using XDA Premium 4 mobile app

This is what i am looking for! Thanks for this man!

Sent from my C5155 using XDA Premium 4 mobile app

Thank you so much !!! I was looking for a list like this. The Java exercises sites list is great, I'll definitely going to use those!

I think this guy should be added to the list he makes great java and android tuts and i have learned a lot from his videos check him out guys, and regards to the new Boston although he does know his stuff i don't think he is a good teacher he is just not very good at explaining the connections between certain aspects of programming but that's just my opinion.
Good Programming Tuts

Very Awesome list!!! Its helping me out a lot. Thank you

I wasted mny of my time already
So if I would have seen tgis b4 I would have been much forword in my development.
Anyhow atleast I got now:sly:

I am a new person here, and am looking to become an Android Developer.
Thank you for sharing these resources with us, I am hoping greatly advance my skills through them.


So I want to learn to develop for Android...

This is me: college kid, no developing experience whatsoever (unless you could a basic HTML course in like 9th grade... lol), relatively intelligent, interested in technology.
What do I need to learn?
I found a "java 101" article to read here: Learn Java from the ground up - JavaWorld
Is android just Java or is there any other kind of language..? I've heard something about C++? or is that part of Java?
As you can tell, I'm a noob lol.
Then I read that I need Eclipse (what does that do again?), which one should I get (I'm on a Mac): Eclipse IDE for Java EE Developers, Eclipse IDE for Java Developers, or Eclipse Classic 3.6?
Is this a bad idea considering I know nothing? Like am in way over my head?
Any other ideas or links anyone can share?
I made this same post on a different forum, and someone told me that XDA was a great place to learn programming and such.
Any help is appreciated. Thanks!
Oh and can I program without a problem from OS X or should I use bootcamp and do it all under Windows 7?
This is me: high school kid who is a noob Java programmer. :P
1. Learn Java. That's what Android apps are written in (I think).
2. C++ is a different language. Don't think it's of use here.
3. Eclipse for Java Dev.
4. Embrace your Mac.
I'm in much the same boat you are. I went and grabbed a book called, "Android Application Development" from my local book store tonight ( I am not endorsing the book yet as I'm only a few pages in and it was the only Android book at the store. There was not a single book on Java. I'll be turning to the many many web sites available for that until I get a solid recommendation for a book from someone.
The only thing I've ever done that's even remotely close is built SQL databases, reports and queries which I now manage as a cardiac researcher. I have no classes or anything else useful other than I know my way around PCs enough to build them and install my own OS's.
The advice in the book for the dev environment is:
1. JDK 5 or 6 and the book says that OSX comes with 5.
2. Eclipse IDE for Java Developers for your OS. Get the latest version (which defaulted as such for me for Vista 64).
3. The Android SDK.
After the above, there are some steps to take a look at on the Android SDK site. Follow those and read it all. I'm pretty sure I'm just a person of average intelligence and I think I have a handle on getting to where I can start working and the Hello World bit seems to make sense right now. We'll see how things go as I learn more of the Java syntax.
Good luck!
I would love any advice on sites/books for a non-programmer to start to get a grip on Java and creating an Android app in general. I have some plans for some specific medical uses for my job and I have always been interested in writing programs. Seems like a great time to start.
For Java, a good place to start (other than the Sun site itself) is JavaRanch. I'm too new to post links, but the URL is easy to figure out, and a quick search would turn it up as well. The site has lots of information, links to book reviews for Java, forums and so on. It was a good resource when I was studying Java in college!
Good luck!
Thanks much! I found an Intro to Programming with Java class at the local community college here but it doesn't start until Sept. =/ That site looks good though, hopefully I can find a book that seems to fit.
(edit: the following assumes you've more or less mastered Java already; I really don't know what to recommend for someone who's trying to learn Java AND Android programming simultaneously. I suspect part of the reason for the lack of books for THAT niche is due to the fact that it's more or less impossible to take any programming class in college that doesn't either involve Java or have it as a non-negotiable prerequisite, even if Java per se isn't directly relevant. It's just part of the baseline cultural background noise).
If you buy nothing else, buy "Beginning Android 2" by Mark Murphy. If you're not totally broke, buy "Pro Android 2" by Sayed Hashimi while you're at it. Don't try to skip the first and go straight to the second... there's a lot of medium-level stuff that's covered thoroughly in "Beginning" that's barely touched upon in "Pro".
Those two books aren't great if you like to jump around and learn things in random order as need arises, but they're probably the gold standard right now for books that comprehensively teach Android Programming in a sensible order from start to finish.
"Professional Android 2 Application Development" by Reto Meier is a great complement to those books, because it IS more of a "jump around and grab important details as the need to learn them arises" book. I refer to all three on a regular basis.
"Hello, Android" is one of those books that you'll probably never look at again two weeks after you first start reading it... but if cash isn't really a problem, it's a nice tutorial for brand new Android developers.
Content-wise, the pdf books by Mark Murphy (yeah, the same Mark Murphy who wrote the Apress book) are probably the best of all, because they literally ARE updated regularly as typos & bugs get found (every book has 'em, few books ever usefully fix 'em) and new versions of Android get released. The problem is, unless you have an ebook reader, let's be honest... ebooks kind of suck. Sometimes, a real book is nice to have. So, I'd say Murphy's books kind of break new ground between online articles and real books... they go into a lot more depth, more coherently, than any one online source of info about Android programming... but unfortunately, because they're ebooks, they're about as pleasant to casually read as those same online articles.
18 months from now, when Android tablets with 1280x720(*) displays or better are common and relatively cheap, eBooks are going to be the norm for Android books going forward, because THEN they'll let you have the best of all worlds -- the coherent editing and comprehensive content of "real" books, the up-to-date accuracy of the best online sources of info, and a reading experience that doesn't kind of suck. Five years from now (when the eBook experience has finally become civilized), I'll be shocked if programming books even exist anymore in printed form, aside from maybe books like "${Language}: How to Program" that deal with topics that don't really change radically from month to month and are more or less universal as college textbooks. Programming and system administration are the kind of topics that are really too volatile for paper books, and for they most part they've ALWAYS been... there just hasn't really been a civilized alternative to them. IMHO, Android tablets will be what finally make it a civilized experience, because for the first time normal people (meaning developers who don't work for huge corporate entities like Amazon and Sony) will be able to develop ebook apps with their own UI experiments. Right now, all we have are devices optimized for reading mass-market top-20 fiction... devices that largely suck for the specific task of reading (and referring to) programming books (where you generally flip around a lot, and 700ms latency every time you change a page will drive you insane in 3 minutes).
So, in summary, here's my recommended buying order:
If cash is abundant and you want a nice intro: Hello, Android (latest edition)
Absolutely mandatory: Beginning Android 2
Equally mandatory, but maybe a few weeks later: Pro Android 2
then, it's a toss-up between a commonsware "Warescription" for Murphy's other books (which gives you access to the latest and greatest versions of them for a year, plus perpetual ownership the last copies you downloaded before the year ran out) and Meier's book (if you really hate ebooks). Personally, I'd recommend the Warescription AND Meier's book
(*)1280x720 is the rock-bottom minimum resolution viable for comfortably reading an O'Reilly-Manning-sized book in pdf form two pages at a time. 800x480 is just a hair below the resolution you really need to comfortably read ONE O'Reilly-Manning sized page at a time.
The bolded above is the exact reason I am learning. I need to be able to write my own app for the upcoming tablets. We are planning to move a lot of document work to tablets over the next few years in the medical industry and the existing product lines are hilariously and prohibitively expensive. Since I already work extensively with our privacy laws and and regulations, I'm fairly sure that I can get a working solution for us over the next three years instead of investing millions of dollars in proprietary systems.
Thank you SO much for this advice. I'm ordering Beginning Android tonight and will pick up the other suggestions about halfway through the first book. My class will start in September. If you happen to have any other suggestions that might ease my way into programming concepts in general I would also appreciate those. Again, thanks a ton for the great advice.
Yeah i hear ya man. I took Java Programming in my senior year of highschool and got an A in it. So i know im capable for doing android, but im still finding my way around. hopefully one day i can actually do it! I hope!
Wow, thanks a ton! I'll be sure I pick up those 4 things later on.
Since I wrote the original post in this thread a couple days ago, I've spent some time trying to learn Java. As a total noob to programming, this has proven to be quite a challenge. Just about every book or eBook I see (A couple "java for dummies", "eclipse for dummies", "thinking in java", and I'm about halfway through the free sample of VTC's Java: Introduction to the Java Programming Language, which is an audio/video presentation thing) says that prior programming knowledge is necessary or that I should have some basis in C or something like that.
Also, there's command line as well as all of the different IDEs.. I'm assuming that these are all mainly interchangeable or what?
Should I just continue trying to learn Java and once I think I've figured it out just move on to Android or do you guys think I won't be able to get by without taking some sort of a programming class in school?
Thanks for all your help guys! By the way, how long do you think it might take to go from a noob to someone who can actually write an Android app?
for those of us that might be a bit hard up on cash
has a wealth of free information and sample programs. CHECK IT OUT!
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
-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:
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:
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 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 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.


Hello, XDA.
I joined the forum after hearing that is was "basically the hub of anything to do with Android." I also joined because I'm in the beginning stages of developing Android applications (learning Java), and I eventually wish to release a free, open source application to contribute to the community -- to the world. I won't be specific as I really can't at the moment; I'll be a little more specific when I finish the Java tutorials by Oracle. I don't intend to reinvent the wheel, I just expect to make it better. =p
My goal on this site is to integrate, learn, and enjoy myself at the same time.
Albeit insignificant, I am familiar with a coding language called "gotos" or so I've heard it called that. More specifically, the Mugen engine that focuses on developing fighting game characters and stages through a compilation of graphical and audio components. The coding is mostly based off of physics and trigonometry (two subjects at which I excel) and a bunch of other cultural expectations.
Away from the digression: The ancient syntax of the Mugen engine, believe or not, has helped me a great deal in understanding the object orientated language known as java.
In java, I'm not ready to code any applications or anything yet, but I understand the basic functions so far. I'm just finishing up the Interfaces and Inheritance portion of the aforementioned tutorials. I know it will take years for me to become a wiz at this java stuff. I mean, I've been doing Mugen for 4 years and I'm still learning new stuff (and the coding language is as easy as it is inferior).
I own a Galaxy S2 phone, am running gingerbread (I think that's what it's called, this uncertain is exactly why I'm a n00b). Whatever that information is worth. Maybe I should put that in my signature.
Anyway, I hope to integrate well. I am not new to forums, so I don't expect to step on anyone's toes or anything. The video before I registered was very, very entertaining, but nothing in it surprised me.
Cheers, Mr. Holmes.
Welcome. I'm new too.
Welcome to the forum mate, and good luck with your app development.
Sent from my GT-P1000 using Tapatalk
Hi Holmes, new too here..all the best to u holmes..

Android Apps Development Course

I would like to learn how to develop Android Apps. But it seems like there's not so many schools offering such course.I tried to search and found out about Viope Online Android course. I wonder if anyone of you has tried that out. I didn't see any review on that course. So, if you have any idea/comment, please share with me. Thanks!!
Have you ever done any programming before?
From what I understand...if you know java you can pretty much code android apps...
So take a class in java (I'm taking one next semester) and see where that leads you, from there take classes in other encodings that may also be requires...but for the most part its a lot of java
Sent from my HTC PH39100 using Tapatalk 2
I would reccommed you to read several books about android programming. There are plenty of books available, e.g. books on O'Reilly website. Take easy ones, such as "Introducing .." or "Beginning ..", not something like "Cookbook"
Some of the books include quick overview of java. Of course you must know the basics of programming
But if you insist on cources, I'd recommend Stanford Computer Science (easy to find in Itunes)
Advice from my experience: do as many practice as you can, don't stuck in reading and learning. This will motivate you to move forward!
Check out thenewboston's guides on youtube. I'd highly suggest watching their java videos first. The android series is 200 parts, and its really good. I'm on the 117th.
Check out these tutorials for android apps.
Vogella-Android App tutorial
Marakana Tech TV(tutorials)
Google Dev Training
I'm teaching myself how to write apps, and custom ROM's and I had absoloutely no programming experience beforehand. I've been self teaching myself for about 7-8 weeks now. I've got a fairly good understanding of .XML files now and find them easy to make and edit. I've got a basic understanding of Java, and can write and understand some code. (I still need a lot more practice with it though)
Just stay dedicated and you can learn if you really want to. I'm proof!
Thread might be a little old, but thought I'd post this for future searchers, since it will be a good response to the question. I've started a project to create a full training course on writing Android apps, geared toward complete beginners (whether they have prior programming experience or not). It's currently only in the planning stages, but I'll post updates on the thread I started HERE on xda-developers as the project progresses.

Tips tricks for learning java?

I'm starting to watch a tutorial series on YouTube. Since xda is full of developers is there devs willing to throw in some wisdom/experiences/links/books/sample code/ whatever you think is beneficial? Long term goal is to make an android app of some kind. For now I'm learning the basics. Moral support is welcome since I'm pretty doing this on my own!
Sent from my SGH-I747 using xda premium
I am not a developer nor am I an expert but I have transitioned from a Java beginner to an advanced programmer in just a few months. I say "advanced" only because my college course instructor told me. However, I don't consider myself that advanced until I get a good amount of programming experience writing my own applications I feel confident enough to distribute. I have written a few personal apps including some Android ones but nothing I deem worthy enough to put on the market. Sadly, I learned more from the internet and a couple of Java books than I ever did in my college courses.
Some of the Youtube tutorials I have follwed are by mybringback and thenewboston. They both go from the most basic to more advanced levels of Java and both contain some decent tutorials on Android app development too. Although their methods are somewhat unorthodox and their commentary takes some getting used to, they do try to explain things in a way that's easy to comprehend.
As far as Java books, the only ones I bought are Learn Java in 24 Hrs sixth edition with a bonus Writing Android Apps chapter and Java Demystified and of course the book used for my advanced Java course -- strangely enough published in 2004. I suggest learning what you can online since internet information is updated much sooner and more often than physical books. As far as Android books, well, these can become outdated shortly after you purchase them. The last Android book I bought was when Gingerbread was all the rage. I suggest you don't waste your money on those books and just stick to internet tutorials.
Finally, I would steer you toward where you can get all of your Java questions answered by professionals and advanced users alike; there is even a forum catered to android development.
Java can be confusing and overwhelming for beginners, but don't give up because what confused you the day before will make total sense a few days later and hopefully that motivates you to further your knowledge; there will always be a need for programmers and developers.
I hope that helps and good luck on your programming journey.

How do I become a DEV?

I was wondering what resources are out there to become a DEV and make my own ROM's. I have googled it a little bit and not really found anything worth while so far. I did run across a good book but its not going to be published for another 2 months. Does anyone know of any tutorials? Books? How to guides?
There are plenty of kitchens right here on xda. And remember when you search on google add on xda to whatever you are searching. I had a bunch of bookmarks for this but never backed them up. Sorry buddy.
Sent from my BAD A$$ EPIC TOUCH 4G
I didn't think about using the term kitchen when searching. I will give that a shot. Thanks.
Sent from my SPH-D710 using Tapatalk
I would read google's documentation on Android, learn Linux commands, and also learn java. This is a good start. If you use kitchens, you are not dev'ing. After this, reading the cyanogen wiki will teach you some of the less "official" deving methods.
First go here and learn all of it. (weeks of hard work and dedication)
Then go to a local library and pick up a recently published book on java programming and learn it. (weeks of hard work)
Then learn all of this (more weeks of hard work)
Then learn all of this (more weeks of hardwork)
Finally get involved with Cyanogenmod
Becoming a dev is a huge commitment, it is why professional devs are paid so well.
Sent from my SPH-D710 using Tapatalk
I'm just curious, how much do devs usually make and who actually pays them?
Sent from my SPH-D710 using Tapatalk
I said professional devs. The hobbyist devs on xda usually are doing it because they enjoy doing it and picked up the skills over the years. But it isn't any easier and that is why the behavior on the forums sometimes annoys them. As far as professional devs who work for a company like Samsung, they make between 50,000-100,000 a year.
As far as independent professional devs, Paper camera has sold over 1,000,000 apks at 2 dollars a pop, do the math.
Sent from my SPH-D710 using Tapatalk
I say make a couple of apps first and learn how Android works. Then move to themeing, then make kernels, then roms
Sent from my Epic™ 4G Touch
Devs dont get 100% of their sales
Sent from my Epic™ 4G Touch
Here's where I learned my skills, this determines on what you're trying to develop. Most roms here, with the exception of source builds don't require much actual programming experience since they are closed source, primarily they have small tweaks like de-odexing, XML mods, etc.
Hands-On | 90% - 90% of my skills have come from hands-on experience and learning as I go along. For example, say I'm writing an app for the very first time. (Don't start with an app unless you've practiced with the platforms language first) As I went along on my first app I learned an incredible amount about android developing by reading and SO as I went along and came across something I wasn't sure about. Ditto kernel development, years ago I started with no knowledge and then bam I'm half a pro . Also, I knew nothing about ASP.NET/MVC/C# about a month ago, now it's kinda fluid to me.
School(Computer Science) | 8% - Yeah, it costs all that money for 8% or less. There can be some unique challenges in a software program, but almost everything you do in school is either so off the wall simple or has no real world application. I also think they spend too much time teaching by the syntax of the language, when really you should group them. Syntax is *mostly* trivial, it's better to group languages. Example: learn the Object Oriented Style (Perl, PHP, C++, Java, C#) which should give you a decent foundation in all those languages. Then learn the Procedure-Oriented Style (C, PHP, Perl, Cobol, BASIC (eww)). Then learn the rising in popularity Functional-Style (F#, SQL (mostly, this ones an exception since you often won't write many SQL scripts save for basic queries), Erlang, Haskell, C#). Notice: I listed some languages in multiple categories as the styles of programming are concepts, and some languages support either concept.
Co-Workers | 2% - Sometimes you learn by asking a co-worker or another developer. It's not how I did it primarily, but I know others who work best and learn best working in a team.
So to recap:
If you're trying to learn software programming itself I suggest starting with common scripting languages which are very easy to learn (HTML, XML (this will help for android), PHP). Then move on to some OOP languages (Java (Android*), C++). Then if you plan on working with kernel source code you should work with C and familiarize yourself with the procedure oriented style. Java is by far the easiest first language to learn OOP because of the wide-range of libraries available (to do almost anything) and the JRE, which gives you a nice garbage collector so you don't have the worry of memory management and freeing objects manually like you do in C/C++, etc.
If you just want to bake a rom with minor adjustments or a closed-source rom, I suggest you learn how to create themes first, as many of those concepts will help in baking a rom. And if you have questions this is a development community last time I checked, although sometimes it doesn't seem like it. So ask questions, ask other developers (I used to get questions ), ask on the board (if you follow the rules), ask on StackOverflow, etc. Don't be a nuisance to other developers though, I had someone that constantly blew up my phone nonstop all hours of the day asking silly silly questions. I don't mind questions, but i'd be spending time with my GF and my phone would explode with 20 questions that I already answered 20 times each
Also, some books may not be bad if you have absolutely no idea about programming whatsoever. But nowadays, you can find anything in a book on the internet. The benefits of a book is they include all their source code (usually) and can motivate you more since they give you projects and challenges. I had one Java book, and it drove me crazy because nothing was standardized. Instead of using the Java HashMap methods, or the Java Stack methods they wrote their own APIs for everything it drove me crazy :eek:
My school must have a great compsci program because they focus on good programming styles and not syntax. There is no reason to start with any language besides java if your goal is to develop Android. And while I agree with your learning as you go approach, it would be a mistake and overwhelming imo for someone to jump into Android development without having a basic understanding of Linux, java, and Android. My advice given was for helping op to become an Android dev, not someone who posts roms. They are not always the same thing.
Sent from my SPH-D710 using Tapatalk
This is great info thank you. I have linux experience and I have made a couple of hello world apps but nothing extensive. It looks like maybe i should start with a little theming or something like that. I know html and can read through XML. I think i will try and find some Java tutorials or books to get me going there. Know of any guides on theme's?