This week's book giveaway is in the Java 8 forum.
We're giving away four copies of Java 8 in Action and have Raoul-Gabriel Urma, Mario Fusco, and Alan Mycroft on-line!
See this thread for details.
The moose likes Beginning Java and the fly likes Best way for learning Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Java 8 in Action this week in the Java 8 forum!
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "Best way for learning" Watch "Best way for learning" New topic
Author

Best way for learning

Chantae Ross
Greenhorn

Joined: Feb 11, 2010
Posts: 2
Hello everyone. I can't wait to learn all the ins and outs of programming and know that one day after a lot of hard work I will sit back and say, "Hey, I actually know and am sufficient in programming in Java." My issue is, how did all the rest of you learn and become sufficient and actually start writing applications that do important things rather than print things on the screen. Also what are some of the advice you have to offer as a skilled programmer? For example, there is a whole lot to learn about programming, it seems like there is endless commands, statements, etc etc. Do you eventually memorize everything or you will always need a reference book? If no book needed how long did it take you to get to the point you are right now? Thank you for all of your responses. I'm not trying to rush the learning process I already know this is going to take a few years to get very proficient. But, I just wanted to know generally how everyone else has been learning and how fast they move alone.
David Newton
Author
Rancher

Joined: Sep 29, 2008
Posts: 12617

How long did it take to get to the point I am now? Er... all my life. That's how time works.

But seriously... the only way to get better at programming... is to write (and read) programs. I'd never be able to memorize all the things I need to know; I rely on the web, my wiki, annotated source code samples, you name it. I want to offload as much information as I can so I can think about real problems. That said, I have to keep enough memorized that I know what's available to me.

How fast people progress is wildly variable, so there's no real way to say much about that... but as with any learned skill, repetition is the key to success--as long as those repetitions are done with attention, feedback, and care.
Maneesh Godbole
Saloon Keeper

Joined: Jul 26, 2007
Posts: 9993
    
    7

Chantae,
Welcome to the Ranch.

+1 to all David said.

The best way to learn is make mistakes and then try and figure out what went wrong and how. That way you never need to memorize.
The API docs are your friend. Bookmark them and use them heavily. Try and look at how other people code. (The java source code is a good example. Open source projects are another place when you can look at other people's source code). Compare it with how you would have written the same piece.


[How to ask questions] [Donate a pint, save a life!] [Onff-turn it on!]
Jesper de Jong
Java Cowboy
Saloon Keeper

Joined: Aug 16, 2005
Posts: 13884
    
  10

Welcome to JavaRanch!

I've programmed since I got my first computer when I was 13. As David and Maneesh said, a great way to learn is by experimenting, trying things out, get an idea and write programs yourself. It's like learning to read and write a foreign language: after a while you become more fluent at it, the most frequently used commands, statements, classes etc. you know by heart because you're using them so often. The standard Java library contains thousands of classes with many more thousands of methods, it's impossible to know them all. I frequently use the API documentation as a reference. It's more important to be able to understand concepts and to know how to find things than know thousands of classes by heart.


Java Beginners FAQ - JavaRanch SCJP FAQ - The Java Tutorial - Java SE 7 API documentation
Scala Notes - My blog about Scala
Chantae Ross
Greenhorn

Joined: Feb 11, 2010
Posts: 2
Thank you for your replies. I've been trying to learn off and on for about 4 years now but always get sidetracked and go off doing something else. I'm currently starting my software engineer degree and feel like I need to learn it good before I get to the classes cause I honestly feel like the classes aren't going to be enough time to be proficient. I'm not in a rush though I have about a year before I actually hit "Java Programming I" and I've started out with "Head First Java" which I'm understanding a good small part of it until recently I seem to be at a point where I'm stuck lol. I'm sure this is going to happen a few good times. I just need to stick with it and make sure I get it done. I actually like to program "The very little that I do know" and have a real desire to learn more I just hate how the majority of the books are written and I can't seem to keep interested. I definitely want to help code open source software and help work on peoples projects, and can't wait till I'm at the actual level to do that. The way I look at it is the first bit you start learning is the hardest and when you start actually progressing it gets easier because the syntax makes since.
Serap Elbeyoglu
Ranch Hand

Joined: Feb 12, 2010
Posts: 52
Hello to everyone,

First of all I want to emphasize this web site + forums are well prepared for us.

I am learning Java, but I am a little worried. I ask myself "Can you manage Serap?" I trust in myself even if I feel worried sometimes. I am studying to Java on the internet. I read tutorials, visit forums, watch videos.

At the beginning, did you feel the same things like me? Is it normal to feel worried? I will appreciate your advise.

Thank you.


Serap Elbeyoglu
Rajeev Trikha
Ranch Hand

Joined: Jan 29, 2010
Posts: 85
This will give you guidance and inspiration.


Rajeev Trikha (SCJP 6)
Charles Owen
Ranch Hand

Joined: Aug 31, 2009
Posts: 61
The previous posters gave good advice and I agree with them.

I highly suggest you find a book that has exercises at the end of each chapter so that you can practice what you learned. If you just read the book, I guarantee it will go through one ear and out the other. I'd also recommend you create fun little projects by yourself that reinforce what you've learned and expand on it. If you make programming fun, you'll absorb it like a sponge. You will inevitably have to look things up and you'll also make mistakes. You'll probably learn the most from fixing the bugs in your own programs.

Learning a programming language is quite similar to learning Spanish or German. You need to practice on a daily basis.

I'll also say that not enough programmers read the official Java documentation. I'm not saying read it like a book, but it's good to balance out something you read in a book against the Java documentation.

Charles Owen
Ranch Hand

Joined: Aug 31, 2009
Posts: 61
That said, nothing beats having a real live project with real data and actual end users. I'm not sure if you have access to a real project but maybe your college or company has something available. You could always use one of the Java web hosts and post some simple web projects online and encourage friends, etc to play around with it.

You'll never remember everything, so I suggest creating a reference library for yourself of books you trust. As time progresses, you'll add to your library.

The biggest key I think is to make programming fun. If you do, then you'll always have the motivation to learn more.
Serap Elbeyoglu
Ranch Hand

Joined: Feb 12, 2010
Posts: 52
First of all I want to thank you Charles

I have found some books which have exercises at the end of chapters. I have learned that programing mistakes will teach me the correct ways. I am a beginner, but nowadays I want to be a good beginner. I ask questions about Java. ( Why system.out, what is the necessary for semicolon, why we use primitive data types.)

At this moment, I am thinking to find the way of making programing fun

Charles Owen
Ranch Hand

Joined: Aug 31, 2009
Posts: 61
You could think of an application like something that tracks you music/movie dvds. You could store the data in a text file or database.
Ulrika Mingle
Greenhorn

Joined: Feb 15, 2010
Posts: 6
Chantae Ross wrote:My issue is, how did all the rest of you learn and become sufficient and actually start writing applications that do important things rather than print things on the screen.


I got a Master of Science degree in Computer Science and Technology.

In hindsight it was the best move I've ever done.
Charles Owen
Ranch Hand

Joined: Aug 31, 2009
Posts: 61
Personally, I do not think you need a master's degree in computer science to be a good programmer. I'm not knocking the degree.

In fact, I view computer science and programming as separate disciplines. I've met some people with master's degrees who are not great programmers. I have also met great programmers who would have flunked out of a master's degree program.

However you do it, what's important is that you learn the best practices and keep rolling with the changes in technology.
Rob Spoor
Sheriff

Joined: Oct 27, 2005
Posts: 19556
    
  16

I quite agree, Charles. Although I too am a Master of Science, many of my class mates had very little actual programming skills. That became painfully obvious during a 6 month project where one of the other teams had only about 4 or so people (out of 10!) available for the real coding. The remainder was going more towards management / architecture / etc. Sure, you need those people as well, but without people who can code they can't do anything. Also, I've re-read code I've written back in those days and some of it is really horrendous. I didn't learn real programming until after I graduated. Practice will get you a lot further than any degree. The degree will only make it easier for you to start getting experience (both in being able to understand code and in getting a job to practice at).


SCJP 1.4 - SCJP 6 - SCWCD 5 - OCEEJBD 6
How To Ask Questions How To Answer Questions
Serap Elbeyoglu
Ranch Hand

Joined: Feb 12, 2010
Posts: 52
Your thoughts have made me encourage to be good at programing friends. Thank you. Because I am not a university student in computer scientist. I am interested with Java and try to teach myself Java by reading on the internet. There are a lot of tutorials, forum pages, videos...

On the other hand I am a little bit worried. What do you suggest for making practices? First of all, should I start to write basic samples?
David Newton
Author
Rancher

Joined: Sep 29, 2008
Posts: 12617

Always start small, but the "small" bits can be part of larger, more interesting projects.

I use small examples when I'm trying to understand a specific concept, a new library or framework, and so on. I can then use those as a reference when I need to use the same information as part of an actual project.

I think having a project or goal in mind is good for motivation--if there's an application you'd like to use it's much easier to find the time and energy to work on it.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Best way for learning
 
Similar Threads
Beginning Java book recommendations
To Learn...
Input/Output Question...
kathy and bert - ideal way to learn?
getting frustrated learning java