📘 Kodun Gaybı — Her Şeyi Bilen Bilgisayar, Bazen Neden Bilmez?
Bilgisayarlar, insana kusursuz bir araç gibi görünür. Yorgunluk bilmeden çalışır, emirleri harfiyen uygular, bir kere programlandı mı tekrar tekrar aynı işlemi doğru şekilde yapar. Bu nedenle çoğu kişi bilgisayarların hata yapmayacağına inanır.
Başlık Listesi
- 📘 Kodun Gaybı — Her Şeyi Bilen Bilgisayar, Bazen Neden Bilmez?
- 📘 Tanımsız Davranış — Kodun Kara Kutusu
- 📘 Belirtilmemiş Davranış — Doğru Gibi Görünen Belirsizlik
- 📘 Sistemden Sisteme Değişen Doğrular
- 📘 Belirsizlikler Arasındaki Fark — Üç Gölge, Üç Gerçek
- 📘 Derleyicinin Özgürlüğü — Makineye Hak, İnsana Sorumluluk
- 📘 Matematik Kesin, Hayat Belirsiz — Bilgisayarda Gayb Nasıl Mümkün?
- 📘 Bilgisayarlar İçin Gayb — Makinelerin Bilemediği Şeyler
- 📘 Kod, Gayb ve İnsan Aklı — Bilinçle Yazmak
Ancak, bu kusursuzluk görüntüsünün ardında, insan aklını zorlayan bir gerçeklik vardır: Bazı durumlarda, bilgisayar bile ne yapacağını bilemez.
Burada devreye yazılım dünyasında sıkça karşılaşılan bir kavram girer: Tanımsızlık.
Ve daha büyük bir soru doğar:
“Gayb”, yani bilinemezlik, sadece insana mı özgüdür? Yoksa bilgisayarların da karşılaştığı bir gayb var mıdır?
🎯 Bilinmeyen Nereden Çıkar?
Aslında bilgisayarlar her şeyi matematiksel kurallarla işler. Ama onları yönlendiren biziz — yani insanlar. Bizim yaptığımız her tanımsızlık, her belirsizlik, bilgisayarı da bilinmeyene sürükler.
Yani: Bilgisayar değil, insan hata yapar. Hata da bilgisayarı şaşırtır. Bu şaşkınlık, bazen sistem çökmesine kadar gidebilir.
🧠 Bilgisayar Ne Zaman Bilemez?
Bazı yazılım durumları vardır ki, ne yapılacağı açıkça belirtilmemiştir. Hangi adımın önce, hangisinin sonra yapılacağı net değildir. İşte bu durumda bilgisayarın tepkisi değişebilir.
Bir gün doğru çalışan bir sistem, ertesi gün beklenmedik sonuçlar verebilir. Bu da yazılımcılar arasında şöyle esprilere neden olur:
“Kodu yazdım ama sonucu Allah bilir!”
Gerçekte ise bu, oldukça ciddi bir problemdir. Çünkü sistemin davranışı kontrol edilemez hâle gelir. Aynı komut farklı ortamlarda farklı sonuçlar doğurabilir.
Bu, teknolojinin tam kalbinde duran bir gayb kapısıdır.
⚠️ Belirsizlik Neden Tehlikelidir?
Her belirsizlik tehlikeli değildir. Bazıları esneklik sağlar, alternatif yollar açar. Ama ne zaman, nerede, hangi belirsizliğin karşına çıkacağını bilemezsen, o zaman sorun büyür.
Yazılımda karşılaşılan bazı belirsizlik türleri vardır ki, sistemin içine sessizce sızar. Fark edilmez, uyarı vermez, testte yakalanmaz ve bir gün hiç beklemediğin anda seni yarı yolda bırakır.
📘 Tanımsız Davranış — Kodun Kara Kutusu
Bilgisayar sistemlerinin güvenilirliğine olan inanç, çoğu zaman bizi büyük bir yanılgıya sürükler:
“Her şey doğru yazıldıysa, doğru çalışır.”
Ama gerçek şu ki, bazı durumlar vardır ki — ne yaparsan yap, sonucu önceden bilemezsin. İşte bu gibi durumlara yazılım dünyasında “Tanımsız Davranış” denir.
🔍 Ne Demektir Tanımsız Davranış?
Kısaca: Bir komut verilir, ama o komutun tam olarak nasıl çalışacağı tanımlı değildir.
Yani bilgisayar şu kararı kendisi verir: “Bu durumda ne yapacağım belli değil, o yüzden ben kafama göre davranacağım.”
İşte burada işler karışır:
- Sistem bazen doğru çalışır,
- Bazen hiçbir şey yapmaz,
- Bazen de hiç uyarı vermeden gizlice veri bozar.
Ve en tehlikelisi: Hiçbir sorun gözükmeyebilir. Sistem bir süreliğine normal gibi çalışır… ama içeride gaybî bir hata büyümeye devam eder.
🧨 Günlük Hayattan Basit Bir Benzerlik
Düşün ki bir yemek tarifinde şöyle bir madde var:
“Bu noktada yemeğe ya 1 litre sirke ekle, ya da hiç ekleme. Karar şefin.”
Böyle bir tarif olur mu? Sonucun nasıl olacağını sen bile bilemezsin.
İşte yazılımdaki tanımsız davranış da böyledir: Sisteme “bu durumda ne istersen yap” denmiştir. Bu nedenle aynı program, iki farklı bilgisayarda bambaşka sonuçlar verebilir. Hatta bazen aynı bilgisayarda bile farklı çalışabilir!
💣 Peki Neden Bu Kadar Korkutucu?
Çünkü:
- Sistem dışarıdan düzgün görünür, ama içeride bir şeyler ters gider.
- Hata mesajı vermez, uyarı çıkarmaz.
- Verilerin sessizce bozulmasına neden olabilir.
- Bunu fark etmek bazen günler, haftalar alabilir.
- Hata, sadece çok kritik bir anda ortaya çıkar ve geri dönüşü olmayabilir.
Bu yüzden yazılımcılar tanımsız davranışlara karşı çok temkinli olmalıdır.
✅ O Zaman Ne Yapmalı?
En temel kural şu: Ne yaptığının farkında ol.
Bir davranışın sonucundan emin değilsen, onu sistemin yorumuna bırakma. Mümkün olan en net şekilde yaz. Açık olmayan işlemlerden, karmaşık ifadelerden, sıraya duyarlı durumları aynı anda yürütmekten kaçın.
Ve en önemlisi: “Bilgisayar anlamaz, çalıştırır.” Senin anlamadığın bir şeyi bilgisayar doğru yapmaz.
📘 Belirtilmemiş Davranış — Doğru Gibi Görünen Belirsizlik
Bazen bir kodu yazarsın, kurallarına uygundur, hata da vermez. Ama farklı sistemlerde farklı sonuçlar verir. Bu seni şaşırtır. Çünkü kodun yanlış olmadığını bilirsin. Ama bir şeyler hâlâ tam tutmaz.
İşte bu duruma yazılımda belirtilmemiş davranış denir.
Yani: “Birden fazla doğru yol var… ama hangisi seçilecek, belli değil.”
🔍 Ne Demek Bu?
Bilgisayar dili bazen der ki: “Bu işlemi birkaç farklı şekilde yapabilirim. Hangisini yapacağımı ben seçerim ama sana söylemem.”
Bu, hatalı bir durum değildir. Ama sonuç önceden kesin olarak tahmin edilemez. Bu nedenle, sistemden sisteme küçük farklar bile büyük sonuçlara yol açabilir.
🧠 Günlük Hayattan Bir Örnek
Bir misafirliğe gittin. Ev sahibi sana çay da verebilir, kahve de.
İkisi de doğrudur, ikisi de misafirperverliktir. Ama hangisi geleceğini önceden bilemezsin.
İşte yazılımda belirtilmemiş davranış da budur. Her yol geçerli olabilir — ama sonuç farklıdır.
⚠️ Neden Önemli?
Çünkü bu durum, özellikle karmaşık projelerde ya da farklı bilgisayarlarda çalışan yazılımlarda güven sorununa yol açabilir. Kodun test edilmiş bile olsa, bir gün bambaşka bir sistemde beklenmedik şekilde çalışabilir.
Bazı durumlarda bu farklar küçük kalır. Ama bazen bir değer yanlış hesaplanır, sıralama değişir ya da sistemsel çakışmalar olur ve sen neden olduğunu uzun süre anlayamazsın.
✅ Nasıl Önlenir?
- Kodu mümkün olduğunca sade yaz.
- Aynı anda birden fazla işlemi tek satıra yığma.
- İşlem sırası önemliyse, sıralamayı açıkça kendin belirle.
- “Doğru çalışıyor gibi görünüyor” hissine güvenme.
- Her sistemde aynı sonucu verecek yapılar kur.
🔄 Peki Bu, Tanımsız Davranışla Aynı mı?
Hayır, tanımsız davranışta ne olacağı hiç belli değildir — her şey olabilir. Belirtilmemiş davranışta ise birkaç geçerli seçenek vardır. Yani yol bellidir, ama hangi yoldan gidileceği bilinmez.
📘 Sistemden Sisteme Değişen Doğrular
Diyelim ki bir program yazdın, bilgisayarında test ettin, sorunsuz çalışıyor. Aynı programı başka bir bilgisayara taşıdın… ama sonuç farklı çıktı.
Kodda bir hata yok. Yazım yanlışın da yok. Peki o zaman neden farklı?
Cevap şu olabilir: “Bu davranış, sistemin tercihine göre belirlenmiş.” Bu tür duruma yazılımda sisteme bağlı davranış (implementation-defined behavior) denir.
🔍 Ne Demek Bu?
Bu tür belirsizlikte, birden fazla doğru yoktur. Sistem bir tanesini seçmiştir ve o şekilde çalışır. Ama o seçimin ne olduğunu senin bilmen gerekir.
Yani: Kod çalışır. Ama nasıl çalıştığını bilmeden kullanırsan, ilerde büyük sorun yaşayabilirsin.
🧠 Günlük Hayattan Bir Örnek
Yurt dışına gittin. Araba kiraladın ama trafik sağdan mı, soldan mı akıyor bilmiyorsun. İkisi de doğru olabilir ama her ülkenin kendi kuralı vardır. Yanlış şeride girersen, kaza yaparsın.
Bilgisayar da böyle: Kendi sistemine göre bir tercihte bulunur. Sen bunu öğrenmezsen, “doğru yazdım” dediğin kod seni yarı yolda bırakabilir.
⚠️ Ne Tür Şeyler Sistemden Sisteme Değişebilir?
- Bir veri ne kadar yer kaplar?
- Sayılar nasıl saklanır?
- Bir işlem nasıl hesaplanır?
- Bazı özel durumlarda sistem nasıl davranır?
Hepsi sistemin içinde tanımlıdır, ama senin bunu bilmen ve dikkate alman gerekir.
✅ Ne Yapmalı?
- Sistemle ilgili belgelere bak.
- Kullandığın bilgisayarın nasıl davrandığını öğren.
- Eğer taşınabilir bir yazılım geliştiriyorsan, sistemden bağımsız çözümler kullan.
- Kısa yoldan değil, güvenli yoldan git.
Bu davranış türü, fark edilmediğinde seni aylarca uğraştırabilir. Çünkü kod doğru görünür, çalışır… ama gizlice farklı sonuçlar üretir.
📘 Belirsizlikler Arasındaki Fark — Üç Gölge, Üç Gerçek
Kod yazarken bazen işler beklediğin gibi gitmez. Bu seni şaşırtabilir, hatta “ben nerede hata yaptım?” diye uzun uzun düşünmene neden olur.
İşte bu yazının asıl amacı da buydu: Kodun çalışmasını etkileyen gizli belirsizlikleri göstermek.
Şimdi tanıdığımız üç davranışı bir araya getirelim ve farklarını görelim.
🔹 Tanımsız Davranış (Undefined)
- Ne olacağı hiç belli değildir
- Bilgisayar “ne yaparsam yaparım” der
- Sonuç tamamen kontrolsüz olabilir
- En tehlikeli olanıdır
- Hata vermeyebilir ama sistem çökebilir
Bu durumda koduna güvenemezsin. Çünkü temel kural ihlal edilmiştir.
🔸 Belirtilmemiş Davranış (Unspecified)
- Birden fazla doğru yol vardır
- Ama hangisinin seçileceği belli değildir
- Sonuç her defasında farklı olabilir
- Risklidir ama sistemsel felakete neden olmaz
- Genelde fark edilmeden geçer
Bu durumda yol açık ama yön belirsizdir. Yani sistem seni farklı yerlere götürebilir.
🔻 Sisteme Bağlı Davranış (Implementation-Defined)
- Tek bir doğru yol vardır
- Ama her sistem kendi doğrusunu seçer
- Kod doğru çalışır ama sonucu sistem belirler
- Farklı bilgisayarlarda farklı sonuç verebilir
- Bilgi eksikliği sorunu yaşanabilir
Bu durumda doğru yoldasın ama haritan sistemin elinde.
🧠 Kısa Kıyaslama Tablosu
Özellik | Tanımsız | Belirtilmemiş | Sisteme Bağlı |
Ne yapılacağı belli mi? | ❌ Hayır | ⚠️ Kısmen | ✅ Evet, ama sisteme göre |
Sonuç öngörülebilir mi? | ❌ Hayır | ⚠️ Değişken | ✅ Evet, öğrenilebilir |
Hata verir mi? | 🔁 Genelde vermez | 🔁 Genelde vermez | 🔁 Genelde vermez |
Taşınabilirlik durumu | ❌ Kötü | ⚠️ Belirsiz | ⚠️ Sisteme bağlı |
Güvenli mi? | ❌ Hiç değil | ⚠️ Şüpheli | ✅ Uygunsa evet |
🎯 Hafızada Kalması İçin
- Tanımsız: Bilgisayar bile ne yapacağını bilmiyor → en tehlikelisi.
- Belirtilmemiş: Yol belli ama yön rastgele → kararsız ama yönetilebilir.
- Sisteme bağlı: Sistem karar vermiş ama sana söylememiş → öğrenmen gerekir.
📘 Derleyicinin Özgürlüğü — Makineye Hak, İnsana Sorumluluk
Sen bir komut yazarsın. Ama o komutu bilgisayar değil, önce derleyici alır. O derleyici bu komutu işler, çevreler, sadeleştirir, hızlandırır… Ve sonra bilgisayara verir.
Yani arada bir yorumcu var ve bu yorumcunun bazı anlarda serbest kalma hakkı var.
🧠 Derleyici Neden Serbest Bırakılır?
Çünkü derleyiciler sadece çeviri yapmakla kalmaz. Aynı zamanda optimizasyon yapar:
- Kodunu daha hızlı hale getirir,
- Gereksiz tekrarları siler,
- Bazı işlemleri önden hesaplar,
- Belleği daha iyi kullanır.
Ancak bu işlemleri yaparken, kurallar ne kadar esnekse o kadar çok “yorum katabilir”. Özellikle tanımsız ya da belirtilmemiş davranışlarda, derleyici istediği gibi davranabilir.
🔥 Peki Bu Neden Riskli?
Çünkü sen bir anlam yükleyerek yazdığın bir satırı, derleyici sadece “tehlikeli” görüp tamamen yok sayabilir.
Senin için önemli olan bir işlem, derleyici için “güvenilmez” olduğu için silinir.
Bu, şu duruma benzer: “Sen bir emir veriyorsun ama emir net değil. Tercüman da diyor ki: ‘Bu belirsiz, ben bunu söylemeyeyim en iyisi.’”
Sonra bilgisayar, senin hiç istemediğin bir şeyi yapabilir.
🧪 Gerçek Hayattan Bir Benzetme
Trafik polisi seni durduruyor. Sen diyorsun ki: “Ben sinyal verdim.” Ama o diyor ki: “Sinyal belirsizdi, saymıyorum.” Sonuçta senin yaptığın davranış yok sayılıyor.
İşte derleyici de bu şekilde davranabilir. Kodun içindeki bir belirsizlik, sisteme “burayı istediğin gibi yapabilirsin” hakkı verir ve bu hakkın sonunda çıkan sonuç, senin yazdığınla uyuşmaz.
✅ O Zaman Ne Yapmalı?
- Kodunu net ve sade yaz.
- Belirsizliğe mahal veren her satırı gözden geçir.
- Derleyicinin “tahmin etmesini” bekleme.
- Karmaşık işlemleri böl, sıraya sen karar ver.
- Belirsizliğin sana değil, sisteme avantaj sağladığını unutma.
📘 Matematik Kesin, Hayat Belirsiz — Bilgisayarda Gayb Nasıl Mümkün?
Teorik olarak, bilgisayarlar deterministik sistemlerdir. Yani aynı veriyi verirsen, aynı işlemi yapar ve her zaman aynı sonucu verir.
Peki neden bazen işler böyle yürümez? Neden aynı kod:
- Bazen farklı çalışır,
- Bazen sessizce hata verir,
- Bazen hiçbir sebep yokken çöker?
Bunun cevabı: Bilgisayar matematiksel olarak kusursuz olabilir, ama onu kullanan insan, yazılım, donanım ve zamanlama faktörleri kusursuz değildir.
🔹 1. Determinizm Ne Demek?
Bir sistemi aynı koşullarda tekrar çalıştırdığında aynı sonucu veriyorsa, o sistem deterministiktir.
Bilgisayarlar da öyle olmalıdır. Çünkü onlar 1’lerle 0’larla çalışır. Ama işin içine insan kodu, işletim sistemi, farklı işlemciler, bellek davranışları, zamanlama gibi şeyler girince iş değişir.
Birden fazla katman var ve bu katmanlar her zaman aynı sırayla çalışmaz.
🔸 2. Küçük Belirsizlikler Büyük Farklar Yaratır
Örneğin:
Aynı anda çalışan iki işlemi düşün. Biri belleğe veri yazıyor, diğeri o veriyi okumaya çalışıyor. Hangisi önce davranırsa sonuç değişebilir ve bu sırayı bazen sen belirlemezsin — sistem belirler.
İşte bu gibi durumlarda:
- Kodun görünürde aynı kalır,
- Ama sonuç zaman, sistem ya da donanım farkına göre değişir.
🔺 3. Gözlem Etki Eder: Kuantumdan Kod Dünyasına
Bu durum, kuantum fiziğindeki şu ilkeye benzer: “Bir şeyi gözlemlediğinde, o şeyin davranışı değişir.”
Sen bir kod satırını sadece ekrana yazdırmak için çağırırsın… Ama o sırada bellekte yapılan düzenleme yüzünden tüm sistemin davranışı değişir. Yani:
Sadece görmek bile sistemi etkileyebilir.
🧱 4. İnsan Hatası Belirsizliğin Ana Kaynağıdır
Bilgisayar teorik olarak belirli çalışır. Ama sen belirsiz bir komut verirsen, sistem de o belirsizlikle baş etmeye çalışır.
Bu yüzden: Bilgisayardaki gayb, aslında insanın anlayış sınırından doğar.
✨ 5. Bu Belirsizlikle Yaşamak Zorundayız
İyi bir yazılımcı olmak demek, belirsizlikten kaçmak değil, onunla bilinçli yaşamayı öğrenmek demektir.
- Belirsizliği tanırsan, yönetebilirsin.
- Kurallarını bilirsen, yorumlayabilirsin.
- Gaybı küçültürsen, sistemi güçlendirirsin.
Bilgisayar deterministik olabilir. Ama yazılımın doğası, insanın bilgisi ve hayatın akışı deterministik değildir. Kod da tıpkı hayat gibi:
Sadece “doğru yazmak” yetmez. Doğru anlamak ve yorumlamak gerekir.
📘 Bilgisayarlar İçin Gayb — Makinelerin Bilemediği Şeyler
Çoğu insan şöyle düşünür: “Bilgisayarlar çok güçlüdür. Her şeyi hesaplar, hata yapmaz, her soruya cevap verir.” Ama bu bir efsanedir. Çünkü bilgisayarlar sadece verilen bilgiyle çalışır.
Verilmeyenle, eksik olanla, niyetle, sezgiyle… baş edemezler.
İşte bu yüzden, makinelerin de bir tür gaybı vardır.
🧠 1. Bilgisayarın Bilgi Sınırı
Bilgisayar:
- Girdi alır,
- İşler,
- Sonuç üretir.
Ama sadece verilen kurallar içinde hareket eder. Yani: Dışında kaldığı hiçbir şeyi bilemez.
İnsan ise, sezgiyle tahmin eder, niyetle yön çizer, deneyimle bağ kurar. Bu fark, insan ile makine arasındaki gayb duvarını çizer.
⛔ 2. Turing’in Kanıtladığı Gerçek
Bilgisayarların teorik sınırlarını belirleyen kişi: Alan Turing. O der ki: “Bazı sorular vardır ki, bilgisayarlar onları asla cevaplayamaz.”
Örneğin: “Bu program sonsuz döngüye girer mi, yoksa bir gün durur mu?”
Bunu kesin olarak bilen bir program yazılamaz. Bu da demektir ki: Bilgisayarların asla bilemeyeceği sorular vardır ve bu sınır, teorik olarak kanıtlanmıştır.
Yani makineler için de bir gayb bölgesi vardır: Sonsuz olan, karmaşık olan, belirlenemeyen…
🎲 3. Rastgelelik: Gerçek mi, İllüzyon mu?
Bilgisayarlarda rastgele sayı üretmek için kullanılan rand() gibi fonksiyonlar vardır. Ama bu sayı aslında:
- Önceden belirlenmiş,
- Sadece karmaşıklaştırılmış bir dizidir.
Yani: Gerçek anlamda rastgele değildir. Sadece öyle görünür.
Bu da gösterir ki: Bilgisayarda “bilinmeyen” olan, aslında belirlenmiş ama saklanmış olandır.
🧬 4. İnsan vs Makine — Bilgi Anlayışı
Özellik | İnsan | Bilgisayar |
Sezgi | ✅ Var | ❌ Yok |
Deneyimle öğrenme | ✅ Evet | ❌ Doğrudan değil |
Anlam kurma | ✅ Bilinçli | ❌ Yalnızca verisel |
Yorumlama | ✅ Kontekst ile | ❌ Kurallara bağlı |
Yani: Bilgisayar çalışır, ama anlamaz. Bilgiyi işler, ama bilince sahip değildir ve bu fark, onları gaybın dışında tutar.
💭 5. Bilgisayar Gaybı Aşabilir mi?
Hayır. Çünkü:
- Bilgisayarın amacı yoktur.
- İçsel yönü, sezgisi yoktur.
- Niyet kavramı diye bir şey bilmez.
- “Neden” sorusunu anlayamaz, sadece “nasıl” ile ilgilenir.
Bu yüzden bir kodda: Tanımsız bir davranış varsa, bilgisayar onu “önceden sezemez.” Sadece uygulamaya çalışır — ve çoğu zaman başarısız olur.
✨ Sonuç: Kodun Gaybı, Bilgisayarın Sınırıdır
Evet, bilgisayarlar çok güçlüdür. Ama her şeyi bilemezler. Çünkü onlar veriyle sınırlıdır. Oysa insan bazen veriye bile ihtiyaç duymadan hisseder, tahmin eder, yön bulur. İşte bu fark, gaybı sadece insana ait kılar ve bilgisayar için gayb, programcının bıraktığı boşluktur. O boşluğu ancak insan aklı doldurabilir.
📘 Kod, Gayb ve İnsan Aklı — Bilinçle Yazmak
Kod yazmak, sadece tuşlara basmak değildir. Her satır, bir tercihtir. Her koşul ifadesi, bir olasılıktır ve her çıktı, senin yaptığın bir seçimin sonucudur.
Fakat senin her zaman mutlak bilgiyle hareket etmediğin bir gerçek. Bazen:
- Eksik bilirsin,
- Acele edersin,
- Tahminle ilerlersin,
- “Çalışıyor ya” deyip geçersin.
İşte bu noktada kodun içine gayb sızar.
🧠 Kodun Üç Gölgesi
Hatırlayalım: Kod içinde üç temel bilinemezlik alanı vardı:
- Undefined Behavior:
Ne olacağı bilinmez. Sistemi bozabilir. - Unspecified Behavior:
Ne zaman ne olacağı belli değildir. Dikkatsizlikle hata üretir. - Implementation-Defined Behavior:
Ne olduğu sistem tarafından seçilmiştir ama senin bunu öğrenmen gerekir.
Bu üçü de aslında şunu gösterir: Gayb, bilgisayarda değil; İnsanda başlar.
🧬 Kodun Arkasındaki İnsan
Bilgisayarı tasarlayan da, derleyiciyi yazan da, kodu yazan da insandır ve insan:
- Unutur,
- Hata yapar,
- Bazen acele eder,
- Bazen de anlamadan kopyalar.
Yani gayb, çoğu zaman teknolojik değil, insanîdir ve bunu çözmenin tek yolu da bilinçtir.
✨ Kod Yazarken Takva
“Gayb bilgisi yalnız Allah’a aittir.” Ama yazılım dünyasında gayb, bazen insanın bilgiye ulaşma çabasının sınırında başlar.
Şu an yazdığın kodda:
- Bir belirsizlik varsa,
- Derleyiciye teslim edilmiş bir karar varsa,
- Test etmeden geçilmiş bir davranış varsa…
Orada gayb oluşur ve bu yüzden bu yazının özeti belki de şudur: “Kodun gaybı varsa, programcının takvası olmalı.”
Takva burada bilinçtir.
- Her satırı fark ederek yazmak,
- Anlamadan geçmemek,
- “Bilmiyorum” demekten korkmamak.
💡 Bilinmeyeni Bilinçle Aşmak
İyi bir yazılımcı:
- “Ben hata yapmam” diyen değil,
- “Hataları görebilirim” diyendir.
Çünkü kodun bir dili vardır. Ama o dili yalnızca bilen değil, anlayan çözer. Gaybı çözemezsin belki… Ama onunla karşılaştığında ne yapacağını biliyorsan, işte o zaman programcısın.