Yazılımcı pazarı
05 March 12, Monday @ 15:32Yazılım geliştirici olarak iş aramak garip biçimde hem çok kolaylaşıyor hem de çok zorlaşıyor. Zorlaşmasının nedeni gereken bilgi ve deneyim seviyesinin sürekli artması. Kolaylaşmasının nedeni ise şirketlerin yazılımcı ihtiyacının bu seviyeden daha hızlı biçimde yükselmesi.
Mesela Amerika gibi güçlü CS (Computer Science, Bilgisayar Bilimleri) bölümlerine sahip üniversitelerin olduğu ve bir yandan da yurtdışından yazılımcı ithal eden bir ülkede, iyi bir yazılımcı bulup işe almak beklenmedik kadar güç bir iş. İlk önce verdikleri astronomik rakamlarla Wall Street ve keyifli ortamıyla üniversiteler bu kitlenin kaymağını topluyor, daha sonra da Google, Apple, Microsoft, Facebook, vb gibi isim sahibi firmalar. Kalanları kapabilmek için de küçük startuplar daha "cool" olma ve gelecekte dünyayı ele geçirme umutları satmakta birbirleriyle yarışmaktalar.
Bu kıran kırana ortamın iş ve işçi arayışını hallice değiştirmiş olması şaşırtıcı değil.
İşverenler başvuru beklemek yerine iyi geliştiricilerin takıldığı ortamlarda araştırma yapıp buldukları potansiyel adaylara görüşme teklifi gönderiyorlar. Büyük çaplı olanlar üniversitelere yerleşip potansiyel sahibi öğrencilerden stajyer kapmaya çalışıyor. Araştırma ortamlarından birisi diğer geliştiricilerin sosyal ağları. LinkedIn gibi profesyonel sosyal ağ siteleri, StackOverflow, TopCoder gibi bilgi paylaşımı ve yarışmalar yapılan siteler, özgür yazılım projelerine ev sahipliği yapan GitHub, GoogleCode gibi siteler belli başlı kaynaklar.
Ancak kendinizi görünür kılmanın en kolay ve etkili yolu bir özgür yazılım projesine katkıda bulunmak. Bu konuda geçen sene başında Javascript'çilerin ismini tanıyacağı bir geliştirici, John Resig İşe alma söz konusu olduğunda, bir Github commit'ini herhangi bir CV'ye tercih ederim diye bir laf etmişti ve epey tartışma yaratmıştı. Bu kapalı kod üreten işlerde çalışanların çok işine gelen bir durum değil. Bir şirkette onbeş yıl çalıştıktan sonra elinizde başkalarına göstermeye izniniz olan herhangi bir örnek kodunuz olmayabilir. Ancak eşitsiz ve acımasız da olsa gidişat bu yönde, çünkü birisinin yazılım becerisini değerlendirmenin en kolay ve hızlı yolu yazdığı koda bakmak. Özgür yazılım projelerinde kişinin test ve belge üretme, diğer geliştiricilerle ve kullanıcılarla birlikte çalışma gibi çok daha önemli özellikleri de bir ayna gibi görülebiliyor.
Tabii ki her projenin görünürlüğü farklı derecede. İş ilanlarından güncel bir derleme yaparsak, mesela Nginx, haproxy, Hadoop, memcache, Redis, MongoDB, puppet, vb gibi özgür yazılımlar epey sık geçiyor. Dolayısıyla bunlar üzerindeki deneyim ve katkılarınız daha çok ilgi çekme şansına sahip. Yazılımların sayfalarında yada şirketlerin mesela performansla ilgili sunumlarında neler kullandıklarını daha yakından görebilirsiniz.
Bir şekilde bağlantıya geçtikten sonraki adım ön eleme. Burada genelde daha önce yaptığınız işler, şirketin neler yaptığı, işin ilginizi çekip çekmediği gibi daha klasik konular konuşulmakta ve mesela şirketin yazılımcılarından biriyle kısa süreli bir telefon görüşmesi yapıp teknik bilginiz değerlendirilmekteydi. Ancak son zamanlarda arttığını gördüğüm bir uygulama daha var. Size bir problem ve bu problemi çözmek için yazılmaya başlanmış bir program gönderiyorlar, birkaç saat içinde programın hatalarını ayıklayıp, yeni özellikler ekleyip, belki bazı kısımları daha düzgün şekilde yeniden yapılandırıp geri gönderiyorsunuz. Programın çalışması kolayca test edilebileceği için şirketin yazılımcılarının incelemesinden önce epey bir eleme yapılabiliyor.
Asıl görüşme kısmı ise neredeyse tamamen Google modeline dönmüş durumda. Yarım gün falan süren, tamamen teknik konulardan oluşan ve tahtada kod yazılan zorlu bir sınav. Ağaç ve graph yapıları, arama ve sıralama, karmaşıklık gibi teorik konular, bildiğiniz programlama dilinin en ince detayları, işletim sistemi, ağ ve bilgisayar mimarisi. Bazı firmalar bu konsepti yalnızca gördükleri kadarıyla taklit ettikleri için, anlamsız derecede zor yada adaletsiz sorular sorabilirler. Bazı firmalar ise üniversite CS eğitiminin üzerinde ve gerçekten etkileyici yanıtlar bekleyebilir. Burada başarılı olmak için günceli takip etmek gerekiyor. Bildiğiniz sıralama algoritmaları Quick, merge ve heapsort'tan ibaret olmasın. Ağaç deyince aklınıza binary tree değil, Suffix tree, R tree, Radix tree, Judy array falan gelsin.
Bu konuları öğrenecek bir dolu kaynak var internette. Mesela AI Class, Udacity ve ML Class özellikle istatistiksel yöntemler ve yapay zeka konusunda çok başarılı kaynaklar. Bir diğer yardımcı da yine özgür yazılımlar. Favori yazılımlarınızın hangi algoritmaları kullandığına baktınız mı hiç? Mesela bellekte bir kopyalama işlemini nasıl en hızlı yaparsınız? eğer glibc kodunu açıp memcpy fonksiyonuna baktıysanız cevabı görmüşsünüzdür :) Ya da mesela onbinlerce bağlantıyı aynı anda yönetebilen bir sunucu nasıl yazılır? Nginx, lighttpd ve Apache gibi özgür yazılımların içinde buna dair ipuçları olsa gerek değil mi?
Bütün bu tantana yalnızca almışken daha iyi elemanı alalım kaygısından ya da beğenilen bir şirkete girmeye çalışmaktan kaynaklanmıyor. Gelişen teknoloji ve artan kullanıcı sayısıyla birlikte işlenen veri inanılmaz boyutlara ulaştı ve bu veriden çıkarılacak anlamlı sonuçlara, en başta reklam sektörü tarafından, çok büyük paralar ödeniyor. Dolayısıyla daha hızlı, daha az kaynak kullanan, daha başarılı sonuç üreten ürünler aslan payını kapıyor. Burada rekabet hem algoritma seviyesinde, hem de o algoritmayı en ideal biçimde gerçekleyeceğiniz uygulama seviyesinde.
Bu düzeye yalnızca dört senelik üniversite eğitimiyle (hele hele ar-ge yapılmayan ve seviyesi düşük üniversitelerde) ya da hobi seviyesinde bir programcılık ilgisiyle gelmek mümkün değil. Mutlaka zorlu problemlerle karşılaşıp bunlara çözümler geliştirmeniz, bir yandan da teorik bilgilerinizi sağlamlaştırmanız lazım.
Böyle bir hedefiniz varsa, stajınızı, çalışacağınız şirketleri, yapacağınız kişisel projeleri dikkatle seçmeniz gerekli. Mesela yüksek maaşlı ancak rutin ve yıpratıcı bir işe girip, uzun bir süre çalıştıktan sonra oraya çakılı kalıp, daha iyi bir noktaya geçme şansınız kalmadığını farkedebilirsiniz. Yaptığınız işin başkaları tarafından görülebilir olmaması ve yeni şeyler öğrenmenizi gerektirmemesi çok tehlikeli kariyer riskleri.
ramazan
05 March 12, Monday @ 16:27 Tebrik ederim, başarılı makale olmuş. Ufkum açıldı.Can Yuce
05 March 12, Monday @ 17:54 Elinize saglik, guzel bir makale olmus. Ozellikle son paragraftaki kisim Turkiye'de yazilim sektorunde calisan guruhun buyuk bir orneklem kumesi icin gecerli maalesef.Hakan Müştak
05 March 12, Monday @ 17:59 Müthiş yorum, tebrikler...Eren Kovancı
05 March 12, Monday @ 23:13Bizde maalesef ne istediğini bilmeyen firmalar çoğunlukta. Bir web programcısının grafik bilgisi web sitesinde kullanacağı kadardır. Ancak verilen iş ilanlarına bakıldığı web programcısı arayan firmaların farklı özelliklerde istediği görülebilir. Bir yazılımcı çok iyi kod yazsa da firmaların ille iyi grafik bilgisi isteklerinin verdiği garip engele takılabiliyor.
Yazı çok güzel olmuş, bu sektörü iyi bilen birinin elinden çıktığı belli. Bu tip yazılarda genelde klasik cümleler kuruluyor, klasik kalıbı yıkıp kendi kalıbınızı oluşturmuşsunuz.
Tebrik ediyorum.
yuxel
06 March 12, Tuesday @ 14:29 elinize sağlıkCem Ikta
08 March 12, Thursday @ 04:51 Guzel tespitlerinizi paylastiginiz icin tesekkurler.izzet
09 March 12, Friday @ 09:20Güzel, güncel, kapsamlı bir yazı olmuş bence de. Eline sağlık. Bilhassa Bilgisayar Mühendisliği okuyan öğrencilerin yazılımcı pazarındaki bu tip gelişmelerden, açık kaynak projeleri kullanmanın, bu projelerde rol almanın öneminden haberdar olması gerekiyor.
Doğrudan konuyla ilgili olmasa da silikon vadisindeki kaliteli yazılımcı bulma çabalarıyla ilgili bir New York Times makalesi:
http://www.nytimes.com/2011/03/26/technology/26recruit.html?_r=1&scp=1&sq=silicon%20valley%20job%20party&st=Search
Aslında Türkçe bir haber vardı bu makale üzerinde yazılmış ama maalesef onu bulamadım.
demir
08 March 12, Thursday @ 18:02 başarılı +1Mustafa Koyunoglu
14 April 12, Saturday @ 12:52CSE son sınıf öğrenici olarak.. tamda nerede çalışacağımı düşünmekle zaman geçirirken okuduğum bu makaleyi çok beğendim. Teşekkürler.
lunr
05 November 12, Monday @ 12:19 Teşekkürler, yanlız özellikle Türkiye'de bu şekilde ileri teknolojiyi takip eden çok da fazla firma olduğunu sanmıyorum.orası neresi
31 December 13, Tuesday @ 19:12 Güzel arkadaşım, sen bunları herhalde abd ya da güçlü IT endüstrisi olan başka bir ülke için yazdın. Bizzat bizdeki yazılım firmalarının halini görüyorum. Herkes rahatsız mühendisler bile bıkmış. AZ maaş çok iş sistemi oturmuş kimse judy arrayle uğraşmaz.Gürer
01 January 14, Wednesday @ 03:15 Bulunduğumuz ülke çok önemli değil artık. Herkes her yere gidebiliyor, hatta kolayca uzaktan iş bulabiliyor. Dolayısıyla az maaş çok işe mahkum değil kimse.Tercih Edecek Bir Öğrenci
21 June 16, Tuesday @ 16:07Hımmmm! Demek ki çok iyi bir düzeye gelebilmek için seviyesi düşük üniversiteleri tercih etmemeliymişiz. Ama evde okumak gibisi de yok bence, dışarıda okumak için harcayacağım onbinlerce lirayı İngilizce kurslarına, kitaplara ve donanımlara harcasam daha iyi olacakmış diye düşünüyorum. Belki de yanlış düşünüyorum. Sizin gibi bir bilirkişiden önerilerinizi beklerim. NOT: Ailecek Edirne'de yaşıyoruz.
Gürer
21 June 16, Tuesday @ 16:19Bir üniversite diploması almak lazım sırf bürokratik değeri için bile olsa. Yüzbinlerce lira verip bütün sınavları kazanıp dünyanın en iyi üniversitesine de gitseniz, kendiniz uğraşmadıkça bir işe yaramayacak. Dolayısıyla paranızı saklayın, zamanınızı de internet üzerinden kolayca bulabileceğiniz kaynaklara ayırın. Dil öğrenmeniz bu işi çok kolaylaştıracak. En kolay gidebileceğiniz ucuz bir devlet üniversitesinden de bir diploma alın.
Tercih Edecek Bir Öğrenci
10 July 16, Sunday @ 15:26Merhaba Hocam. Burada size bir soru sormuştum ve siz yanıt vermiştiniz. Şu an sorduğum soruyla yanıtı göremiyorum. Onları neden sildiniz Hocam?
Gürer
12 July 16, Tuesday @ 20:43 Soru ve yanıt duruyor. Sunucuyu başka bir makinaya taşımıştım belki geçici olarak kayboldu arada.