Sıfırdan Kod Satırına

O Tohumu Ekene Kimdi? Geçmişteki Bana Birkaç Not


Sevgili Genç Ben, bu satırları yazarken elimdeki devre tahtası üzerindeki ince toz taneciklerini hissediyorum; tam da senin o ilk, aceleci el hareketlerine benziyor. Muhtemelen bu yazıyı okuduğunda şaşıracaksın. Çünkü benim şu anki benliğim, senin o aceleci heyecanın üzerinden çok daha fazla katman geçirmiş durumda.

Sen, elindeki ilk Arduino kartıyla "inanılmaz bir şey yapacağım" diye söyleniyordun. Belki de öyleydi. O zamanlar, her blinking LED benim için bir zaferdi; oysa şimdi anlıyorum ki, o ilk yanıp sönen ışık bile başlı başına bir mimari kararın ürünüydü. Sürekli olarak büyük resmi görmek isterdin; oysa gerçek ilerleme, o ufak detayların binlerce kez doğru zamanda uygulanmasıyla geliyor.

"İşe Yarayacak" Buradaki Sihir Kaydı

Hatırlıyorum da, o projelerde en çok acele ettiğin kısım buydu: "Hemen çalışsın, mükemmel olsun." Sen, yazılımı sanki sihir gibi gelmesini bekliyordun. Fiziksel katmanlardan sonra yazılıma geçtiğinde yaşadığın o gerilim... sürekli olarak donanımın sınırlılıklarını, kodun kusursuzluğuna zorluyordun.

Şimdi sana şunu söylemek istiyorum: Acele etme. O sensörden gelen gürültünün nedenini bulmaya odaklan. Neden o voltaj dalgalanıyor? O gürültü, senin ilk başta göz ardı ettiğin bir yazılım hatasının hardware seviyesindeki yankısı olabilir. Bu iki katmanı birbirinden ayırmadan, sadece üstüne yazılım kodu atmak, buzun üzerine koca bir yapıyı inşa etmeye çalışmaya benzer. Önce temeli sağlamlaştır, mikrofonu sesin kaynağına yakın tutarak dinle.

Bakış açını genişletmek, sadece yeni bir kütüphane kurmaktan ibaret değil. O kütüphanenin altındaki kaynaktan geçen mantığı anlamak gerekiyor. Sen, bir komutu sadece çağırmayı öğrenmekle yetinmiyordun; o komutun neden o sırayla çalışması gerektiğini de sorguluyordun. Bu sorgulama süreci, en değerli geliştirme aşamasıdır.

Detay Takıntısı Bir Lanet Değil, Pusuladır

O zamanlar bu detaylara takıldığında kendini bir gecikmiş gibi hissediyordun. "Bu kadar küçük bir şeyi neden bu kadar büyütüyorum?" diye geçirirdin. Ama o ufak detaylar, bizim en büyük farkımız oldu. Senin o takıntılı olduğun noktalar, benim şimdi mimariyi ölçeklendirirken kullandığım kilit noktalar.

Bir IoT cihazı tasarladığımızı düşün. Eğer veri paketinin CRC kontrolünü yaparken kaydettiğin o üç satırlık ince ayrıntı, yüzlerce kilometre ötedeki bir sunucu yazılımının beklentisini karşılıyorsa, o üç satırla sadece "bir projeyi tamamlamak" arasındaki fark oluşuyor.

Öyleyse, küçük ol. Sabırlı ol. Olabilecek her ihtimali kodda veya devre şemasında görme çabası, seni sadece bir yazılımcı değil, aynı zamanda o sistemin filozofu yapıyor.

Bu süreç uzun ama doğru yere varıyor. İyi kodlar, iyi deneyler.