
This course includes our updated coding exercises so you can practice your skills as you learn.
See a demo
In this video, you will have a general overview about this course and it's contents.
If you would like to obtain a discount, feel free to reach out to me via the below link where you can find my socials:
https://www.udemy.com/user/mousa-al-bateh/
In this video, I'll explain to you what to do when you get stuck with a problem and how to request for support.
Introduction into Secure coding
How to handle sensitive data on application's runtime.
In this lesson, we will discuss SQL code injection and how to prevent it.
We will discuss in this video how to handle client side input (e.g. forms).
In this lesson, we will be discussing a pitfall when overriding toString() of a class and associated risks.
In this lesson, we will discuss the singleton and how to prevent a vulnerability that may lead to breaking the singleton.
We should always make the singleton's class constructor as private to force using the static method we have just created.
In this lesson, I will show you how to spot vulnerabilities in any dependencies you use and some tricks to keep your dependencies up to date.
An introduction about the section.
In this section, we will discuss objects that can have too many parameters on instantiation.
In this lesson, we will cover comparing objects.
In this lecture, we will discuss the static factory method and how it differs from ordinary constructors.
In this lesson, we discuss the important elements or rules when overriding equals or hashcode.
P.S. Please note that the code in this lecture will be slightly different from what is displayed but the result of the code is essentially the same as in lecture (Comparing Objects).
In this lesson, we will cover a very important topic on how to properly handle monetary and precise decimal calculations in Java.
Learn about Test-Driven Development and how to apply it in code.
In this lecture, we will explore the Optional class in Java as well as the benefits of using Optional to mitigate null pointer exceptions.
We will discuss here different ways of handling strings and the differences between them.
We will explain some basics related to Big O Notation
We will be discussing a common pitfall when performing a search on an array or array list.
We will discuss in this video a systematic approach to deciding which type of data structures to use.
In this lesson,we will discuss the differences between Scanner and BufferedReader
In this lecture, we will discuss performance of FileWriter and BufferedWriter for writing char sequences into a file.
Introduction to Multithreading and simple use case in Java.
In this lecture, we will explore a very powerful multithreading technique called CountDownLatch and its use cases.
In this lesson, we will discuss the SOLID principles.
We will explain the principles in code examples.
You will understand the DRY principle.
In this video, we will discuss the KISS Principle
In this lesson, we will discuss the differences between composition and inheritance and why to favor composition.
You will learn here how to leverage Java to efficiently calculate cumulative ROI over a specific timeline.
We will explore java.util.Collections#disjoint method to handle checking for intersection between different sets.
You will learn in this lecture how to use the Record class to reduce boilerplate code.
https://bitbucket.org/goodhero4u/java-best-practices/src/development/
Do you want to write quality code?
Do you want to improve your odds in coding interviews?
Do you want better control of your code with fewer errors, problems, and security issues?
Do you need hands-on practice?
Do you want to write faster and more responsive applications?
Do you want to be able to identify bugs and mistakes much faster?
--If you answered "YES" to more than two of the above questions, you've come to the right place!
This course focuses on the following topics:
Avoiding common mistakes.
Writing faster code.
How to write secure code.
How to handle common problems and future-proof your code.
Recommendations with practical examples.
How to leverage multithreading
Common coding challenges and their solutions.
What makes this course different?
The majority of the topics you'll learn in this course are NOT usually covered by ordinary Java courses.
You will learn tips and ideas from experienced developers who have developed commercial software.
Practical problems with practical solutions.
An interactive course designed to provide fun challenges.
Why enroll in this course?
Improve your coding skills in Java.
Greater confidence in job interviews.
Write more secure, efficient and maintainable code.
Finally, we regularly maintain this course and will add more tips and ideas as they arise, so you will always be up-to-date.