>_ DevTrendses

Idioma

Inicio

Lenguajes

Secciones

Frontend Backend Móvil DevOps AI / ML GameDev Blockchain Embebidos Seguridad
Unknown

How to Stop Endlessly Learning Theory and Finally Build an Impressive Portfolio

Sound familiar? You've learned the syntax of a new language, figured out decorators or pointers, but when it comes down to it, your mind goes blank? "What should I build?" — this question kills motivation faster than a broken midnight build. You could make a Todo list for the hundredth time, or you could check out a repository that has become a true bible for those who want to get hands-on practice with real tasks.

Today we'll look at the karan/Projects — a massive list of development ideas that has gathered over 47,000 stars on GitHub. This isn't just a "collection of exercises" — it's a structured guide through the world of programming, from simple calculations to network protocols and graphics.

Why this list became legendary

The main problem with most learning courses is that they give you tools but not context. You know how a for loop works, but you don't understand why it's needed in the context of, say, an airline ticket booking system.

Karan Goel's project solves this problem. The author collected dozens of practical tasks that can be implemented in any programming language. It doesn't matter if you're learning Rust, Python, or trying to figure out assembly — these tasks are universal.

By the way, the project has a separate solutions repository where you can peek at how other developers implemented the same tasks in C++, Java, Go, or Haskell. It's a great way to compare approaches and idioms across different languages.

What's inside: from math to security

The entire list is broken down into logical categories. Let's walk through the most interesting ones and understand what they can teach you.

1. Numbers & Classic Algorithms

Here is where the first steps begin. But instead of the boring "print the value of Pi," you're asked to create a mortgage calculator or a currency converter.

  • Why it's useful: You'll learn to work with data types, calculation precision (hello, 0.1 + 0.2 in JS), and basic logic.
  • Example: Write a program that calculates the cost of floor tiles for a given area, accounting for price per unit. Seems simple? Add in accounting for cut tiles and different room shapes — and now you have a useful micro-service.

2. Working with Text (Text)

Text is the foundation of the web. In this section, tasks range from the classic Fizz Buzz to creating your own text editor like Notepad.

  • Interesting task: Caesar and Vigenere ciphers. This is the foundation of cryptography. By implementing them, you'll understand how the simplest data protection algorithms work and why they are so easy to crack.

3. Networks and Web (Networking & Web)

This is probably the most "meaty" part for those aiming at Backend or DevOps.

  • What you can build: A port scanner, a Whois utility, or a program for checking site availability on a schedule.
  • Practical value: You'll understand sockets, HTTP requests, and how data actually moves between computers. For example, writing your own Page Scraper will teach you to parse HTML and work with regular expressions.

4. Classes and Object-Oriented Design (Classes)

If you're confused about inheritance and polymorphism, this section is for you. Instead of abstract "Animals" and "Dogs," you're asked to design:

  • A product inventory management system.
  • A company employee hierarchy (managers, hourly workers, executives).
  • A hotel booking system.
  • What's the catch: Here you'll understand in practice why composition is often better than inheritance and how to properly design application architecture so it doesn't fall apart when you add a new feature.

Technical value for developers

The project doesn't impose a stack. These are "white label" tasks. In my practice, I often used this list when I needed to quickly learn a new framework. Want to learn FastAPI? Build an API for "Budget Tracker" from the Databases section. Want to understand multithreading in Go? Implement "Bulk Thumbnail Creator" from the Threading section.

Example: How this levels up your skills

Let's take the "Credit Card Validator" task.

  1. You need to study the Luhn algorithm (checksum).
  2. Implement input handling (string validation).
  3. Write tests for different card types (Visa, Mastercard). In the end, a small task turns into a full mini-project with logic, tests, and documentation.

How to use this repository wisely

Don't try to solve everything at once. Here's my advice on how to get the most out of it:

  1. Fork the repository. This will be your personal checklist.
  2. Choose a category that's closest to you (for example, if you want to go into Web, start with the Networking section).
  3. Add complexity. If a task seems too simple, add a GUI, a database for storing results, or package everything in a Docker container.
  4. Look at others' solutions. After you've written your code, go to Projects-Solutions and see how others did it. This opens your eyes to many nuances.

Bottom line: is it worth the time?

Absolutely yes. In a world where everyone copies projects from YouTube tutorials, independently solving tasks from this list will set you apart from other juniors and mid-level developers. It's a great way to build a portfolio that you're not ashamed to show to an employer, because behind each project will be your logic and your architectural decisions.

If you're stuck in a "learning loop" and don't know where to go next — just pick any task from the "Classic Algorithms" or "Databases" section and start coding. See you on GitHub!

Proyectos relacionados