Altan Tanrıverdi | Öylesine | 18 yorum
16 yaşında olsaydım…
Uyarı: Bu yazıdan hoşlanmayan meslektaşlarım olabilir, çünkü, konulara kişisel bakış açımı içermektedir. Yer alan önerilerden faydalanmak isteyenler, yazıyı okurken çeşitli önyargılarım ve kalıplarım olduğunu göz önünde bulundurmalıdırlar.
Uzun süredir arayış içerisinde olan genç yazılımcı adaylarının sektöre yönelik sorguladıkları ama net cevap alamadıkları sorular var. Bu sorulardan ben de payıma düşeni alıyorum ve ne yazık ki bizden beklenen cevaplar net olmadığından bir nevi tatminsizlik sürüyor. Nereden başlamalıyım? Hangi programlama dilini tercih etmeliyim? Hangi platformda, hangi IDE ile yazılım geliştirmeliyim?, Sektörde nasıl iyi bir işe sahip olabilirim? Ne kadar maaş alırım? Hangi Framework’ü kullanmalıyım? vb. onlarca soru yıllardır çeşitli platformlarda dillendiriliyor. Söylediğim gibi göreceli yaşlı yazılımcıların bu konuda, size önerileri olabilir ama net cevaplar verip kesin yönlendirmeler yapmaktan hep kaçınılır. Doğrusu da budur. Diğer taraftan “senin yerinde olsaydım” ibaresi ile başlayan cevaplar da yanlış sayılmaz ki birazdan ben de öyle yapacağım.
Hayatta birçok şey programlamanın size yaşattığı duyguyu yaşatamaz. Evet birilerini çok seversiniz, bir futbol takımına fanatik olarak bağlısınızdır, ailenize taparsınız, sosyal olaylara, bilime, sanata veya herhangi bir alana yönelik ilginiz çok yoğun olabilir ama bu ilk cümledeki yargıyı değiştirmeyecektir. Bir yazılımı yaratma duygusu yaşayabileceğiniz en büyük hazlardan biridir. Yazılımcının her şeyden önce en iyi bildiği yapısal model psikanalizdir ve denek olarak kendini koyar. İd’de saklı arzuları sayesinde haz duyar ve doyuma ulaşmaya çalışır, Ego ile ayaklarını yere indirmeye çabalar, hazzı enerjiye dönüştürür ve planlamaya girişir, sonunda da Süperego ile bir öğrenme sürecine girer ve izlemesi gereken yolları belirler. Bu sürecin ikinci aşamasına gelmiş yazılımcı adayının önünde yukarıda saydığımız sorular belirir. Bu o kadar zor bir süreçtir ki yapılacak en ufak öneri, öneriyi yapan tarafından çok önemli olmasa da alan açısından hayati olabilir.
Yazının amacını çok bulanıklaştırmadan konumuza dönelim. Kendimi 16 yaşında yazılıma gönül vermiş biri yerine koymaya çalıştım. Gelmiş olduğumuz nokta yeterince bulanık zaten, onlarca alan, programlama dili, framework vs. içinde boğulur gibi oluyoruz. Seçim gerçekten zor görünüyor. İlgi alanın ne ise ona göre hareket et gibi muğlak öneriler yerine daha elle tutulur öneriler yapmaya çabalayacağım.
16 yaşında olsaydım şunları yapardım:
1. Amaç Belirleme
İyi para kazanıp, iyi bir yaşam standartına ulaşmak mı? Sağlam yazılımlar üretip adımı duyurmak mı? vb. Elbette liderlik kitaplarındaki sığ söylemleri kullanmak değil niyetim ama hiçbir amacınızdan utanmayın, bunlar sizin yegane motivasyon araçlarınızdır. Daha iyiye yönelik olmayan hiçbir çaba size başarıyı getirmeyecektir.
2. Üniversite Eğitimi
İmkanım varsa Bilgisayar, Elektronik veya ilgili alanlarda yüksek öğrenim şansı yakalamaya çalışırım. Bu imkanı yakaladığınızda şanslı bir azınlık içerisinde olduğunuzun farkına varmalısınız. Derslere kredi olarak bakmak yerine, okul dışında binlerce TL vererek ancak alabileceğiniz eğitimler olarak bakın. Örneğin ODTÜ’de 135 saatlik bir Java eğitimi için 2500-3000 TL ödemek zorundasınız.
3. A’dan Z’ye C Kılavuzu
Kaan Aslan‘ın “A’dan Z’ye C Kılavuzu” adlı kitabını almak. Amacımız sadece C programlama dilini öğrenmek değil, belki de yazılımcı adaylarına yapılmış en iyi öğütleri ve bu dünyayı tanıtmaya yönelik metinlerden birini okuma şansını bulmak. Bu kitabın ilk 50 sayfası size yazılımı, onun sınıflandırılmasını, programlama dilleri ve kategorilerini, işletim sisteminin ne demek olduğunu ve bir yazılımcının bilmesi gereken tanımları sunacaktır. Bunların yanında C programlama dilini öğreten en iyi kitaplardan biridir ve sanırım Türkçe kitaplar içinde birincisidir.
4. İşletim Sistemi Seçimi
Unutmayın, burada “ben olsam” ibaresiyle bu yazıyı yazıyorum ve Linux dışında bir platformu asla seçmezdim. Bu bağnaz bir fanatiklik değil tam aksine daha önce yaşanılan deneyimlerden elde edilen bir sonuçtur. Biz, bir son kullanıcı gözüyle işletim sistemi tercihi yapmıyoruz, hedeflediğimiz amaçlara en uygun ortamları belirlemeye çalışıyoruz ve Linux’un yazılım dünyasına sunulmuş bir hediye olduğunu görmek gerekiyor. Hayatınızın 1 yılını Linux’a harcamakla başlayın eğer ileride Sistem Yöneticiliği yapmaya niyetiniz yoksa bir yazılımcı olarak hemen hemen gerekli tüm alışkanlıklarınız yerine oturmuş olacaktır.
5. Alan Seçimi
Amacınız iyi bir yaşam standartı belirlemek veya parayla alakalı olmayan şeyler olabilir, iyi bir haberim var bunların seçtiğiniz alan ile hemen hemen hiçbir ilgisi olmayacak, seçtiğiniz alanda ne kadar iyi olduğunuz en önemli kriterdir. Sanayi üretimine yönelik yazılımcılık, oyun, sistem, mobil, Internet yazılımcılığı vs. buna karar vermek zorunda kaldığınız bir nokta olacaktır. Hepsinde uzmanlaşma şansınız maalesef olmayacaktır. Bazı durumlarda kaymalar yaşabilirsiniz ancak bu oldukça sıkıntılı bir süreç olacaktır.
6. Programlama Dili Seçimi
Alan belirlemeniz bu konuda seçim yapmanızı kolaylaştıracaktır. (Kaan Aslan’dan alıntılayayım) Unutmamanız gereken şu: sizi iyi bir yazılımcı yapacak şey, çok fazla programlama dili bilmeniz değil, bildiğinizi etkin kullanabilmenizdir. Kitapta yazan ve yanında çalışma fırsatı bulduğumuz yazılımcı abilerimizden öğrendiğimiz bir yol vardır: bir alçak, bir orta ve bir yüksek seviyeli programlama dili öğrenmek. Eğer kafanızda net bir alan belirleyemediyseniz bunu gerçekleştirene kadar C ile devam edin. Ben olsam Assembly, C, Go (veya C++ veya Python) üçlemesini tercih ederdim. İş olanaklarına bakılırsa Java, PHP, C# programlama dilleri de her zaman iyi tercihler olacaktır, bunu gözden kaçırmayın. ( Şu adresten bu konudaki eğilimi takip edebilirsiniz: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html )
7. IDE Seçimi
Yeni başlayan bir yazılımcı adayı olarak tercih ettiğim dillere en uygun olmasa da hepsini bir arada kullanabileceğim bir IDE daha yerinde olurdu. Örneğin NetBeans; Java, C/C++, PHP ve ek olarak ayrı bir kurulum ile Python’a destek veriyor. İyi bir tercih. Hangi IDE’yi kullanırsanız kullanın eğer kullanım kılavuzunu es geçiyorsanız onu, çok büyük oranda etkisiz kullanıyorsunuz demektir. Mutlaka okuyun ve kendinize uygun şekilde özelleştirin. Renk seçiminden, kısayol ayarlarına kadar her şeyi özelleştirin.
8. RegEx
Düzenli İfadeler sadece programlama değil, aynı zamanda sistem üzerinde elinizi güçlendirecek bir yardımcıdır. Öğrenme süresi/Fayda oranının en düşük olduğu kavramlardan biridir ve 1 aylık bir öğrenme süreci sonucunda çok güçlü bir araca sahip olacaksınız.
9. Git
Linux’un yaratıcısı Linus Torvalds tarafından yazılan Git, kaynak kodu yönetimi ve versiyon kontrol aracı olarak bilginize eklemeniz gereken bir araçtır.
10. OOP
Nesne yönelimli programlama meslek hayatımızda çok önemli bir yere sahip hale gelmiştir ancak OOP konusunda kritikleri okumak ve yargılarımızı tek bir görüş ile oluşturmamak gerekiyor. OOP dışında mevcut olan programlama yaklaşımlarını incelemeyi gözardı etmeyin. Alexander Stepanov, Paul Graham gibi önemli isimlerin bu konudaki kritiklerine göz geçirmekte fayda olacaktır.
11. Framework
Seçtiğiniz programlama dillerine göre fazla alternatifiniz olmayabilir ancak bir framework seçerken neye imkan tanıdıkları yanında neye cevap veremediklerini de öğrenin. Framework hakkında yazılan olumlu şeylerden çok olumsuz şeyler size fikir verir. Unutmayın bir araç hakkında yapılan söylemlerin çoğu onu kullanmamış veya yeni kullanmaya başlamış kişilerden gelebiliyor ve bu çok sık rastlanan bir durum.
12. Şirket Seçimi
Şirket seçmeyin, yazılımcı seçin. Bir yazılım şirketini iyi yapan ilk kriter orada çalışan diğer yazılımcılardır. İlk zamanlar ne yazık ki bunu siz belirleyemeyeceksiniz. İyi olmayan şirketlerde çalışmak zorunda kalacaksınız, bunun ne kadar süreceği, sizin göstereceğiniz gelişime bağlıdır. Alacağınız maaşı da yine belirleyen siz olacaksınız. Ama bu süreci atlatırken yasal/etik olmayan hiçbir sürece boyun eğmeyin. Düşük sigorta, maaş vb. kısıtlamalara olur çekmeniz hayatınızda geri dönülmeyecek hasarlara yol açabilir. İyi bir yazılımcı sadece ürettiği program ve kodlar ile değil takındığı tavır, dürüstlük ve gördüğü saygı ile de belirlenir.
13. Ne kadar kazanabilirim?
Büyük ihtimalle 2000 – 10000 TL arası kazanacaksınız. Junior olsanız dahi bunun altındaki ücretlere tenezzül etmeyin. Yazılım çoğunlukla lüks işidir ve bunun üreticileri sizlersiniz. Çok net olarak şunu bilin, aldığınız eğitimi ve bilgi birikiminizi şirketler karşılamak ZORUNDADIR. Çünkü bu bilginizi kullanan onlardır, ucuza satmayın. Çok iyi referans olabilecek ve/ya çok iyi olduğunu düşündüğünüz bir şirket dahi olsa kabullenmeyin. Eğitim sürecine sizin veya ailenizin yaptığı yatırımları düşünün ve aynı sürede bu yatırımı geri alabiliyor olmanız gerektiğini bilin. Junior olarak 2000-2500 TL, Yazılımcı olarak 2500-5000 TL ve Senior olarak 5000 TL üstü idealdir. Bulunduğunuz şehire göre hayat standartınız değişmemek şartıyla beklentilerinizi kendiniz düzenlemelisiniz.
14. …
Trackbacks/Pingbacks
- Okunması gereken güzel bir yazı - Sanalname - [...] 16 Yaşında Olsaydım [...]
- Önyargılar Üzerine | Can İnce Günlüğü - [...] Öncelikle yazılarını -genel olarak yaklaşım açısını- fevkalade bulduğum, beğendiğim Altan Tanrıverdi’den bir alıntı yapmak isterim: ‘Doğrusu da budur. Diğer ...



Kaan Aslan bu kitabı henüz piyasaya sürmüştü. Hatta PC dergisinde bazı makaleler yayınlıyor ve kitabın yayına çıkacağını söylüyordu. Ben bütün paramı pc almak için biriktiriyordum. Sonra pc almak yerine paramı dershaneye verdim. Mühendis olmak istiyordum. Sonra katsayı adaletsizliği geldi. Böyle gider ama beni 16 yaşıma götürdü yazı.
Teşekkürler, ülkede herkes programcı olduğu için ve çoğu yeterli olmadığı için programcılara pek kıymet verilmiyor sanırım. Tabi bu çalışma şartlarına da yansıyor.
Ben neden 16 onu anlayamadım, mesela 12 olsa olmaz mı?
)
Niye olmasın, olur tabi ( http://ff.im/dvwWS ) ancak Türkiye’de çok gerçekçi değil maalesef, istisna olur. 16 yaş lise eğitiminin sonuna denk gelen bir yaş ve yazıda geçen soruların en sık sorulduğu zaman.
Güzel bir yazı olmuş. Ellerine sağlık demeden geçemeyeceğim…
16 yaşındayım!Amacım ‘sağlam yazılımlar üretip adımı duyurmak’ ve bu yazıda birçok şey kafamda şekil aldı.Tek sorum var “A’dan Z’ye C Kılavuzu” adlı kitabı Malatya’da bulmam mümkünmü?
Not: Bir çok programlamacının ilgilenmediği bir konuya değinmişsiniz teşekür ederiz.
@Ali
Teşekkürler.
Aşağıdaki adreslerden birinden sipariş verebilirsin:
http://www.idefix.com/kitap/adan-zye-c-kilavuzu-kaan-aslan/tanim.asp?sid=Q6FO9BRG5A0E55JY8MSM
http://www.kitapyurdu.com/kitap/default.asp?id=18599&sa=55594675
altan bey;
Çok değerli ve güzel bir yazı olmuş. Emeğinize sağlık. Teşekkür ederim.
Aklımızdaki sorulara cevap oldunuz. Teşekkür ederiz.
Bir de bir yazılımcı olmak için belli bir zeka seviyesi gerekli olduğunu düşünüyorum. İsteyen herkesin bu işi yapabileceğini zannetmiyorum.
Tşk Ederim Gercekten harika bir yazı
üstad tamda senin dediğin bir evrede daha seçim aşamasındayım 1.5 yıldır php yi seçtim ve onlan gidiyorum tabi arada bıraktığımda oldu yarısından fazlasını boş geçirmişimdir fakat php ninn kolaylığındanmıdır bilinmez (saten başka dil bilmiyorum) öğrenme sürecim hızlı aslında makalende yazdığın Java, PHP, C# üçlemesini bugünden itibaren hedef yaptım bu yazı gerçekten genç yazılımcılar için mükemmel bir hayat dersi olmuş javam.org fazla takip etmezdim aydan aya girerdim artık takip listemdesiniz
Altan bey,
gerçekten güzel, bizler için (yaş==42) geç de olsa gençlerin mutlaka okuması, düşünmesi, planlaması gereken bir süreç
Ben yazınızın, sadece yazılım/yazılımcı değil her türlü sektör veya meslek için yorumlanmasının gerektiği inancındayım.
Merak eden, öğrenmek isteyen, çalışan, herkese başarılar dilerim…
Güzel bir yazı olmuş.Ben 15 yaşındayım, 2 senedir PHP ile ilgileniyorum.Bilgimin yettiği kadarıyla bi kaç küçük iş aldım fakat bu işler büyük olmasada iyi para kazandırdı.
Eskiden İnternet yoktu, küçük yaşta ticarete atılıp işleri büyütüp, daha sonra ‘dev’ olan birçok kişi var.Şuan hemen hemen her evde internet ve bilgisayar var.İnsanlar başında vakit geçiriyor.Facebook tarzı sitelerde vakit öldürmek yerine kendini geliştirmek için vakit harcarsa kendine faydalı olur.İşleri ilerleterek ‘dev’leşebilir.Bence önemli olan başkaları için, onların istediklerini yaparak garantili para kazanmak değil,kendi projeni geliştirip risk alıp yatırım yapıp ciddi anlamda emek verip pastanın büyük dilimini almaktır.Bu yolda başarısızlığa uğramak normaldir.Ama yılmazsak hedeflerimize ulaşabiliriz.Ben bu düşünceyle küçük işler yaparak,kendi projelerim için yapacağım yatarımın maddi yönünü karşılamaya çalışıyorum.
En güzelini yapıyorsun Nafiz. Başarılar.
Türkiye’de PHP yazaran Senior yazılımcılardan kaçı 5000 lira maaş alıyordur?
Türkiye de PHP yi geçtim seniorların kaç tanesi 5000 lira alıyordur.
Bence çok çok az.
Yazının ücretrlerle alakalı olan kısmı dışında herşeye katılıyorum.Zira o ücretlerle bu piyasada çalışan adam var ise aramızda bence dua etmeli
@Osman PHP ile ilgili bir yazı değildi bu. @Mustafa yazıya uygun daha doğru bir soru. Elbette bunu öğrenmenin bir yolu maalesef yok. Ben kendi çevremin bilgisine dayanarak bu maaşları belirttim. Örneğin, Gömülü sistemler, mobil vb. alanlarda bu söylenen miktarın birkaç katını kazanmakta olan senior arkadaşlarım mevcut. Maaşları konusunda bilgi sahibi olmadığım senior yazılımcıların da yaşam koşullarını gözlemleyebiliyorum (Ev, Tatil vs.).
Katılmamak elde değil, sadece bu dünya için değil tüm sektörler için geçerli….