$ coding-challenges

Welcome to my coding challenges! These aren't just about solving puzzles; they're designed to help you build real-world skills alongside coding.

Every challenge teaches you two things:

  • How to solve a programming problem
  • How to use Git and GitHub like a professional developer

### why git?

Git is essential for any developer. Whether you're working on open source, collaborating with a team, or just want to track your own work, version control is a skill you'll use every day.

These challenges teach you the workflow that real developers use:

  • Forking a repository to make your own copy
  • Cloning that fork to work on it locally
  • Creating a branch for your solution
  • Writing code and committing changes
  • Opening a pull request for review

### how it works

1. Choose a Challenge - Pick one from the list below.

2. Fork the Repository - On the challenge's GitHub page, click the Fork button (top right). This creates your own copy under your account, which is the only copy you can push to.

3. Clone Your Fork - Replace YOUR_USERNAME with your GitHub username:

git clone https://github.com/YOUR_USERNAME/challenges-fizzbuzz.git
cd challenges-fizzbuzz

4. Create a Branch - Keep your solution separate from main:

git checkout -b yourusername/solution

5. Write Your Solution and Run the Tests - Solve in whatever language you like and run its test suite:

npm test            # JavaScript / TypeScript
pytest              # Python
go test ./...       # Go
cargo test          # Rust
rake test           # Ruby
mvn test            # Java
dotnet test         # C#

6. Commit and Push to Your Fork

git add .
git commit -m "Solution in [language]"
git push origin yourusername/solution

7. Open a Pull Request - Go to your fork on GitHub. After your push, a banner appears offering to open a pull request against the original repo. Click it, describe your approach, and submit. I'll review and merge.

### supported languages

Each challenge has tests for JavaScript, Python, Go, Rust, Ruby, Java, C#, and TypeScript. Solve in whatever language you're comfortable with.

Don't see your language? Add your own tests and submit a PR to the challenge repo!

### available challenges

  • FizzBuzz [Beginner]

    The classic coding interview question. Print numbers 1-100, replacing multiples of 3 with "Fizz", multiples of 5 with "Buzz", and multiples of both with "FizzBuzz".

  • Check if a string reads the same forwards and backwards. Ignore case and non-alphanumeric characters.

  • Two Sum [Easy]

    Given an array of numbers and a target, find two numbers that add up to the target. Return their indices.

  • Check if two strings are anagrams of each other - they contain the same letters in a different order.

More challenges coming soon! Have a suggestion? Open an issue on any challenge repository.