Skip to main content

Small daily exercises to make you fluent at writing and reading code. Python first; C, C++, Rust, and Go on the roadmap.

Project description

๐Ÿฃ bytelings

Tiny daily exercises that make code feel like a language you actually speak.

PyPI Python 3.12 License: MIT

Hey ๐Ÿ‘‹

If you're someone who kind of knows Python (or wants to), but still freezes when asked to write something from scratch โ€” this is for you. bytelings is a curriculum that meets you exactly where you are and walks you, day by day, into real fluency.

pip install bytelings
mkdir my-bytelings && cd my-bytelings
bytelings init
bytelings

Now save a file. Watch the tests turn green. That's the loop. โœจ


๐ŸŒฑ The whole idea

Most courses dump you into "implement merge sort" without first letting you read one, fix a broken one, or fill in a half-written one. bytelings is a ladder. You climb one rung at a time and you don't move on until your fingers know it.

Each day teaches one concept, and only one. You go through it like this:

๐Ÿ” ย  Read ย  โ€” a short, story-styled page. Not a textbook chapter. Just enough to feel the idea.

๐Ÿ”ง ย  Drill ย  โ€” a broken file with a couple of # TODO lines. Fix them. Tests turn green when you nail it.

๐Ÿชœ ย  Guided ย  โ€” here's a function signature and a docstring. You write the body.

๐Ÿฆพ ย  Solo ย  โ€” same idea, no scaffold. Hidden tests. You write it cold, like real work.

๐ŸŽฏ ย  Apply ย  โ€” a tiny project chunk that uses what you just wrote. The concept lands somewhere real.

The watcher (bytelings) runs your tests on every save and high-fives you to the next rung when you pass. When you finish all 5 rungs, you wake up tomorrow on Day 2.


๐ŸŽจ Concept pages don't read like textbooks

This one matters. Same-shape lessons make brains autopilot. So bytelings rotates across 8 different storytelling styles โ€” and you'll never see the same one two days in a row:

๐Ÿ“– Story โ€” "It's Monday, 9 AM. You just got hired. Here's the repo..." ๐Ÿฉน Pain-point โ€” show ugly buggy slow code first, then the fix โš–๏ธ Compare two ways โ€” two snippets side by side, you pick the right one ๐Ÿšถ Code tour โ€” read a real piece of code line by line ๐Ÿ”ฎ Trace โ€” predict what each line prints before you run it ๐Ÿ› ๏ธ Build it yourself โ€” "Pretend Python doesn't have this. How would you build it?" ๐ŸŒ‰ Metaphor โ€” concepts mapped onto things from real life ๐Ÿ•ต๏ธ Detective โ€” there's a bug, the concept is the only fix

Your brain stays alert. The fluency builds.


๐Ÿ—บ๏ธ What you'll learn โ€” the 135-day map

Phase Days What clicks for you
1. Python core fluency 31 Strings, lists, dicts, functions stop feeling like things you look up.
2. Pythonic tools & I/O 27 Comprehensions, async, dataclasses, files โ€” you reach for the right one without thinking.
3. Quality & production 21 Real-world skills: pytest, logging, profiling, picking threads-vs-async-vs-processes.
4. Data structures from scratch 19 You build stacks, linked lists, trees, heaps, hash tables โ€” yourself, in Python.
5. Algorithms 25 Recursion, sort, graphs, DP, greedy, backtracking โ€” pattern recognition you'll use forever.
6. Packaging, AST, capstone 12 You ship a real CLI tool you'd actually use.

๐Ÿ› ๏ธ After every phase, a 3-day project that combines everything you just learned: contacts manager โ†’ async website snapshotter โ†’ parallel log analyzer โ†’ tiny in-memory database โ†’ maze pathfinder. Phase 6 ends in an 8-day capstone where you build, test, and ship a CLI tool of your own design.


๐ŸŽฎ Commands

bytelings Start the watcher. Save โ†’ green panel โ†’ next rung. โœจ
bytelings today What you're working on right now
bytelings progress Your streak ๐Ÿ”ฅ and completion bar
bytelings list Every day with โœ” / โ—‹ markers
bytelings hint [DAY] Re-read the concept page anytime
bytelings run [DAY] Run the current rung's tests once, no watch
bytelings reset DAY Start a day over
bytelings init Scaffold the curriculum (just once, at the start)

๐ŸŒ Why this exists

I built bytelings because I was decent at Python โ€” I could read code, edit code, get things working โ€” but I still froze when asked to write something non-trivial from scratch. I'd reach for docs. I'd google syntax. The fluency wasn't there, and no course I tried was filling that gap.

Two things were missing from every curriculum I tried:

1. They taught topics in blocks (all syntax โ†’ all data structures โ†’ all algorithms). Research keeps showing this is the worst shape for long-term retention. Interleaved practice โ€” mixing topics every day โ€” wins by a huge margin. bytelings interleaves on purpose.

2. They skipped the bottom rungs. They'd parachute you onto "implement merge sort" without first showing you a worked example to read, a broken version to fix, or a scaffolded version to fill in. Of course people freeze. The fix is to climb every rung.

bytelings is the curriculum I wished existed. Now it does. ๐ŸŽ‰


๐Ÿš€ Roadmap

The runner doesn't care what language you're learning. Each track is just curriculum content under the same bytelings UX.

  • Python โ€” 135 days, shipped ๐ŸŽ‰
  • C โ€” pointers, memory, the why behind undefined behavior
  • C++ โ€” RAII, templates, modern C++
  • Rust โ€” ownership, lifetimes, fearless concurrency
  • Go โ€” interfaces, goroutines, the philosophy

Want to help build a track? See contributing below. ๐Ÿ‘‡


๐Ÿค Contributing

PRs welcome โ€” bug fixes, content polish, new languages. Adding a language is mostly: a new bytelings/_curriculum/<lang>/ tree and a small per-language test driver. Runner core is ~1000 lines of friendly Python.

๐Ÿ’› Credits

Inspired by Rustlings, Codewars, and 100 Days of Code.

License

MIT. Fork it. Remix it. Build your own track for any language you love. ๐ŸŒฑ


The fluency comes from the reps. ๐Ÿฃ

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bytelings-0.1.1.tar.gz (513.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bytelings-0.1.1-py3-none-any.whl (2.1 MB view details)

Uploaded Python 3

File details

Details for the file bytelings-0.1.1.tar.gz.

File metadata

  • Download URL: bytelings-0.1.1.tar.gz
  • Upload date:
  • Size: 513.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.7

File hashes

Hashes for bytelings-0.1.1.tar.gz
Algorithm Hash digest
SHA256 1952fce745676aa5b9766267aa5386bdb676feacd7c7ecbdd7b3ab9fc04321fe
MD5 afbde811e210c9339c3f83a2c26df7df
BLAKE2b-256 41c7aa1c00d82ce0090f40690b978bbf0e9a734cf9b49b843e7c9eee3ef9b5d8

See more details on using hashes here.

File details

Details for the file bytelings-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: bytelings-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 2.1 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.7

File hashes

Hashes for bytelings-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 85f53e00f50e5a68b44dc28b5ee17b0dac5f5b5c561caaccfd777090df975d2b
MD5 f35b751d90b669cc4409085112256c5b
BLAKE2b-256 af3e5dd9b3f65bc3ea971bf93e46ee80e85646b5dadf0775f632283a0cd5ced0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page