How to Think Like a Java Programmer
A Beginner’s Java Course with Heinz Kabutz
A Beginner’s Java Course with Heinz Kabutz
- Instill good software engineering principles from the beginning, such as source control and testing
- Get started programming in Java
- Learn what open source is and how contributing can help your career
This course is for anybody wanting to learn how to program in Java.
Most programming is picked up by copying code and then changing a few lines to make the code work for you. That is not a bad way to go about it, but this course takes a different approach, and adds a bit of structure to the process. We’ll cover all of the key elements of Java programming. We will start by learning how to clone a Git repository and then continue working with source control throughout the course. We will make sure that our code works by writing good unit tests. Lastly, we will have fun with a little anagram game that we will make more challenging during our session.
What you’ll learn and how you can apply it
By the end of the course, you’ll understand
- Java, including classes, interfaces, fields, methods, constructors
- Source control system Git
- Unit testing
And you’ll be able to:
- Get a boost to enter the exciting world of Java programming
- Succeed in this Java programming world with the right type of thinking
- Try out the concepts in a step-by-step hands-on tutorial
This course is for you because ...
- You don’t know anything about Java programming and want to get a good start in learning
- You want to secure your first Java job
- You want to learn about software engineering
Prerequisites
- Aptitude for or interest in math-related subjects
- Some programming experience (not essential, but helpful)
Course Set-up
Learners will use their IDE or the git command git clone URL
in a terminal or command prompt to clone the repository, which is provided during the course. Please do the following:
- Install the latest OpenJDK from here: https://jdk.java.net
- Install latest IntelliJ (Community or Ultimate Edition) from here: https://www.jetbrains.com/idea/download/
Recommended Preparation
- Read: The Pragmatic Programmer by David Thomas, Andrew Hunt
Recommended Follow-up
- Take our Data Structures in Java Course
- Take our Java Design Patterns Course
Your Instructor
Heinz Kabutz is the author of The Java Specialists’ Newsletter, a publication enjoyed by tens of thousands of Java experts in over 150 countries. He has been a Java Champion since 2005.
Course Curriculum
-
Preview1.1. Anagram project structure (4:37)
-
Start1.2. WordLibrary abstract class (11:09)
-
Start1.3. Swing User Interface (UI) (3:54)
-
Start1.4. Demo of -New Word- button (10:41)
-
Preview1.5. Demo of -Guess- button (1:54)
-
Start1.6. StaticWordLibrary (3:30)
-
Preview1.7. Changing the StaticWordLibrary size (5:04)
-
Start1.8. Adding our own words to the StaticWordLibrary (6:57)
-
Start1.9. WordLibraryTest with JUnit (7:13)
-
Start1.10. Testing that words are anagrams (2:30)
-
Start1.11. Running JUnit (0:15)
-
Start1.12. isAnagram() method (3:21)
-
Start1.13. Fixing StaticWordLibrary (8:34)
-
Start1.14. WordLibraries facade (3:34)
-
Start1.15. Exercise - Add words to StaticWordLibrary (0:49)
-
Start1.16. Git - Create branch for work (1:21)
-
Start1.17. Git - Committing changes (4:52)
-
Start2.1. Developer Roadmap by Devoxx (31:10)
-
Start2.2. Typical Maven directory structure (3:25)
-
Start2.3. IntelliJ Magic Shortcuts (1:03)
-
Start2.4. Avoid copy & paste programming (6:28)
-
Start2.5. Creating a ShuffledWordLibrary (6:57)
-
Start2.6. int array for shuffled instances (2:19)
-
Start2.7. Delegate to the other WordLibrary (3:20)
-
Start2.8. Trying out the -ShuffledWordLibrary- (1:30)
-
Start2.9. Committing our changes to Git (2:41)
-
Preview2.10. Shuffling the int array (4:59)
-
Start2.11. Trying out the shuffled anagram list (2:53)
-
Start2.12. How can we test private methods? (0:53)
-
Preview2.13. Moving the shuffle method to its own class (2:45)
-
Start2.14. Creating an ArrayShufflerTest (3:42)
-
Start2.15. Printing the indexes array (1:35)
-
Start2.16. Extending the tests (5:55)
-
Preview2.17. The goat, the wolf, and the cabbage (5:09)
-
Start2.18. Testing the integer swapping code (2:17)
-
Start2.19. Testing before running the application (2:25)
-
Start2.20. Fixing the ArrayShuffler (3:15)
-
Start2.21. Integer swapping with XOR (5:46)
-
Start2.22. Value of source control systems (2:43)
-
Start2.23. Abstract class vs interface (2:12)
-
Start2.24. Change WordLibrary to be an interface (2:01)
-
Start2.25. Commit to Git (1:51)