<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<!--
Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
-->
  <head>
    <title>Learning Java</title>
    <meta name="description" content="New to Java? Some resources to help you get started with Java programming" />
    <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
    <link rel="stylesheet" type="text/css" HREF="../../netbeans.css" />
    <script type="text/javascript" src="http://platform.netbeans.org/jquery-1.2.1.pack.js"></script>
    <script type="text/javascript" src="http://platform.netbeans.org/jquery.cycle.all.pack.js"></script>
    <meta name="author" content="Ruth Kusterer" />
  </head>

  <body>

    <h1>Learning Java - Resources</h1>

    <div style="float:right;margin-left:20px">
      <a href="http://platform.netbeans.org/screenshots.html">
        <div id="cyclediv" class="pics" style="width:200px;height:155px" >
          <img src="https://netbeans.org/images_www/screenshots/platform/blueMarine_thumb.png" width="200" height="155" alt="blueMarine" />
          <img src="https://netbeans.org/images_www/screenshots/platform/masstk_ss_full_00_thumb.png" width="200" height="155" alt="Boeing" />
          <img src="https://netbeans.org/images_www/screenshots/platform/masstk_ss_full_01_thumb.png" width="200" height="155" alt="Boeing" />
          <img src="https://netbeans.org/images_www/screenshots/platform/fiorano_studio_thumb.png" width="200" height="155" alt="Fiorano" />
          <img src="https://netbeans.org/images_www/screenshots/platform/visualvm-profiling.png" width="200" height="155" alt="VisualVM" />
        </div></a>
      <script type="text/javascript">
        // setup the cycle gallery
        $('#cyclediv')
        .cycle({
          fx:     'scrollLeft',
          speed:  4000,
          timeout: 1
        });
      </script>
      <div class="align-center">Java Application Showcase</div>

    </div>

    <p>
      <a href="http://www.java.com/en/about/">What is Java</a>?
      Java is the most widely used object-oriented programming language.
      Java applications run on Windows, Mac OS X, Linux, and Solaris,
      and many other operating systems.
    </p>
    <p class="tips">
      Start your programming career by learning
      <a href="http://www.oracle.com/technetwork/java/javase/overview/index.html">Java SE</a> (Java Standard Edition)
      and teach yourself to develop professional applications
      for desktop PCs, such as utilities and games.
    </p>
    <p>
      To get started, download and install the 
      <a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html">Java Development Kit (JDK)</a>,
      and the latest <a href="https://netbeans.org/downloads/">NetBeans IDE</a> today!
      The Java Development Kit (JDK) contains all the tools you need to compile code
      and run your newly written applications.
      The NetBeans IDE (integrated development environment) is an optional software utility 
      that makes all these tools more easily accessible.  
    </p>

    <p><br /></p>

    <h2>Online Classes and Tutorials</h2>

    <p><br /></p>

    <a name="1"></a>
    <h3>Beginner-level Java</h3>

    <ul>
      <li><a href="http://robocode.sourceforge.net/">Robocode</a> &mdash; A game
        designed to help people learn to program in Java, and enjoy the experience.
      <li><a href="http://www.oracle.com/technetwork/topics/newtojava/overview/index.html">New to Java?
          No programming experience?</a> &mdash; These free classes get beginners
          started with Java development.
      <li><a href="http://www.javapassion.com/portal/java-programming-with-passion/java-programming-with-passion">Java Programming - With Passion!</a> &mdash;
        Learn the basic concepts how to write, compile, and run Java programs (fee-based).
    </ul>

    <p><br /></p>

    <a name="2"></a>
    <h3>Intermediate Java</h3>

    <ul>
      <li><a href="http://docs.oracle.com/javase/tutorial/">The Java Tutorial</a> &mdash;
        <em>The</em> must-read Java SE guide containing hundreds of working samples plus explanations.</li>
      <li><a href="http://www.oracle.com/technetwork/java/index-jsp-135888.html">Java Developer Tutorials and Training</a> &mdash; 
          Index of free online materials for all Java technologies available at Oracle Technology Network. </li>
      <li><a href="http://www.javapassion.com/">Java Passion</a> &mdash;
        Enhance your skills in all Java technologies (fee-based).</li>
    </ul>

    <p><br /></p>

    <a name="3"></a>
    <p><h3>Professional Java Training and Certifications</h3>

    <div style="width:200px;float:right;margin:0 0 0 10px">
      <h3>What are Oracle's Training classes like?</h3>
      <p class="tips">Read this <a href="../../community/articles/interviews/java-se-training-report.html">Java
          training report</a> from a participant.</p>
    </div>

    <ul>
      <li><a href="../training.html">Popular classes using NetBeans IDE</a>
      <li><a href="http://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=39&sc=WWOU11042412MPP012C013">Oracle Certificate Program: Become
      an industry-recognized Certified Developer</a></li>
      <li><a href="http://www.DevelopIntelligence.com/catalog/java-training.php">DevelopIntelligence: Java training with NetBeans IDE</a></li>
    </ul>

    <p><br /></p>

    <h2>Books and Forums</h2>

    <a name="4"></a>
    <h3>Books</h3>

    <table border="0" cellpadding="5">
      <tr><th>English</th><th>German (Deutsch)</th></tr>
      <tr><td>
          <ul>
            <li><a href="http://math.hws.edu/javanotes/">Introduction to Programming Using Java</a> <br /> available online and as free PDF
            <li><a href="http://www.greenteapress.com/thinkapjava/">Think Like a Computer Scientist: Java</a> <br /> available as free PDF
            <li><a href="http://mindview.net/Books/TIJ4">Thinking in Java</a> <br /> available as printed book and ebook
          </ul>
        </td><td>
          <ul>
            <li><a href="http://openbook.galileocomputing.de/javainsel8/">Java ist auch eine Insel</a> <br /> available online, as free ebook, and in print
            <li><a href="http://www.javabuch.de/">Handbuch der Java-Programmierung</a> <br /> available as free ebook, and in print
            <li><a href="http://www.highscore.de/java/einfuehrung/titelseite.html">Programmieren in Java: Einführung</a> <br /> available online and as free PDF
          </ul>
        </td><td valign="bottom">
          <a href="../../kb/articles/books.html">Full list of NetBeans-related books</a>
        </td>
      </tr>
    </table>

    <p><br /></p>

    <a name="5"></a>
    <h3>International Forums</h3>

    <p>Share tips with fellow Java developers online in your mother tongue.</p>

    <ul>
      <li><a href="https://forums.oracle.com/forums/main.jspa">OTN Discussion Forums</a> (in English)</li>
      <li><a href="https://netbeans.org/community/lists/">NetBeans Lists and Forums</a> (English and other languages)
      <li><a href="http://java.developpez.com/">Java.developpez.com</a> (in French / en fran&ccedil;ais)</li>
      <li><a href="http://www.javahispano.org/">Javahispano.org</a> (in Spanish / en castellano)</li>
      <li><a href="http://edu.netbeans.org/contrib/slides/dmitriev">Andrei Dmitriev's Java SE Course</a> (in Russian / по-русски)</li>
      <li><a href="http://www.netbeans-forum.de/">Java and NetBeans Forum</a> (in German / auf deutsch)</li>
    </ul>
    <p style="float:right"><a href="http://wiki.netbeans.org/wiki/view/FaqInternationalCommunity">More international communities</a></p>

    <p><br /></p>

    <a name="6"></a>
    <h3>Teaching Java in Schools with the NetBeans IDE</h3>

    <p>
      The <a href="http://edu.netbeans.org/">NetBeans in Education Community</a> brings
      together people dealing with teaching Java, Computer Science or just interested
      in new ways of using the internet in the classroom.
    </p>
    <p>Contact us for NetBeans Platform Development classes!</p>

    <p>
      If you hear of a good source that helps you learn Java,
      <a href="https://netbeans.org/about/contact_form.html?to=1">let us know</a>
      and we add it to the list.
    </p>

    <p><br /></p>
    
    <h2>Java Technologies Orientation</h2>

    <ul>
      <li><a href="http://www.oracle.com/technetwork/java/javase/overview/index.html">Java Standard Edition</a> &mdash; Get started
        with Java technology by learning how to develop desktop applications and browser applets with Java SE.
      <li><a href="http://javafx.com/">JavaFX Script</a> &mdash; In order to learn how to create
        visually expressive graphical applications, proceed with learning JavaFX.
      <li><a href="http://www.oracle.com/technetwork/java/javame/index.html">Java Micro Edition</a> &mdash; In order to 
        develop applications for mobile phones and smart cards, proceed with learning Java ME.
      <li><a href="http://www.oracle.com/technetwork/java/javaee/overview/index.html">Java Enterprise Edition</a> &mdash; In order to develop
        enterprise and web applications such as online-shops, proceed with learning Java EE.
    </ul>

  </body>
</html>
