- Overview
- ๐ Quick Start
- ๐๏ธ Repository Structure
- ๐ป Development
- ๐งช Testing
- ๐ค Contributing
- ๐ Project Stats
- ๐ Resources
- ๐ License
This repository is a comprehensive learning resource for computer science fundamentals, containing thousands of coding problems and system design concepts from top interview platforms and educational resources. Whether you're preparing for technical interviews or strengthening your programming foundation, this repository provides structured practice across multiple programming languages.
- ๐ฏ 20+ Coding Platforms: LeetCode, HackerRank, InterviewBit, and more
- ๐๏ธ System Design: Real-world architecture problems and solutions
- ๐ Book Solutions: Implementation from "Cracking the Coding Interview" and other technical books
- ๐ Multi-Language Support: Java, Python, JavaScript implementations
- ๐งช Comprehensive Testing: Unit tests for all solutions
- ๐ Progress Tracking: Automated problem counting and statistics
- ๐ CI/CD Pipeline: Automated testing and code quality checks
- Java: OpenJDK 19+ (Download here)
- Python: 3.x (Download here)
- IDE: VS Code (recommended)
-
Clone the repository:
git clone https://github.com/manastalukdar/learning-technical.git cd learning-technical
-
Run tests to verify setup:
# Java tests ./gradlew test # Python tests python scripts/run_unit_tests.py
-
Open in VS Code (recommended):
code .
Run specific problem tests:
./gradlew test --tests "*TwoSum*"
Generate coverage report:
./gradlew jacocoTestReport
Count problems in repository:
python scripts/get_problems_count.py
learning-technical/
โโโ ๐ src/
โ โโโ ๐ฏ LeetCode/ # LeetCode problems & solutions
โ โโโ ๐ HackerRank/ # HackerRank challenges
โ โโโ ๐ CrackingTheCodingInterview/ # Book implementations
โ โโโ ๐ EducativeIo/ # Grokking coding patterns
โ โโโ ๐๏ธ ByteByByteGo/ # System design content
โ โโโ ๐ก InterviewBit/ # Interview preparation
โ โโโ ๐ _notes/ # Study notes from tech books
โโโ ๐งช scripts/ # Automation and testing scripts
โโโ ๐ website/ # Problem browsing interface
โโโ ๐ build.gradle # Java build configuration
โโโ ๐ requirements.txt # Python dependencies
Each problem typically includes:
- ๐
readme.md
- Problem description and approach - โ๏ธ
metadata.json
- Problem metadata and tags - ๐ป Solution files in multiple languages
- โ Comprehensive unit tests
Technology | Version | Purpose |
---|---|---|
โ Java | 19+ | Primary language for algorithms |
๐ Python | 3.x | Secondary implementation language |
๐ฆ Gradle | Latest | Build automation and dependency management |
๐งช JUnit 5 | Latest | Java testing framework |
๐ JaCoCo | Latest | Code coverage analysis |
๐ง VS Code | Latest | Recommended development environment |
-
Create a new problem solution:
# Navigate to appropriate platform folder cd src/LeetCode/src/Problems/P1_P100/P1_TwoSum/ # Create solution and test files touch Java/Solution.java Java/SolutionTest.java
-
Run tests during development:
# Run all tests ./gradlew test # Run specific test ./gradlew test --tests "SolutionTest"
-
Check code coverage:
./gradlew jacocoTestReport # View report at build/reports/jacoco/html/index.html
Java Tests (JUnit 5):
# Run all Java tests
./gradlew test
# Run tests with verbose output
./gradlew test --info
# Run specific test class
./gradlew test --tests "*TwoSum*"
Python Tests:
# Run all Python tests
python scripts/run_unit_tests.py
# Run individual test file
python -m pytest src/LeetCode/Python/test_solution.py
Coverage Reports:
# Generate Java coverage report
./gradlew jacocoTestReport
# View HTML report
open build/reports/jacoco/html/index.html
All code changes are automatically tested using:
- โ GitHub Actions: Build and test automation
- ๐ Super Linter: Code quality and style checks
- ๐ CodeCov: Coverage reporting
- ๐ฏ Multiple OS Testing: Linux, Windows, macOS
We welcome contributions! Here's how to get started:
- Fork the repository
- Create a feature branch:
git checkout -b feature/new-problem
- Add your solution with tests
- Run tests:
./gradlew test
- Submit a Pull Request
- โ Include comprehensive test coverage
- ๐ Add clear problem descriptions
- ๐ท๏ธ Update metadata.json files
- ๐ฏ Follow existing code organization
- ๐ Reference original problem sources
Detailed guidelines: Contributing Guide
- ๐ฏ 20+ Coding Platforms covered
- ๐ 1000+ Problems implemented
- ๐ 3 Programming Languages (Java, Python, JavaScript)
- ๐๏ธ System Design problems included
- โ Comprehensive Test Coverage
- ๐ Active Maintenance and updates
- ๐ GitHub Projects - Project management
Document | Purpose |
---|---|
๐ Requirements | Development environment setup |
๐๏ธ Architecture | System design and structure |
๐ CI/CD | Build and deployment pipeline |
๐ Metadata | Project statistics and badges |
Learning Philosophy: This repository prioritizes understanding over original problem-solving. Solutions may reference existing implementations to accelerate learning. All sources are properly attributed.
Problem Uniqueness: Some problems appear across multiple platforms. We're developing a web interface to filter and display unique problem instances.
This project is licensed under the MIT License - see the LICENSE file for details.
โญ Star this repository if it helps you learn!