11 Nisan 2010 Pazar

Yazilimcinin Kendi Kendini Egitmesi

Bolumumuzun medari iftihari olan, Turkiye'de ve dunyada sayili kisilere verilen MVP unvanina sahip Burak Selim SENYURT'un kendi sitesinde yazdigi ve yazilimi dusunen dusunmeyen herkesin okumasini siddetle tavsiye ettigim makalesini paylasacagim simdi sizlerle.


Merhaba Arkadaşlar,
İster üniversite öğrencisi olun ister yeni mezun, yazılım sektörünün henüz başındaysanız eğer, kendinizi yandaki şekilde görülen yolun başında bekleyen birisine benzetebilirsiniz. Ne yolun uzunluğu bellidir ne de gidebileceğiniz yönler. Açıkçası buna baştan karar verebilmek çok zordur. Yaşantınızı ektileyen pek çok neden bu belirsizliğe sebebiyet verebilir. Hatta yazılım alanında hangi yöne doğru ilerleyeceğinize karar verdiğinizde aradan bir kaç yıl geçmiş olabilir. Tüm bu yaşam döngüsü içerisinde unutlmaması gereken bir noktada sizin öğrenme süreçlerinizdir. Pek çok yazılım sevdalısı arkadaşımız çabucak panikleyip bir yerlerden eğitim almaya çalışabilir. Bunun gerekli olduğu veya olmadığı durumlar vardır. Açıkçası Mühendislik nosynonunu Üniversite öğrenimi sırasında kazanmış olanlar avantajlıdır. Ancak onlar içerisinde bile eğitim almak için parasını harcamaktan çekinmeyen kişiler olabilir. Bu yazımızda yine teknik olmayan bir konuya değiniyor olacağım. Sizin bir yazılımcı olarak kendi kendinizi nasıl eğitebileceğinizi anlatmaya çalışacağım. Uzun bir süre eğitimcilik yaptığım için yazıda yer alan ip uçlarını faydalı bulacağınızı düşünüyorum. Tavsiyelerime kulak verin. Wink
Yaşananlardan : 90 lı yılların başlarında üniversite öğrencisiydim ve bilgisayar programcılığına olan merakım her geçen gün katlanarak artıyordu. Açıkçası 64 Kb sınırı altında yaşayan ve oyun yazan programcılara fazlasıyla imreniyordum. O yıllarda Türkçe yazılım kitaplarını bulmak zordu. Şimdi çok kitabımız var ancak aradan kaliteli olanları seçmek istediğinizde aslında çok az kitabımız var. Yabancı kitapları Türkiye' ye getirtmekte bir meseleydi. Özellikle fiyatları düşünüldüğünde. Yurt dışı kanalı ile tedarik ettiğim ilk bilgisayar kitabım Delphi 2.0 Unleashed idi. (Eski bir Delphi programıcısı olduğumu ama Anders Hejslberg' in izinden gittiğimi belirtmek isterim) 1400 sayfaya yaklaşan bu kitabı Taksim' de bulunan Elit kitabevinden tedarik etmiştim. O günü çok net hatırlıyorum. Ahşap tabanda yürürken raflarda gördüğüm sayısız kitabın çoğunu satın almak istemiştim. Ama elimde o kadar çok param yoktu. Yine de isabetli bir atış yapmaya çalışmış ve gerçekten ilgilendiğim konuya ait bir tanesini tedarik edebilmiştim. Bu bulunmaz bir nimet gibiydi.
Kitaplar
Yazılımcıların en büyük dertlerinden birisi de çok hızlı gelişen ve sürekli olarak bizi ötelemeye zorlayan teknoloji. Programlama dilleri, Framework' ler, yazılım metodolojileri sürekli olarak değişmekte veya yenilenmekte. Bunun için uzağa gitmemize gerek yok. C#' ın bir kaç sene içerisinde 4ncü versiyonuna nasıl geldiğini gayet iyi biliyoruz. Dolayısıyla bir yazılımcının çok sık kitap okuması ve takip etmesi gerekiyor. Bu anlamda Amazon gibi Amerika veya İngiltere üzerinden kitap getirtebilmemizi sağlayan sitelerin sunduğu ingilizce kaynaklar hem profesyonellikleri hem de anlatımları yönünden son derece kuvvetli ve yeterli. Size tavsiyem bir kaç arkadaş birleşip birden fazla kitap getirterek taşıma ücretini mümkün olduğunca hafifletmeniz Wink
Yaşananlardan : Üniversitedeki eğitimimi Türkçe almıştım. Mezun olduğumda 1 senelik ingilizce hazırlık eklenmişti. Aslında tüm eğitim hayatım boyunca devlet okullarında öğrenci olmuştum. Ne acıdır ki, orta okul yıllarında hoca yetersizliğinden veya anlaşmazlıklardan dolayı ingilizce derslerimizin yarısından çoğu boş geçmişti. Hal böyle olunca insan çok doğal olarak yabancı dil sorununu tek başına halletmek zorunda kalıyor. Az önce bahsettiğim Delphi 2.0 kitabı bir kaç ay içerisinde kara kalem çalışmasına dönmüştü. Çünkü bilmediğim her kelimenin yanına kurşun kalem ile ne anlama geldiğini yazmıştım. Bu sonraki kitapta, ondan sonrakinde ve sonrakinde de devam etti. Ama bir süre sonra altı çizili kelimeler azalmaya başladı. Yani biraz azmetmem gerekmişti. Bu noktada pek çok rakibinizden geride kaldığınızı düşünebilirsiniz. Ama inanın bir noktadan sonra onları yakalayabilir ve hatta kazandığınız çalışma disiplini ile geçebilirsiniz. Çünkü sıkılmadan yapacağınız ve sözlükten bulduğunuz kelimeleri yazarak harcayacağınız zaman içerisinde standart bir disipline sahip olursunuz. Bu disiplinin içeriği basittir. Sıkılmamak, konsantre olmak, hedefe ulaşmak. Ödülü ise basittir; okuduğunuzu anlamak. Laughing
Tabi burada mutlaka dikkat edilmesi gereken bir nokta var. Çok fazla kitap almaktan ziyade isabetli kitapları seçmek daha önemlidir. Yoksa yandaki resimde görüldüğü üzere kitap sayfaları arasında rahatlıkla kaybolabilir ve işi daha da karmaşık bir hale sokabilirsiniz. Bu noktada belkide daha tecrübeli kişilere danışmak uygun bir davranış olarak görülebilir. Ne de olsa artık günümüzde pek çok yetkin kişiye mailler aracılığıyla ulaşabilmekteyiz.
Eğitim
Kitaplar her zaman için faydalı olan kaynaklardandır ama tek başlarına yeterli olmayabilirler. Çoğu zaman konuyu daha uzman birisinden dinlemek isteyebilirsiniz. Dinlediğiniz kişinin bu anlamda tecrübeli olması geçmiş proje deneyimlerini konu anlatımları üzerine serpiştirmesi de çok önemlidir. Hatta konu ile ilişkili olarak lab çalışması yapılabilmesi size çok fazla değer katacaktır.
Yaşananlardan : Uzun süre bir eğitim firmasında yazılım eğitmeni olarak görev aldım. Eğitimler sırasında özellikle kitaplardan anlatılan konularda öğrencilerimin en çok yakındıkları veya sevmedikleri konu lab çalışmalarının olmasıydı. Aslında Microsoft tarafından sunulan kitaplarda yer alan lab çalışmalarının çoğu, konu ile ilişkili olarak baştan sona bir projenin tamamlanmasını, öğrenilenlerin pekiştirilmesini, hangi malzemeler ile neler yapılabileceğinin görülmesini sağlamaktaydı. Üstelik bu sağlanırken gerçek hayat pratikleri de kazanılmaktaydı.Bu nedenle aldığınız eğitimler içerisinde lab çalışmaları var ise bunları görmezlikten gelmeyin.
Açıkçası bu tip eğitmen bulduğunuzda yakasını eğitim süresi boyunca bırakmamanızda ve söylediklerini yapmanızda fayda vardır. Ne yazık ki günümüzde pek çok eğitim firması işlerini su istimal etmektedir. Açıkçası bu işi hafife alanlardan tutunda, tamamen ticari çıkarlara dönüştüren, rekabet etmek isterken eğitimin kalitesini düşüren firmalar söz konusudur. Ancak tüm bu firmalar her zaman için kendilerinin en iyi eğitmenlere sahip olduklarını ve son teknolojileri aktardıklarını ifade ederler. Aslında gerçek sadece şudur; siz eğitim kurumuna değil eğitmenine para vermelisiniz. Gerçekten o eğitim kurumunun almak istediğiniz eğitimle ilişkili olan konuda son derece saygın, size fayda sağlayacak, deneyimli bir eğitmeni varsa bu durumda eğitimden gerekli yararı sağlayabilirsiniz.
Uzmanlaşmak
Yazılımcının kendisini eğitmesi sırasında yaşadığı önemli güçlüklerden biriside uzmanlaşmadır. Yazılım çok geniş bir dünyadır hatta bir evrendir. Bu sebepten yazılımcıların galakside kendilerini kaybetmeleri son derece doğaldır. Dolayısıyla yazılım içerisinde de belirli konularda uzmanlaşmak gerekebilir. Bu artık bir mecburiyet halini almıştır. Söz gelimi .Net Framework cephesinde servis tabanlı çözümlerde, Web veya Windows tabanlı uygulamalarda ya da Mobil cihazlar üzerinde uzmanlaşılabilir. Aslında buradaki uzmanlaşma fikri bir aşçının uzmanlığına benzetilebilir. Sadece Fransız veya Çin mutfağında ortalığı kasıp kavuran bir aşçı kendi istekleri doğrultusunda seçtikleri alanlarda uzmanlaşmıştır denilebilir. Ancak burada kaçınılmaz bir gerçek vardır. Birden fazla mutfakta uzmanlaşmış olan bir açşı diğerlerine göre çok daha fazla kazanacaktır. Wink Aynı prensip yazılımcılar için de geçerlidir.
Yaşananlardan : Çok yakın zamanda başlayan ama bir süre sonra iptal edilmek zorunda kalınan bir projede, .Net tabanlı bir iş akışı geliştirme sisteminin yazılması istenmekteydi. Projenin en ilginç noktası sistemi kullanacak firma yöneticilerinin onay mekanizmasına Blackberry cihazları ile dahil olmak istemeleriydi. Bu noktada Blackberry cihaz üzerinde otomatik bildirimde bulunacak ve onaylama, red etme, geri gönderme gibi fonksiyonellikleri sunacak bir yazılımın olması gerekmekteydi. Dolayısıyla bizim Blackberry cihazlarında geliştirme konusunda bir şeyler öğrenmemiz bekleniyordu. Zaman azdı ve projede analiz ile çözüm tasarım süreçleri bitmek üzereydi. Güvendiğim tek şey geçmiş yazılım tecrübem, programlama disiplinlerine olan hakimiyetim, çözüm tasarımı yeteneğim, analizi iyi kavramış olmam ve öğrenme isteğimdi. Sizlerde zaman içerisinde bu gibi durumlara düşebilirsiniz. Burada kendi kendinizi eğitme ve yetiştirme teknikleriniz ön plana çıkıp öğrenme sürecinizi belirleyecektir. 
Güvenilir Bilgi
Yazılımcının kendi kendisini geliştirmesinde internet tabanlı kaynaklarında yeri büyüktür. Bu alanda sayısız Community ve Blog mevcuttur. Ancak burada güvenilir olan bilgiye ulaşmak gerekmektedir. Bu sebepten dolayı yazılımcılar olarak sizlerin çok daha seçici davranması gerekmektedir. Ne yazık ki en büyük yanlış, yayınlanan teknik içeriklerin denetlenmemesidir. Eğer düzenli olarak yerli siteleri takip ediyorsanız teknik içerikli makale veya günlük girdilerine yabancı sitelerdekine oranla çok daha az sayıda yorum yapıldığını ve geri bildirimde bulunulduğunu görebilirsiniz.  Oysaki pek çok güvenilir yabancı kaynaklı sitede, yayınlanan içerikten daha uzun yorumlar olduğunu ve geri dönüşler bulunduğunu fark edebilirsiniz. Bu da yazının kaliteli olması halinde sizin için çok daha doyurucu bir içerik oluşması anlamına gelmektedir. Nitekim o konu üzerinde farklı kişilerin görüşlerini de almış olursunuz.
Peki güvenilir sitelere nasıl ulaşabilirsiniz? Dikkat edebileceğiniz ilk nokta yazarın künyesi olacaktır. Microsoft içerisinden gelen, RD, MVP gibi ünvanlara sahip olan yabancı yazarların çoğu sizlere tatmin edici içerikler sunacaktır. Özellikle güvenilirliğinden emin olduğunuz kişilerin varsa bloklarını veya feed' lerini yardımıcı bir program aracılığıyla düzenli olarak takip edebilirsiniz. Örneğin benim kullanmakta olduğum FeedReader programını bu anlamda değerlendirebilirsiniz.
Gördüğünüz üzere değerli meslektaşlarım yazılımcıların her daim kendilerini öğrenci olarak görmelerinde yarar vardır. Gerçekten yazılımı bir yaşam biçimi olarak düşündüğünüzde aslında uzun yıllar boyunca sürecek bir Go oyununa dahil olduğunuzu da görebilirsiniz. Go oyununda öğrenci olarak 30 kyu' dan başlayıp ilerlersiniz. Ancak DAN mertebesi alana kadar öğrencisinizdir ve bu seviyeye ulaşmak hayatınızın bir kaç yılına mal olabilir. Dan aldıktan sonra ise ulaşabileceğiniz en yüksek nokta 9ncu Dan' dır. Tabi oyunun sizin yazılım hayatınıza benzerliği açısından önemli olan katkısı şudur; hep kendinizden daha iyi birisi ile oynayarak ve dolayısıyla kendinizi zorlayarak kademe atlayabilirsiniz. Dan'lara geçtikçe siz artık öğretmen olmaya başlarsınız. Bu da aslında çevrenizdeki yazılımcılara yardım edip onların size danışması anlamında düşünülebilir.
Yazının bu son noktasında halen daha nereden başlayacağınızı bilemeyebilir ve kafanızda çelişkiler yaşayabilirsiniz. Öyleyse şunu deneyin. Yazılım alanında gelmek istediğiniz noktaya odaklanın. Odaklandığınız nokta şu andan 3 yıl sonrası olabilir. Görebildiğiniz kadar ilerisi.(Görebildiğiniz kadar çünkü başta da belirttiğimiz üzere teknolojinin hızı neredeyse ışık hızına yakın) Şimdi geriye doğru gelin. Nelere ihtiyacınız olduğunu not etmeye başlayın. Not ettikleriniz bahsettiğiniz hedefe ulaşmanız için gerekenlerdir. Şimdi bu notlarda yazılanları öğrenmek için neler yapmanız gerektiğini düşünün. Gerekli kitaplar, ilgili siteler, blog adresleri, kişiler, kurumlar...Şu anda en azından nelere ihtiyacınız olduğunu tespit ettiniz. Şimdi aradan uygun olanı seçip sıralı olarak devam edebilir ya da bir kaçına birden başlayarak paralel yürüyebilirsiniz. Kolay gelsin. Zorlu bir maratona başladınız...

2 yorum:

Ergin dedi ki...

guzel yazı

Adsız dedi ki...

Window.location.href='http://www.google.com';