Giter Club home page Giter Club logo

learn_java's Introduction

Prerequisites

  • Java SE: Oracle releases new Java SE versions every 6 months, on March and September, but some of these are long-term supported versions. Enterprises typically use these LTS versions, hopefully the latest available. As of this writing, the latest Java LTS version is Java 17, which you have to download from Oracle download's site and install.

  • Integrated Development Environment (IDE): This is a tool you'll use in your daily work as a developer. I've tried Eclipse, NetBeans, and IntelliJ Idea, and I recommend you to download IntelliJ Idea, the community edition doesn't require paying a license to use it.

  • Version control program (Git): Git is a version control program developed by Linux Torvalds (Linux OS creator) which is commonly used to keep track of source code versions. It can be downloaded here. In that same website you can read (or download) an ebook about Git, but I'd recommend first having a look at two common ways of working with Git:

Java Virtual Machine (JVM), Java Runtime Environment (JRE), Java Development Kit (JDK), Java Standard Edition (SE) and JakartaEE

Java is a compiled language that, unlike C/C++ programs (which have to be compiled for a specific CPU like x86_64 or arm64), runs in the Java Virtual Machine (JVM). Time ago, Java could be downloaded from Oracle as either the Java Runtime Environment (JRE), which only comprised the JVM necessary to run Java compiled programs, or as the Java Development Kit (JDK) which not only contains the JVM, but also the Java compiler as well as other tools.

Finally, Java programming language is a rich ecosystem, and there have been several tools/frameworks built on top of it, to ease development and deployment of enterprise applications, for instance JakartaEE (previously named JavaEE and even J2EE) or Spring

Java learning paths

The Java ecosystem is wide, and there are many terms and concepts that can (and they did for me at the beginning) overwhelm you. Before starting you journey, take a look at the image below, it maps concepts and skills common to developers and to Java: Java learning paths

I'd start with Java (start), get familiar with the Java Language Specification (JLS). The JLS is too "dry" to learn Java from, but it's the ultimate source of truth in case of doubt.

When you start writing your first Java programs, use an IDE (Integrated Development Environment). I'd recommend IntelliJ Idea (the community edition is free to use, if not, your local Java Users Group might help you get a license for it). It's not necessary to get Oracle's Certificate of professional Programmer (OCP), but review the list of topics that you would have to know in order to pass the certification exam, it's a good starting point on what are the most important things to learn from the Java Language Specification (JLS).

Once you know the basics of Java language, then follow up with Java (pro) and at the same time gain familiarity with the other tools and processes: Version control with Git, Building with Gradle or Maven (you will have to work with both of them, but I think Gradle might be easier to start with), and also the Team organization tools (Jira, Agile mindset, code reviews, Pull requests, code style and static code analysis tools).

Here's an index of contents and resources for each block:

Java (start):

Tools & Processes (IDE):

I suggest you to learn to compile and execute Java application manually, executing javac and java before leaning on an IDE to do that for you. An IDE offers many advantages, like syntax checking, code navigation, dependencies and many more. Here are a few IDEs to choose from:

  • IntelliJ Idea by JetBrains is my favourite integrated development editor (I've tried Eclipse and Netbeans in my career). It is very well documented.
  • NetBeans is also a good IDE which I used for many years.
  • VS code supports most of the frontend languages out of the box, and Java through an extension. I haven't used it personally.

Tools & Processes (Version control):

Nowadays, there's only one version control program worth mentioning: Git. It was developed by Linus Torvalds, and has superseded other older version control programs like Subversion or CVS. Here is a good introduction to Git, and the online documentation in Git's website is also worth checking, there's even the "Pro Git" book available there.

Java (pro):

I learnt these while I was actively writing programs. I don't think these topics are easy to learn just from a theoretical point of view, it's better if you can learn them while you write Java programs.

learn_java's People

Contributors

guillempg avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.