Çoğu zaman aklımda olan bir soru var: „Programcılık bir sanat mıdır yoksa bir zanaat mıdır? Biz programcılar sanatkar mıyız yoksa zanaatkar mıyız?
Vikipedi’ye baktığımızda sanat ve zanaat için aşağıdaki tanımlamayı yapmakta:
Sanat en genel anlamıyla, yaratıcılığın ve hayalgücünün ifadesi olarak anlaşılır. Tarih boyunca neyin sanat olarak adlandırılacağına dair fikirler sürekli değişmiş, bu geniş anlama zaman içinde değişik kısıtlamalar getirilip yeni tanımlar yaratılmıştır. Bugün sanat terimi birçok kişi tarafından çok basit ve net gözüken bir kavram gibi kullanılabildiği gibi akademik çevrelerde sanatın ne şekilde tanımlanabileceği, hatta tanımlanabilir olup olmadığı bile hararetli bir tartışma konusudur. Açık olan nokta ise sanatın insanlığın evrensel bir değeri olduğu, kısıtlı veya değişik şekillerde bile olsa her kültürde görüldüğüdür. Sanat sözcüğü genelde görsel sanatlar anlamında kullanılır.
Zanaat , sermayeden çok nitelikli emeğe dayalı; öğrenimin yanısıra el becerisi ve ustalık gerektiren meslek. Zanaatkâr, zanaatle uğraşan kişi anlamına gelir. Marangozluk, ayakkabıcılık, kuyumculuk (takı üreten), kumaş boyama, çömlekçilik, berberlik, bakırcılık gibi mesleklerin hepsi birer zanaattir. Bir kimsenin zanaatkâr olması için el becerisi gerektiren bir malı veya hizmeti sadece satması değil, bilfiil üretmesi gerekir.
Yaptığımız işte he ikisinden de birşeyler var değil mi? Okunması kolay estetik kod yazarak bir sanatkar, müşteri gereksinimlerini tatmin eden uygulamalar geliştirerek bir zanaatkar olabiliyoruz. Ama gerçek hayatta durum ne yazık ki çok farklı. Sanatkar değiliz, çünkü müşterimiz güzel kod yazıyoruz diye bize iş vermiyor. Zanaatkar değiliz, çünkü yazılımcı olarak usta-çırak geleneğinden yetişerek işimizin başına gelmiyoruz. Neden böyle düşündüğümü bu yazımda sizinle paylaşmaya çalışacağım.
Birgün yolunuz Gaziantep’e düşerse Bakırcılar Çarşısı’na mutlaka uğrayın. Orada çalışan bakır ustaları kelimenin tam anlamıyla hem sanatkardırlar hem de zanaatkar. Sanatkardırlar, çünkü estetik değerler oluştururlar. Zanaatkardırlar, çünkü usta-çırak kültürüyle yetişip, el emekleri ile bu değerleri oluştururlar.
Bir bakır ustasının elinde vücut bulan ve yirmi ile yüz Türk Lirası arasında bir fiyata sahip bir bakır kupanın sadece su içmek için edinildiğini görmedim. Ufak bir sanat eseri olan bu bakır kupayı evimizdeki vitrinleri süslemek için ediniriz. Bizim için önemli olan kupanın fonksiyonel işlevi (kupadan su içmek) değildir. Daha ziyade kupanın estetik yönü ilgimizi çeker. Bu yüzden bakır kupa bir sanat eseridir, bakır ustası da bir sanatkar.
Peki camdan üretilen su bardakları sanat eserleri midir? Bu su bardaklarını üretenler sanatkar mıdır? Şüphesiz tanesi yüzlerce Türk Lirası’nı bulan su bardakları bulmak zor değildir. Ama pahalı olmaları sanat eserleri oldukları anlamına gelmez. Camdan yapılmış bir su bardağını su içmek için alırız. Bizim için su bardağının tatmin etmesi gereken fonksiyonel bir işlevi vardır. Su bardağının bu fonksiyonel işlevi yerine getirirken bir sanat eseri olup, olmadığı bizi ilgilendirmez. Herhangi bir marketten tanesi bir Türk Lirası olan onlarca su bardağı alıp, mutfaktaki dolaba koyarız. Su içmek istediğimizde bir bardak alıp, kullanırız. Bizim için camdan üretilmiş bir su bardağının fonksiyonel işlevi ön planda oldugu için, bu su bardağı bir sanat eseri değildir. Aynı şekilde bu bardakları üretenler de bizim gözümüde sanatkar değildirler.
Buradan çıkardığım sonuç şudur: Sanat eserlerinde fonksiyonel işlev önemli değildir. Dikkat bulan, icra edilen sanattır. İcra edilen bu sanat, sanat eserleri meydana getirir. Fonksiyonel işlevin önemli olduğu yerlerde ise sanat eserleri tercih edilmez. Sanat eseri ve sanatkar olmayı belirleyen faktör budur.
Programcılık Sanat, Programcı da sanatkar değildir.
Bazı programcılar program yazma aktivitesini sanat olarak, bu işi yaptıklarından dolayı kendilerini de sanatkar olarak görmektedirler. Bu ne yazık ki doğru değildir. Program yazmak fonksiyonel bir işlevi meydana getirmek için yapılan bir aktivitedir. Camdan su bardağı örneğinde olduğu gibi, müşterimiz bizim yazdığımız programın estetik kısmıyla ilgilenmez. Onun için oluşturulan uygulamanın tatmin etmesi gereken sadece fonksiyonel bir işlevi vardır. Uygulamanın ne kadar güzel kodlandığı ile ilgilenmez. Hiç, bir müşterinin kodu açıp, okumaya çalışıp, ne kadar güzel yazılmış, ya da yazılmamış diye yorum yaptığını görmedim. Durum böyle iken, müşteriye sattığımız uygulama bir sanat eseri değildir. Bir sanat eseri oluşturup, satmadığımıza göre, programcı olarak sanatkar olmamızda mümkün değildir.
Bir programcı olarak müşterinin gereksinimlerini tatmin eden, sadece fonksiyonel işlevi olan ürünler ortaya koyarız. Müşteri oluşturduğumuz uygulamaya baktığında bir sanat eseri, bize baktığında bir sanatkar görmez. Ama aynı şahıs bir bakır ustasına baktığında bir sanat eseri ve sanatkar görür. Demek oluyor ki sanat eserine ve sanatkara bu sıfatı değer görenler başkalarıdır. Kendi kendimize sanat eseri ortaya koyduğumuzu ve sanatkar olduğumuzu iddia etmemiz birşeyi değiştirmez. Bu yüzden programcının kendisini sanatkar olarak görmesi doğru değildir, çünkü müşterisinin gözünde sanatkar değildir.
Programcılar Zanaatkar Değildir
Zanaat demek ustalık demektir; gelenek demektir; ustadan öğrenmek demektir. Siz hiç bir berber çırağının ilk işe başladığı gün saç kestiğini gördünüz mü? Çırak önce ustasına hizmet edip, ondan birşeyler öğrenmeye ve yavaş yavaş olgunlaşmaya başlayacaktır. Usta ise çırağını kendi tecrübeleri doğrultusunda ve kendi ustasından öğrendigi şekilde yönlendirecektir. Belli bir zaman diliminden sonra çırak yavaş yavaş bir zanaatkara dönüşecektir. Bunun gerçekleşmesi için ustasının kendisine gösterdigi yolu takip etmesi gerekmektedir. Bu yolu gitmek yıllar sürebilir. Ama bu yolun sonunda çırak için kendi ustası gibi bir usta, bir zanaatkar olma ödülü vardır. Ustalaşmak ve bir zanaatkar olmak hiç te kolay olmayan bir süreçtir. Ustası olmayan bir çırağın, bu yolu tek başına giderek ustalaşması çok zor olacaktır ya da mümkün olmayacaktır.
Yukarda yer alan tanımlamaya gore programcılar zanaatkar değildir, çünkü programcılar usta-çırak geleneginden gelerek yetişmezler. Programcılar için işe başlama bariyeri yok denecek kadar azdır. Bir bilgisayar ya da başka bir mühendislik ögrencisi diplomasını eline aldığı andan itibaren programcı olarak çalışmaya başlayabilir. Hiç kimse senin ustan kim ya da kaç sene çırak programcı olarak çalıştın diye soru sormaz. Programcının daha önce hangi projelerde çalıştığı sorulur. Buradaki amaç daha çok programcının ne kadar tecrübeli olduğunu anlamaya çalışmaktır. Ama yıl bazında edinilen tecrübe, şahsın ustalık oranını göstermez. On sene tecrübesi olduğunu söyleyen bir programcı, son dokuz senesini, birinci sene öğrendiği şeyleri tekrarlamakla geçirdiyse, son dokuz sene tecrübe topladığı söylenemez.
Tecrübesiz ve bir usta tarafından yetiştirilmemiş bir programacının hemen program yazmaya başlamasını, diplomasını almış bir doktorun hemen kalp ameliyatı yapmaya başlamasıyla kıyasladığımızda, durumun programcılar açısından aslında ne kadar absürd olduğunu görebiliriz. Kalp ameliyatı yapmaya aday bir doktor yıllarını usta doktorlara asistanlık yapmakla geçirir. Bu ona kalp ameliyatlarının nasıl yapıldığını ustalarından öğrenme fırsatı verir. Asistanlık dönemi bittikten sonra, asistan doktor seçtiği dalda uzmanlaşma dönemine girer. Hem asistanlık hem de uzmanlaşma döneminde doktor adayı ustalarından gerekli herşeyi öğrenerek, onlarca seneyi bulacak bir zaman diliminden sonra kalp ameliyetlarını yapabilecek kıvama gelir. Yukarda da belirttiğim gibi programcılar için bunların hiçbirisi geçerli değildir. Programcı diplomasını alır, masasının başına oturur ve hemen müşteri için program yazmaya başlar. Neden birçok projenin yapılan hatalı kalp ameliyatlarından dolayı öldüğü ortadadır, çünkü ameliyatı yapan programcılar yetkin değildir.
Usta-çırak geleneğinin olmadığı yerde bir zanaatin icrası ya da yapılan işin zanaat olarak tanımlanması çok zordur. Programcılar ustasız yetiştikleri için, zamanlarının büyük bir kısmını deneme yanılmayla boşuna sarf ederler. Yıllarca aynı şeyleri yapıp, yerlerinde saysalar bile, bunu tecrübe yapmış olarak algılarlar. Kendilerine yön gösteren bir ustaları olmadığı için kendilerini geliştirmekte ve ustalaşmakta çok zorlanırlar. Bu sebepten dolayı birçok programcı ustalık mertebesine erişemez. Oysaki bir ustanın denetiminde olsalar ustalaşmaları çok daha kolay olacaktır.
Programcılık Zanaattir
Bir önceki bölümün başlığına baktığınızda bu bölümün başlığı tezat gibi algılanabilir. Bir önceki bölümde neden zanaatkar olamadığımızı anlatmaya çalıştım. Bu bölümde ise aslında neden zanaatkar olduğumuzu anlatmak istiyorum.
Zanaati, sermayeden çok nitelikli emeğe dayalı; öğrenimin yanısıra el becerisi ve ustalık gerektiren meslek şeklinde tanımlamıştık. Bunun yanısıra bir zanaat usta-çırak geleneğini kapsamaktadır. Bu tanımlama bir programcıya tamamen uygun yapıdadır. Eksik olan programcıların ustasız yetişmeleridir. Ama bu onların zanaatkar olmadıkları anlamına gelmez. Bu eksiği kapatmak için ustalığa giden yolun tarifini yapmamız gerekmektedir. Bilge Programcı programı (http://www.bilgeprogramci.com – şu an üzerinde çalıştığım, yapım aşamasında olan projemdir) böyle bir yolun tarifesini ihtiva eder. Daha once bu yoldan geçmiş, şimdilerde usta programcılardan kendimize örnek alarak, bizde yaptığımız işte ustalaşabiliriz. Ustalaştıkca bir zanaatkar olmaya başlarız ve yaptığımız iş bir zanaat haline dönüşür. Usta programcılar zanaatkardırlar. Genç programcılara da onlara çırak olmak düşer. Eti senin, kemiği benim misali :)
Not: Bu yazının devamı olarak Mantığın Köleleri başlıklı biz yazı daha oluşturdum. Bilginize sunarım.
EOF (End Of Fun)
Özcan Acar
Geri izleme: Programcılık Sanat mı, Zanaat mı? : Özcan Acar
Hiç bu kadarı da programcı hakkında güzel yazı okumamıştım. Özcan ACAR’ın eline sağlık.
Merhaba Özcan Bey;
Yazınızı zevkle okudum. Fakat bazı katılmadığım yerler var. Bu konu hakkında fikirlerinizi almak isterim sizinde..
Sanat tarihine baktığımız zaman sanatın ne için olduğu halen tartışılan bir kavramdır. Sanat sanat için midir, yoksa sanat insan için mi? Sizin yazınıza göre sanat insan içindir tezini savunduğunuzu söyleyebilirim.
Haklısınız hiçbir müşteri bizim yazdığımız koda bakıp da güzel veya kötü olmuş demez. Veya kodun güzelliğinden dolayı satın almak istemez. Ama aynı müşteri herhangi bir yağlı boya tablosuna baktığı zamanda kullanılan renklerin uyumunu, gölgeleri, boyanın kalitesini, tuvalin kullanım alanını inceleyerek değer biçmez. Gözüne hoş gelmişse güzeldir, gelmemişse kötüdür.. Benim beğendiğim bir resmi siz beğenmeyebilirsiniz. Bu durumda o tablo sanat eseri midir değil midir? O tabloyu yapan sanatçı mıdır değil midir? Veya bir Ebru veya Hat eserine baktığımız zaman kamışın açısı, mürekkep yoğunluğu, kağıdın ahar oranı yada Ebru için teknenin boyu, kullanılan boyalar, öd’ün oranı, renklerin kağıda baskısı… gibi şeylere bakmadan sadece gözümüze hoş geliyor diye “güzel bir sanat eseri” demek biraz haksızlık olur diye düşünüyorum.
Bu durumda müşterinin gözünde sanatçı olmak veya olmamak gerçeği değiştirmemeli. Yaptığımız iş aynen bir ressamın paletindeki renkleri fırça ile tuvale götürmesiyle aynıdır. Bizde kullandığımız dilin kod paletindeki kodları klavye ile editöre taşıyarak ortaya bir sanat eseri çıkarıyoruz. Ressamlar tablo diyor, biz uygulama diyoruz. Onların tabloları kendi aralarında doğa,portre,.. gibi ayrılırken bizdekilerde web, mobil, windows uygulama gibi alanlara ayrılabiliyor. Kodlarım ne kadar düzenli, ne kadar okunaklı, ne kadar gereksiz işlemlerden arındırılmış ve kısaysa o kadar değerli bir sanat eserine dönüşüyor. Müşteri elbette bunu görmez fakat hangi programcı müşterisini düşünerek kodları düzgün yazmaya çalışır ki? Aynı şekilde ressam resmini yaparken müşterisinin seveceği şeyleri mi düşünür, yoksa o anda içine doğanları mı tuvale yansıtır?
Ben bu durumda sanatçı olduğumuzu düşünüyorum.
Zanaat konusuna gelince.
“Zanaat demek ustalık demektir; gelenek demektir; ustadan öğrenmek demektir.” demişsiniz. Bu sizin düşünceniz sanırım.
Çünkü bildiğim kadarıyla zanaat ustadan öğrenmeyle alakalı birşey değil. El becerisi ve emeğe dayalı bir işin adıdır. Burada satıştan ziyade üretimdir ön planda olan. Çünkü satış ön plana geçince zanaat ticarete dönüşüyor. Bir marangoz yaptığı sandalyeyi satarken aslında odunu değil, emeğini satıyor. Fakat o sandalye fabrikasyon ise eğer bu durumda ticaret oluyor yaptığımız iş.
Peki programcılık ile zanaatkarlık arasında nasıl bir ilişki var diye bakarsak eğer, böyle bir ilişki yok.
Her zanaatkar aslında bir açıdan da sanatkardır. Sanat, zanaat’ı kapsayan bir kümedir diyebiliriz buna. Çünkü herhangi bir enstrümanı çalan kişide sanatçıdır. Rol yapıp, farklı bir kimliği sunan kişilerde sanatçıdır. Biz nasıl bunlara müzisyen, tiyatrocu diyorsak, el becerisi ile birşeyler üreten kişiyede zanaatkar diyoruz. Bunlarda kendi içinde terzi, marangoz, kuyumcu, nalbant, derici.. şeklinde ayrılıyor yaptıkları işe göre. Aynı şekilde kodları kullanarak ortaya bir eser uygulama çıkaran kişiyede programcı diyoruz ve oda bir sanatçıdır.
Yorumunuzu ilgiyle okudum, tesekkür ederim.
>Gözüne hoş gelmişse güzeldir, gelmemişse kötüdür.. Benim beğendiğim bir resmi siz beğenmeyebilirsiniz
demissiniz. Haklisiniz sanat göreceli birseydir. Simdi isterseniz bunu programciliga uyarlamaya calisalim. Eger yazilan bir program parcasi bir sanat eseri olmus olsaydi, o zaman bu program koduna bakan herkes baska birsey algilayacakti ya da program her müsteride baska türlü calisacakti, cünkü her müsterinin programi algilayis tarzi degisik olacakti. Böyle birseyin yazilimda ne anlama geldigini düsünebiliyor musunuz? Programcilik deterministik sonuclar üretmek, mantik cercevesinde kalip, cözüm sunmak zorundadir. Ruha, gönüle degil, mantiga hitap eder. Sadece bu özelliginden dolayi bile bir sanat olma sansi yoktur. Bir programa baktiginizda her zaman ayni seyi görmek, anlamak zorundasiniz. Bir program her zaman ayni sonucu üretmek zorunda.
Bunu yanisira program dillerinde soyutlugu ifade etmek icin cok fazla seceneginiz yok. Java dilinde interface ya da abstract siniflari kullanarak soyut birseyler ifade edebilirsiniz. Bu ressamin paletinde sadece iki renk oldugu anlamina gelir. Sadece iki rengi kullanarak sanat eseri olusturmak mümkün müdür? Bir ressamin paletinde onlarca renk vardir, bunlari karistirarak sonsuz sayida yeni renk elde edebilir. Bu renklerin hepsini kullanma potansiyeline sahiptir ve bu sanatina yansir. Günümüzün programlama dillerinde böyle bir zenginlik söz konusu degil. Kaldiki en tabana indigimizde bir programci sifir ve birlerden olusan verilerden baska birseyle ugrasmaz. Sadece iki renkli olan bir dünyada yasar programci.
Görüldügü gibi programci sahip oldugu araclar itibari ile cok kisitli bir dünyada yasamaktadir. Oysaki bir sanatcinin dünyasi rengarenk ve piril pirildir. Sayisiz derecede kombinasyon imkanlari vardir. Bunlardan faydalanarak sanatini icra eder ve sanat eserleri olusturur. Biz programcilar SIKISIP kaldigimiz mantisal dünyada bu lükse sahip degiliz, mantigin kölesiyiz anlayacaginiz. Bir sanatci hicbirseyin kölesi degildir. Aradaki fark budur.
Merhaba Özcan Bey;
Öncelikle ilginiz için teşekkür ederim. Cevabınız beni mutlu etti gerçekten..
>>”Eger yazilan bir program parcasi bir sanat eseri olmus olsaydi, o zaman bu program koduna bakan herkes baska birsey algilayacakti ya da program her müsteride baska türlü calisacakti, cünkü her müsterinin programi algilayis tarzi degisik olacakti.”
Benim yazdığım kodlara bakan herkesin farklı birşey algılaması normal birşey. Çünkü ben bir işlemi yapmak için 2 tane for döngüsü kullanmışsam bu aynı işi 3 for ile yapan kişiye göre daha güzel bir kod iken, aynı işi 1 for ile yapan kişiye göre kötü bir koddur. Programın her müşteride farklı çalışması olayını anlayamadım. Çünkü resim tablosunu siz evinize astığınızda nasıl görünüyorsa, bende aynı tabloyu evime astığımda aynı görünecektir. Fakat sizin ona bakarken hissettikleriniz ile benim ki aynı olamaz.
Windows kimine göre çok güzel bir işletim sistemi iken, bir başkasına göre çok kötü bir sistem olabilir. Oysa windows aynı windows’tur.
Soyutluk olayına gelince kullandığınız dilde 2 tane soyut sınıf olması sanatı bağlayan birşey değildir bence. Soyutluk elle tutulamayan, gözle görülemeyen, hislerle veya algıyla varlığı bilinen şeylerdir. Bizim kodlarımız gibi.. Bana biraz kod verin desem çok saçma olurdu. Veya verdiğiniz txt dosyası olabilirdi anca. Ayrıca yazdığımız şeyler ile aldığımız çıktıda tamamen birbirinden farklı. Ben if’ler, for’lar yazarken, ekranda “Silmek istediğinize emin misiniz?” diye bir soru çıkıyor mesela.
Sadece 2 renk ile sanat eseri oluşturmak mümkündür elbette. Karikatür sanatçıları beyaz kağıda siyah kalemle birşeyler çiziyorlar mesela. Yada Salvador Dali’nin Knight and Death tablosuna baktığımızda sadece kalem yuvarlamaları ile yaptığı o meşhur resmi görebiliriz. Ressamın bir sürü rengi yok aslında. 3 ana renkten türeyen bir sürü rengi var. Müzisyenin 7 notadan türeyen bir sürü sesi var. Bizimde 0 ve 1’den türeyen bir sürü kodumuz var.. Terzinin sadece iğnesi ve ipliği var. Marangozun çekici ve çivisi.. Sınırları genişleten bizleriz.. dll’ler, web servisler, hazır sınıflar.. gibi birçok şeyle sanatımızı geliştirip genişletiyoruz.
Başkalarının yazdığı kodları okumuşsunuzdur illa ki, ve illa ki “vay be.. ne güzel kod yazmış” dediğinizde olmuştur. Yine aynı şekilde ” ne biçim kod yazmış ya, şöyle bir veri gelse patlar bu kod” dediğinizde olmuştur.. İşte sanat eserine bakıp, kendimizce yorum yapmamızdır bu.
Mantığın kölesiyiz haklısınız.. Yaptığımız işin mantıklı olması gerek. Fakat kodları yazarken duygularımızı katabiliyoruz işin içine. Canınız sıkkınken yazdığınız kodlar ile mutluyken yazdığınız kodlar farklıdır.. Çıktı aynıdır, aynı işi yapar fakat kodlama farklıdır illa ki.
Geri izleme: Mantığın Köleleri - Kurumsal Java Yazılımı - Özcan Acar
Bu konuda ikinci yazim:
http://www.kurumsaljava.com/2012/05/14/mantigin-koleleri-2/
Sanat kavramı hala koca bir muallak ve hep öyle kalacaktır. Çünkü gönle hitap eder, akla değil. Gönle hitap eden konularda aklın sınırlar çizmesi ancak galat’a sebep olur. Bugün sahneye çıkıp şarkı söyleyen bazı zevat için bir kısım ‘sanatçı’ ifadesini kullanırken bir kısmı ise ‘sanatçı değil şarkıcı’ ifadesini kullanır. Kime göre ve neye göre?
Bu sebeplerden yazdığımız kodların sanat mı olup olmadıkları konusunda söyleyebileceğimiz tek kesin şey, kesin bir şey söyleyemeyeceğimizdir. Eğer yazan, okuyan, gören kişinin gönlüne hitap ediyorsa ve ruhuna neş’e veriyorsa evet o kişi için sanattır. Ama dümdüz rasyonalist bir pencereden bakıyorsa yine o pencereden bakan kişi için sanat olduğunu söylemek oldukça güçtür. Aslında o kişi için bir Van Gogh tablosu yada Süleymaniye de şayet aynı pencereden bakılıyorsa yine sanat değildir.
Biz programcılıkla/mühendislikle uğraşan insanların önemli problemlerinden biri de estetik kaygılardan ziyade rasyonalist pencereden bakma güdümüzdür. Böyle kişileri tenkit etmek tabi ki yersizdir çünkü en başta belirttiğim gibi sanat tamamen kişisel bir olgudur. Şu sanattır yada bu sanat değildir diye sınıflandırma yapmak zannımca mümkün olmadığını düşünüyorum.
Bu konuya ” Apprenticeship Patterns – Guidance for the Aspiring Software Craftsman ” adlı kitapta çok güzel bir şekilde değinilmiş, ki kitaptaki fikir zanaat olduğu üzerine. Ustalık yolunda paternize edilmiş, iyi ustalardan modellenmiş tavsiyelerden oluşuyor. Kitabı yeni okumaya başladım, tavsiye ederim.
http://shop.oreilly.com/product/9780596518387.do
Geri izleme: Sorular ile Yazılım Mühendisliği 3/4 [Özcan Acar ile röportaj] « Yazılım Mühendisliği
Geri izleme: Kerem Vatandas – Software Researcher | Yazılım Mühendisliği Röportaj 3
“Zanaat değildir, çünkü usta çırak ilişkisi yoktur” demişsiniz. O zaman soruyorum: Sizden önce gelenlerin kodlarını incelemeden mi programcılık yapmaya başladınız? Kendi adıma, yazım tekniği, yöntem vs olarak kitaplardan öğrendiğimden çok daha fazlasını, başkalarının kodlarını okuyarak edindim. Bu durumda benim ustalarım benden önce bu yoldan geçenler olmuyor mu?
Başka bir soru: Hiç kickstart projeleri, örnek projeler/kodlar üzerinde çalışmadan mı kodlamaya başladınız? Değilse örnek projeleri yazanlar ustanız olmuyor mu?
Halen vaktimin önemli bir kısmını başkalarının kodlarını okuyarak geçiririm. Google’da dahil yazılanların çoğunluğunu çöptür ama o çöpün içinde bile bazen güzel yöntem/ifadeye rastlarım. O andan sonra o ifade/yöntem de benim alet çantamın bir parçasıdır..
Önceki iş hayatım epey insan yetiştirdim. Yanyana oturup neyi neden, nasıl yaptığımı benden sonra gelenlerle tartışarak, ödevler vererek geçirdik. Kendi başıma aylar içinde çözdüğüm problemler, darboğaz kısımları anlatınca çıraklar için saatler sürdü.. Usta çırak ilişkisinin amacı da zaten ustaca bir rota belirlenmesi, darboğazların usta tarafından çırağa aktarılması ile çırağın kısa sürede ustaya dönüşmesini sağlamaktır.
Bugün halen yazılım/elektronik alanında danışmanlık yaparım. Donanım yazılımında işler PC yazılımlarından çok daha çetrefil. Haftalarca uğraşılan bir konunun, ufak bir oturumda saatler içinde çözülmesi ve benzer dar boğazlardan daha sonra kolayca geçilebilmesi de usta-çırak ilişkisinin gerekliliğini gösteriyor.
Benim kanaatım programcılığın saçından tırnağına kadar usta-çırak ilişkisiyle geliştiği yönündedir. Elbette çoğu zaman ortada fiziksel bir usta görünmez. (BU BÜYÜK BİR HATADIR) Bunun ana sebebi ustanın olmaması değil programcılığın daha çok yalnız yapılması, uzaktaki ustanın örnekleri üzerinden gidilmesi.. Değilse her çırak kendi başına usta olabilse tüm bilgisayar teknoloji tecrübesinin yeniden yaşanması gerekir.
Geri izleme: Programlama’nın Tabiatı ve Programcılık Üzerine – II Bilim mi, Mühendislik mi Yoksa Sanat mı? Çünkü | Java Günlüğüm
Geri izleme: Programlama’nın Tabiatı ve Programcılık Üzerine – III Bilim mi, Mühendislik mi Yoksa Sanat mı? | Java Günlüğüm