What should I learn? - General Questions and Answers

I am going back to school and I'm looking at computer programming. What would the developers here recommend I learn so I can build Android ROMs? I'm also planning on making a career out of the computer programming, not just doing it for Android.
Sent from my SPH-D710 using xda premium

For ROMs, you need Java and XML.
For Kernels, C.
For a career, C# is a good one. C++ is extremely powerful and used across many systems. Also, SQL will come in handy.
I'm sure there's more, but with JAVA, C# and SQL under your belt you can do a lot. With C and C++ on top of that? You'd be a beast.

estallings15 said:
For ROMs, you need Java and XML.
For Kernels, C.
For a career, C# is a good one. C++ is extremely powerful and used across many systems. Also, SQL will come in handy.
I'm sure there's more, but with JAVA, C# and SQL under your belt you can do a lot. With C and C++ on top of that? You'd be a beast.
Click to expand...
Click to collapse
I hear a bit about noSQL?

Thank you! That's exactly what i needed to know.:beer::beer::beer::beer::beer:
Sent from my SPH-D710 using xda premium

Related

What do i need to know

if i want to programm an app for Android.
Is it Java or C++ ? I read that with the new SDK you can use C++ is that right? Or can u only use it for some special parts?
Sry for this noob question:_/
I suggest you invest in this book,
http://www.amazon.com/Android-Application-Development-Dummies-Computer/dp/047077018X
The Kindle version's probably a little cheaper.
android development is done in java unless you want to use the ndk
generalamerica said:
I suggest you invest in this book,
http://www.amazon.com/Android-Application-Development-Dummies-Computer/dp/047077018X
The Kindle version's probably a little cheaper.
Click to expand...
Click to collapse
You don't need a book, just go to developer.android.com.
Sent from my SGH-T959 using XDA App
Hi,
thanks for your replies.
Do i need to learn Java seperately or can i start with the dummie book?
Why i dont need java for the NDK?
ok i saw that i can find there (developer.android.com.) some Tutorials and sample codes. But if i know nothing about Java - is this the right start? Or was i just in the wrong section (i was in resources)
eaglesuper said:
Hi,
thanks for your replies.
Do i need to learn Java seperately or can i start with the dummie book?
Why i dont need java for the NDK?
ok i saw that i can find there (developer.android.com.) some Tutorials and sample codes. But if i know nothing about Java - is this the right start? Or was i just in the wrong section (i was in resources)
Click to expand...
Click to collapse
If you're good with c++ then learning Java should be pretty easy. In fact extremely easy since you don't have to worry about memory management and the whole pointers/references/etc thing is straightforward in java.
Sent from my SGH-T959 using XDA App
So your response according to the question i throw in is, that i need to learn Java first, right ?
I'm not good in C++ I just started once, but didn't read more than the first 100 pages in the book xDD
If there's nobody you can talk to, about programming - it's kind of boring and isolating D
eaglesuper said:
So your response according to the question i throw in is, that i need to learn Java first, right ?
I'm not good in C++ I just started once, but didn't read more than the first 100 pages in the book xDD
If there's nobody you can talk to, about programming - it's kind of boring and isolating D
Click to expand...
Click to collapse
Yes definitely learn java first Don't worry about c++. There are many good, free online java "books" that are great for learning. Once you are comfortable with Java then you can go through the tutorials on developer.android.com
Good luck!
Sent from my SGH-T959 using XDA App
While I admire anyone wanting to learn how to write code, it's a little more complicated than that.
I'm a professional programmer...I know how to code in about 6 languages and picked-up Android about 3 months ago. While any programming is hard, developing for a smartphone is even harder in my opinion. I consider myself a complete beginner in Android irregardless of my background.
Programming is so much more than reading a book or some online tutorials. If that was the case, I would pick-up some books and become a plumber or electrician etc.
My advanced COBOL class started with 25 students; there were 10 left at the end
(and I would say that about 5 of the 10 were "pure" programmers)
That being said, it can be done...be prepared for a LOT of hard work, time and dedication. If you make it, it can be one of the most exciting things you do...creating something out of nothing!
Well sure, there's more to it than that, but where else is there to start? I started coding about 10 years ago, first with BASIC on my TI 83. I then picked up a few books on Java, C, Python and C++ and worked my way up from there. I haven't developed for Android yet, mostly out of lack of time, but I'm sure you're right in that it is probably more difficult. However, to say coding isn't more than reading a few tutorials is, to me, not correct. Unless you have the means to pursue CS classes, there's no other way to do it than to pick up a few books, read a few tutorials, watch a lecture here and there and just dive in.
It's easier now than every to learn how to code and you shouldn't try to discourage someone who is interested from diving in and seeing what they can write. Who's to say that you can't read a few books and become a decent plumber or electrician? I built up my car from books and wired houses from reading a few books and talking to electricians as well as learning how to design, build and solder circuit boards entirely from online resources.
I do agree with you though, in that learning how to code is a long and difficult journey that requires a lot of patience and hard work. You're going to have to invest a lot of free time if you want to learn properly, but trust me, it is completely worth it!
Sent from my ADR6300 using XDA App
I really tired to make my point that it's not impossible and to not discourage anyone. It's "easy" to create a smartphone app as they are fairly short...get into some 20k, 40k, 100,000 lines of code programs and you will soon learn about complexity
To be more helpful:
1. Start out with the basic "Hello World" app
2. Create a program that takes some user input and writes it back out to the screen
3. Keep expanding your coding experience with new topics and Android features
For books, I really like 'Professional Android 2 Application Development" by Reto Meier For JAVA and C++, I don't think you can beat the Deitel and Dietel books.
Look for them on Amazon and then check "Prices New and Used". I got a brand spanking new "Objective C for JAVA developers for $1.99 + S&H!...like $5.00 total
I've heard head first java is a good book and was going to pick it up. Any thoughts? Has anyone else bought this book?
StyrofoamTumor said:
Well sure, there's more to it than that, but where else is there to start? I started coding about 10 years ago, first with BASIC on my TI 83. I then picked up a few books on Java, C, Python and C++ and worked my way up from there. I haven't developed for Android yet, mostly out of lack of time, but I'm sure you're right in that it is probably more difficult. However, to say coding isn't more than reading a few tutorials is, to me, not correct. Unless you have the means to pursue CS classes, there's no other way to do it than to pick up a few books, read a few tutorials, watch a lecture here and there and just dive in.
It's easier now than every to learn how to code and you shouldn't try to discourage someone who is interested from diving in and seeing what they can write. Who's to say that you can't read a few books and become a decent plumber or electrician? I built up my car from books and wired houses from reading a few books and talking to electricians as well as learning how to design, build and solder circuit boards entirely from online resources.
I do agree with you though, in that learning how to code is a long and difficult journey that requires a lot of patience and hard work. You're going to have to invest a lot of free time if you want to learn properly, but trust me, it is completely worth it!
Sent from my ADR6300 using XDA App
Click to expand...
Click to collapse
LOL I started as kid with BASIC and TI83 applications, too.
IMO It's not learning the languages that's so difficult, it's learning how to apply what algorithms, data structures, etc to solve a problem. Then there's the really involved details such as how compilers, OS managed memory and synchronization, etc work.

Thinking of getting into the Mobile Phone programming scene?

Hello All,
I am thinking of diving into the coding world for mobile phones and would greatly appreciate your thoughts.
As per experience I had a few programming classes in college and had no problems acing them.
Having said that I have had no further experience with programming. I am fairly comfortable with Visual Basic and C++.
With that which platform would you suggest is the easiest to get your foot at the door. From research I believe is Objective C for Apple, Java for Android, Silverlight for Windows 7 and Javascript for WebOS.
If it helps I did create my first "Hello World" app in WP7 following the eBook by Charles. ....I know nothing to brag about...hehe but atleast lets you guage my aptitude.
Fire away!
Anyone? Some wise words?
UNhooked said:
Anyone? Some wise words?
Click to expand...
Click to collapse
Just go for it, nothing to lose. I would start by programming for the device you have.
come up with an idea and get to work ... It's not so easy, so you really have to enjoy it to learn it.
Sent from my R800x using XDA App
Moved to Q&A

WHICH computer languages should i know if i want to develop apps ??

Hi, i know I'm going out of topic, but i need some help...
I wanted to choose some computer language courses, but as i approached the institutions, i saw many thing available there like :-
.NET
JAVA
C
C+
C++
LINUX
OPEN SOUCE and (something else i forgot)
HTML
and were many more...
I wanted to know that which courses i should apply for- if i want to develop/edit apps-preferrably android and Rom developing and editting and Also develop computer- windows softwares...
Thanx
Sent from my HTC Sensation 4G using XDA App
as many as possible there are 80+ languages though
How to become an app developer.
nexus2515 said:
Hi, i know I'm going out of topic, but i need some help...
I wanted to choose some computer language courses, but as i approached the institutions, i saw many thing available there like :-
.NET
JAVA
C
C+
C++
LINUX
OPEN SOUCE and (something else i forgot)
HTML
and were many more...
I wanted to know that which courses i should apply for- if i want to develop/edit apps-preferrably android and Rom developing and editting and Also develop computer- windows softwares...
Thanx
Sent from my HTC Sensation 4G using XDA App
Click to expand...
Click to collapse
With all due respect, your question is to broad.
If you want to create applications, you should have a basic knowledge about software architecture and you should get to know the platform you are developing for.
You could also develop in a platform independent way. In that case you should familiarize yourself with the framework you're developing with.
Frameworks are written for a specific development language.
Most platforms and many frameworks come with their own SDK (software development kit). This is usually a bunch of documents, articles and libraries.
In the case of Android it is a very good starting point to read the Developers Guide. http://developer.android.com/guide/index.html
You'll find out that can choose between different languages to develop in/with.
I would strongly advise to limit yourself to one platform to learn all aspects of development and then porting that experience to other platforms.
You could also try starting with one framework and ignoring all platform specificity until you need to develop applications that require this. In that case I would advise starting to read the JAVA SDK (development) guides since that is a very self-education friendly community.
With both approaches you can select which languages and methods to learn first.
Read at least the introductions of the guides.
HorstDCC said:
With all due respect, your question is to broad.
If you want to create applications, you should have a basic knowledge about software architecture and you should get to know the platform you are developing for.
You could also develop in a platform independent way. In that case you should familiarize yourself with the framework you're developing with.
Frameworks are written for a specific development language.
Most platforms and many frameworks come with their own SDK (software development kit). This is usually a bunch of documents, articles and libraries.
In the case of Android it is a very good starting point to read the Developers Guide. http://developer.android.com/guide/index.html
You'll find out that can choose between different languages to develop in/with.
I would strongly advise to limit yourself to one platform to learn all aspects of development and then porting that experience to other platforms.
You could also try starting with one framework and ignoring all platform specificity until you need to develop applications that require this. In that case I would advise starting to read the JAVA SDK (development) guides since that is a very self-education friendly community.
With both approaches you can select which languages and methods to learn first.
Read at least the introductions of the guides.
Click to expand...
Click to collapse
Actually I'm 17 now- In 3 months, I'll join a collage and there are around 8 branches in it just for computer software development-
I wish to choose those subjects which should give me double benifit...
Thier respective names are -
COMPUTER SCIENCE ENGINEERING WITH SPECIALIZATION IN:-
1.)CLOUD COMPUTING AND VIRTUALISATION
2.) OPEN SOIRCE AND OPEN STANDARDS
3.)MAINFRAME TECHNOLOGY
4.)TELECOM INFORMATICS
5.) INFRASTRUCTURE MANAGEMENT
others i forgot
Sent from my HTC Sensation Z710e using XDA App
I'm also one year away from college and I've been trying to learn Java first because I think it is more relevant to Android development. I would choose the course Information Technology ( thats what it is called in my country, the rest I only recognised Cloud Computing) You can know what each course teaches by going only to your desired college and read about the course then from that you can choose. Or if you want to learn Java, I recommend this page: http://eclipsetutorial.sourceforge.net/ (choose the Total Beginner)
Thats what I have been doing these few days Good luck
Yeah, my perspective is a bit different. But that hardly matters.
Learning to program is not about *any* language. To acquire the skills you can just throw yourself on one language, one framework, one platform.
You can pick te community or the domain that gives you the most fun, then it's way easier to stay motivated.
The 5 big domains you sum up are important from a commercial/work point of view. I cannot speak for your country because I don't know enough about it. They describe different needs and different infrastructure. I find it surprising to see this distinction in college.
best regards,
I am the same position and age as you and the language needed for android apps is basically JAVA. The language needed for windows apps is C++ or C#. For iPhone apps its Objective C. For websites, PHP, JavaScript, CSS, HTML
Sent from my HTC Sensation XE with Beats Audio Z715e using xda premium
mrangry15 said:
I am the same position and age as you and the language needed for android apps is basically JAVA. The language needed for windows apps is C++ or C#. For iPhone apps its Objective C. For websites, PHP, JavaScript, CSS, HTML
Sent from my HTC Sensation XE with Beats Audio Z715e using xda premium
Click to expand...
Click to collapse
Now thats what really will help...I'll ask the institution for the list of the subjects in each branch...thanx
Sent from my HTC Sensation Z710e using XDA App
nexus2515 said:
Now thats what really will help...I'll ask the institution for the list of the subjects in each branch...thanx
Sent from my HTC Sensation Z710e using XDA App
Click to expand...
Click to collapse
It's good that you feel helped but mrangry15's statement is incorrect.
HorstDCC said:
It's good that you feel helped but mrangry15's statement is incorrect.
Click to expand...
Click to collapse
Xplain !!!
Sent from my HTC Sensation Z710e using XDA App
nexus2515 said:
Xplain !!!
Click to expand...
Click to collapse
Even if I disregard the fact that you impolitely order me to do something, what would be the point?
Whatever I say won't quench your obvious need for a quick answer that puts your mind at rest. Plus, it doesn't matter. It doesn't matter where you start your career and learning. If you have what it takes, you'll get there anyway.
best regards,
nexus2515 said:
Actually I'm 17 now- In 3 months, I'll join a collage and there are around 8 branches in it just for computer software development
Sent from my HTC Sensation Z710e using XDA App
Click to expand...
Click to collapse
Collage???
HorstDCC said:
Even if I disregard the fact that you impolitely order me to do something, what would be the point?
Whatever I say won't quench your obvious need for a quick answer that puts your mind at rest. Plus, it doesn't matter. It doesn't matter where you start your career and learning. If you have what it takes, you'll get there anyway.
best regards,
Click to expand...
Click to collapse
Sorry if u think i was impolite..
Thats my usual way of talking..
I just wanted to ask that which topics would be better for me so that i get same subjects on 2 sides i.e. collage and institute
Sent from my Sensation using XDA App

I wanna get into android development.. where to start?

I found some books... basically learn Linux/android developing, i wanna get a good idea/knowledge... create ROMS, Kernals, just anything that has to do with android..
Where do I start?
Sent from my Nexus 4 using Tapatalk 2
one thing at a time buddy. Start by learning some Java. From there you'll be able to move into app development.
You might be able to do some rom manipulation without being able to program, but knowing how apps work from app development would be helpful.
Ill leave the kernel stuff for someone else to answer.
Sent from my GT-I5500 using xda app-developers app
I agree - start with learning a programming language.
Many are pretty similar in concept/structure - so once you understand the basics, you'll be able to branch out as you will find you need to.
Start with java and learn the basics of app development. Then jump into some theming and modding. This will help you familiarize yourself with system files and such. Finally, the most difficult of all, coding and kernel work. This will require a bit of C, C+, python, and a couple other computer languages. You'll mainly be working with C tho. Start at the bottom and be patient with your learning! Good luck!
Sent from my SPH-L710 using xda premium
Any good resources on the stuff you've mentioned?
Sent from my Nexus 4 using Tapatalk 2
I learned Java using a book called Java by dissection.
Sent from my GT-I5500 using xda app-developers app
Me too
Me too i also wanted to learn how to dev some android apps or Rom.
Ceelos09 said:
Start with java and learn the basics of app development. Then jump into some theming and modding. This will help you familiarize yourself with system files and such. Finally, the most difficult of all, coding and kernel work. This will require a bit of C, C+, python, and a couple other computer languages. You'll mainly be working with C tho. Start at the bottom and be patient with your learning! Good luck!
Sent from my SPH-L710 using xda premium
Click to expand...
Click to collapse
totally agreed. i want to get into developing, too, rooted my ROM firtst, getting into the Terminal of Linux/ubuntu, decompile, modify, compile random apps, Theming the system UI... build your way up and see what you can do. One thing i have to say: You will need A LOT of time. most of the things are trial and error, the best way to learn how things are working.
What kind of development do you want to do? Applications? If so, google 'java tutorials' and you should find good materials on Oracle's site and others.
zgx said:
What kind of development do you want to do? Applications? If so, google 'java tutorials' and you should find good materials on Oracle's site and others.
Click to expand...
Click to collapse
Roms/kernals
"Vanilla android >jail broken iOS>90" TV's"
Would it be worth buying a raspberry pi and learning the python language.. to get started in learning?
"Vanilla android >jail broken iOS>90" TV's"
xvi. Jeweboo
Ceelos09 said:
Start with java and learn the basics of app development. Then jump into some theming and modding. This will help you familiarize yourself with system files and such. Finally, the most difficult of all, coding and kernel work. This will require a bit of C, C+, python, and a couple other computer languages. You'll mainly be working with C tho. Start at the bottom and be patient with your learning! Good luck!
Sent from my SPH-L710 using xda premium
Click to expand...
Click to collapse
Yes, for the apps Java is fundamental, for kernel and other part of the OS i think it is required C.
Ceelos09 said:
Start with java and learn the basics of app development. Then jump into some theming and modding. This will help you familiarize yourself with system files and such. Finally, the most difficult of all, coding and kernel work. This will require a bit of C, C+, python, and a couple other computer languages. You'll mainly be working with C tho. Start at the bottom and be patient with your learning! Good luck!
Sent from my SPH-L710 using xda premium
Click to expand...
Click to collapse
Thanks for guidence
A good resource to check out is WWW.programmersinstitute.org. There are step by step videos for setting up your computer to program and then projects to work through with the instructor. The last time I checked it was free!
Sent from my Nexus 7 using Tapatalk 2
steekyjim said:
one thing at a time buddy. Start by learning some Java. From there you'll be able to move into app development.
Click to expand...
Click to collapse
Absolutely this. Java's the best way to go. Go download NetBeans IDE (Integrated Development Environment) and look up some free online tutorials. That'll get you started.
If you're more inclined towards kernels / ROMs, better to start with C, and then learn JAVA. Kernel is mostly C and android framework is mostly JAVA & C++ (For ROM development, you can make do with framework C++ if you know C)
For C, read Kernighan & Ritchie, for JAVA, any basic Java tutorial should do. Most of all, start coding from your first day - without trying things, you'll never learn programming.
If you decide to go into application/game development, I would highly recommend to try libgdx. I have been using it for 2 years and I am very happy with it.
ivoidwarranty said:
If you're more inclined towards kernels / ROMs, better to start with C, and then learn JAVA. Kernel is mostly C and android framework is mostly JAVA & C++ (For ROM development, you can make do with framework C++ if you know C)
For C, read Kernighan & Ritchie, for JAVA, any basic Java tutorial should do. Most of all, start coding from your first day - without trying things, you'll never learn programming.
Click to expand...
Click to collapse
Will do,
"Vanilla android >jail broken iOS>90" TV's"
To know java is the first

[Q] about knowledge and jobs

Ok so I'm really interested in android development and I'm gonna get some books to read about them. Books that I'm gonna get are C and Java for general OS knowledge and to develop apps. So I'm wondering what jobs can I get in future??Apart from these:
-Working in Google[i made this an exception at the moment since its not easy to be the top]
-Making apps and sitting at home
-Making mobile apps for companies
Hope to get some good replies, cause I don't wanna choose the wrong path and have my life ruined/jobless in future
PS: Is android OS/kernel 100% on C only?? no C++ or C#? also are the apps 100% Java??thanks!
Learning Java and C++ isn't going to ruin your life even if it turns out to not be what you wanted. It takes like, a semester to get the basics down - this isn't four years of your life. You can even teach yourself.
Writing code is like writing English - most people can learn to do it. It's the creativity and ability to problem solve that makes a difference.
Just learn C++ or Java (flip a coin) and see if you like it and if it's a kind of thinking and problem solving you're good at or even like. It's not going to take ages. It's like taking a cooking class to see if you like it - you're not going to be a master chef or even a good one at first - but you won't know unless you try. And even spending a year and not wanting to go on isn't the end of the world.
Sent from my SGH-T999 using xda app-developers app
wong93 said:
PS: Is android OS/kernel 100% on C only?? no C++ or C#? also are the apps 100% Java??thanks!
Click to expand...
Click to collapse
Yes, Android Kernel is actually a modified Linux Kernel which is 100% written in C. No C++ or C# is involved. Android OS is written in C, C++, Java.
And yes, all the android apps are written in Java and there are places where XML editing is performed.
Pennycake said:
Learning Java and C++ isn't going to ruin your life even if it turns out to not be what you wanted. It takes like, a semester to get the basics down - this isn't four years of your life. You can even teach yourself.
Writing code is like writing English - most people can learn to do it. It's the creativity and ability to problem solve that makes a difference.
Just learn C++ or Java (flip a coin) and see if you like it and if it's a kind of thinking and problem solving you're good at or even like. It's not going to take ages. It's like taking a cooking class to see if you like it - you're not going to be a master chef or even a good one at first - but you won't know unless you try. And even spending a year and not wanting to go on isn't the end of the world.
Sent from my SGH-T999 using xda app-developers app
Click to expand...
Click to collapse
Is there a lot of C++ in android?? i'm kind of confused lol, so its kernel is fully written in C , and the OS is C and C++ while apps are Java??btw what are some jobs I can get i Im really a pro in android one day?? and what if I do not take android?? what path can i go with these languages??
coolsandie said:
Yes, Android Kernel is actually a modified Linux Kernel which is 100% written in C. No C++ or C# is involved. Android OS is written in C, C++, Java.
And yes, all the android apps are written in Java and there are places where XML editing is performed.
Click to expand...
Click to collapse
thanks for the reply,btw any idea what jobs can I get??
wong93 said:
thanks for the reply,btw any idea what jobs can I get??
Click to expand...
Click to collapse
Jobs will be mainly based on your education and experience. Just do stuffs that proves your experience, add it to your Resume, and if employers are convinced you'll get the job. There are countless opportunities for Android development.
Also, you can read this similar article which was published in Portal:
http://www.xda-developers.com/andro...s-dont-work-on-the-internet-xda-developer-tv/

Categories

Resources