- 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!