• Post Reply Bookmark Topic Watch Topic
  • New Topic

How do you deal with the overwhelming amount of information on Java?  RSS feed

 
Justin Robbins
Ranch Hand
Posts: 121
2
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I am just beginning and it seems like an unclimbable mountain. I was just looking at this: https://docs.oracle.com/javase/8/docs/api/java/lang/String.html for example and it just goes on and on. This is probably due to just getting into programming but it seems like there is simply endless amounts of things to learn in Java. It's great, but it's almost like a double-edged sword too. No matter how much I try there will always be way more information on Java then there is time for. How does one reconcile all this information overload?

Thanks
 
Jeanne Boyarsky
author & internet detective
Marshal
Posts: 37496
545
Eclipse IDE Java VI Editor
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
A good way is. To start with a book rather than the javadoc. This allows you to focus on the most important parts because the author has digested it for you.
 
Justin Robbins
Ranch Hand
Posts: 121
2
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
@Jeanne Boyarsky I have Java Head First I've been reading through it on the subway. Some of it makes total sense. Other parts I get confused on. To be expected I suppose. When I go on here or stackexchange I just seem to be bombarded with all sorts of new terms and topics which I have no idea what they are or how they work. It's quite intimidating to say the least.
 
Campbell Ritchie
Marshal
Posts: 56553
172
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Stick to the parts you can understand. Remember the parts you can't understand are there, and forget about them for the time being. Nobody ever learns “everything”.
 
Knute Snortum
Sheriff
Posts: 4279
127
Chrome Eclipse IDE Java Postgres Database VI Editor
  • Likes 3
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
And it's okay to post here and say, "I don't understand." That's harder to do on StackOverflow -- one of the reasons I like this forum.
 
Junilu Lacar
Sheriff
Posts: 11493
180
Android Debian Eclipse IDE IntelliJ IDE Java Linux Mac Spring Ubuntu
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Q: How do you eat an elephant?
A: One bite at a time. (And only eat as much as you need)

As it is with most things in life, reasonable portions are key. Don't try to take in everything. Rather, when you encounter a small problem, look for specific parts of the platform that can help. Even small problems can lead you to lots of information about possible solutions. Just look at the case of working with dates and times. There are quite a few standard and open source options to do this. Java 8 has a much improved standard Date and Time API over previous releases, which the open source Joda Time library probably influenced a lot.
 
Winston Gutkowski
Bartender
Posts: 10575
66
Eclipse IDE Hibernate Ubuntu
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Justin Robbins wrote:I was just looking at this: https://docs.oracle.com/javase/8/docs/api/java/lang/String.html for example and it just goes on and on...

I totally agree; and unfortunately, it's only likely to get worse. Version 8 has not only added a pile of new classes, but scads and scads of new methods to existing classes as well.

Comparator, for example, used to have ONE method; now it has seventeen.

Part of it is down to the age of the language (Java is more than 20 years old and has been "mature" for about 15), but part is also down to overblown design.
Do we really need 15 ways to create a String? Or 8 different methods to return the index of something we're trying to find? Has anyone, anywhere EVER used offsetByCodePoints()? (I know I haven't) ...

Perhaps Oracle will come up with some sort of 'grading' or grouping system for methods to help sort out the mess, but in the meantime you're basically stuck with it.

It's a cautionary tale for you too: Don't add public methods to classes you write unless you KNOW they're going to be needed, because you'll be stuck with them for all eternity ... and probably have a "Justin" complaining about your API in a couple of years from now.

Winston
 
Mike London
Ranch Hand
Posts: 1505
11
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Justin Robbins wrote:I am just beginning and it seems like an unclimbable mountain. I was just looking at this: https://docs.oracle.com/javase/8/docs/api/java/lang/String.html for example and it just goes on and on. This is probably due to just getting into programming but it seems like there is simply endless amounts of things to learn in Java. It's great, but it's almost like a double-edged sword too. No matter how much I try there will always be way more information on Java then there is time for. How does one reconcile all this information overload?

Thanks


My suggestions....

Just focus on the project at hand. Don't have a goal to "understand everything about Java all at once". Nobody understands everything about Java. Nobody.

Do your pesudo-code for project portion and don't worry about Java. Focus on the design and thinking about what "code" should do at a high level. Worrying about syntax too soon will just derail your thinking - which is more important than Java.

It will take some time, but just know that NOBODY can keep up with all the changes. Java 8 makes a lot of things better, but you have to learn them. I'm still doing that after over a year.

Learn the basics, like the difference between a List and a Map.

Get a couple up to date books like Java The Complete Reference (I also like the Horstman books and anything by Marty Hall) and also get a "Cookbook" type book so you can see some examples that focus on the 'how' not just the 'what'.

Do lots of Internet searches.

Use a good IDE (not a text editor) so you're not looking up methods available for a given class and that will help you with your code and catch syntax errors, for example, in real time.

Take a class at a community college so you have a systematic approach to learning. One of the benefits about those classes that you'll see everyone has similar issues learning this stuff.

---

I have a bookshelf of obsolete Java Books.

Java is free, powerful, and fun.

Just take it a day at a time and it will come to you.

mike
 
Claude Moore
Ranch Hand
Posts: 924
9
IBM DB2 Java Netbeans IDE
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Justin Robbins wrote:I am just beginning and it seems like an unclimbable mountain.

I think your feeling is absolutely normal. I was lucky and started studying Java at the university since its first version, and I kept studying it during these years. Despite this, I believe to be very far from knowing any aspect of Java language. I think that you should strive to achieve a solid understanding of Java foundations, and -why not ? - of its underlaying philosophy. For the specific details, documentation exists. Deeper knowledge comes from daily usage. When you get used to do something in some way, try to do it in a new way, experiment with different language constructs.
 
Mike London
Ranch Hand
Posts: 1505
11
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Claude Moore wrote:
Justin Robbins wrote:I am just beginning and it seems like an unclimbable mountain.

I think your feeling is absolutely normal. I was lucky and started studying Java at the university since its first version, and I kept studying it during these years. Despite this, I believe to be very far from knowing any aspect of Java language. I think that you should strive to achieve a solid understanding of Java foundations, and -why not ? - of its underlaying philosophy. For the specific details, documentation exists. Deeper knowledge comes from daily usage. When you get used to do something in some way, try to do it in a new way, experiment with different language constructs.


Agree completely.

And don't forget the Ranch. It's a terrific place to leave questions. I've left over 1,000 questions in the past 14 or so years. (Yikes!)

JR is a great place to fine-tune your learning.

I forgot to also mention videos and learning resources like Lynda.com.

The nice thing about a class at a community college is that it's taught be someone who's reasonably good at Java (but not usually a professional) and it's a structured approach. I think that type of class is very confidence boosting since it gives you plenty of programming practice and a wide introduction to Java.

Try to enjoy your learning and have fun! Java gives you ultimate power to do just about anything.

You'll never stop learning Java. It's a constant challenge, but fun.

- mike
 
Karina Guenther
Ranch Hand
Posts: 65
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Once you feel you have some of the basics of the language, I'd also recommend studying design patterns as that will help you learn how create flexible code. Head First is a good one for that. It will also give you additional practice in Java.
 
Les Morgan
Rancher
Posts: 779
19
C++ Java MySQL Database Netbeans IDE Oracle Tomcat Server
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Justin Robbins wrote:
I am just beginning and it seems like an unclimbable mountain.

Justin,

There is your key to remember, you are literally at the bottom of the mountain climbing up--don't look towards the peak, it is a daunting sight, and in the case of technology, it is ever moving higher. Pick a project that you want to do, make it a small one that is significant to you. Did you do the "hello program"? That is literally how almost everyone starts. Start small, get it to work, then alter it a bit and see if you break it, if you do fix it. In any case make some little changes that increase your basic understanding, then move on to a little more advanced.

If you are starting out programming and Java is your starting point realize you are learning 3 very different things:

1-you are learning Java, a programming language. This is analogous to learning how to swing a hammer, it is a tool, not programming.
2-data structures--you are learning how to represent data, that is a whole science in and of itself.
3-programming--yes, you are learning a problem solving approach, and applying the constructs in 1 and 2 to implement that approach.

So now you say, "Wow, that mountain is really larger than I thought it was." No it really is not. As the others have said: you eat an elephant one bite at a time. When you eat that elephant you don't bite off a huge mouthful and try to swallow it--that will probably kill you. Instead you take a reasonable bit. You chew on it while, then you swallow it, and you may even have to take a drink from time to time to keep things in context.

As I have said you pick something small to do--play with it a while (chew on it), then when you have it (swallow it) and move on a little bit to the next thing.

Oracle has Java Tutorials and Learning Paths take some time, do the baby steps and have a little fun learning as you go. I have been programming now for over 30 years and I still learn new things, frequently, I love reading other people's code; they tend to use different structures in ways I never thought of doing, and it's great, I learn a new way of doing something. Languages upgrade, and so you have to supplement what you thought you knew with what the new reality is, get used to it, it happens all the time.

Remember: don't look up at the peak, it keeps moving. Keep going one step at a time, have fun along the way, and one of these days you're going to look up and notice that peak that was too far to climb, well, it's just a few steps away (BTW: it will always be a few steps away after that.)
 
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!