Kaç Paralık Adamsınız?

Çok sert bir başlık oldu sanki 🙂 Aslında anlatılmak istenen kendi değerimizi biliyor muyuz? Biz yazılımcıları değerli kılan şeyler neler? Üstad Yegor Bugayenko kendisinde gelen maillerde ne gibi kriterlere dikkat ettiğini maddeler halinde ele alıyor ve bu maddelerin tamamen kişisel düşüncesi olduğunu, hiçbir standart iddiasında bulunmadığını da ekliyor. Bu arada yazının kaynağına buradan erişebilirsiniz. Bazı önemli kısımları not aldım ve bunları sizlerle paylaşmak istiyorum. Bu noktada ilham aldığım Ufuk Uzun’a teşekkürlerimi sunuyorum.


Açık Kaynak Projelere Katkı

Kullanmakta olduğunuz açık kaynak üründe bir hata bulamıyor veya bir bug’ı düzeltebiliyor musunuz?

Açık kaynak projelere katkı sağlamak bir yazılım geliştiricinin ilk ve en önemli özelliğidir. Açık kaynak projelere katkıda bulunuyor musunuz? Yazdığınız bir kütüphaneyi topluluklar kullanıyor mu? Bu durumları olası birkaç madde ile özetleyebiliriz.

  1. İlk olarak, kodunuzu paylaşmak için çok utangaç olabilirsiniz. Kodunuzun kötü olabileceğini düşünüp bu gerçek ile yüzleşecek kadar cesur olamayabilirsiniz. Açıkcası bu durum kulağa pek hoş gelmiyor. Eğer daha önce kodunuzu hiç paylaşmadıysanız ve olumsuz geri bildirim almadıysanız yüksek kaliteli gereksinimler içeren projelerde kendinizi kötü hissedebilirsiniz.
  2. Ne yazdığınızı ve ne tür projelere katkıda bulunacağınızı bilmemeniz yaratıcılık eksikliğinden kaynaklanır. Ticari projelerinizde kullandığınız neredeyse her şey açık kaynaktır ve bu projeler hatalar ve eklenmesi gereken birçok modül ile doludur bu gibi kısımlara yönelebilirsiniz.

Yegor bir yazılımcının github hesabının boş olduğunu görünce ve cv’sinde “Linux çekirdeğine katkı yaptı.” (neden olmasın?) gibi bir ifadedenin büyük bir artı olduğunu diğer yandan ise github hesabında 100+ star alan bir proje gördüğü zaman heyecanlanıyor ve yazılımcıya yüksek rakamlar vermeye hazır olduğunu belirtiyor.

StackOverflow Puanı

Stackoverflow puanı, tanımadığınız insanlar ile iletişim kurarak sorularınıza cevap bulabileceğinizin kanıtıdır.

Hepimiz stackoverlow’un ne olduğunu biliyoruz fakat çok az kişi aktif olarak sorulan sorulara katkıda bulunuyor.

Eğer kendini geliştirdiğin konu da herhangi bir soru sormuyorsan kendini geliştirmiyorsun demektir. Soru sormak için çok mu utangaçsın? Sorularını doğru ve kesin bir şekilde tanımlayamıyor musun? Malesef bu gibi durumlar yazılım geliştirici için kötüdür.

Stackoverflow’da sorulara cevap vermiyorsanız ilgili konu hakkında söyleyecek hiçbir şeyiniz yok demektir. Çoğu zaman bu karmaşık veya daha önce hiç karşılaşmadığınız sorunları çözmediğiniz anlamına gelir. Sadece basit bir şekilde iyi bilinen bileşenleri bir araya getirdiğiniz düşünülebilir.

Stackoverflow’u kullanabilmek önemli bir beceridir ve yazılımcı bunun farkına varmalıdır.

Deneyim - Tecrübe

“10 senedir java yazıyorum.” Eee yani? Bu ne işe yarar bir proje yazdığın anlamına geliyor ne de süper kod yazdığın. Bunun hiçbir önemi yok.

Deneyim göreceli bir parametredir. Özgeçmişiniz 2 sene önce programlamaya başladığınızı github ve stackoverflow hesaplarınızın boş olduğunu söylüyor ise kariyerinizin başındasınız ve geliştirebileceğiniz bir yanınızın olduğunu söylüyor demektir. Fakat cv’nizde hiçbir açık kaynak projeye katkısı olmayan 10 sene tecrübeli solution architect(çözüm mimarı) olduğunuz yazıyor ise bu sizin 10 sene boyunca itibarınıza yönelik hiçbir şey yapmadığınız anlamına gelir.

Deneyim kelimesini çok dikkatli kullanmalısınız eğer beraberinde destekleyici parametreleriniz var ise gönül rahatlığı ile söyleyebilirsiniz aksi takdirde sadece deneyim hiçbir işinize yaramayacaktır.

Sertifika

Sertifika derken Oracle, Zend, Amazon, IBM, MySQL gibi vb. kurumlardan alınan sertifikalardan bahsediyorum. Yani sertifikayı almak için bir sınava tabi tutulmalısınız bir konferansa gidip sadece dinleyerek aldığınız kalıtım belgelerini bu madde dışında değerlendiriniz. Bir sertifika merkezinde birkaç saat boyunca bilgisyayarın önünde oturduğunuz herhangi bir kitap veya internet erişimi olmadan yanıtladığınız sorulara karşı alınan sertifikalar sizi değerli kılar. Bu gibi sertifikaları almak sizi belki bir atım öne atabilir. Daha önce hiç sertifika almadıysanız kaybetmekten korkuyor olabilirsiniz. Bu gibi sertifika programları ciddi maliyetli programlar ve başarısız olduğunuzda paranızı hiçbir şekilde geri alamıyorsunuz.

Eğer kaybetmekten korkuyorsan savaşmaktan yorulmuşsun demektir.

Yetenek Çeşitliliği

Belli bir konuda kendini yetiştirmiş yazılımcıya daha iyi rakamlar ödemek zorundayız çünkü fazla seçenek imkanımız yok.

Birçok teknoloji veya programlama dili bilmeniz fiyatınızı düşürebilir. Aynı anda birçok konuda uzman olamazsınız demiyorum bu tabiki de mümkün ama burada belirleyici bir durum var o da rekabet. Piyasada binlerce java geliştiricisi var istediğinizi seçebilirsiniz fakat hadoop veya big data gibi konularda ise java’ya göre daha az rekabet söz konusu.

Belli bir alana odaklanıp o alanda uzmanlaşırsanız iş imkanınız düşecektir fakat değeriniz artacaktır.

Böylece “MySQL, PostgreSQL, Oracle ve SQLite” gibi deneyimleri duyduğum zaman veritabanı konusunda çok az deneyimi olduğunu düşünüyorum.

Konuşmalar ve Yayınlar

Blog yazıları yazmanın bir yazılımcı için önemli bir faktör olduğunu düşünüyorum. (en sevdiğin kedi hakkında değil yazılım konusunda) Daha iyisi ise konferanslara konuşmacı olarak katılabilmektir. Blog yazıları yazmak veya konferanslara katılmak her ikisi de sizi değerli kılar.

Böylelikle birçok kişinin sizi yakın takibine almasına yol açıyor ki bu da sizin için önemli bir unsur. Bu sadece işverenler açısından değil yazılarınızı okuyanların sizin fikir ve görüşlerinize değer verdikleri anlamına geliyor. Bunun dışında düzenli olarak yazı yazarsanız fikirlerinizi ikna edici bir şekilde sunabilme yenetiği kazanmış olursunuz.

Kim bilir belki bir kitap bile yayımlayabilirsiniz. Neden olmasın?

Daha Önce Çalıştığınız Yerler

Cv’nizde bu bölüme çok dikkat etmem. Twitter’ın CTO’su bile olsanız bu hiçbir şeyi ifade etmez. Daha önce çalıştığınız şirkette pozisyonunuz ne kadar yüksek ise teknik kısımlardan ve kaynak kod’dan o kadar uzak olduğunuz anlamına geliyor.

Sürekli gelişen ve değişen teknoloji içerisinde bir yazılımcının en son isteyeceği şey teknik konulardan uzak kalmasıdır.

Eğitim

Lisans, Yüksek Lisans, Doktora bunları önemser miyiz? Pek sanmıyorum.

Eğitim kriteri yukarıda bahsedilen daha önce çalıştığınız yerler parametresine çok benzer. Okulu bitirdikten 5 yıl sonra bu durumun önemini kaybettiğini göreceksiniz. Önemli olan kısım ise okuduğun sürede neler yaptın buna benzer aktivitelerinden bahsedebiliyorsan seni bir adım öne çıkarabilir. Nerede okuduğundan çok neler yaptığın seni belirleyici kılabilir. Fakat MIT veya Stanford gibi okullar fark yaratacaktır. (Bizden örnek vermek gerekirse İTÜ, ODTÜ, Boğaziçi) Bu gibi okullardan mezun olanlar için muhtemelen ücretiniz artacaktır.

Rehber niteliğinde olması dileğiyle.