Skip to content

Comprehensive programming language learning repository with Exercism exercises, progress tracking, and detailed learning roadmaps for systematic skill development.

Notifications You must be signed in to change notification settings

kbrdn1/Exercism

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

22 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš€ Multi-Language Programming Journey - Exercism

A comprehensive learning roadmap for mastering Go and Rust through structured practice with Exercism's excellent exercise collections.

🌟 About Exercism

Exercism is a free, open-source platform designed to help you get really good at programming. With 77 programming languages and over 7,329 coding exercises, Exercism offers a unique blend of learning, practice, and human mentoring - all completely free, forever.

What Makes Exercism Special?

  • 🎯 Learn by Doing - Solve real coding problems that build understanding
  • πŸ‘₯ Human Mentoring - Get personalized feedback from experienced developers
  • πŸ”§ CLI-First - Work locally in your preferred environment
  • 🌐 Browser Support - Try languages without local installation
  • πŸ€– Automated Analysis - Instant feedback on your solutions
  • πŸ† Community-Driven - Independent, not-for-profit organization

πŸ“Š Overall Progress

Language Completed In Progress Available Locked Total Progress
Go 13 βœ… 0 πŸ”„ 113 πŸ“‹ 17 πŸ”’ 141 9.2%
Rust 1 βœ… 0 πŸ”„ 97 πŸ“‹ 0 πŸ”’ 98 1.0%
Total 14 0 210 17 239 5.9%

🎯 Current Focus

🟒 Go Track - Primary Focus

  • Status: Strong foundation established
  • Current: All current exercises completed!
  • Recent: Completed Structs and Slices
  • Next: Ready for Methods and Interfaces

🟑 Rust Track - Getting Started

  • Status: Just beginning the journey
  • Current: Ready to tackle first exercises
  • Recent: Completed Hello World
  • Next: Reverse String and basic syntax

πŸ—‚οΈ Project Structure

exercism/
β”œβ”€β”€ README.md                 # This file - Global overview
β”œβ”€β”€ go/                       # Go learning track
β”‚   β”œβ”€β”€ README.md            # Go-specific roadmap
β”‚   β”œβ”€β”€ hello-world/         # Completed exercises
β”‚   β”œβ”€β”€ lasagna/
β”‚   β”œβ”€β”€ ...
β”‚   β”œβ”€β”€ need-for-speed/      # Completed
β”‚   └── card-tricks/         # Completed
└── rust/                    # Rust learning track
    β”œβ”€β”€ README.md            # Rust-specific roadmap
    β”œβ”€β”€ hello-world/         # Completed
    └── reverse-string/      # Available to start

🎯 Learning Strategy

Phase 1: Go Foundation (Current)

  • Goal: Master Go fundamentals and syntax
  • Timeline: 2-3 months
  • Target: Complete 30+ Go exercises
  • Focus Areas:
    • Basic syntax and data types
    • Control structures and functions
    • Structs, methods, and interfaces
    • Error handling and concurrency basics

Phase 2: Rust Introduction (Next)

  • Goal: Start Rust fundamentals while maintaining Go momentum
  • Timeline: 1-2 months parallel learning
  • Target: Complete 15+ Rust exercises
  • Focus Areas:
    • Ownership and borrowing concepts
    • Pattern matching and enums
    • Error handling with Result/Option
    • Basic memory management

Phase 3: Advanced Concepts (Future)

  • Goal: Tackle advanced topics in both languages
  • Timeline: 3-4 months
  • Target: Medium/Hard exercises in both tracks
  • Focus Areas:
    • Advanced concurrency patterns
    • Performance optimization
    • Complex data structures
    • Language-specific advanced features

πŸ› οΈ Quick Start

Prerequisites

# Install Go
go version  # Should be 1.19+

# Install Rust
rustc --version  # Should be 1.70+
cargo --version

# Install Exercism CLI
exercism version

Running Exercises

Go

cd exercism/go/[exercise-name]
go test                    # Run tests
go test -v                 # Verbose output
exercism submit *.go       # Submit solution

Rust

cd exercism/rust/[exercise-name]
cargo test                 # Run tests
cargo test -- --nocapture # With output
exercism submit src/lib.rs # Submit solution

πŸ“š Language-Specific Resources

🟒 Go Resources

🟑 Rust Resources

πŸ”— Quick Navigation

πŸ€” Why Learn Both Languages?

Go Strengths

  • Simplicity: Easy to learn and read
  • Concurrency: Excellent goroutines and channels
  • Performance: Fast compilation and execution
  • Ecosystem: Great for web services, APIs, DevOps tools

Rust Strengths

  • Memory Safety: Zero-cost abstractions without garbage collection
  • Performance: System-level performance with safety
  • Concurrency: Fearless concurrency with ownership system
  • Ecosystem: Great for systems programming, web assembly, blockchain

Complementary Skills

  • Go: Rapid development, microservices, cloud-native applications
  • Rust: System programming, performance-critical applications, embedded systems
  • Together: Full-stack systems programming capabilities

πŸ“ˆ Progress Tracking

Learning Metrics

  • Exercises Completed: 14/239 (5.9%)
  • Concepts Mastered: 19+ across both languages
  • Time Investment: ~2-3 hours per week per language
  • Consistency: Daily practice goal

Skill Development

  • Problem Solving: Algorithm implementation across languages
  • Language Comparison: Understanding design philosophies
  • Best Practices: Idiomatic code in each language
  • Testing: TDD approach with language-specific test frameworks

πŸ† Achievements

Go Achievements

  • βœ… First Steps: Completed Hello World and basic syntax
  • βœ… Control Flow Master: Mastered conditionals and loops
  • βœ… String Manipulator: Advanced string operations
  • βœ… Slice Master: Mastered dynamic arrays and collections
  • βœ… Struct Master: Mastered custom data types and methods
  • βœ… Loop Master: Mastered for loops and iteration patterns
  • βœ… Function Master: Mastered variadic functions and advanced function patterns
  • 🎯 Ready for Next Level: All current exercises completed!

Rust Achievements

  • βœ… Hello Rust: Completed first Rust program
  • 🎯 Next: Ready for string manipulation exercises

🀝 Community & Support

Learning Approach

  • Mentor Reviews: Request feedback on Exercism solutions
  • Community: Engage with Exercism and language communities
  • Documentation: Maintain detailed learning notes
  • Comparison: Cross-language concept mapping

Contribution Goals

  • Share learning insights and alternative solutions
  • Help other learners through mentoring
  • Contribute to open-source projects in both languages
  • Create learning resources and tutorials

πŸ“ Learning Notes

"The best way to learn a programming language is by solving real problems. This dual-track approach with Go and Rust provides complementary perspectives on modern systems programming - Go's simplicity and Rust's safety, together forming a powerful toolkit for any developer."

Key Insights

  • Go: Focus on simplicity and rapid development
  • Rust: Emphasize safety and performance
  • Both: Strong typing, modern tooling, active communities

Last Updated: December 2024
Next Review: Weekly progress updates
Learning Pace: Consistent daily practice with weekly milestone reviews

About

Comprehensive programming language learning repository with Exercism exercises, progress tracking, and detailed learning roadmaps for systematic skill development.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published