Skip to content

GWizard98/javascript-learning

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

12 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

CI Node Tested with Jest License: MIT PRs Welcome GitHub stars

๐Ÿš€ Java & JavaScript Learning Journey (50/50)

Master Both Languages Together - A comprehensive dual-language learning platform with 150+ exercises, cross-language projects, and professional development paths.

๐ŸŽฏ Perfect for: Developers learning their second language, full-stack engineers, bootcamp students, and anyone wanting to understand how JavaScript and Java complement each other.

๐ŸŒŸ Why Learn Both Languages?

  • ๐Ÿ”„ Cross-Language Skills: Understand concepts in both frontend and backend contexts
  • ๐Ÿ“ˆ Career Flexibility: Full-stack opportunities with modern JavaScript + enterprise Java
  • ๐Ÿงช Test-Driven: Every concept tested in both languages (Jest + JUnit)
  • ๐Ÿ› ๏ธ Real Projects: Build complete applications with JS frontend + Java backend
  • ๐Ÿ“š Comprehensive: Equal coverage of both languages with comparison exercises
  • ๐Ÿค Community: Learn from developers skilled in both ecosystems

๐ŸŽฎ Quick Demo - Choose Your Language

JavaScript Track

# 1. Clone and setup 
git clone https://github.com/GWizard98/javascript-learning.git
cd javascript-learning && npm install

# 2. Run JavaScript tests
npm test javascript/exercises/basics/sum
# โœ“ JavaScript: 3 tests passing

# 3. Try advanced JS concepts
npm test javascript/exercises/oop/classes-and-objects
# โœ“ OOP in JavaScript: 25+ tests passing

Java Track

# 1. Test Java setup
cd java && mvn test
# โœ“ Java: 70+ tests passing

# 2. Compare with JavaScript
mvn test -Dtest=*OOPTest
# โœ“ Same concepts, Java syntax

Cross-Language Projects

# Full-stack application
cd cross-language-projects/task-manager
# JavaScript frontend + Java backend

๐Ÿ“Š Dual-Language Learning Paths

Choose your learning style: Side-by-side comparison or deep-dive single language

๐Ÿ”„ Cross-Language Track (Recommended - 6-8 weeks)

  • Week 1-2: Variables & Functions in both JS and Java
  • Week 3-4: OOP Concepts - Compare ES6 Classes vs Java Classes
  • Week 5-6: Data Structures - Arrays/Collections in both languages
  • Week 7-8: ๐ŸŽฏ Capstone: Full-stack app (JS frontend + Java backend)

๐ŸŸจ JavaScript Specialist Track (4-5 weeks)

  • Fundamentals โ†’ javascript/exercises/basics/ (20+ exercises)
  • Modern JS โ†’ javascript/exercises/es6-plus/, javascript/exercises/async/
  • DOM & Web APIs โ†’ javascript/exercises/dom/ (Required for web dev)
  • Advanced OOP โ†’ javascript/exercises/oop/ (ES6 classes, design patterns)
  • ๐ŸŽฏ Projects โ†’ javascript/projects/ (Todo app, interactive sites)

๐Ÿ”ต Java Specialist Track (4-5 weeks)

  • Core Java โ†’ java/src/main/java/learning/basics/ (Variables, Control Flow)
  • OOP Mastery โ†’ java/src/main/java/learning/oop/ (Inheritance, Polymorphism)
  • Collections & Algorithms โ†’ java/src/main/java/learning/basics/ArraysCollections
  • Exception Handling โ†’ java/src/main/java/learning/exceptions/
  • ๐ŸŽฏ Projects โ†’ Spring Boot APIs, enterprise patterns

๐ŸŒ Full-Stack Integration

  • Task Manager โ†’ cross-language-projects/task-manager/
  • E-commerce Platform โ†’ React frontend + Spring Boot backend
  • Real-time Chat โ†’ WebSocket integration
  • Microservices โ†’ JavaScript BFF + Java services

๐Ÿข Dual-Language Project Structure

java-javascript-learning/
โ”œโ”€ javascript/                     # ๐ŸŸจ JavaScript Learning (50%)
โ”‚  โ”œโ”€ exercises/
โ”‚  โ”‚  โ”œโ”€ basics/                 # Variables, functions, operators
โ”‚  โ”‚  โ”œโ”€ intermediate/           # Array methods, real-world patterns  
โ”‚  โ”‚  โ”œโ”€ async/                  # Promises, async/await, APIs
โ”‚  โ”‚  โ”œโ”€ dom/                    # Interactive web elements (Required)
โ”‚  โ”‚  โ””โ”€ oop/                    # ES6 classes, design patterns
โ”‚  โ””โ”€ projects/
โ”‚     โ”œโ”€ calculator/             # Beginner project
โ”‚     โ””โ”€ intermediate-todo-app/  # Advanced patterns
โ”œโ”€ java/                           # ๐Ÿ”ต Java Learning (50%)
โ”‚  โ”œโ”€ src/main/java/learning/
โ”‚  โ”‚  โ”œโ”€ basics/                 # Variables, control flow, strings
โ”‚  โ”‚  โ”œโ”€ oop/                    # Classes, inheritance, polymorphism
โ”‚  โ”‚  โ””โ”€ exceptions/             # Error handling patterns
โ”‚  โ”œโ”€ src/test/java/learning/     # 70+ JUnit tests
โ”‚  โ””โ”€ pom.xml                     # Maven configuration
โ”œโ”€ cross-language-projects/        # ๐Ÿ”„ Full-Stack Integration
โ”‚  โ””โ”€ task-manager/               # JavaScript frontend + Java backend
โ”‚  โ””โ”€ combination-lab/            # Advanced polyglot demos
โ”œโ”€ docs/
โ”‚  โ”œโ”€ javascript-guide.md          # JS-specific documentation
โ”‚  โ”œโ”€ java-guide.md               # Java-specific documentation  
โ”‚  โ””โ”€ language-comparison.md      # Side-by-side concept comparison
โ””โ”€ WARP.md                        # Unified dual-language guide

๐ŸŒ Cross-Language Integration Features

  • Parallel Exercises: Same concepts implemented in both languages
  • Full-Stack Projects: JavaScript frontend + Java Spring Boot backend
  • Comparison Guides: Side-by-side syntax and pattern analysis
  • Career Paths: Frontend specialist, Backend specialist, or Full-Stack

Getting Started

  1. Install dependencies
npm ci || npm install
  1. Run the test suite
npm test

Running Tests

  • Test files live next to their implementations and end with .test.js.
  • Use npm test to run all tests or npm test -- <pattern> to filter, e.g.:
npm test -- sum

Adding New Exercises

  1. Create a new file in exercises/<topic>/yourFunction.js.
  2. Create a matching spec exercises/<topic>/yourFunction.test.js.
  3. Start with a failing test, implement the function, and iterate.

Example:

// exercises/strings/reverse.js
function reverse(s) { return s.split('').reverse().join(''); }
module.exports = reverse;

// exercises/strings/reverse.test.js
const reverse = require('./reverse');

test('reverses a string', () => {
  expect(reverse('abc')).toBe('cba');
});

Learning Path & Roadmap

JavaScript Track

  • Basics: functions, numbers, strings
  • Data structures: arrays, objects, maps/sets
  • Control flow: conditionals, loops, iteration
  • ES6+ features: arrow functions, destructuring, spread/rest, modules
  • Error handling: try/catch, custom errors
  • Async JS: promises, async/await, fetch
  • Testing: mocking, coverage, testing strategies
  • Bonus: DOM basics (optional), TypeScript primer (optional)

๐ŸŸฆ Java Track (java/)

Complete Java fundamentals with 70+ tests covering:

  • Variables, data types, and type conversion
  • String manipulation and StringBuilder
  • Control flow: loops, conditionals, algorithms
  • Arrays, Collections (ArrayList, HashMap)
  • Object-Oriented Programming: inheritance, polymorphism
  • Exception handling with custom exceptions
# Quick start with Java bonus content
cd java-bonus/
mvn test  # Run all 70+ Java tests

See java-bonus/WARP.md for complete Java instructions.

๐ŸŽ† Live Examples & Success Showcase

๐Ÿ“Š Test Output Examples

$ npm test -- array-methods

PASS exercises/intermediate/array-methods.test.js
  โœ“ transforms user data for UI display (15ms)
  โœ“ calculates e-commerce cart totals with tax (8ms)
  โœ“ groups sales data by region/product (12ms) 
  โœ“ implements smart search with ranking (22ms)
  โœ“ validates form data with custom rules (18ms)
  โœ“ processes API responses with error handling (31ms)

Test Suites: 1 passed, 1 total
Tests: 25 passed, 25 total
Time: 2.847s

๐Ÿ› ๏ธ Project Showcase

๐Ÿงฎ Advanced Todo App (Intermediate)

  • Features: Local storage, filtering, bulk operations, inline editing
  • Skills: ES6 classes, event handling, data validation, error recovery
  • Real-world patterns: MVC architecture, defensive programming
  • Try it: Open projects/intermediate-todo-app/index.html

๐Ÿงช Calculator Pro (Beginner)

  • Features: Scientific operations, history, keyboard shortcuts
  • Skills: Functions, error handling, DOM manipulation
  • Growth path: From basic math to complex expressions

๐Ÿ† Success Stories & Community Impact

โ€œWent from zero JavaScript knowledge to landing my first frontend job in 3 months using this repo!โ€ - Sarah M., Junior Developer

โ€œThe progressive structure and real projects made all the difference. Finally understood async/await!โ€ - Mike L., Career Switcher

โ€œUsed this to transition from Java to JavaScript. The bonus Java section helped bridge concepts!โ€ - David K., Full-Stack Developer

๐Ÿ›ฃ๏ธ Community & Support

๐Ÿ’ฌ Get Help

  • Discussions: Ask questions, share projects
  • Issues: Report bugs, request features
  • Study Groups: Weekly virtual meetups (check Discussions)

๐ŸŽฏ Contributing & Learning Together

  • Good First Issues: Perfect entry points for contributors
  • Code Review Program: Get feedback from experienced developers
  • Exercise Creation: Help build new challenges for fellow learners
  • Mentorship: Connect with successful graduates

๐Ÿ† Achievement System

Earn badges as you progress:

  • ๐Ÿฅ‰ First Steps: Complete first 5 exercises
  • ๐Ÿฅˆ Function Master: Complete all function exercises
  • ๐Ÿฅ‡ Async Expert: Master promises and async/await
  • ๐Ÿ† Project Builder: Complete first milestone project
  • ๐ŸŒŸ Community Contributor: Submit your first PR

Contributing

  • Follow the exercises-first pattern and always include tests.
  • Keep functions single-purpose and readable.
  • See CONTRIBUTING.md for branching, commit style, and PR guidelines.

License

ISC ยฉ Contributors

About

No description, website, or topics provided.

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors