You are on page 1of 7

1.

Kitap - Sessiz Boşluk

Ve şöyle dedi usta programcı: "Sadece TCP/IP kullanarak uzaktaki makinanın işletim
sistemini anlayabildiğinde tapınaktan ayrılmanın zamanı gelmiş demektir."

1.1

Sessiz boşlukta gizemli bir şey oluştu. Tek başına hareketsiz bekleyen o şey yine de sürekli
hareket halindedir. Tüm programların özünde yer alır o. Adını bilmiyorum onun, bu yüzden
Programlanın Taosu diyeceğim.

Tao büyükse işletim sistemi büyüktürr. İşletim sistemi büyükse derleyici büyüktür. Derleyici
büyükse uygulama büyüktür. Kullanıcı mutludur ve dünyada uyum hüküm sürer.

Programlamanın Taosu uzaklara gider ve sabah rüzgarı ile geri döner.

1.2

Tao makina dilini doğurdu. Makina dili assembler'ı doğurdu.

Assembler derleyiciyi doğurdu. Şimdi ortalıkta onbin tane programlama dili var.

Ne kadar alçakgönüllü olsa da her dilin bir amacı vardır. Her dil yazılımın Yin ve Yang'ını
ifade eder. Her dilin Tao içinde bir yeri vardır.

Ancak mümkünse COBOL ile programlamayın.

1.3

Başlangıçta sadece Tao vardı. Tao Mekânı ve Zamanı doğurdu. Bu yüzden Zaman ve Mekân
programlamanın Yin ve Yang'ıdır.

Tao'yu anlamayan programcılar programları için bir türlü yeterli zamana ve mekana sahip
olmazlar. Tao'yu anlayan programcılar ise hedeflerine varmak için gerekli zamana ve
mekana daima sahiptirler.

Başka türlü nasıl olabilirdi ki?

1.4

Bilge programcıya Tao'dan bahsedildiğinde onu takip eder. Ortalama programcıya Tao'dan
bahsedildiğinde onu araştırma gereği duyar. Aptal programcıya Tao'dan bahsedildiğinde
kahkahalarla güler.

Eğer gülmezse, duyduğu gerçek Tao değildir.

En yüksek ses işitilmesi en zor olandır.


İleri gitmek geri çekilmeye götürür.
Büyük yetenek kendini olgunlukta gösterir.
Mükemmel bir programın bile hataları vardır.

2. Kitap - Eski Ustalar

Şöyle dedi usta programcı:

"Üç gün program yazma ve hayat anlamsızlaşır."


2.1

Eski zamanlarda yaşayan programcılar gizemliydi. Onların düşüncelerini takip edebilmemiz


mümkün değil, bu yüzden sadece görünüşlerini tarif etmekte yetineceğiz.

Suyu geçen bir tilki gibi uyanık. Savaş meydanındaki general gibi dikkatli. Misafirlerini
ağırlayan ev sahibi gibi nazik. Yontulmamış tahta blok gibi basit. Derin mağaralardaki sular
gibi karanlık.

Onların kalplerindeki ve kafalarındaki sırları kim bilir?

Cevap sadece Tao'dadır.

2.2

Büyük usta Turing bir gün rüyasında bir makina olduğunu gördü ve uyandığında dedi ki:
"Bilmiyorum ki acaba ben rüyasında bir makina olduğunu gören Turing miyim yoksa Turing
olduğunu gören bir makina mıyım!"

2.3

Büyük bir firma için çalışan bir programcı bir yazılım konferansına gider ve sonra dönüp
müdürüne rapor verir: "O firmalarda çalışan programcılar nasıl insanlar! Kötü
davranıyorlardı ve dış görünüşleri ile ilgilenmiyorlardı. Saçları uzun, giysileri eski püskü,
kırış kırıştı. En güzel odamızı batırdılar ve benim prezentasyonum esnasında gürültü yapıp
durdular."

Müdür bunun üzerine dedi ki: "Seni oraya asla göndermemeliydim! O programcılar fiziksel
dünyanın ötesinde yaşarlar. Hayatı saçma, bir tür tesadüf kabul ederler. Sınır tanımaksızın
hareket ederler. Sadece programları için yaşarlar. Neden toplumsal kurallara uysunlar ki?...

Onlar Tao'nun içinde yaşarlar."

2.4

Bir çırak ustaya sordu: "Bak şurada bir programcı var, hiç tasarım yapmadan program
yazıyor, dokümantasyon hazırlamıyor ve test etmiyor. Ancak kimi gördüysem onun
dünyadaki en iyi programcı olduğunu söylüyor. Bu nasıl olabilir?"

Usta cevap verdi: "O programcı Tao'yu bilir. Tasarım kaygısını aşmıştır, sistem göçtüğünde
öfkelenmez, evreni olduğu gibi kabul eder. Dokümantasyon kaygısın aşmıştır, bir başkasının
onun koduna bakıp bakmaması umurunda değildir. Test etme kaygısını da aşmıştır çünkü
yazdığı her program kendi içinde mükemmel, şık ve rahattır, amaçları hemen belli eder
kendini. Evet, gerçekten de o Tao'nun gizemlerine ermiştir."

3. Kitap - Tasarım

Ve şöyle dedi usta programcı:


"Program test edilmeye başlandığında tasarım değişiklikleri yapmak için artık çok geçtir."

3.1

Bir zamanlar bir bilgisayar fuarına giden bir adam vardı. Her gün girişteki güvenlik
görevlisine şöyle diyordu: "Ben büyük bir hırsızım, arakladığım şeyler yüzünden
meşhurum. Seni uyarıyorum bu fuar da benden nasibini alacak."

Bu konuşma güvenlik görevlisini çok rahatsız etmişti çünkü içeride milyonlarca dolar
değerinde bilgisayar ekipmanı vardı ve o da bu yüzden hırsız olduğunu söyleyen adamı
yakın takibe almaya karar verdi. Ancak adam bir standdan diğerine gidiyor ve kendine
kendine mırıldanıyordu, tüm yaptığı buydu.

Adam fuarı terk eder etmez, güvenlik görevlisi onu bir kenara çekiyor baştan sonra arama
tarama yapıyordu. Adamın hırsızlığına işaret eden hiçbir şey çıkmıyordu üzerinden.

Ertesi günü fuara gelen adam güvenlik görevlisine yanaşıp dedi ki: "Dün iyi iş çıkardım
ama bugün daha da iyi olacak." Tüm huzuru kaçan bu sefer takip işini daha sıkı tutmaya
karar vermişti ancak sonuç gene hüsrandı.

Fuarın son gününde dayanamayan güvenlik görevlisi adama gidip şöyle dedi:"Sayın
Hırsız, o kadar şaşırmış durumdayım ki huzurum kaçtı, çok kötü durumayım, lütfen beni
aydınlatın, çaldığınız şey nedir?"

Adam gülümsedi ve tek bir cümle sarf etti:"Fikir çalıyorum."

3.2

Bir zamanlar yapısal olmayan programlar yazan bir usta programcı vardı. Çömez
programcı onu taklit etmeye yeltendi ve o da yapısal olmayan programlar yazmaya
başladı. Sonra ustaya gidip programlarını değerlendirmesini isteyince usta ona yapısal
olmaya programlar yazmadığı için kızdı ve dedi ki: "Usta için uygun olan çömez için
uygun değildir. Yapıyı aşmadan önce Tao'yu kavramalısın."

3.3

Bir zamanlar savaş lordu Wu'nun topraklarında yaşayan bir programcı vardı. Wu onu
huzuruna getirtti ve sordu: "Hangisini tasarlamak daha kolaydır, bir muhasebe paketi mi
yoksa bir işletim sistemi mi?"

Programcı cevapladı: "Bir işletim sistemi."

Kulaklarına inanamayan savaş lordu içini çekti ve dedi ki: "Bir işletim sistemi ile
kıyaslandığında muhasebe yazılımının çok basit olduğu su götürmez!"

"Tam olarak öyle denemez efendim", dedi programcı, "bir muhabesebe paketi tasarlarken
programcı değişik fikirleri olan insanlarla muhatap olmak zorunda kalır: program nasıl
çalışmalıdır, raporlar nasıl görünmelidir, vergi kanunlarına ne şekilde uymaldıdır, vs. Oysa
bir işletim sistemi dış görünüş ile sınırlandırılamaz. Bir işletim sistemi tasarlarken
programcı makina ve fikirler arasındaki en basit uyumu arar bu yüzden de işletim sistemi
tasarlamak daha kolaydır."

Savaş lordu Wu başını onaylar biçinde salladı ve gülümsedi: "Güzel ve akıllıca! Peki
hangisinin hatalarını ayıklamak daha kolaydır?"

Programcı cevap vermedi.


3.4

Bir müdür usta programcıya gitti ve yeni bir uygulama ile ilgili özellik listesini gösterdi.
Sonra da sordu: "Eğer 5 programcıyı görevlendirirsem sistemin tasarlanması ne kadar
sürer?"

"1 yıl," diye cevapladı usta hiç tereddüt etmeden.

"Fakat bu iş çok acil! 10 programcı çalıştırsak?"

Ustanın kaşları çatıldı. "Bu durumda iki yıl sürer" dedi.

"Peki ya 100 programcı çalıştırsak?"

Usta omuz silkti ve "O zaman tasarım asla tamamlanmaz" dedi

4. Kitap - Kodlama

Ve şöyle dedi usta programcı: "İyi yazılmış bir program kendi içinde bir cennettir, kötü bir
program ise cehennemin ta kendisi."

4.1

Bir program hafif ve çevik olmalıdır. Alt rutinleri inci dizileri gibi bağlanmalıdır. Programın
ruhu ve amacı sürekli göz önünde bulundurulmalıdır. Fazla ya da az olmamalı, gereksiz
döngüler ve değişkenler kullanılmamalıdır. Ancak yapıdan yoksunluk ya da değiştirilemez
bir katılık da bulunmamalıdır.

Bir program "En Küçük Şaşkınlık" yasasını takip etmelidir. Nedir bu yasa? Program
kullanıcıya daima onu en az şaşırtacak şekilde cevap vermelidir.

Bir program, ne kadar karmaşık olursa olsun, tek bir birim gibi çalışmalıdır. Program dış
görünüşü tarafından değil içsel mantığı tarafından yönlendiriliyor olmalıdır.

Eğer program bu ihtiyaçları karşılamazsa düzensizlik ve karmaşa hakim olur. Bunu


düzeltmenin tek yolu programı yeniden yazmaktır.

4.2

Bir çırak ustaya sordu: "Bazen çalışan, bazen de çöken bir programım var. Programlama
kurallarına uydum ama gene de apışıp kaldım. Bunun sebebi ne olabilir?"

Usta şöyle cevapladı: "Kafan karışmış çünkü Tao'yu anlamıyorsun. Sadece bir insan
etrafındaki insanlarda rasyonel davranışlar bekler. Sen neden aynı şeyi insanların yaptığı
bir makinadan bekliyorsun? Bilgisayarlar determinizmi simüle ederler, mükemmel olan ise
sadece Tao'dur.

Programlama kuralları geçicidir. Sadece Tao kalıcıdır. Bu yüzden aydınlanabilmek için önce
Tao'yu kavramalısın."

"Peki ama aydınlandığımı nasıl anlayacağım?" diye sordu çırak.

Usta cevap verdi: "Programın düzgün çalışacak."

4.3

Bir usta çıraklardan birine Tao'nun doğasını anlatıyordu: "Tao tüm yazılımların içinde
vardır, ne kadar küçük olurlarsa olsun bu yazılımlar."

"Bir hesap makinasında Tao var mıdır?" diye sordu bir çırak.

"Vardır."

"Peki bir video oyununda da var mıdır Tao?" diye devam etti çırak.

"Bir video oyununda bile vardır," dedi usta.

"Peki, kişisel bilgisayardaki Windows sisteminde de Tao var mıdır?" diye sordu çırak.

Usta öksürdü, boğazın temizledi, biraz kımıldandı ve "Bugünkü dersimiz bu kadar," dedi.

4.4

Prens Wang'ın programcısı yazılım kodluyordu. Parmakları klavye üzerinde dans ediyor,
programları tek bir hata mesajı olmadan derleniyor ve rüzgar gibi çalışıyordu.

"Mükemmel!" diye bağırdı Prens. "Tekniğin kusursuz!"

"Teknik mi?" dedi programcı ve terminalinden yukarı doğru baktı. "Benim takip ettiğim
şey Tao'dur - tüm tekniklerin ötesinde. Programlamaya ilk kez başladığımda tüm problemi
tek bir kütle gibi görüyordum. Aradan yıllar geçtikten sonra o kütleyi görmüyorum. Bunun
yerine alt rutinler kullanıyordum. Ancak şimdi artık hiçbir şey görmüyorum. Tüm varlığım
şekilsiz bir boşluk gibi. Ruhum plansız programsız, içgüdülerini takip ederek özgürce
çalışabiliyor. Kısaca programım kendi kendini yazıyor. Evet, doğru, bazen güç problemlerle
karşılaştığım oluyor. Onların geldiğini görüyorum ve yavaşlayıp sessizce izliyorum. Sonra
tek bir satırı değiştiriyorum ve problemler duman gibi uçup gidiyor. Programı derliyorum
ve yapılan işin güzelliği varlığıma işliyor. Gözlerimi kapatıyorum ve sonra sistemden
çıkıyorum."

Bunun üzerine Prens Wang dedi ki "Keşke tüm programcılarım senin kadar bilge olsaydı."

5. Kitap - Bakım

Ve şöyle dedi usta programcı:


"Bir program üç satırı geçtiyse bir gün mutlaka bakıma ihtiyaç duyar."

5.1

İyi kullanılan bir kapıya yağ gerekmez.


Akan su kir tutmaz.
Ne düşünceler ne de sesler boşlukta hareket edebilir.
Kullanılmayan yazılım çürür.

Bunlar büyük sırlardır.

5.2

Bir müdür bir programcıya üzerinde çalıştığı programı ne kadar sürede bitirebileceğini
sordu. "Yarın bitecek," diye cevapladı programcı tereddüt etmeden.

"Bu bana pek gerçekçi gelmedi açıkçası," dedi müdür. "Açık konuş, ne kadar sürer?"

Programcı durup biraz düşündü. "Eklemek istediğim bir iki özellik daha var. İki hafta alır,"
dedi.

"Bu bile iyimser bir beklenti!" diye ısrar etti müdür, "Bana kısaca programın ne zaman
tamamlanacağını söyler misin?"

Programcı bunu kabul etti.

Yıllar sonra, müdür emekli oldu. Emekliliğini kutlama yemeğine çıkarken programcıyı
bilgisayarı başında uyurken gördü. Sabaha kadar program yazmıştı.

5.3

Bir gün bir çırak programcıya bir muhasebe paketi yazma görev verildi.

Çırak günlerce deliler gibi çalıştı ancak usta programı incelediğinde sistemde bir ekran
editörü, genelleştirilmiş grafik rutinleri, bir tür yapay zekâ arabirimi bulunduğunu gördü.
Muhasebeye yönelik hiçbir şey yoktu.

Usta bu noktaya dikkat çekince çırak biraz bozuldu, "Lütfen bu kadar sabırsız olmayın,
süreç içinde muhasebe fonksiyonlarını da ekleyeceğim."

5.4

İyi bir çiftçi ekinini ihmal eder mi?


İyi bir öğretmen en aptal öğrenciye bile kötü davranır mı?
İyi bir baba bir çocuğunu açlığa makhum eder mi?
İyi bir pogramcı programının bakımını yapmayı reddeder mi?

6. Kitap - Yönetim

Ve şöyle dedi usta programcı:

"Programcılar çok ve yöneticiler az olsun - o zaman herkes çok daha üretken olur."

6.1

Yöneticiler bitmek bilmeyen toplantılar yaparken programcılar oyun yazar. Muhasebeciler


son dönem kârlarından bahsederken programcıların bütçesi kesilmek üzeredir.
Bilimadamları gökyüzünden bahsederken ortalığı bulutlar kaplar.

Gerçekten de programlanın Tao'su bu değildir.

Yöneticiler kendilerini adadıklarında, oyun programları ihmal edilir. Muhasebeciler uzun


dönemli plan yaptıklarında uyum ve düzen geri döner. Bilimadamları eldeki problemleri
incelemeye başladıklarında problemler çözülür.

Gerçekten de programlamanın Tao'su budur.

6.2

Programcılar neden üretken değildir?


Çünkü vakitleri toplantılarda harcanır.

Programcılar neden isyankardır?


Çünkü yönetim işlerine çok fazla karışır.

Programcılar neden tek tek istifa ederler?


Çünkü kendilerini tüketilmiş hissederler.

Kötü yönetim için çalışmışlardır ve artık işlerine değer vermiyorlardır.

6.3

Bir yönetici kovulmak üzere iken onun için çalışan bir programcı yeni bir program
geliştirdi, bu meşhur olup çok sattı ve yönetici yerini korudu.

Yönetici programcıya prim vermeye çalıştı ancak programcı reddetti ve dedi ki "O
programı yazdım çünkü fikir hoşuma gitmişti, bu yüzden de ödül beklemiyorum."

Bunu duyan yönetici, "Bu programcı bir çalışanın görevlerini mükemmel bir şekilde
anlamış durumda, o halde onu yönetici danışman yaparak onurlandıralım!" dedi.

Bunu duyan programcı bir kez daha reddetti ve dedi ki: "Benim varlık amacım
programlamak. Terfi edersem herkesin vaktini çalarım. Şimdi bana müsaade. Üzerinde
çalıştığım bir program var da."

6.4

Bir yönetici programcılarına gidip dedi ki: "İş saatlerinizle ilgili olarak, artık sabah 9'da
gelecek ve akşam 5'te çıkacasınız." Bunu duyar duymaz çoğu programcı hemen oracıkta
bastı istifayı.

Bunu gören yönetici dedi ki: "Pekala, pekala. O halde iş saatleerinizi kendiniz ayarlayın,
proje zamanında yetiştiği sürece özgürsünüz." Tatmin olan programcılar öğlen gelip
sabahın erken saatlerine dek çalışmaya başladılar.

You might also like