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. …
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.
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.
Size kesinlikle katılmıyorum. Bence herkes bir bilgisayarın anlayabileceği kod yazabilir. İyi yazılımcılar ise insanların anlayabileceği kod yazar.
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….
Ruby hakkında ki görüşlerinizi merak ediyorum, Ruby ve Ror’un geleceğini nasıl görüyorsunuz? Bu alanda kafa yormak ne derece verimli bir çaba olacak sizce?
Genelde bu yazıdaki düşünceler 16 yaşında başlar da o yüzden
Eline sağlık çok güzel bir yazı olmuş. Beni 16 yaşımdaki düşüncelerime uçuruverdi…
Çok iyi bir yazı.Aylardır aradığım soruların cevabını daha da geç olmadan aldım.Güzel yazı olmuş.Teşekkürler..
Ben de 16 yaşındayım, fakat yeni değilim 11 yaşından beri ilgileniyorum bu meslekle. 13 yaşımda ASP ye başladım 14 yaşımda PHP ye geçtim. Kodlamalar vs kolay geliyor fakat nesne üzerine kodlamalarda ve tasarım oluşturmada zorlanıyorum, hayal gücüne bağlı sanırım tasarım oluşturma. Çevremdekiler facebookta, dışarıda oyun oynarken ben bir arkadaşımın blog sitesi açmasından etkilenip site oluşturma isteğiyle html öğrenmiştim 11 yaşında.. İnternet üzerindeki arkadaşlarım adult site açarak para kazanmaya çalışırken onları izlemekle yetiniyorum.. Kalıcı bir proje peşindeyim, sitenizi çok beğendim hocam, abone oldum. Başarılar dilerim
Tebrikler, güzel bir yazı daha.
Türkiye için gerçekten söylenecek fazla bir söz yok. Piyasa, şartlar, eğitim kalitesi, potansiyel belli.
Umarım, en kısa sürede düzelir ve gelişir.
13 yaşına daha yeni girdim. Şu an sadece 2 dil biliyorum onlarda html,css. Önümde iki seçenek vardı,front-end mi? back-end mi? Ben back-end’i seçtim. Şimdi de hangi programlama dili ile başlayacağım sorusu önüme çıktı. Yazınızı okuduktan sonra aklımda ufak tefek şeyler oluştu. Fakat işletim sistemi olarak linux demişsiniz,ben de 2 gündür ubuntu kurmaya çalışıyorum fakat beceremiyorum. Bir arkadaşım,format atmam gerektiğini söyledi ama onu da bilmiyorum. Tek çare format atmak mı?
Hocam teşekkürler,tek çare format atmak değilmiş,ben yanlış birşey indirmişim,wubi’yi indirdikten sonra ubuntu’yu kurabildim. Yazı için elinize sağlık
nurçin sen bu yaşta başladınsa maşallah kardeşime, helal olsun ben yıllardır yazılımcı olma hayali ile yaşadım ve 32 yaşında başladım şu an junior seviyesindeyim,keşke 16 yaşında olsaydım
yazılımcılık tam bir sevda ve sabır işi her sene keşke demekten bıktım bu sene 4 aydır bir fiil devam ediyorum.Öğrendikce daha çok hoşuma gidiyor kırılma noktasınıda yaşadığım benim için bayram
Bende bu işlere başladığımda 12 yaşlarımda falandım sanırım 7.sınıftaydım
O zamanlar elimizden tutan kimse yoktu öyle kendi kendimize geldik bugünlere desem yalan olur
ama yinede öyle iyi bi destek almadım soru soracağım kimse bile yoktu sadece 1-2 eğitim geçti elime o kadar.
Aslında sorunlardan biriside bu işe başlayacak olan küçükler için gerekli desteği sağlamak. Örneğin ben işe flash programıyla başlamıştım, bu programın lisans ücreti ne kadar hala bilmiyorum ama en azından 500-750 dolar arasıdır diye düşünüyorum. E ben 12 yaşında sadece bir program için bu ücreti ödeyebilirmiydim ? Ödeyemezdim tabiki… Şu an gerekli olan tüm dilleri yeterli düzeyde öğrendim ve 18 yaşındayım belki elimden gerçekten tutan olsaydı 15-16 yaşına kadar da bunları öğrenebilirdim…
Eğer gerçekten bilginiz varsa bunu olabildiğince küçüklere aktarmaya çalışın…
Ben şu andada PHP de OOP programlama konusunda hala çırpına çırpına yardım aramama rağmen yok yani bi soru soruyorsun ikinci soruda hep bana mı soracan oluyor e bidaha da sormuyosun… Nereye başvurcam ben doğru düzgün cevapların geldiği forum var mı ? r10 mu ? üyelik davetiyeyle başvuruyoruz cevap yok.
Merhaba, güzel bir yazı olmuş.. Yazılım dillerinden sadece html biliyorum. Bundan sonraki aşamada php öğrenmek istiyorum fakat gözüm korkuyor. özel kurs tavsiye edermisiniz? yoksa internetten kendim öğrenmem daha mı mantıklı?
katsayı adaletsizliğinin kurbanlarındanım. yıllar önce okudum bu yazıyıda. ama bu yorumu bugün okudum. bu adaletsizliğin sebebi kimseye hakkımı eğer varsa helal etmiyorum. normalde 2005 yılında mezun 7 yıllık bir mühendistim bugün. ama şuan hala fw çözemeye, ingilizce ile cebelleşmeye çalışan freelance bir web programcısıyım. seviyorum işimi ama bu kadar acı çekmem gerekmezdi çok net biliyorum.
Ne kadar çok yaşıtım varmış programlamayla ilgilenen. Bu yazıyla beraber eminim ki hepimiz daha çok heyecanlandık. Çok sağolun hocam
Şuan lise 3. sınıf öğrencisiyim web programlama okuyorum.. ve allahın bana verdiği bi hediyeyle yaşıyorum evet engelliyim… 7. sınıfta hayattan ümidimi kestim aklımda hep ilerde nasıl ekmek yerim düşüncesi vardı yolda yürürken bile yardım edecek birilerine muhtaçtım, sonra yapabileceğim tek işin masa başı bi iş olacağını düşündüm, belki azda olsa bi umut ışığıydı benim için. Yazılımcı olma hevesi vardı hep içimde, Kime fikir danışsam “artık onu herkes yapıyor” cevabı caydırırdı beni html ile başlayıp C# ile devam ettim hedefim web değilde masaüstü yazılımcısı olmak… şuan asp.net’i ezbere biliyorum ama severek yapmadığımıda belirteyim… bu sebepten grafik işlerine adım attım matbaa da grafikerlik yapıyordum ta…ki Altan Hocamın bu yazısını okuyana kadar… işi bıraktım yanlış yolda olduğumun farkına vardım, bi hedefim var peşinden gidip ilerde ÖNEMLİ PROJELERİN ALTINDA “ÖZCAN KAYA” diye imzamın olmasını istiyorum..
Belkide bunu okuyanlar bu çocuk hayattan ümidini kesmiş ne konuşuyor burada diyebilirler, desinler…