Starting to develop - Questions and Answers

Hello, xdaDevelopers (Is it like that? Or XDADevelopers, or XdaDevelopers, well, doesn't matter, you can leave your opinion about that here, too.)!
I can see this is kinda a common thing around here, but, I really need the basics for programming, with a final goal of being able to make code for Android (from APKs to ROMs and such).
I just need people to point out good sources of learning, with a learning curve, please, that would be a great bonus in understanding what the heck I'm learning, from the basic of basic, to the goal here intended.
Maybe this is a bit too ambitious, but I pretend to be a professional programmer in the future, but I still have a kinda long way to college (3 years), and I wish I could start sooner that, it could even make my college life even simpler.
Well, I hope you leave your enlightenment in this thread. Thank you very much for any opinion given here.

*bump* Sorry. It was already in the second page. I just didn't want it to fall into oblivion.

Well your going to have to stsrt learnibg java if you want to make apps. Read some books. Also take a look at thenewboston channel on youtube.
Im learning myself. You just need to start and don't give up
Sent from my Galaxy SII

I'm also posting (lazy way of subscribing to this post). I knew java, although it was long ago. I'd need a refresh on everything. And then, knowing java is not the only thing you need, as you also need to know how to develop for android itself. Up to date, which book would you guys consider the most easy to follow to learn easily to program?
Thank you!

Yes. I'm asking for links or books (preferably e-books) that could have all that information. I just hope I can become a great XDA developer.

+1 to this. i would also like to get into learning how to develop for android.
google has a lot of info on their developers page, it's probably one of the better places to start.
i don't know many other good websites or books though. anyone have suggestions?

If you want to develop Application on Android. You will need...
1.JDK (Java Development Kit), which includes the JRE. ( I use Java SE 7 )
2.Eclipse with the Android Development ( I use Eclipse Classic 3.7.1 )
3.Android Development tools ADT Plugin for Eclipse
( I use )
more detail

java for the user interface "pretty" part of the apps, but the real heavy-lifting guts of the app (where the real magic happens) will normally be written in c

I'm watching these. These are great. Starting with Java Development.


[Q] Learning coding

I'm looking to learn how to code, mainly because its something that has always interested me but I have never done. I have no experience in it at all. I'm looking for a book that can set me up with the very basics in java (or is it better to start off with a different language?) and hopefully I can move on from there.
If anyone knows of any good books that could help me I would greatly appreciate a link to it.
Why does no one use the search before opening another thread?
I seriously could not find an answer to your question by using the search function.
So even on sophisticated websites like this there are still childish idiots like yourself on them. Yes you're probably right in that I should have searched before creating a new thread, however obviously I didn't think of that.
Maybe next time you should try and show maybe at least an inch of maturity when posting. Oh and for someone who would like me to donate to them and buy/download their apps you're not going the right way about it.
I dont know if that because you joined before me or have more posts than I do, this makes you think you have some superiority over me or new members, but it doesn't and remember with every new member is potentially another donation to you for your work. So if you want to carry on alienating these member towards you then carry on but if you don't then you might want to re-think your mentality towards them, because personally I wont be donating or ever downloading any of you apps.
With that said, thankyou for the links.
What you are seeing is my lack of understanding for people creating new threads with topics that have been covered a hundredtimes over.
I'm merely calling you out for your obvious mistake of not using the search.
You made the mistake, deal with it.
Thanks. May i call you lazy idiot?
I don't want anything from you.
You want something from this forum, more exactly from its members.
You want an answer.
You did not pay anything for the knowledge available for free here, neither the time a member puts up to help you out.
What you could do is show some courtesy by using the search function to not waste the time of people who are willing to help out.
Both my join date and post count are indirectly related to this.
It just means that i have seen too many threads like this, which could have been avoid by a few seconds of search.
What is more astonishing is that i still browse the question and answer forums to help people out.
Yeah maybe some people won't get the answer they wanted to hear, but hey you got your answer.
Im confused now, from looking around it looks like python is the most basic of languages but if i was to start with a dummy book for that, would it actually help me achieve learning java? I dont want to get the wrong book and be completely lost because I havent learnt the complete basics.
It seems like everyone says different things and I cant get a clear answer of where to start.
#Dark3n I'm not going to sit here and argue, you have your view I have mine let's leave it at that. If you would like to help me (which somehow i doubt) that would be great, thanks.
The most basic language would be machinecode (ASSEMBLER).
But beleive me that it is really painfull to write and learn.
Python is a nice language to write in, no doubt.
But you should think about what you want to do with your programming skills?
Something Android related?
Then you should look at C for linux kernels and the lower levels of android.
Java for Apps and the higher levels of the android os.
If you want to learn java there is no advantage in learning python first, besides that you can program in python and java.
I would like eventually to create an app for android, which is obviously done in java but if i got even the most basic of java books would i still be lost?
Edit: I just remembered there was a thread similar to this one where i already had a lengthy discussion about this topic.
Not totally lost, you will learn about variables, if statements, loops, classes etc. those things are all still valid when writing apps. Those somewhat remain valid through most of the programming languages.
But basic java does not cover connecting your java code with the android user interface or making use of any android feature (rotate display, sensors, telefon,gps,etc.).
But seriously you don't need a book. Of course you can get one if you really want to. I would probably search the amazon bestseller list for something on android programming (for dummies) which does not require previous programming knowledge.
You can also just jump into it, google for "android hello world tutorial" or something like that.
But the official hello world tutorial should do.
Should make you able to write your very first app pretty quick. It's only a "Hello World" app, but hey thats where everyone starts out.
Aside from the programming itself, knowledge of Linux and *nix orientated operating systems would be useful. Terminal commands and such will prove invaluable if you take application development to a professional level in the future.
C and Java are obviously what's mainly involved in Android. But if you want something simple to begin with look at HTML and CSS (which are basically just translation matrixs not languages).
HTML and CSS knowledge would help a bit with the android user interface, but not with the actual code of the apps/programs themself.
I would advise the OP not to start with HTML and CSS if he wants to get into the programming buissness.
Unless you are going to make webpages HTML and CSS takes you pretty far of the track.
HTML and CSS, are two useful skills to have regardless. As you mention for interfacing, and also for the ability to work with Web Apps in the future. For myself learning Javascript and PHP has certainly helped with getting into Java/C.
Certainly HTML/CSS aren't related to learning Java and C but it's a good entrance point to coding in general. Although you yourself may see it as sidetracking, it can help some not to jump in at the deep end.
I wish the OP the best of luck.

[Q] Learning Android SDK

Hi I am new to Android SDK, I know a little like creating an android project, android project structure, compiling it & testing it on a phone, but I do not understand anything in the source code. So I need to start from the basics, is this tutorial good for basics ?
Have a look at the official developers guides:
Theres really a lot of helpful guides that should teach you (almost) all basics you need to code on android.
Why should I not learn this first ?
Oh sorry, I didn't notice the topic list further down the page. If you really have no knowledge of (object-oriantated) programming some tutorial like this would indeed be a good idea. About this one I can't tell you if this will help you, since its paid content. Looking at the topic you will get all basics you need for starting with the link i wrote above. (Also theres some videos you won't ever need using the Android SDK)
IMHO: I would not pay that much money for video tutorials without excactly knowing its worth it! (Independent reviews!)
Theres a lot of free tutorials explaining the java basics out there, if you're not in hurry I would rather read some of those. (I sadly only know some in my native language)
Well I am in a hurry, ill watch it on my friend's laptop, hehe.
In that case I would at least have a look at local courses that you could take since its always better if you can ask back for an explaination if you don't understand something. (And if you are new to programming I'm pretty sure this will happen )
Can you tell me which video chapter's are not needed to learn ?
1-19 and 28+29 should be everything you need to understand how to use the android sdk. 12 & 18 (swing) is also different on android (afaik its not swing there) even it's quite simlar to it, so depending on how specific those videos are they might be a help anyway.
Can you tell me what is the equavelent package for:
java.awt & javax.swing for android ?
There is no equivalent package, as the graphical interface is completly different. I will suggest you take a look to under the section of activity and view:

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.

Trying to become a developer

Sorry if this has been posted but I couldn't find one and if posted in wrong section
Im trying to become a developer but I am stuck at hello android and don't know what to do from there if anyone can show me a way to develop apps easily please help out and this is my first post too =]
Sent from my overclocked Cyanogenmod htc evolution 4g sucka
You're stuck getting Hello Android to work or whate to do after hello android? Do you know any development languages such as Java or C#? (you'll be writing android apps in java, but C# is really MS version of java with a few syntax differences) If not, are you familiar with object orientation? If not, it's gonna be tough dude but if you're smart and pick stuff up quickly you can learn by reading.
Pick up some books and look at youtube videos.
Sent while sitting on the toilet.
Alright thanks its just that helloandroid project wouldn't start right but I will look up massively on how to start a different way or just try to find the solution and youtube always helps and anyone knows how to make roms looking to make aosp
Sent from my overclocked Cyanogenmod htc evolution 4g sucka
There's a few free Eclipse and Java books out there that a beginner will understand especially if you already understand the concepts of object-oriented programming. Eclipse IDE itself will need a book as it's full of plugins and tools you need to understand to compile your project effectively.
It's going to be a very very long and slow road.
This may help, a series of YouTube videos for beginners.
I've been thinking the same thing, learning to develop for Android. Since I have near zero experience programming (save for a VB class in college) I decided I would be better off hiring someone to write what I want.
Just keep in mind though, Hello World is just where people start.
You may want to check out the android Appinventor. It's made by Google, and is in beta testing now, but it's a graphical way of programming for android. Though there isn't any code involved and won't be good/used outside of Android, it does a good job imparting the logic of programming.
I'll give you some tips that I've learned over the years as a developer.
First if you haven't done any development before I highly advise obtaining a book. True there are tons of web tutorials out there but personally I find a good author can do wonders in learning how to develop software. Anytime I want to learn a new platform I pick up a book on that platform. Of course you can find a ton of books used but another great source is a library. If you're in college with a computer science program chances are your library will have a couple of books on Android development. Your public library probably has some books on the subject as well. If all else fails see if you have a friend who will loan you a book.
Reading about development is only part one, part two is hands on. You can read an entire book on developing software and walk away with no knowledge. You can mindlessly follow the examples in the book but I find it best to use the examples in books as a guideline. In other words take the idea in the book and morph it so you're working on something original. Trust me here, you'll learn a lot more doing this instead of just mindlessly following the examples.
Next thing you'll need is a problem. Why? Because you need something to write. I find myself most motivated to write software when I either have a problem or something else has one and a checkbook. What do you want your phone to do? Are there applications out there that solve your problem but you think you can do better? Think small and easy since you're still new. Realistically you're not going to be able to make a web browser from scratch as your first project but you can certainly make a database of movies you own.
One thing that is debatable is whether you should learn to write something quickly or well. Frankly I'm in the school or writing something quickly and ignoring "correctness" when you're new. People new to programming spend too much time worrying about doing things "correctly" (very important when you're developing actual software) instead of learning how to do things in the first place.
Your code may not be readable, may not be optimized, and may crash every time an invalid input is entered into a field but you'll learn from those things. I think most people who end up hating programming do so because they spent too much time on worry about the little things and thus seeing no results for their work. Once you have the basics down you can concentrate of the details of optimizing code, validating inputs, and making your code readable.
Honestly not matter what you write you'll look back at it in embarrassment ten years from now anyways.
Ok thanks will look for a book
Sent from my overclocked Cyanogenmod htc evolution 4g sucka
Buy a Java book that also covers Object Orientation basics and principals. (you'll also need to understand some XML to do android programming) If you want to make kernels/ROMS, definitely look into Linux and shell scripting. (you can find most of this info online though)
By the way, I heard the "Java in 24 hours" book is pretty good.
it might be good, but it wont teach him how to actually code. Most of those books are made for people that know other languages like javascript/php/c/etc.. and are wanting to move to java and learn the new syntax.

[Q] Learning to Dev

I have been a member of XDA for a while and now I want to contribute. I have a basic understanding of computers and want to learn more. Obviously our greatest devs were not born devs they had to learn everything from somewhere. I'm looking for suggestions on where to start on the road to become the best dev I can be. Keep in mind I'm flat broke so I cannot hit up the local bookstore or download any paid software, but with the way the internet is today there must a free legitimate source for everything somewhere. So anyone willing to help a noob :P If I posted in the wrong section please kindly redirect me rather than flame me. Thanks in advance.
It all depends on what you want to contribute. I'm a beginner myself (only developing since august). It is easy to learn Java, for the most part. I would suggest heading over to for starters. There are many examples and if you want to know something specific, try using the search bar at the top right (it comes in handy). I have already published an app, a simple one, but still an application none the less. I am working on two other projects simultaneously (a live wallpaper and a home-replacement app). You can come to my website to see what I'm working on. I am still in the process of learning, and being in college slows things down a bit. Just make sure not to give up. If your stuck, ask someone (or everyone) on forums like this.
I forgot to mention I want to learn to dev for Android. I want to start out with simple apps then work my way up to building/porting roms. Also I just downloaded the Java JDK and am using Java's "Greenfoot" Tutorial to get started since I have no experience with Java. And I will be sure to check out your blog and thank you for the reply.
porting and building is something far different from app have to know much more if you want to work with kernel,drivers,basically you have to know everything from hardware level to user level (if you want to be top of the class)...good luck
Well we all gotta start somewhere. Now is probably a good time for me as I'm only 18 and a senior in high school. Since I don't have a job at the moment I have plenty of free time after school and on weekends.
I'm only 18 myself. I started straight with downloading Eclipse and all of the appropriate software for developing and just dove in. I would recommend watching these tutorials: They helped me A LOT. I am taking a programming in C class in the spring semster, which I am looking forward to. Programming in Java for Android is different than regular programming. It's the same concepts, just different APIs and tools. I like using Eclipse because it is easy to learn and get used to. There are a lot of fancy features like a type of autocorrect (not like on the phone, but smarter). Like you said, just start from the basics, like "Hello World" (Hello Android) and practice creating different layouts using the tutorials given on the Developer site. Explore the site and look through everything because eventually you may need to know where its located for quick access. Just don't set too high of goals for yourself, other wise you might be more prone to give up (like I almost did). Good luck
Im in ths same boat as you we got to start somewhere
mit have a fantastic course in computer science online.
search for MIT open courseware then introduction to computer science.
I'm on 10 now, getting very complicated
Thanks bro I'm checking out that MIT course right now it looks really helpfull
This is a great starting point for Android development, as it deals quite well with getting the Android SDK and Eclipse IDE set up and working together.
Hi, I'm 24. And I learn how to 'program' since 14-15.
It's easy to write apps for Android. But it's hard to write good apps.
You should take Software Engineering course (NOT Computer Science course).
If you take CS (Computer Science) course, than you will learn mainly about algorithm.
But if you enter SE (Software Engineering) course, you will learn about SDLC, software QA/testing, and planning to write programs for living :)