DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Please enter at least three characters to search
Refcards Trend Reports
Events Video Library
Refcards
Trend Reports

Events

View Events Video Library

Zones

Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks

Last call! Secure your stack and shape the future! Help dev teams across the globe navigate their software supply chain security challenges.

Modernize your data layer. Learn how to design cloud-native database architectures to meet the evolving demands of AI and GenAI workloads.

Releasing software shouldn't be stressful or risky. Learn how to leverage progressive delivery techniques to ensure safer deployments.

Avoid machine learning mistakes and boost model performance! Discover key ML patterns, anti-patterns, data strategies, and more.

Related

  • How Kafka Can Make Microservice Planet a Better Place
  • Introduction to Apache Kafka With Spring
  • How Spring and Hibernate Simplify Web and Database Management
  • Graceful Shutdown: Spring Framework vs Golang Web Services

Trending

  • Integrating Security as Code: A Necessity for DevSecOps
  • A Complete Guide to Modern AI Developer Tools
  • Mastering Advanced Traffic Management in Multi-Cloud Kubernetes: Scaling With Multiple Istio Ingress Gateways
  • How the Go Runtime Preempts Goroutines for Efficient Concurrency
  1. DZone
  2. Data Engineering
  3. Data
  4. 5 Websites to Learn Java for FREE

5 Websites to Learn Java for FREE

Looking to learn Java but don't want to spend money?

By 
Javin Paul user avatar
Javin Paul
·
Jan. 24, 19 · Presentation
Likes (15)
Comment
Save
Tweet
Share
123.5K Views

Join the DZone community and get the full member experience.

Join For Free

Being the author of a Java blog, I often receive questions about how to improve my coding skills, the best ways to strengthen my Java skills, or how to solve difficult programming problems.

These questions are mostly from programmers who just started programming or just graduated with a computer science degree.

Like many other things in the world, to improve your coding skills, you need to code, code, and code — and to improve programming, you need to know how to write a program, and that's where many of these programmers fail.

In 90 percent of cases, programmers simply don't write enough to develop the programming logic and code sense, and if they lack experience dealing with data structures and algorithms and attempt problems are given on sites like TopCoder or Project Euler, they fail miserably.

To be frank, it's not easy to solve problems from those sites until you have really been programming for a year or two, maybe even longer.

A good way to improve coding is to solve basic data structures, algorithms, and object-oriented design problems by yourself.

If you are absolutely new to the programming world, then investing money in books on data structures and algorithms is probably a good idea. I highly recommend Introduction to Algorithm; though it will not teach you coding, it will give knowledge of data structure and algorithms, which is very important for any programmer.

Resources for Learning Code in Java Online

In this article, I am going to share with you a couple of websites that will help you learn Java for FREE.

The first site is mostly for Java programmers, but the problem set can be solved in any language. The second site is language independent because it doesn't ask you to code online, rather it only checks your answers with random input data.

1. Udemy

This is a popular website for learning Java and other languages online. It provides both free and paid courses, but the good part is that you have a lot of choices available and it's relatively cheaper than any other website in the world

It also contains a lot of free courses in both Java and other programming languages, e.g. Java Tutorial for Complete Beginners, a whopping 767,854 students are enrolled in this course and its one of the best free Java course available online.

You can also find a lot of other courses for learning Java from scratch like Practice Java by Building Projects, which is another free course for programmers getting started with Java.

2. CodeAbbey

The next site that I am going to share with you guys is CodeAbbey. When I came across CodeAbbey, I really like their question set because it was perfectly designed for beginners.

It's neither easy nor trivial and provides some decent practice for a first timer. Here are the kinds of questions you can expect from this site:

  • Maximum of array    
  • Vowel count  
  • The weighted sum of digits
  • Body Mass Index (BMI)
  • Sum of digits
  • Median of Three
  • Neumann's Random Generator  
  • Array Checksum
  • Modulo and time difference  
  • Average of an array
  • Array Counters
  • Binary Search
  • Dice Rolling

Once you start solving these program, your programming logic will improve and you will learn how to apply the knowledge of operators, data structures, and algorithms to solve a problem.

Slowly, you will learn how to approach any problem. Once you solved the beginner's problem, you can start with intermediate and some difficult ones to test your knowledge and gain some confidence.

Remember, it's problem-solving skills that make you a good programmer — not just knowing the syntax of any programming language, e.g. C or C++. Once you learn how to code or how to program, you can solve the same problem in any programming language.

If you like books, you can also purchase a book to learn how to program, Head First Programming, which teaches you how to code and write a program using Python.

3. CodeAcademy

One of the most popular websites, which I used to learn JavaScript, is CodeAcademy. Now, it has a free course for learning Java. It's one of the best, interactive websites for learning any language.

The CodeAcademy site provides an online IDE or Java Editor where you can not only code but also check your program by running and debugging it.

The course is not as exhaustive as those available on Pluralsight and Udemy, but it is free, and it is still one of the better resources for beginners.

4. CodingBat

Another site that I am going to share with you guys is CodingBat. This site is another excellent resource to practice and learn to code in Java and Python.

Just like CodeAbbey, you need to register, but that's good because you can track your progress. It also contains beginner level programming problems from useful topics like String, Array, Logic, and Recursion.

I really like their questions about recursion, as it's one of the most difficult concepts to master. They also have questions at different difficulty levels.

Once you log in, you can select any question and you will be asked to write code for that method in Java or python, Every program has a clear specification, often you need to implement a particular method.

Once you were done, you can run your program and test with different input, including boundary conditions, which are actually designed by CodingBat.

Their input set is really good too, and you will learn quickly about why your program doesn't run on a particular input. Here are some of the questions you can expect at CodingBat:

monkeyTrouble

You have two monkeys, a and b, and the parameters aSmile and bSmile indicate if each is smiling. We are in trouble if they are both smiling or if neither of them is smiling. Return true if we are in trouble.

monkeyTrouble(true, true) ? true

monkeyTrouble(false, false) ? true

monkeyTrouble(true, false) ? false

bunnyEars

We have a number of bunnies and each bunny has two big floppy ears. We want to compute the total number of ears across all the bunnies recursively (without loops or multiplication).

bunnyEars(0) ? 0

bunnyEars(1) ? 2

bunnyEars(2) ? 4

CodingBat also contains help and videos on both Java and Python lessons.

I am sure once you start solving programming problems on these two websites, you will learn coding faster.

If you already know how to code, then these will simply improve your problem-solving and programming skills.

The great thing about these two websites is that their problems are not very difficult, which is one reasons I am recommending these to beginners and intermediate Java programmers.

5. Pluralsight

There are a lot of useful courses in Pluralsight to learn Java and coding online. You can choose the courses you like to learn at your own pace.

The site also provides 10-day free trial, which is more than enough to get a start with both Java and programming if you are totally focused.

I recommend Java Fundamentals: The Java Language to start learning the basics of Java. The author, Jim Wilson, has done a great job in explaining syntax and features of Java in this power-packed course.

Apart from that, Pluralsight also has courses to teach other languages. For example, you can check out Learning To Program - Part 1: Getting Started By Scott Allen if you absolutely don't have any idea about programming.

best online course to learn Java

Sometimes, a site with difficult programming problems discourages a young programmer. Once you start solving easy questions, your confidence will grow up and you gradually advance towards more difficult topics and questions.

By the way, these sites are not for experienced programmers, as you can easily solve all those questions, but if you like to do quick recap and practice, then you will find them interesting as well.

If you are looking to buy a book to learn to code then I suggest you take a look at Head First Java: 2nd Edition. While it is a little bit old, it is still one of the best books to learn Java.

Other free Java programming resources you may like:
5 Free Spring  Framework Courses for Java Developers
Top 5 Courses to learn Web Development in 2019
5 Courses to Learn Big Data and Apache Spark
Top 10 JavaScript Tutorials and Courses for Web Developers
Top 5 Courses to Learn Spring Boot in 2019
5 Free Data Structure and Algorithms Courses
5 Free Linux Courses for Programmers and Developers
5 Free Courses to Learn React JS Framework

Java (programming language) Data structure Big data Spring Framework Programmer (hardware)

Published at DZone with permission of Javin Paul, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

Related

  • How Kafka Can Make Microservice Planet a Better Place
  • Introduction to Apache Kafka With Spring
  • How Spring and Hibernate Simplify Web and Database Management
  • Graceful Shutdown: Spring Framework vs Golang Web Services

Partner Resources

×

Comments
Oops! Something Went Wrong

The likes didn't load as expected. Please refresh the page and try again.

ABOUT US

  • About DZone
  • Support and feedback
  • Community research
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Core Program
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 3343 Perimeter Hill Drive
  • Suite 100
  • Nashville, TN 37211
  • support@dzone.com

Let's be friends:

Likes
There are no likes...yet! 👀
Be the first to like this post!
It looks like you're not logged in.
Sign in to see who liked this post!