Java How Can a Beginner Tackle Learning Java and Android Programming?

AI Thread Summary
The discussion centers around an undergraduate student tasked with learning Java and Android app development within a tight timeframe, despite having no prior programming experience. Participants express concern over the unrealistic expectation of mastering these skills in just a couple of weeks. They emphasize the importance of breaking down the learning process into manageable steps, starting with fundamental Java concepts such as classes, variables, and flow control. Suggestions include using resources like MIT's App Inventor for simpler app creation, as well as focusing on specific programming goals to build confidence and competence gradually. The consensus is that while it is unlikely to become proficient in two weeks, a dedicated effort over a couple of months could yield significant progress. Learning foundational programming concepts in languages like C before tackling Java is also recommended to ease the learning curve. Overall, the key takeaway is the necessity of patience and structured learning in mastering programming skills.
axmls
Education Advisor
Messages
942
Reaction score
395
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.
 
Technology news on Phys.org
axmls said:
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!
 
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.
 
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).
 
AlephZero said:
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. ;)
 
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.
 
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.
 
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
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
I recommend 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 recommend 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 recommend 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.
 

Similar threads

Replies
6
Views
2K
Replies
8
Views
3K
Replies
6
Views
2K
Replies
3
Views
1K
Replies
42
Views
5K
Back
Top