Learning Java

Status
Not open for further replies.

Kdar

Daemon Poster
Messages
894
I am thinking to start learning Java a bit.

From where do I need to start?

Are there any classes online (on web-sites.. etc) that I can study from?

And what kind of software would I need?
 
The Javaâ„¢ Tutorials

Trails Covering the Basics
These trails are available in book form as The Java Tutorial, Fourth Edition. To buy this book, refer to the box to the right.
Getting Started — An introduction to Java technology and lessons on installing Java development software and using it to create a simple program.
Learning the Java Language — Lessons describing the essential concepts and features of the Java Programming Language.
Essential Java Classes — Lessons on exceptions, basic input/output, concurrency, regular expressions, and the platform environment.
Collections — Lessons on using and extending the Java Collections Framework.
Swing — An introduction to the Swing GUI toolkit, with an overview of features and a visual catalog of components. See below for a more comprehensive tutorial on Swing.
Deployment — How to package applications and applets using JAR files, and deploy them using Java Web Start and Java Plug-in.
Preparation for Java Programming Language Certification — List of available training and tutorial resources.
 
I am thinking to start learning Java a bit.

From where do I need to start?

Are there any classes online (on web-sites.. etc) that I can study from?

And what kind of software would I need?

I use NetBeans - ver 6.5 I think it is. It has a compiler and IDE. Fairly easy to use when I tried the tutorials right there at NetBeans. Plus I have some programming experience so that helps as far as understanding for loops, do whiles, etc.

Welcome to NetBeans

Good luck, and have fun wherever you go for Java !
 
I have experimented a bit with Java (using NetBeans for a compiler and IDE btw), and none with C++. So I can't say from experience in comparing the two. However, I have looked over some C++ code (books, online, etc.) and they have some resemblances. Like the braces for nesting statements. And semi-colons for ending statements. I think that Java was derived from C++ if I am not mistaken.
 
I am thinking to start learning Java a bit.

From where do I need to start?

Are there any classes online (on web-sites.. etc) that I can study from?

And what kind of software would I need?


Why do you want to learn java? Do you plan to develop applications? I would recommend starting with algorithm design. Also, you mentioned that you had learned C++. If you know how to program in theory the language shouldn't matter. If you know one you know them all. If you get stuck google it. There is sample code for almost anything you would want to do online. Also, there are books that I hate like "Learn Java in 21 Days". This book will help you learn all of the syntax but not actually teach you how to program.

The main software you need is the most recent Java Runtime Environment(JRE) and the most recent Java Development Kit(JDK). I would recommend not using IDEs if you are a beginner because they abstract a lot of the dirty stuff from you which is important to understand as a beginner. When you get more advanced IDEs are helpful to speed up production.

Hope this was helpful.
 
Give me a problem and I will program it for you in any language that has freely available documentation. I don't have a single languages syntax completely memorized because that is a waste of space in my mind. Even if you have language completely memorized if you don't know how it is interacting with the processor and memory then you can't program optimally.

These are just my views, of course.
 
I don't have a single languages syntax completely memorized because that is a waste of space in my mind.

I don't know anyone who sets out to memorize programming language syntax. The more hands-on experience you gain with a specific language (repetition) combined with in-depth study of the language and it's supporting framework (if applicable) is what causes the syntax to stick in the mind. I can certainly tell you that my employer would not be thrilled with my productivity (nor would the guys on my team) if I didn't have a deep understanding of the language/framework.

Because I am intimately familiar with the technologies I use (C#, .NET, WPF), I understand many of their limitations. As such, I can account for those shortcomings early on in my design. On the flipside, I also know what works well, and I can exploit that in my designs. Simply reading a few docs on MSDN is not going to give me that information. It takes quite a bit of time (on the order of months and years) to absorb the vast amount of information available in books and everywhere else. Plus, new versions of the technologies, languages, frameworks, and tools are being released regularly.

Give me a problem and I will program it for you in any language that has freely available documentation.

That's easy to do. There are many different ways to solve the same problem with a particular language, but which way is the right way? Do other parts of the system constrain me from using the "optimal" approach? Should I use an imperative style? Should I use a functional style? Should I use lambda expressions? Should I use eager or deferred execution? Is the problem I'm solving a special case that should be handled by my language in a non-traditional way? Is my solution easy for other programmers to understand and maintain? Does my solution follow the best practices for my chosen language?

Don't get me wrong, algorithm design is important and learning how to program is more important than learning language syntax. However, as I alluded to in my previous post, nothing is purely black and white in practice.
 
Status
Not open for further replies.
Back
Top Bottom