Skip to content

What to Program to Improve My Skills

Introduction

Improving your programming skills requires hands-on practice with projects that challenge different aspects of development. Whether you're focusing on problem-solving, efficiency, or learning new languages, structured projects will help solidify your understanding. Below is a roadmap of projects categorized by skill level and domain.


Beginner Projects

If you're starting out or exploring a new language, these projects will help with fundamentals like syntax, loops, functions, and data structures.

  • To-Do List App (Console-based or GUI)
  • Simple Calculator
  • Weather App (Using an API like OpenWeather)
  • Basic Web Scraper (Using requests and BeautifulSoup in Python)
  • File Organizer (Sort files in directories based on type)

Intermediate Projects

These projects introduce algorithms, data handling, and APIs, pushing you beyond basic scripting.

  • Expense Tracker with Database (Using SQLite or PostgreSQL)
  • REST API Service (Build with Flask, FastAPI, or Express.js)
  • Automated Testing Framework (Write tests for existing projects using Pytest, JUnit, etc.)
  • CLI Password Manager
  • Game Development (Simple game using Pygame, Unity, or Godot)
  • CI/CD Pipeline (Automate deployments using GitHub Actions, GitLab CI/CD, or Jenkins)

Advanced Projects

Once you're comfortable with programming, challenge yourself with performance optimization, system design, and scalability.

  • Full-Stack Web App (MERN, Django, or Spring Boot)
  • Custom Compiler or Interpreter (Learn how languages work under the hood)
  • Distributed System (Microservices Architecture)
  • AI-Powered Chatbot (Using OpenAI API or TensorFlow)
  • DevOps Tooling (Infrastructure as Code, Kubernetes, or Terraform projects)
  • Blockchain App (Smart contracts on Ethereum using Solidity)

Super Projects (Not a Breeze)

If you want to deepen your programming knowledge, check out Austin Z. Henley's blog (Associate Teaching Professor at Carnegie Mellon University).

These projects involve tools and structures not commonly used, so be prepared for a serious challenge.

Challenging Projects Every Programmer Should Try:

  • Original List

    • Text editor
    • 2D game (Space Invaders)
    • Compiler (Tiny BASIC)
    • Mini operating system
    • Spreadsheet
    • Video game console emulator
  • Sequel

    • Ray tracer
    • Key-value store web API
    • Web browser
    • Stock trading bot
  • Sequel 2: Algorithm Challenges

    • Topological sort
    • Recursive descent parsing
    • Myers string difference
    • Bloom filter
    • Piece table
    • Splay tree

Tips for Growth

  1. Work on Open Source - Contribute to GitHub projects.
  2. Code Reviews - Read and analyze other people's code.
  3. Build What You Need - Solve real problems in your daily life.
  4. Write Technical Blog Posts - Document your learning process.
  5. Optimize Code - Revisit old projects and improve efficiency.

Final Thought

Your programming skills improve by building projects that challenge you. Pick something from each level, and keep coding!