Ceviz Forum

Geri Dön   Ceviz Forum > Programlama > Genel Programlama

Cevapla
 
LinkBack Seçenekler
Eski 03/03/2004, 09:02   #1 (permalink)
wanna sleep more
 
Volkan Uzun Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 11/2002
Yer: CA
Mesaj: 2,655
Varsayılan cok hos bir yazi

cok hos bir yaz, umarim sikilmadan okursunuz.
-----------------------------------
Yazılım geliştirmeye değişik bir bakış...


Programcılıkta sabahlamanın verdiği huzur ve tatmin çok meşhur. Programcılar sabaha kadar çalışma konusunda herkesi şaşırtan derecede istekli ve beceriklidir. Bu gece çalışması boyunca beyin bir "akış" yakalayarak saatlerin su gibi geçtiği bir çalışma ortamı oluşur. Bu çalışma sırasında beyin en derin konsantrasyon düzeylerine erişir ve genellikle zor programlar bu kesintisiz, onlarca saat süren çalışmalarda ortaya çıkar. Beyin bu stilde çalışırken kişilerin mutlu oldukları, mutluluk düzeylerinin arttığı bilimsel çalışmalarla gözlemlenmiştir. Bu çalışmalar eski Chicago Üniversitesi Psikoloji Bölüm Başkanı Mihaly Csikszentmihalyi tarafından yapılmıştır. Çalışmalarda çeşitli disiplinlerden yüzlerce kişinin günlük uğraşları incelenmiş ve bu sırada "mutluluk" düzeyleri gözlemlenmiştir. Bu çalışmaların programcılar tarafındaki bulguları ise ilginçtir. Her ne kadar programcılık bir bilim dalı (Computer Science), bir mühendislik (Software Engineering) olarak düşünülse de programcıların beyninin sanatçıların çalışma stiline sahip olduğu ortaya çıkmıştır. Programcılık sırasında beyin bir "akış" moduna geçmekte, etraftan ilişkisini kesmekte ve bir probleme günlerce konstantre olabilmektedir.


Başarılı programcıların çoğu konsantrasyon yetenekleri ile çevrelerini şaşırtır. Saatlerce sıkılmadan bir ekran başında vakit harcayabilirler. Bu saatler bir çok kez günlere kadar uzayabilir. Yaşamsal faaliyetler dışında hemen hemen her şeyden izolasyon gereklidir. Microsoft'ta Office yazılım geliştirme ekibinden bir programcının kendini odasına kilitleyip "bitmeden çıkmayacağım" demesi, Bill Gates'e bile kapıyı açmaması meşhurdur. Bu olay daha sonra Douglas Coupland'ın Microserfs (1996) kitabına konu olmuştur. Bu sırada kendini odaya kilitleyen programcının arkadaşlarının süper marketten gidip yassı yiyecekler alması ve kapının altından odaya atmaları, programcılar arasındaki dayanışmanın güzel ve sevimli bir örneği.


Bu çalışma sırasında programcı en derin düşüne moduna geçer ve etraftan kendini izole etmeye çalışır. Bir çok programcı bu amaçla müziği kullanır. Ancak müziğin programcılık sırasında beyne olan etkileri üzerine yapılan çalışmaların bulguları şaşırtıcıdır. Kreatif programlama ile müzik dinleme sırasında kullanılan beyin bölgesi aynıdır. Beyin bir müziğe konsantre olmuşken çok derin programcılık yapılamıyor. Ya da yeteri kadar iyi yapılamıyor. Programcının müziği kapatınca etraftaki gürültünün etkisi ile müziği dinlediğinde beynin gerekli bölgesinin meşgul edilmesi arasında bir tercih yapması gerekir. Tahminen bu nedenle izolasyon amaçlı müzik kullanımında elektronik müziğin, hard rock, alternatif rock ve heavy metal gibi müzik türlerinin daha fazla tercih edildiği görülür. Müzik, beyin ve programcılar üzerinde çalışmalar halen sürüyor, bu derin konu araştırılmaya devam ediyor. Şu anki bulgular, kritik kodların geliştirilmesi ve müzik dinleme sırasında kullanılan beyin bölgelerinin aynı olduğunu gösteriyor. Monoton kodlama (maintenance) diyebileceğimiz program geliştirme kısmı ise beynin başka bir bölümünde gerçekleşir. Bu tür kodların geliştirilmesi sırasında müziğin programlamaya herhangi bir negatif etkisi görülmemiştir.


Programcının kritik kodları yazmak için ihtiyaç duyduğu "akış" modunu koruyabilmesi için izolasyona ihtiyacı bulunur. Bu izolasyon arttıkça çalışma derinleşir, ilk önce beyinde yazılmak istenen programın çatısı oluşur, problem önce beyinde çözülür, daha sonra beyinde çözülen bu problem koda çevrilir. Programcının beyni pencereden dışarıyı seyrederken ya da gözler sabit bir yere bakıp dalıp gittiği zaman bu problem çözülmeye çalışılır. Hatta programcının beyni bu problemi uyurken, araba sürerken ve diğer başka monoton işleri yaparken ele almaya devam eder. Bu durumda sıfırdan ve baştan yazılan bir programa bakıldığında kodlama toplam sürenin oldukça az bir bölümünü almaktadır.


Bu çalışma sırasında beyin son derece karmaşık bir aktivite içerisine girmiştir. Var olmayan bir çözümü oluşturmak için "kreatif" süreç başlamıştır. Bu süreç duyu organlarını izole etmiş ve yaratıcılığa yoğunlaşmıştır. Bu süreç sırasında programcı onlarca konuda karar vermektedir. Değişken isimlerinden, akış yöntemlerine, parametrelerin cinsinden, kullanıcı ara birimine kadar bir programcı sürekli bir "karar alma" uğraşısı içerisindedir. Programcılar bu nedenle bir günde yüzlerce kararın altına imza atma becerisine sahip iyi birer karar vericidirler.


Tam bu yoğun programlama sırada birisinin programcının omzuna dokunduğu zaman bir "ara verme" operasyonu başlar. Bu ara verme operasyonu tam gaz giden bir arabada aniden frene basma gibidir. Derinleşen "kreatif" süreç derinliğini yitirir ve duyu organları "açılarak" omuza dokunan kişi ile iletişime geçilir. Bu geçiş çoğu zaman o kadar kolay olmamakta ve programcılar bu nedenle zor iletişim kurulan kişiler olarak görülmektedir. Bir soru sorulmaktadır. Eğer bu soru şu an üzerinde çalışılan konuyla ilgili ise mevcut kreatif süreç bu soruyu cevaplamakta kullanılır. Sorunun "bağlam" ile ilgili olması, sürecin durdurulmasını gerektirmez. Örneğin bir veri tabanı tasarımında yandaki programcı bir tablodaki alanın ne işe yaradığını sorduğunda süreç durdurulmadan cevap verilebilir. Cevabın verilmesi için gerekli bütün malzeme, zaten o sırada beynin çalışma bölgesine getirilmiş hazır halde bulunmaktadır.


Ama eğer bu soru bambaşka konularla ilgiliyse: "Bu iş ne zaman bitecek"ten tutun da , "dün maçı seyrettin mi?" ye kadar değişik açılardan gelen bir soru olabilir. Bu durumda ancak bu kreatif süreç durdurularak bu soruya cevap verilebilmektedir. Ya da çoğu programcı bu soruyu "duyacak" ama "algılamayacaktır". O an durumu kurtaracak bir cevap vereceklerdir: "yarına biter" vs gibi. Yapılan
basittir: kreatif süreç bölünmeden çalışmaya devam etmek istenmektedir. Bu sırada soruyu soran kişi doğal olarak programcıların zor iletişim kurulan kişiler olduğunu düşünecektir. Oysa programcının beyni hız kesmemeye çalışmaktan başka bir şey yapmamaktadır.


Programcılar çoğu zaman konuşmayı pek sevmeyen ve zor iletişim kuran kişiler olarak bilinmektedir. Bu yanlış inancın temelinde, programcıların konsantre olma yetenekleri ve bölünmelere karşı geliştirdikleri iletişim "önlemleri" yatmaktadır. Oysa yazılım geliştirme ekipleri oldukça konuşkan olabilirler. Fark konuşulan konularda yatmaktadır... "Windows mu iyidir, Linux mu?" tartışmalarını dinleseniz programcıların az iletişim kurdukları konusundaki fikirleriniz tam tersi yönde değişecektir.


Eğer bölündüğü sırada programcı soruyu tam olarak algılayıp doğru bir cevap vermeye çalışırsa, soru "bağlam" dışı ise kreatif sürecin durması gerekmektedir. Duran bu akışın yeniden eski kaldığı noktaya geri dönebilmesi, kişiye çok bağlı olmakla beraber, on beş dakikaya kadar çıkabilmektedir. Konsantre olma yeteneği yüksek olan programcılar bölünen bu süreci daha hızlı bir sürede eski noktaya getirebilmektedir.


Programcılık sırasında beynin bu çalışma stilinin anlaşılması programlama ortamlarının ne kadar özenle seçilmesi gerektiği konusunda önemli ipuçları sağlamaktadır. Programcıların bu bölünmelerden korunması gereklidir. Daha da önemlisi programcıların kendilerini bu bölünmelerden korumaları gerekmektedir. Csikszentmihalyi ve ekibin yaptığı çalışmalar bu derin çalışma sürecinin ne kadar kırılgan olduğunu ve izolasyona ihtiyaç duyduğunu açığa çıkarmaktadır.


Kanımca bir çok yazılım hatası (bug) bu bölünmeler sırasında ortaya çıkmaktadır. Televizyonda bir motor yağı reklamını izlediğimi hatırlıyorum. Reklamda "motor ısınıncaya kadar olan sürede aşınır yıpranır oysa bu motor yağı mıknatıs özelliklerine sahiptir ve motor çeperine yapışık kalarak ısınma sırasında bile motorun yıpranmasını önler" diyordu. Bu reklamda anlatılan olayı programcılıkta çok gördüğümüzü düşünüyorum. Yeteri kadar ısınmadan, soğuk bir "beyinle" yapılmaya başlanılan programcılık sonucunda oldukça "hatalı (bogus)" kodlar üretildiğini düşünüyorum.


Meslek hayatımda karşılaştığım binlerce yazılım hatasını masaya yatırdığımda bu tür hatalarla karşılaştığımı görüyorum. Hataların bu kreatif sürecin hangi aşamasında yazılmış olabileceğini tahmin etmeye çalışıyorum. Bir programcı bölünme ile karşılaştığı zaman -üstelik bu bölünme bir SMS mesajı yazmak gibi zor ve zahmetli olup, beyni oldukça uğraştıran cinsten ise- programlama sürecinin beyinde eski aktivite düzeyine yükselmesi çoğu zaman yaklaşık 15 dakika sürecektir. Bu süreç sırasında hatasız bir kod üretimi için programcının kritik bir kod yazmaması gereklidir. Konsantrasyonun tam sağlanamayacağı bu ısınma dönemi, unutulan kontroller, atlanan olasılıklar ve hiç kodlanmayan program akış dallarına neden olacaktır.


Çağımızda bu bölünmelerin başlıca sebepleri cep telefonları, gelen SMS mesajları ve Instant Messaging programlarıdır. Bölünmemek için iletişimsizliğe ihtiyacımız varken çağımız bir iletişim çağı olmuştur. Watts Humprey, Software Engineering Institute tabanlı Personal Software Process'in (Kişisel Yazılım Süreci - PSP) geliştiricilerinden birisidir. Kendisi uzun yıllar IBM'de çalışmış, OS390 projesinde yer almış ve yazılım geliştirmenin önemli duayenlerinden birisi olmuştur. PSP bir programcının iyi program yazması konusunda kendini nasıl geliştireceğinin ana hatlarını çizer. Humprey'in PSP'yi anlattığı "Introduction to PSP" kitabını aldığımda şaşırdığım bir konu olmuştu. Kitabın ilk bölümlerinin zaman yönetimi ve bu bölünmelere karşı mücadele olduğunu görüp şaşırmıştım. Humprey, programcıları bu bölünmelerle mücadele konusunda bilinçlendirmeye çalışıyordu.


Yazılım geliştirme sürecinin tam verimiyle çalışması için bu sürecin korunmaya ihtiyacı olduğu çok açık. Bir programcının etrafında oturanlar, yöneticileri, ona SMS gönderenler bu sürecin geç cevap alacaklarının farkında olmalıdır. Böyle bir zihinsel durumdaki yazılım geliştirmeciyle olan iletişim senkron (eş zamanlı) değil asenkron (farklı zamanlarda) olmalıdır. Şu sıralar programcılıkta popüler olan yeni bir akım var. Entegre edilen sistemlerin birbirleriyle senkron bağlantılar yerine "loosely coupled" (gevşek eşleştirme) dediğimiz asenkron yöntemlerle bağlanması. Sanırım "akış" anını yakalamış bir programcı ile iletişimin de en sağlıklısı "loosely coupled" türden olacaktır.


TeknoMercek - Özkan Erener
__________________
http://www.msnetprogrammer.net/blog (MCP & MCTS & MVM)
Volkan Uzun hatta değil   Alıntı Yaparak Yanıtla
Eski 03/03/2004, 11:42   #2 (permalink)
Registered User
 
Üyelik Tarihi: 01/2003
Mesaj: 6,337
Varsayılan

Harika bir yazi, cok hosuma gitti.
Bu arada neden muzik dinlemekten hoslanmadigimi da anlamis oldum. Sanattan anlamayan bir kiro degilmisim
acemi hatta değil   Alıntı Yaparak Yanıtla
Eski 03/03/2004, 12:41   #3 (permalink)
...
 
HunTER Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 08/2002
Yer: İstanbul
Mesaj: 8,753
Varsayılan

Bu aksam bu yazıyı esımıde okutucam.. Umarım bundan sonra neden o geldıgınde toparlanamadıgımı anlar
HunTER hatta değil   Alıntı Yaparak Yanıtla
Eski 03/03/2004, 13:05   #4 (permalink)
Eski Cevizci
 
x-Acto Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 02/2004
Yer: Work Sweet Work
Mesaj: 143
Varsayılan

bilgisayar basinda calisirken bazen insanlarin nasilsin sorusunu bile anlayamiyodum.. bilimsel bi sebebi varmis..
x-Acto hatta değil   Alıntı Yaparak Yanıtla
Eski 03/03/2004, 15:28   #5 (permalink)
25 Karakteri Kullanan Üye
 
IcenGuard Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 10/2003
Yer: Ankara[3139.71,2532.11] Yediği Havuç: 38
Mesaj: 1,447
Varsayılan

hos..
Bu yazıyı baska bir cok yaratıcılık gerektiren uğrasa uyarlaya biliriz..
__________________
Mi perro "mafia divertido rojo" comió a mi líder de la escuadrilla del asesinato "el comedor de los pescados". wiki.ceviz.net
IcenGuard hatta değil   Alıntı Yaparak Yanıtla
Eski 03/03/2004, 17:52   #6 (permalink)
OOP Mania
 
sımone Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 03/2003
Mesaj: 382
Varsayılan

Vay be bende diyorum neden program yazarken muzik dinleyemiyorum.Müziği çok sevmeme rağmen program başında açtığım zaman hemen kafam müziğe gidiyo hatta içimden şarkıyı şöylemeye başlıyorum. Sebebini öğrenmiş olduk
sımone hatta değil   Alıntı Yaparak Yanıtla
Eski 03/03/2004, 19:00   #7 (permalink)
EAN
Üye
 
Üyelik Tarihi: 07/2002
Yer: N/A
Mesaj: 930
Varsayılan

Ben Matrix I-II-III, BHD film müzikleri ve Cranberries ile oldukça rahat yazabiliyorum kod. Gece sessiz bir ortamda yazacağıma yukarıda saydığım müziklerle yazmak sanki işimi daha hızlandırıyormuş gibi geliyor.

Tabii tercih meselesi..
__________________
http://ean.btturk.net/
EAN hatta değil   Alıntı Yaparak Yanıtla
Eski 04/03/2004, 00:42   #8 (permalink)
Üye
 
Üyelik Tarihi: 07/2002
Yer: Ankara
Mesaj: 1,121
Varsayılan

Bu yazı e-posta ile bütün camiayı dolaştı heralde bugünlerde.
__________________
UTF-8 kullanalım, kullanmayanları uyaralım.
ee++ hatta değil   Alıntı Yaparak Yanıtla
Eski 04/03/2004, 10:34   #9 (permalink)
redial
misafir
 
Mesaj: n/a
Varsayılan

Ders kitaplarina koyulmasi gerekir bence, zira oturup kafamiza problar baglayip, kodlarken beynimizin ne yaptigini olcmemis olsakta sanirim hepimiz o anda bska bir seyle ilgilenmenin nasil sinir bozucu oldugunu biliyoruz, onemli olan cevremizdekilerin bilmesi...

Yaziyi okudugumda, geceleri calismanin bilimsel aciklamasini bulmus olmak sevindirdi beni en cok, zira zaman zaman kendimi uykusuz kalmaktan zevk alan, kendine eziyet etmeyi aliskanlik haline getirmis bir psikopat olarak goruyordum

Bolum yoneticisi arkadasa onerim bu konuyu sabitlemesi
  Alıntı Yaparak Yanıtla
Eski 04/03/2004, 10:46   #10 (permalink)
Eski Cevizci
 
x-Acto Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 02/2004
Yer: Work Sweet Work
Mesaj: 143
Varsayılan

http://www.btinsan.com/1114.asp

yazarin 3 yazisi daha var.. okumaya deger...
x-Acto hatta değil   Alıntı Yaparak Yanıtla
Cevapla

Bookmarks

Seçenekler

Mesaj Yazma Hakları
Yeni mesajgöndermezsiniz
Cevap yazamazsınız
Dosya ekleyemezsiniz
Mesajınızı düzenleyemezsiniz

BB code is Açık
[IMG] kodu Açık
HTML kodu Kapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık

Benzer Konular
Konu Konuyu açana göre Forum Cevap En Son Mesaj
metalik yazi usta Photoshop / Corel / PSP 5 17/06/2007 14:03
divx de alt yazi bilketay Uygulama Yazılımları / Hazır Betikler 4 21/08/2005 18:28
firefox'ta dikey yazi sunny_smiley Web Tasarım 1 17/08/2005 20:46
resmin uzerine yazi Volkan Uzun Javascript / DHTML / Ajax 2 26/02/2004 01:15
Okunmasi Gereken Bir yazi Mesut Hayata Dair 9 05/02/2003 19:17


Forum saati Türkiye saatine göredir. GMT +3. Şu anda saat 11:30.

Reklamlar & Desteklenenler
Hassas Valf | Hassas Kaplama | Antalyamız | Gazete | Ticari Bilişim | Hakan Müştak | Rüya Tabirleri | Kadın | Hastalıklar | Cepte msn ve e-posta | Webmaster | Antalya Aupair | Turkish Property Antalya | Forum | Chat | Perde | Adsl | Araba | bolindir.com | guncelle.com | livescore | Web Tasarım | evden eve nakliyat | forum | evden eve | sohbet | Resimcim| Kalifiye İnsan Kaynakları | Web Tasarım | Oyun | Yusuf KOÇ | Akın Yorulmaz | şiir | UFO | Web Tasarım | Oyunlar | Canlı Tv |


Forum Yazılımı: vBulletin Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0
Copyright ©2001 - 2008, Ceviz.net