Top 5 Websites to Learn Java Online for FREE - Best of lot
Begin the author of a Java blog, I often receive questions like how to improve my coding skills?, or how do I learn to code in Java?, or I am having difficulty solving programming problems, please help, etc. This is mostly from programmers who have just started programming or a graduate with a programming degree or even some programmers with a year or two in Job. Like many other things in the world, to improve coding, you need to code, code, and code - and to develop programming, you need to write a program, and that's where many of these programmers fail. In 90% cases, they simply don't write enough programs to develop programming logic and code sense and, if without too much experience at data structures and algorithms, if they attempt problems given on sites like LeetCode, HackerEarth, TopCoder or Project Euler, they fail miserably.
To be frank, it's not easy to solve problems from those sites, until you have really done programming for a year or two, or even more.
An excellent way to improve coding is to solve basic data structures, algorithms, and object-oriented design problems by yourself.
If you are absolutely new in the programming world, then investing some money in buying a book or joining a course on data structure and algorithms like Data Structures and Algorithms: Deep Dive Using Java on Udemy is a Good Idea. It may not teach you coding, it will give knowledge of data structure and algorithms, which is very important for any programmer.
Resources to Learn Coding in Java Online
In this article, I am going to share with you a couple of websites, which will help you to learn coding and programming and that too for FREE.The first site is mostly for Java programmers, but problem set can be solved in any language, while the other site is language independent because it doesn't ask you to code online, instead it only check your answers with random input data.
1.Udemy
This is another popular website to learn Java and coding online. Similar to Pluarlsight, it also 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 Pluralsight.It also contains a lot of free courses in both Java and programming, likeJava Tutorial for Complete Beginners, a whopping 767,854 students are enrolled for this course, and it's one of the best free Java course available online.
And, if you can spend few bucks like $10 then you can also find a lot of courses to learn Java from scratch like The Complete Java Masterclass is one of the best courses for programmers getting started with Java.
2.Pluralsight
There are a lot of useful courses on Pluralsight to learn Java and coding online. You can choose the classes you like to learn at your own pace.The site also provides a 10-day free trial, which is more than enough to get a start with both Java and Coding if you are totally focused.
I recommendJava Fundamentals: The Java Language to start learning the basics of Java programming language. 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 programming, 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.
3.CodeAbbey
The first site which I am going to share with you guys was 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 to the first-timer. Here is the kind of question you can expect from this site :
- Maximum of array
- Vowel Count
- The weighted sum of digits
- Body Mass Index
- 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 programs, your programming logic will improve, and you will learn how to apply the knowledge of operators, data structure, 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 the problem-solving skill which makes you a good programmer, not just knowing all the syntax of any programming language, like 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, likeHead First Programming, which teaches you how to code and write a program using Python language.
4.Codecademy
The popular website, which I come to know while learning JavaScript, now also has a free course to teach Java. It's one of the best interactive sites to learn Java.It provides an online IDE or Java Editor where you can not only code but also checks your program by running and debugging it.
The course is not exhaustive as those available on Pluralsight and Udemy, but given it's free, it a still one of the better resources to learn Java. Join 2,360,524people who have already taken this course
5.CodingBat
The other site I am going to share with you guys is CodingBat. This site is also an excellent resource to practice and learn to code for Java and Python programmer.You can solve problems in either Java or 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 from recursion, as it's one of the confusing concepts to master. They also have problems 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 precise 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 designed by CodingBat itself.
Their input set is perfect, and you will learn quickly by following 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 many 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 thinking and programming skills.
The great thing about these two websites is that their problems are not very difficult, which is one reason I am recommending these to beginners and intermediate Java programmers.
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 challenging topics and questions.
By the way, these sites are not for experienced programmers, as you can quickly 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 , a little bit old but still one of the best books to learn Java.
OtherProgramming Resourcesyou may like
- The 2019 Java Developer RoadMap
- 10 Things Java Programmer Should Learn in 2019
- 5 Websites to learn Python for FREE
- 10 Programming languages You can Learn in 2019
- 10 Tools Every Java Developer Should Know
- 10 Websites to learn Git and Github for FREE
- 10 Reasons to Learn Python in 2019
- 10 Reasons to Learn Java Programming languages
- 10 Frameworks Java and Web Developer should learn in 2019
- 10 Tips to become a better Java Developer in 2019
- Top 5 Java Frameworks to Learn in 2019
- 21 Websites to Learn Coding Online for FREE
P.S. If you know any excellent online resources to learn Java, especially for beginners, which you think complements these two websites, then feel free to share. Everybody loves free resources and happy learning programming.
Join the conversation