Java and Android programming

  • Java
  • Thread starter axmls
  • Start date
  • Tags
    android
  • #1
941
394

Main Question or Discussion Point

I'm an undergraduate, and I have a scholarship to help do research with one of my professors. He's assigned me to learn Java and how to program Android apps.

I have absolutely no programming experience. It seems like they expect me to get it down in a couple of weeks, but there is just so much information to take in. How should I break down all the information so that I can pick out the important parts and actually be able to do something productive? It seems like every time I start to study it, I just get bogged down in the massive amount of information coming at me, and I end up not learning anything in depth.
 

Answers and Replies

  • #2
297
2
I'm an undergraduate, and I have a scholarship to help do research with one of my professors. He's assigned me to learn Java and how to program Android apps.

I have absolutely no programming experience. It seems like they expect me to get it down in a couple of weeks, but there is just so much information to take in. How should I break down all the information so that I can pick out the important parts and actually be able to do something productive? It seems like every time I start to study it, I just get bogged down in the massive amount of information coming at me, and I end up not learning anything in depth.
Try my book: Learning Java and Android Development in 3 easy lessons, and 7 very hard ones. (Little inside joke, lol.)

In a couple of weeks? Why not learn Quantum Mechanics on your weekend, while they're at it. Totally unrealistic expectations, in my opinion, with no previous programming experience. It's not basket weaving 101. Of course you're feeling overwhelmed.

Well, before you can do anything, you need to learn Java to some extent. That alone is certainly a job that will take more than a few weeks, but I suppose you can get a start with the basic constructs, like classes, variables, expressions, statements like flow control, etc. If you can get that to some small extent, then you can install Eclipse and the Android Development Kit and see if you can get a test program (dialog with Hello World) or something running. The Android API can be rather daunting. Try to come up with some concrete but tractable program to write. Learn by doing. Maybe check out some basic Android tutorials.

If you can get there, that'll be a good accomplishment.

But frankly, it takes 3-4 years to train a software developer, and most are terrible after graduation and take a number of additional years before they become any good. Many never reach a state I'd call "good". I hate to be wet blanket, but that's just reality, alas.

On that note, I do wish you the best of luck!
 
  • #3
UltrafastPED
Science Advisor
Gold Member
1,912
216
You learn programming by writing small programs, each which has a definite goal.

For example, accept an input and display it.
Then do a calculation and report it.
Then learn to read data from a text file.
Then learn to read data from a text file and parse the expressions.

You learn what is required to take each step. Taking one step at a time you can walk from here to there.
 
  • #4
AlephZero
Science Advisor
Homework Helper
6,994
291
Break it down into some sub-problems:

1. Learn some Java, using a PC (doesn't matter if runs Windows, Mac, or Linux) using a text (console) window for input and output, so you don't have to worry about graphics yet.
2. Learn about writing Java applets that run in a web browser on a PC - i.e. how to use the graphics libraries and build a GUI.
3. Learn the specifics of the android.

It shouldn't take "3 or 4 years" to do that, but two weeks is highly optimistic IMO. Two months might be more realistic, if this is your main task (i.e. 30 or 40 hours a week, not 3 or 4).
 
  • #5
297
2
It shouldn't take "3 or 4 years" to do that, but two weeks is highly optimistic IMO. Two months might be more realistic, if this is your main task (i.e. 30 or 40 hours a week, not 3 or 4).
Don't get me wrong, I agree with you. I meant "3 or 4 years" to train up as a full software developer. And yes, most people who graduate still have a ways to go before they are really professional level. I stand by that.

But you can certainly learn to use a language and some specific API in far less than that. I've seen some very dedicated people accomplish wonders in 6 months, though, in a more narrow area. I know one bright guy who managed to become a fairly compentent web dev inside a year from scratch.

Like they said, pick some specific program(s) to write and try and accomplish that. Take it one goal at a time. Not sure I'd go with applets versus straight desktop GUI (or maybe straight to Android), as applets are pretty much a dead technology, but I do basically agree with UltrafastPED and AlephZero. In a couple of intensive months, I think being able to make basic but real Android programs is feasible. Two weeks starting from scratch is highly unlikely, but hey, prove me wrong. ;)
 
  • #6
harborsparrow
Gold Member
533
108
I agree with the above posts. One is unlikely to "learn" either Java or Android programming in 2 weeks. If you were already a programmer, maybe 2 months. Without having written programs before, it's unlikely to happen.

However, you might be able to use MIT's App Inventor software to create some simple Android apps. It has a graphical user interface and hides a lot of stuff from you. In the long run, however, I found that App Inventor didn't have quite enough power to program most real apps. Still, it is a way to get started. There are books on it you can get.
 
  • #7
harborsparrow
Gold Member
533
108
  • #8
chiro
Science Advisor
4,790
131
If you have had no real programming experience then I think you won't be able to do what is expected of you.

There is a lot of intuition that needs to be built up in programming irrespective of the language or platform you use.

Once you get it, everything makes sense but before that happens its a lot of grunt work and pain where you stare at crashed programs, debug messages, massive call stacks and variable values, and lines upon lines upon lines of code that really just drain you - especially if you haven't solved the problem in that particular day.
 
  • #9
harborsparrow
Gold Member
533
108
MIT (formerly Google) App Inventor might be accessible to non-programmers, with good tutorials. The app won't be able to do every thing that is possible, but you'll be able to make something.
 
  • #10
11,491
5,026
There is also Processing Android mode:

processing.org

Processing is an IDE that makes it easy for non-programmers and graphics artists to write interactive code within a simple framework.

There are a couple of books that help you along the way, one such book by the original developers of processing:

https://www.amazon.com/dp/144937980X/?tag=pfamazon01-20
 
  • #11
29
3
I reccommend learning 'C' first. Just learn the basics of programming in C, such as loops, if/else statements, functions,arrays, and print statements.

After you've got the 'basics' of C down, move onto Java. Start by writing simple programs. For instance, write a program that allows the user to type in their name, and then have it display the name. Play around with that and then make it display the name backwards, and maybe count how many differences there are between the name spelled correctly and the name spelled backwards. I.E: Input = Jon Output = Noj 2 differences. The IDE that I reccommend for C is Codeblocks.

Then download the IDE Eclipse and convert your C programs to Java. Once you learn the syntax, start learning the fundamentals of object oriented programming, such as Objects, Classes, Inheritance, and polymorphism. If you're going to be doing Android apps, it is imperative that you also learn about GUI. Look into Swing GUI.

I know that it might seem odd to learn another programming language before learning the language that your seek to learn, but it really helps to have a foundation in programming before your jump into the advanced things. For me, C made a whole lot of sense, and made my time learning Java and C# a relative breeze.

The book that we used in my University class was: Java: How to Program Dietel 9th edition.

I can't really reccommend it, for I didn't particularly like it, but that is the book that they're currently using at my school, so it shouldn't be as bad as I feel that it was.
 

Related Threads on Java and Android programming

  • Last Post
Replies
5
Views
2K
Replies
11
Views
1K
  • Last Post
Replies
1
Views
3K
Replies
1
Views
1K
  • Last Post
Replies
1
Views
1K
  • Last Post
Replies
10
Views
808
  • Last Post
Replies
1
Views
1K
Replies
0
Views
2K
Replies
17
Views
695
  • Last Post
Replies
4
Views
401
Top