How Can a Beginner Tackle Learning Java and Android Programming?

In summary: Java and OOP in general. And it's very low cost.In summary, the individual is an undergraduate who has been given a scholarship to conduct research with a professor. They have been tasked with learning Java and programming Android apps, even though they have no prior programming experience. The individual is feeling overwhelmed and unsure of how to approach the task. Suggestions are given to break down the information and learn through practice and setting specific goals. It is noted that while it takes years to become a proficient software developer, it is possible to learn the basics of Java and Android development in a couple of months with dedication and practice. Additionally, the use of MIT's App Inventor software is suggested as a way to start creating
  • #1
axmls
944
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
  • #2
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!
 
  • #3
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
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
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. ;)
 
  • #6
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.
 
  • #8
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
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.
 

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

1. What is Java and how is it related to Android programming?

Java is a programming language that was developed by Sun Microsystems in the 1990s. It is an object-oriented language that is used for developing a wide range of applications, including Android apps. Android programming uses Java as its primary language, although other languages such as Kotlin can also be used.

2. What are the key features of Java that make it suitable for Android programming?

Java has a number of features that make it well-suited for Android programming. These include its platform independence, object-oriented nature, and garbage collection which helps with memory management. Java also has a large community of developers and a vast library of pre-built code, making it easier to develop complex applications.

3. What is the difference between Java and Android programming?

Java is a programming language, while Android programming is the process of creating applications for the Android operating system. While Java is the primary language used for Android development, Android programming also involves using the Android SDK and other tools specific to the platform.

4. Do I need to know Java to learn Android programming?

While it is not necessary to have a deep understanding of Java to learn Android programming, having a basic understanding of Java fundamentals such as object-oriented programming and data types will be helpful. Additionally, learning Java will also open up opportunities for developing other types of applications beyond just Android apps.

5. What are some good resources for learning Java and Android programming?

There are many online resources available for learning Java and Android programming, including tutorials, courses, and forums. Some popular resources include the official Android Developer website, Udemy, Codeacademy, and Stack Overflow. It is also helpful to practice by building simple projects and reading through the documentation provided by Google.

Similar threads

  • Programming and Computer Science
Replies
4
Views
2K
Writing: Input Wanted Number of Androids on Spaceships
  • Sci-Fi Writing and World Building
Replies
9
Views
549
  • Programming and Computer Science
Replies
6
Views
1K
  • Programming and Computer Science
Replies
8
Views
3K
  • Computing and Technology
Replies
5
Views
2K
  • Programming and Computer Science
Replies
3
Views
1K
  • Programming and Computer Science
Replies
11
Views
1K
  • Programming and Computer Science
Replies
8
Views
899
  • Programming and Computer Science
Replies
6
Views
2K
  • Programming and Computer Science
2
Replies
69
Views
4K
Back
Top