Programcı Tıkanıklığı

CoderDilemma Writer's Block - Yazar Tıkanıklığı yazarın bir noktaya gelip ondan sonra yazamaması, aklına bir şey gelmemesine verilen terim. Tasarımcılar genelde ilham gelmediğine suç atarlar, yazarlar ise yeni fikirler veya romanın devamını üretemezler, vs...

Bir de programcı tıkanıklığı denilen bir durum var ki onlar kadar ciddi sayılmayabilir belki ama bir çok açıdan insanın başına gelen bir olay.

Eğer on dakika boyunca salak salak kodun çeşitli yerlerinde sörf yapmaya başladıysanız bu sorun sizde de baş gösteriyor olabilir. Diğer bir semptomu ise bütün hayat enerjinizin on dakika içerisinde yok olup, ölümüne uyku ve kendinden geçme isteğidir. Eğer bu ikinci noktaya ulaştıysanız hemen en yakında psikiyatriste (veya psikiloga, özetle psik* -yay, wildcardlar yani vahşi kartlar (TDK 2005) bir defa daha günü kurtardı-) gitmenizi tavsiye ediyorum (işe yararsa bana da haber verin), ya da kendinize yeni bir iş edinin...

Bu tip tıkanmanın genelde genelde dört ana nedeni var :

  • Konsantrasyon bozukluğu, odaklanamama
  • Projenin dağılmış olması
  • Projenin çok sıkıcı olması
  • Bir sonraki hareketin ne olduğunu bilmemek

KellePaca Görüldüğü üzere programcı tıkanıklığı Yazar veya Tasarımcı ya da benzer ilhamımsı bir şey bekleyen kişilerin tıkanıklığından genel olarak farklı, onlar bir sonraki olayın ne olduğunu beklerken genelde programcılar bir sonraki hareketi bilmelerine rağmen onu yapmak istemiyorlar. Yazarlar veya tasarımcılarda nadir olarak diğer sorunları yaşıyor tabii ki ama genel olarak durumu bu şekilde gruplandırabileceğimizi düşünüyorum.

Bu sorunlara nacizane basit çözümler ve çözüm fikirleri.

Konsantrasyon bozukluğu, Odak Sorunu

Pardon bunun için çözümümüz yok sıradaki...

Projenin çok sıkıcı olması

Evet öyle oluyorlar. Eğer kendi kişisel projeniz ise bırakın, başka bir şeyler yapın. Eğer ben başladığımı bitiririm, tuttuğumu koparırım, istediğimi alırım diyenlerdenseniz Steve Pavlina falan okuyun size ancak o yardımcı olabilir, benim vereceğim öğüt ise şu şekilde :

  • Yeni bir projeye başlayın
  • Ondan sonra yeni projede aynı hisse kapılınca eski projeye tekrar geçin
  • Üçüncü turun sonunda projelerinizden biri bitmiş olacaktır.

Bu kesinlikle gelmiş geçmiş en rezil öğütlerden biri olsa gerek ama bunu "tembel ve keyif insan 3 yılda nasıl program geliştirir" kitabından bir pasaj olarak kabul edin. İşin gerçeği ben az olarak yaptığım işleri genelde bu şekilde yapıyorum, tavsiye etmiyorum ama sonuç veriyor. Hiç bir şey yapmamaktan iyidir.

Tabii ki eğer bu sizin işinizse sorununuz daha büyük, ona beni bulaştırmayın...

Projenin dağılmış olması

Üstteki kategoriye giriyor, çok kötü bir durum. Eğer proje çok kötü bir hale geldiyse yenilikçi bir şeyler yapabilir ve tekrar projeyi canlandırabilirsiniz. Mesela en sorunsal parçaları merkezi bir şekilde tekrar yazma, projeye unit testler ekleyerek parçaları refactor ede ede projeyi keyifli bir hale getirmek vs.

hauntedcoderBundan önce tabii ki projeyi en başından sıkı tutmak gerekli. Adam gibi kod yazmak, kaynak kod kontrol sistemi kullanmak, unit testleri yazmak, dokumantasyon yapmak, copy - paste yerine adam gibi merkezi fonksiyonlar yazmak vs.

Bunların hepsi projeyi kodlama açısından daha verimli hale getirecektir, hiç kimse her dokunduğundan 30 dk. debugging gerektirecek bilinmeyen hatalar üretmeye başlayan bir proje için yeni kod yazmak istemez.

Bir sonraki hareketin ne olduğunu bilmemek

Ah sevgili dostum, eğer bunu yaptıysan yazılım geliştirmenin 7 büyük günahının en büyüklerinden birini işliyorsun demektir. Bir sonraki hareketinin ne olduğunu bilmemek, ne yapacağını bilmemek demek o da bir projenin sonu demek.

Kendinize bir yapılacaklar listesi (halk arasında to-do list olarakta bilinir) oluşturun ve ona sadık kalın. Her zaman bir sonraki adımınız belli olsun, eğer belli değilse uzun uzun düşünün, yazılımı planlayın adımları oluşturun ve ondan sonra devam edin. Planlama ve adım oluşturma süreci ölümcüldür, dolayısıyla hakkını verin iki defa biçip bir defa kesin, nitekim kestikten sonra düzeltme yapmak serbest!

Yapılacaklar listesi yönetimi başlı başına bir konu ama bir kaç ipucu :

  • Adımların en uzunu bir saat sürecek şekilde düzenleyin dolayısıyla "Load and Save sistemi yaz" diye bir adım koymayın, bu şekilde bir ana başlık altında onlarca alt başlık ile bu işlemi ufak adımlara bölün ve o adımları tamamlayın.
  • Adımları kesinleştirin ve üzerlerinde düşünün
  • Eğer bir adımda çok uzun takılırsanız onu beklemeye alıp diğer sorulara geçin
  • Bitirdiğiniz adımların listesini silmeyin, bu sizi motive edecek ve projenin nereden gelip nereye gittiğini gösterecektir
  • Bu listeyi todolist gibi güzel bir program ile tutun

Genel olarak en programcı tıkanıklığına karşı en büyük çözüm olan 10' dan geriye saymayı ve sorun çözmek için hata ile yaşamayı unutmayın.

Son olarak programcı tıkanıklığı hakkında bir makale Skindeep' de var, muhtemelen orada biraz daha pratik öneriler bulabilirsiniz.

anahtar kelimeler : productivity ilham block programming development

mrlmz - 25.08.2007

Benim naçizane tavsiyem çikolata felan yeyin o zamanlar mutluluk hormonu salgiliyo vucut ve kendinizi mutlu hissetmeye basliyosunuz veriyosunuz çoskuyu viz gelir tirst gder felan .)

programlama ögrenen cirak - 21.08.2007

abi bisi sorcam simdik asadiki kodda system("color 1a") ile arkaplana renk verebiiyoruz ya arkaplana degilde yazdikalrimiza nasil renk veririz yardim edersen cok sevinirim abicim

#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
system("color 1a");
int i;
for(i=0; i<10; i++)
{
cout<<"x`in degeri: "<<i<<endl;
}
cout<<"Ferruh abi Yardim et"<<endl;
system("PAUSE");

}

programlama ögrenen cirak - 21.08.2007

ahh be abi cok güzel anlatmissin keske su programlamayi profesyonel düzeyde ögrenebilsekde bunlari yasayarak anlasak bayadir hep ayni yerde dönüp dolasip duruyorum

grkn - 21.08.2007

bir an için kendimi gördüm (: bugün sabaha kadar kasicam dedikten sonra saat 03:00'dan sonra kafa durur, koda mal mal bakarim falan:) güzel bir yazi, tuttum:)

Yorum Yazın


Tüm yorumlar onaydan geçmektedir, bu işlem en uzun 30 dk. sürecektir. E-mail adresleri yeni yorumları bildirme harici hiç bir başka amaçla kullanılmamaktadır ve sitede gözükmemektedir.

Yeni yorumlardan haberdar et

Captcha Kodu