Meral Okay’ın anısına…
Love or Hate?
I love C#.
I love Java.
I love Objective-C.
Those programming languages are built on top of excellent frameworks that make our lives easier in terms of programming difficulty.
But,
I hate the way that they make us lazier. If you switch back to C++ after developing on top of the .NET or JDK stack for a long time, you will understand what I mean. The .Net and Java frameworks are aggressively improved and kept up to date while the C++ community is more conservative. (Even though C++11 brings new features (i.e. lambda) to the scene, it still lacks the richness of the .NET or Java framework. For example, C# shipped lambda support on March 2007 with its 3.0 version.)
As a result of this, I love the ease of use of C#, Java and Objective-C but the power of C++.
Programming in C#, Java or Objective-C is like driving a car with an automatic transmission, while programming in C++ is like driving a stick-shift.
Haftanın Sözü
Programmers are in a race with the Universe to create bigger and better idiot-proof programs, while the Universe is trying to create bigger and better idiots. So far the Universe is winning.” – Rich Cook
NOT: Bu yazıyı Ocak 2008‘de yazmıştım. “Office 2007″ ile ilgili değerlendirmeleri okurken bu tarihi göz önünde bulundurmanızda fayda var.
….
Bu yazı, tamamen yönlendirme amacıyla yazılmış kişisel düşüncelerden oluşmaktadır. Çevreye verdiğim rahatsızlıktan dolayı özür diler, benliğinizde oluşabilecek hasarlardan dolayı mesuliyet kabul etmediğimi belirtirim.
….
Son zamanlarda -yaklaşık 1 aydır- orta ve büyük ölçekli projelerde çalışacak yazılımcılar aramaktayım. Projelerimiz genelde .NET temelli web, windows ve web service projeleri olduğu için, “CLR nedir, MSIL nedir bilen, C# ile yaşayan, MS Visual Studio fantazisi olan, sigara içmeyen (en önemli kriter!) ve SQL ile beslenen azimli arkadaşlar arıyoruz.” şeklinde ilanlar vermiştim. Buna istinaden birçok görüşme yaptım, onlarca insanla konuştum. Ne konuştuğunu, sözünü ettiği teknolojinin ne olduğunu bilen kişileri bir tarafa ayırmakla birlikte, “ben çok iyi frontpage biliyorum, visual studio kullanmıyorum“, “firefox nedir bir tilki türü müdür?“, “javascript ile java farketmez, aynı şey nasılsa“, “bence notepad visual studio’dan daha iyi bir editor” gibi marjinal önermelere sahip yazılımcı adaylarının özgeçmişlerini inceledim. Bu görüşme sürecinden çıkardığım sonuçları, kutsal misyonunu yerine getiren bir şövalye edasıyla paylaşmak istiyorum:
- Herhangi bir iş pozisyonuna gönderilen özgeçmişlerin %20‘si henüz okunmadan eleniyor. Özgeçmişlerini docx uzantılı olarak gönderen kişi, benim MS Office 2007 kullanmayabileceğimi düşünmüyorsa, bu O’nun özgeçmişinin okunması için tüm olasılıkları göz önüne almadığını gösterir. Yazılım üretmek, tüm olasılıkların gözönüne alındığı bir süreçtir. Ben bu kişileri baştan eliyorum. (Not: MS Office 2007 kullanıyorum.)
- Veri girişi, form doldurma, müşteri temsilciliği işlerine sonsuz derecede saygım var. Bu sektörlerde çalışan arkadaşlarım da var; fakat hala verdiğim ilanla bu sektörler arasında kurulan bağı anlayabilmiş değilim. Nasıl oluyor da, yazılım geliştirmek “giriş yapmak”, kod yazmak “veri girmek”, “proje yönetim süreçleri” “müşteri temsilciliği” olarak algılanabiliyor hala anlayabilmiş değilim.
- “C# biliyorum, SQL biliyorum, Asp.Net biliyorum.” ifadesini kullanan arkadaşlar genelde küçük dünyaları ben yarattım edasındalar. Dolayısıyla maddi anlamda beklentileri çok büyük. Oysa ciddi anlamda bir çelişki söz konusu.
- “C# biliyorum” diyenlerin birçoğu “delegates“, “event handlers“, “pageddatasource” kavramlarını hiç duymamış, hiç windows uygulaması yazmamış. Hashtable ve ArrayList farkını bilmeyenler var desem sanırım sözü uzatmama gerek kalmadığını anlarsınız.
- “SQL biliyorum” diyenlerin birçoğu T-SQL bilmiyor. “Group by having …“, “cursor“, “sql injection“, “dynamic sql” gibi kavramlara yabancılar. Karmaşık stored procedure ve trigger yazabilenler ise neredeyse yok. MS SQL Server’i Enterprise Manager’dan ibaret sananlar, SQL Profiler’i hiç duymamış olanlar var.
- “ASP.NET” biliyorum diyenlerin bir çoğu, “strongly typed DataSet“leri doldurup bunları sayfadaki kontrollere bağlamaktan öteye gidemiyor. Interface, inheritance gibi kavramlara yabancılar. Uygulama içinde sql kodu oluşturandan (üstelik string sql = “select * from users where userid = “+ request(“id”) gibi felaket kodlarla) tutun da, Page.IsPostBack kullanmayı bilmeyenlere kadar ne ararsanız var. Yine de “Asp.net“, nispeten “C#” ve “SQL“e göre daha iyi durumda.
- Yazılım, bir ekip işidir ve alçakgönüllülük esastır. Ekip çalışmasına yatkın olmayan, ben her şeyi bilirim ve tekil çalışmak isterim yaklaşımı sergileyen arkadaşlar, hiç şansınızın olmadığını daha önce de söylemiştim değil mi? Ekibin bir parçası olmanın sorumluluğunu hissetmeyen ve geride kalmamak adına kendisini öğrenmeye adamayan kişiler doğal seleksiyona uğramak zorundadır. Hepimiz yaşam şartlarımıza göre adapte etmiyor muyuz kendimizi? Bukalemun bile saklanmak için derisinin rengini değiştirirken, ben illa sigara içerim diye tutturmak neden? (İnsanın kendisini öldürme özgürlüğü bile olsa kişisel tercihlere saygılıyım, ama sigara kokan bir ofise veya kişiye hiç saygım yoktur. )
- İngilizce bilmemek ayıp değil öğrenmemek ayıptır! Keşke, Türkiye teknolojinin ve yazılımın beşiği olsaydı da tüm kaynaklar Türkçe olsaydı. Sevgili yazılımcı adayı arkadaşım, olsa dükkan senindi ama ne yapalım, hayat bu zor.
- Çok konuşan boş, az konuşan öz konuşur. İş görüşmelerinizde, bildiğiniz veya bilmediğiniz her şeyi makine edasıyla anlatmaya kalkmayın. Bu sizi ezberci veya geveze durumuna sokacaktır. Emin olun, sizinle görüşen kişi -ben anlamıyorum dese- bile cindir, tilkidir, yanıltıcıdır. Görüştüğünüz kişilerin birinin veya birkaçının mutlaka sizden daha iyi olduğunu göz önüne alın. Özellikle teknolojiler hakkında atıp tutmayın. Sıklıkla karşılaştığım bir durum, .Net – Php, .Net – Java, Ms Sql Server – Oracle karşılaştırmasının yapılması. Karşılaştırma yapmak iyidir ama kötülemek değil! Teknoloji sizi kullanmasın, siz onu kullanın. Bir teknolojiyi kötülemeniz, kullanamadığınız ve bilmediğiniz için gereksizleştirmeye çabaladığınız düşüncesiyle hanenize eksi puan getirecektir. Bilmediğiniz veya fikrinizin olmadığı konularda açık olmak her zaman pozitif yaklaşım sağlar.
- Ben sana yazılımcı olamazsın demedim, adam olamazsın dedim! Ne kadar iyi olursanız olun, isterseniz kendi beyninizi programlayabilecek kadar usta olun, önce insan olun! Olumsuz cevaplanan başvurularınıza istinaden karşı tarafa “imalı” cevaplar atmayın. Gün olur bunlar karşınıza çıkar. Türkiye’de yazılım dünyasının ne kadar küçük, “kara liste”nin ise ne kadar büyük olduğunu tahmin bile edemezsiniz.
Umarım kendi adınıza da pay çıkarabilmişsinizdir. Şahsen ben çıkardım.
Efsane geri döndü…
Çok uzun bir aradan sonra tekrar merhaba!
Ne kadar olduğunu bile hatırlayamadığım bu ayrılık süresi, gerek hayatımdaki büyük değişiklikler gerekse de bir şeyler yazmaktaki motivasyon eksikliği nedeniyle gerçekleşti. Bu süre zarfında yarim İstanbul‘dan tam 11.000 km uzağa taşındım; yeni bir eve, yeni bir işe ve yeni bir aşk umuduna doğru yelken açtım. Adaptasyon süreci, yoğun iş temposu vb. derken de blogumu ihmal ettim, hiçbir şey yazmadım ve nihayetinde tamamen kapattım. Tekrar açılması da bugüneymiş…
Bu ileti, yeni blogdaki ilk yazım; lakin eski blogumda yer alan ve yoğun talep gören yazıları da kronolojik sıraya göre ekleyeceğim. Yıllar önce yazılan satırları tekrar görmek kimilerine garip gelebilir, o nedenle sadece geçerliliğini yitirmeyen teknik makaleleri ekleyeceğim.
Hatırlayanlar bilir, eskiden yazılım ağırlıklı -özellikle de Microsoft .NET ve SQL Server- yazılar yazıyor ve kod parçacıkları paylaşıyordum. Şüphesiz ki bunların yanı sıra eğlenceli yazılar da yayınladım. Şaka gibi gelebilir ama bu kategoriye giren “İş görüşmesi teknikleri: Ne konuştuğunu bilmemenin dayanılmaz hafifliği” başlıklı yazım binlerce defa okundu, paylaşıldı, iyi kötü onlarca eleştiri aldı. (Ukala bir tavır sergilediğimi düşünenlerden tutun da kanayan yaraya parmak bastığımı belirtene kadar çok farklı yorumlar aldım.) Blog yazmak, nihayetinde bir motivasyon işi ve elinizden çıkan sözcüklerin -öyle ya da böyle- tepki alması da ayrı bir motivasyon kaynağı oluyor.
Yeniden yazmaya karar vermemdeki temel etkenlerin başında, Objective-C, Java, ActionScript gibi son yıllarda ilgi duyduğum ve proje geliştirmeye başladığım diller geliyor. Yazılım dünyasına ilk ciddi adımını attığı günden beri (2000 yılında VBScript ile ASP -Active Server Pages- yazarak) Microsoft teknolojileri ile çalışan, Microsoft .NET kütüphanesinin yayınladığı gün ilk C# kodunu yazan, Microsoft SQL Server‘ı 7.0 versiyonundan itibaren kullanan birisi için ‘farklı‘ teknolojilere yönelmek ve bu teknolojilerle ciddi projeler geliştirmek büyük motivasyon doğuruyor. Yeniden başlamamı sağlayan, son dönemde beni buna itekleyen teknolojilerin başında da iPhone SDK, Android SDK, JDK ve Oracle geliyor, dolayısıyla sıkça bu konularda da yazacağım. Microsoft konusuna gelince, tabii ki .NET üzerinde geliştirme yapmaya devam ediyorum ve gerek .NET gerekse de SQL Server üzerine karalamaya devam edeceğim.
‘Yazılım’ karmaşasından ve elektronik aletlerden kaçtığım dönemlerde gerçekleştirdiğim gezilerimi de paylaşacağım. Gezelim görelim babında.
Unutmadan, bir de ‘Asım‘ hakkında bol bol yazacağım. ‘Asım‘ da kim diyenler için geliyor:








