- Published on
Where the Journey begins
It starts here
This is where my journey begins as a Java Software Engineer. To master the language, ecosystem and tools it has to offer.
I have not been programming for some time and in order to achieve my goal in becoming a Java Software Engineer, I will need to work really hard.
Going through Google Gemini to help me build a list of projects and being able to specify what I could learn from them. I have asked to make 150 different projects in a range of complexity.
Here is category 1, a list a of 20 projects to get me started in the journey.
NEET to SWE Project Series
NEET to SWE is a project-based series where I learn and develop my skill sets.
Projects
Java Core Projects: Foundational & Command Line Tools
These projects are excellent for getting comfortable with Java's syntax, basic input/output, and fundamental control flow, leveraging the java.io, java.util, and java.lang packages.
1. Simple Calculator
- Core Concepts: Basic arithmetic operations,
Scannerfor input,System.out.printlnfor output,if-elseorswitchstatements. - Enhancements: Support for exponents, square roots, order of operations (using a
Stackfor operator precedence), trigonometric functions (fromMathclass). - How to Succeed: Start with two numbers and one operation, then expand. Use a
whileloop for continuous calculations until the user exits. - Resume: Demonstrates basic logic, control flow, and command-line interaction in Java.
2. To-Do List (Command Line)
- Core Concepts:
ArrayListfor tasks, File I/O (FileWriter,FileReader,BufferedReader,PrintWriter),Stringmanipulation, object-oriented design (e.g.,Taskclass). - Enhancements: Prioritization, due dates (using
LocalDate), task categories (enums), marking as complete. Error handling for file operations. - How to Succeed: Begin with in-memory storage, then add file persistence. Focus on a clean
Taskclass. - Resume: Shows ability to manage data, simple state, and persistence using Java I/O.
3. Number Guessing Game
- Core Concepts:
Randomclass,whileloops,if-elsestatements, user input validation (try-catchforInputMismatchException). - Enhancements: Difficulty levels, tracking number of tries, high scores (saved to file), multiple rounds.
- How to Succeed: Keep it simple initially; focus on the core game loop and input handling.
- Resume: Reinforces fundamental control flow and exception handling.
4. Mad Libs Generator
- Core Concepts:
Stringconcatenation,Scannerfor user input,ArrayListor arrays for word lists,String.format(). - Enhancements: Multiple story templates (read from files), saving custom templates.
- How to Succeed: Define a clear template with placeholders first.
- Resume: Demonstrates string handling and basic data management.
5. Rock-Paper-Scissors Game
- Core Concepts: Random choices for AI,
if-elseorswitchfor game logic, enum for choices. - Enhancements: Best of N rounds, score tracking, different game modes.
- How to Succeed: Map inputs to choices clearly and handle ties.
- Resume: Basic game logic and decision making in Java.
6. Unit Converter
- Core Concepts: Numeric conversions,
HashMapfor unit mappings, enum for unit types, custom exceptions for invalid units. - Enhancements: More unit categories (length, weight, temperature, volume), command-line arguments (using
mainmethod args). - How to Succeed: Start with one conversion type (e.g., Celsius to Fahrenheit), then abstract it.
- Resume: Shows practical application of data structures, enums, and formulas.
7. Simple Text Editor (Command Line)
- Core Concepts: File I/O (
BufferedReader,BufferedWriter),Stringmanipulation (indexOf,replace,substring),List<String>to hold lines. - Enhancements: Line numbering, undo/redo (using a
Stack), basic search/replace. - How to Succeed: Focus on read/write first, then add basic editing commands.
- Resume: Demonstrates robust file handling and string processing.
8. Countdown Timer/Stopwatch
- Core Concepts:
Thread.sleep(),System.currentTimeMillis(),DateorLocalDateTimefor precise timing, basic multithreading (if running in background). - Enhancements: Sound notification, pause/resume, lap times (for stopwatch), custom format for display.
- How to Succeed: Use a
Runnableor simple loop withThread.sleep(). - Resume: Shows understanding of time-based operations and basic concurrency.
9. Password Generator
- Core Concepts:
SecureRandomfor cryptographically strong random numbers,StringBuilderfor efficient string building, user-defined criteria (length, complexity usingchararrays). - Enhancements: Password strength checker, exclusion of ambiguous characters (e.g., 'l', '1', 'I', 'O', '0').
- How to Succeed: Start with a fixed set of characters, then allow user customization.
- Resume: Practical application of secure random generation and string building.
10. Dice Rolling Simulator
- Core Concepts:
Randomclass, loops,intarithmetic. - Enhancements: Multiple dice types (d4, d6, d8, d10, d12, d20), sum of rolls, specific roll combinations, tracking frequency of rolls.
- How to Succeed: Simulate one die roll first.
- Resume: Basic random number usage and simulation.
11. Text-Based Adventure Game (Choose Your Own Adventure)
- Core Concepts:
HashMapfor mapping choices to next "scenes,"Scannerfor user input, methods for each scene, object-oriented design for game state (Playerclass,Roomclass). - Enhancements: Inventory system (
ArrayList), character stats, multiple endings, saving game progress (serialization to file). - How to Succeed: Map out the story branches first. Use enum for game states or directions.
- Resume: Demonstrates complex logic, flow control, and basic object-oriented design.
12. Anagram Checker
- Core Concepts:
Stringconversion tochar[],Arrays.sort(),Stringcomparison,HashMapto count character frequencies. - Enhancements: Find all anagrams from a given word list (requires a dictionary file).
- How to Succeed: Understand how to normalize strings (lowercase, remove spaces) for comparison.
- Resume: Shows string manipulation and logical comparison, efficiency considerations.
13. Palindrome Checker
- Core Concepts:
Stringreversal (e.g.,StringBuilder.reverse()),Stringcomparison, handling case/spaces/punctuation (regex withString.replaceAll()). - Enhancements: Check for palindrome sentences.
- How to Succeed: Start with simple words, then add complexity.
- Resume: Basic string operations and logic.
14. Simple Chatbot (Rule-Based)
- Core Concepts:
String.contains(),if-elsechains orHashMap<String, String>for keyword-response mappings, basic regex for pattern matching. - Enhancements: More complex rule sets, simple conversational flow (tracking previous input), loading rules from a file.
- How to Succeed: Define a few keywords and their responses.
- Resume: Introduces basic text processing and rule-based systems.
15. CSV Reader/Writer
- Core Concepts:
FileReader,BufferedReaderfor reading,FileWriter,BufferedWriterfor writing,String.split(",")for parsing, handling quoted fields. - Enhancements: Filtering rows, sorting columns (using
Comparator), converting to other formats (JSON using a library like Gson/Jackson). - How to Succeed: Use a simple CSV file with a header.
- Resume: Practical data handling and parsing skills in Java.
16. Hangman Game
- Core Concepts:
Stringmanipulation,ArrayList<Character>for guessed letters, loops, tracking attempts, reading words from a file. - Enhancements: Word categories, graphical representation (ASCII art), scoring,
Set<Character>for efficient guessed letter checks. - How to Succeed: Manage the "guessed letters" and "correct letters" data.
- Resume: Game logic and string manipulation.
17. Blackjack Game (Text-Based)
- Core Concepts: Card game logic,
ArrayListfor deck and hands,Randomfor shuffling, enum for suits/ranks, object-oriented design (Card,Deck,Player,Dealerclasses). - Enhancements: Multiple players, betting, splitting/doubling down.
- How to Succeed: Focus on the core hit/stand logic and basic scoring.
- Resume: Demonstrates more complex game rules, state management, and strong OOP.
18. Metric to Imperial Converter
- Core Concepts: Numeric conversions, enum for conversion types,
switchstatement, user input validation. - Enhancements: Bi-directional conversion, support for more units, reading conversion rates from a properties file.
- How to Succeed: Implement one conversion pair and make it robust.
- Resume: Practical data conversion and modular design.
19. Simple Encryption/Decryption (Caesar Cipher)
- Core Concepts: Character manipulation, loops, modular arithmetic (
%), handling uppercase/lowercase. - Enhancements: Support for other simple ciphers (e.g., Vigenere), key management, basic GUI using Swing/JavaFX.
- How to Succeed: Understand character ASCII values and shifting.
- Resume: Basic cryptographic principles and character manipulation.
20. Alarm Clock (Command Line)
- Core Concepts:
LocalDateTime,Thread.sleep(),TimerandTimerTaskfor scheduling, basic sound playback (Java Sound API). - Enhancements: Multiple alarms, recurring alarms, custom sounds, alarm persistence (to file).
- How to Succeed: Get a basic single alarm working with a fixed time.
- Resume: Shows understanding of time, scheduling, and basic multimedia.