Öğretmen kısıttır

Bir proje, daha önce vermediğiniz bir kararı size zorladığında öğretir. Bildiğiniz bir yığınla bir yapılacaklar uygulaması daha yapmak hiçbir şey öğretmez; tek bir zor kısıtlı küçük bir araç yapmak — framework yok, offline-first, CI'da çalışmalı — daha önce başkasına devrettiğiniz bir katmanı anlamanızı zorlar.

Proje başına bir yeni şey yeterlidir. İki yeni şey, iki bilinmeyeni aynı anda hata ayıklamak demektir; bu da beceriden çok hayal kırıklığı öğretir.

Örnek senaryo: dokümantasyon linter'ı

Örnek senaryo: statik analizin nasıl çalıştığını öğrenmek istiyorsunuz. Hakkında okumak yerine, Markdown dosyalarındaki kırık göreli linkleri kontrol eden küçük bir araç yapıyorsunuz. Kısıt — dosyaları kendiniz ayrıştırın, ağır bağımlılık yok — dosya grafiklerini, yol çözümlemedeki uç durumları ve çıkış kodu tasarımını anlamanızı zorluyor. Araç küçük; öğrenme değil.

Bu, DeadLinkFinder gibi gerçek projelerin ardındaki motivasyonu yansıtır; burada açıklama amaçlı bir örnek olarak anlatılmıştır.

Bitmiş küçük, terk edilmiş büyükten iyidir

Terk edilmiş iddialı bir proje çoğunlukla kapsam hatası öğretir — gerçek bir ders ama tekrarlaması pahalı. README'si ve tanımlı bitiş çizgisiyle yayımlanan küçük bir proje ise döngünün tamamını öğretir; zanaatin çoğunun yaşadığı gösterişsiz son yüzde on dahil.

Kısa proje kontrol listesi

Öğrenilecek tam olarak bir yeni şey seçin; başlamadan bitiş çizgisini tanımlayın; ilk sürümü utanç verici derecede küçük tutun; README'yi başkası kullanacakmış gibi yazın; hedef kitle yalnızca gelecekteki siz olsa bile yayımlayın.