
This course includes our updated coding exercises so you can practice your skills as you learn.
See a demo
Deliver hands-on Java practice to eliminate code fear through a course structure that features over 40 puzzles, building fundamentals like variables, loops, recursion, object orientation, and core data structures.
Explore the basics of Java programming, focusing on the main method, methods, variables, and data types. Learn how to print, pass arguments, and return values within a single class.
Access dedicated TA support for quick answers through the course Q&A and Stack Overflow, with rapid responses and high-vote, detailed solutions.
Explore how strings are manipulated in Java by using length, substring, and index concepts, and practice control flow with if statements as you work through an assignment.
Extract the middle three characters of odd-length strings, or return the original if shorter than three, using length, mid index, and substring, with string comparisons and searches.
Master conditional logic with boolean data, if/else if/else, and or/and expressions, and learn to write boolean-returning methods through a dog trouble assignment example.
Explore how to harness while loops in Java to repeat actions, terminate loops with break, and extract categories from text using index of and substring in a guided assignment.
Explore for loops in Java by outlining initialization, test, and increment, and practice iterating strings with length and charAt, printing characters forward and backward, and solving even-number and infinite-loop pitfalls.
Explore how the Eclipse debugger reveals loop execution and variable changes in nested loops, and learn to use breakpoints and step over to understand iterations and performance and scalability.
Declare and initialize arrays in Java, handle 100-slot int arrays with default zeros, and use for and enhanced for loops, plus a search that returns an index or -1.
Master recursion with real-life and Java examples, including base cases and avoiding stack overflow, then tackle the assignment to recursively split a string by dollar signs.
Explore recursion concepts and the solution to last lesson's problem, implementing a base case to prevent stack overflow and learning to separate characters with a dollar sign using substring.
Watch the puzzles section progress from simple to recursion as you implement methods using boolean logic, loops, and string and array manipulation, guided by tests and project structure.
Solve Java puzzles to eliminate code fear by tackling assignment 0-2 and 0-3, exploring speeding fine logic with and without holidays, and refining boolean logic for readable single-line methods.
Practice boolean logic in Java with several puzzles: summer temperature ranges, ternary expression usage, modulus-based fizz buzz, and fuzzy wuzzy style number strings, all solved in Eclipse.
Tackle Java puzzles that count only unique numbers, ignore 13, and choose the nearest to 21 without going over, using careful if-else ordering to pass tests.
practice looping over a string to duplicate every character, then tackle a star-elimination puzzle that removes adjacent characters using substring, charAt, and indexOf, with for and while loop approaches.
Explore looping puzzles in Java: count string occurrences by length in arrays, compare two arrays for matching first characters, and compute the longest streak of identical characters.
Master recursion with no loops by solving puzzles that count 'yo' occurrences and move 'o's to the end, using base cases and substring traversal to pass all tests.
Master recursion with the hyphen split puzzle, inserting a dash between adjacent identical characters, guided by a base case for strings under two. Extract bracket contents recursively in assignment 19.
Explore object-oriented concepts by building a Java human class with attributes and behaviors, using a constructor and new to create objects like Tom and print their details.
Create and initialize multiple Java objects using constructors, explore the this keyword and instance variables, and make objects speak, eat, and sleep through dynamic field assignment.
Demystify how Java runs applications by exploring objects, classes, the main method, heap and stack memory, reference and instance variables, and garbage collection.
Learn how Java classes serve as blueprints to create runtime objects with constructors and attributes like age, gender, weight, and behaviors such as eat, sleep, swim, and fly.
Explore class inheritance in Java by showing how bird extends animal, inherits behavior, and uses super constructors to create valid objects, emphasizing code organization in object oriented programming.
Explore how interfaces and abstract classes organize Java code, using bird, chicken, and sparrow examples to show method overriding, contracts, and implementing flyable for reusable behavior.
Learn how abstract classes define a base with abstract methods, enforce implementation in subclasses, and use polymorphism to move different animals through a common move operation.
Explore abstract data types in Java, viewing them as trustworthy containers with a public API; implement a counter ADT with increment, get current value, and toString.
Learn how a stack implements last-in, first-out with push and pop operations. Explore safety checks, the top pointer, and simple tests, including reversing a string.
Push each character of the input string onto a stack and pop to reverse it. Use the stack to manage parentheses in equations, enabling accurate last-in, first-out parsing.
Understand the queue data structure built on an array, enforcing first in, first out with front and rear pointers. Implement insert, remove, and circular queue behavior.
Welcome to Java Puzzles to Eliminate Code Fear!
Are you frustrated by coding puzzles that even seasoned developers find challenging?
Do you wish to sharpen your logic skills and gain mastery over Java’s fundamental constructs?
Are you looking for a hands-on, practical approach that transforms theory into real coding expertise?
If you answered yes to any of these questions, you’re in the right place.
What Makes This Course Stand Out?
This course is built on the core principles of problem-solving in Java.
Inspired by insights from Jeff Atwood’s “Why Can't Programmers Program?”, it strips away unnecessary complexity to focus on what truly matters: mastering the building blocks of programming.
Every lesson zeroes in on method-level coding—covering string manipulation, loops, logic, recursion, and more—so you build a rock-solid foundation to tackle any coding challenge with confidence.
The motivation behind this course came from an article titled "Why Can't Programmers Program?" by Jeff Atwood. It talks about how poorly many candidates perform in coding interviews.
Why Java Puzzles and Problem Solving are Essential for your Career?
Surprisingly a large fraction of applicants, even those with masters’ degrees and phds in computer science, fail during interviews when asked to carry out basic programming tasks such as iterate over a loop and print numbers from 1 -10 . Or solve the common fizz buzz problem. And I’ve experienced this first hand when I interview candidates for software development positions.
They could have an impressive academic background as well as experience in various technologies and software projects, but when posed with an interesting programming problem, their code falls apart. The fact is, you don’t need a college education to become a good programmer. Simply there is a big divide between people who can program and those that can’t. It's my experience that the difference has to do with mastering the fundamental building blocks of programming.
And that’s basically method level coding and the mastery of topics like string manipulation, lists, loops, logic and recursion. These are fundamental granular components shared by all programming languages. Think of these as the tools a programmer can use to solve problems. And you really gotta know your tools well to be proficient at the craft!
You can’t learn programming by reading books. The fact is you just need a lot of practice. If you want to be a superb programmer, you have to program a lot and work on solving challenging problems that stretch your capabilities. This course offers a systematic and structured way for you to acquire that practice using only a subset of the java language without getting side tracked in other areas of software development. Every concept comes with a coding challenge. I ask you to try solving the challenge on your own before I go over the solution in detail. This approach has worked time and time again for my students.
KEY BENEFITS OF JAVA PUZZLES MASTERY
Mastering Java Puzzles will empower you to:
Enhance Critical Thinking: Transform your approach to problem-solving with hands-on coding challenges.
Boost Interview Confidence: Acquire the skills needed to ace coding interviews and excel in your career.
Solidify Core Concepts: Gain deep insights into Java’s essential tools, enabling you to write efficient, robust code.
Bridge Theory and Practice: Move seamlessly from learning concepts to applying them in real-world scenarios.
KEY TAKEAWAY
Java Puzzles isn’t just another programming course—it’s a transformative journey that empowers you to conquer coding challenges, master Java fundamentals, and evolve into a truly dangerous developer. Embrace the challenge and unlock your full potential!