Ofiste Bugünde takip eden herkese selamlar. Dün giriş yapmış olduğum Yazılımda Kendimi Nasıl Geliştirebilirim yazımıza 2. yazımızla devam ediyor olacağım. İlk yazımda, yazılım diline ulaşana kadar yazılımın Algoritma kısmında nasıl bir davranış sergilememiz gerektiğinden bahsetmeye çalıştım, araya birde Tutku ve Adanmışlık diye işin manevi yönüne bakan da bir konudan bahsetmiştim. Bu yazımda ise Programlama Diline başladığımızı varsayarak dil üzerinde nasıl gelişim gösterebiliriz bunları yine naçizane kendi yaşayıp gördüğüm tecrübe ettiğim yanları ile anlatmaya çalışacağım.
Kitap Takip Ederek Yazılımda Gelişebilir Miyim?
Soru : Yazılım öğrenmeye başlayacağım bana hangi kitabı önerirsiniz? Ya da yazılıma kitaptan oturup çalışsam ne kadar yol katedebilirim?
Evet yazılım öğrenirken en önemli sorunlardan biride genelde bu oluyor. Bir kitap alsam, baştan sona 4 5 ayda kitabı bitirsem yazılımda gelişebilir miyim? Elbette gelişirsiniz ama bir kitabı baştan sona bitirme azmi ve gayretini gösterebilir misiniz orası muamma. İşte ben bu noktada yazılıma yenice başlayan arkadaşlarıma genelde şunu tavsiye ediyorum. Kitaplar yazılım dilinin kökenine inerek detaylı bir anlatım yapma gayreti içinde olduğu için, genelde oturup 100 sayfa bir kitap okuduğunuz da hala daha değişkenler konusuna bile gelememiş olabiliyorsunuz. Daha değişkenler konusuna bile gelememiş bir yazılımcı elle tutulur “Hello World” dışında bir program bile yazamadığından otomatikman 100 sayfa okudum hiç bir şey yapamıyorum daha oluyor ve motivasyon 0’a iniyor. Kitap bir köşeye, yazılım kafada diğer köşeye atılıyor ve serüvene belli bir süreliğine yada tamamen nokta konabiliyor.
Ben böyle bir sonla karşılaşmamak için genelde şunu tavsiye ediyorum. Yazılımda belli başlı en temelde öğrenilmesi gereken konular vardır. Nedir onlar Değişken türleri, ve özellikle değişkenler içinde string yapısı (C# adına konuşuyorum şu noktadan sonra artık) karar yapıları if else vs, döngüler ve diziler bu 4 ana konu hemen halledildiğinde bunu gerek kitaptan çalışarak, gerekse güzel bir blog takip ederek yada videolar izleyerek öğrendiğinizde yapabileceğiniz şeyler artıyor ve buda size özgüven sağlıyor ve aynı veya artan motivasyonla yazılıma devam etmenize yardımcı olabiliyor.
Özetlersek; sayfa sayfa kitap takip etmektense öncelikle temel kavramları öğrenerek işe başlayın.
Bir baş ucu kitabınızı elinizin altında bulundurun (bu konuda size Memik Yanık’ın Visual C# 4.0 kitabını önerebilirim) takıldığınız konulara kitaptan göz atın veya öğrenin.
Kodlayın Kodlayın Kodlayın
Eğer gerçekten gelişmek istiyorsanız asıl yapmanız gereken şeyde proje yapmaktır. İnternette bulabileceğiniz pek çok soruyu kendiniz kodlayabilirsiniz. İlk yazımda da söylediğim gibi bunları yaptıktan sonra çözümlerini yapan ve paylaşan diğer yazılımcıların projelerine ve kodlarına göz atabilirsiniz. Ama Kodlayın Kodlayın Kodlayın. Gelişmek istiyorsanız açıkcası başka bir yolunuz yok.
Proje yaparken de genelde şöyle yapardım, yapılan projelere bakardım, soruları alırdım. Üzerine yeni bir şeyler eklemeye çalışırdım. İşte o zaman araştırmanız gereken yeni şeyler ortaya çıkıyor ve gelişiminizin sihirli bir anahtarı daha oluşmuş oluyor. Yoksa sürekli var olan, bildiğiniz şeyleri yapmanız veya kodlamanız sadece o konudaki hızınızı artıracaktır. Ama yazılım dünyasının bir derya olduğunu ve öğrenilmesi gereken çok fazla konu olduğunu hiç aklımızdan çıkarmamız gerektiğini bilmemiz gerekmekte.
Sabırlı Olmak İşin Püf Noktası
Dünkü gibi bir tane manevi bir durum daha araya sıkıştıralım. Sabır bir yazılımcının olmazsa olmaz özelliklerinden biridir yada olmalıdır. Eğer yanlışlarla uğraşma, yeni şeyler keşfetme, hatalarla uzun süre boğuşma azminiz ve sabrınız yoksa, ne yazık ki yazılım yine bir süre sonra bırakılan bir branş oluyor genelde.
Yazılıma başladığım ilk zamanlarda bundan 6 yıl önce. Şimdiki gibi blog yazan çok fazla kişi yoktu, yardımlaşabileceğiniz insanları bulmanız bu kadar kolay değildi. Sorularınızı hemen sorabileceğiniz ve anında cevap alabileceğiniz Facebook grupları, Whatsapp grupları yoktu. Varsa yoksa her şeyimizin forumlar olduğu bir zamanda yaptığınız hataları bulmanız ve onları çözmeniz çok daha uzun zamanlar alıyordu. Bir hata ile tam belki saat olarak 48 saat olmasada gün olarak baktığımızda 2 gün boyunca yazılımın başına geçtiğim her an onu çözmekle uğraşmıştım. Çözecektim başka yolu yoktu. Aramadığım taramadığım hiç bir yer kalmamıştı bir türlü bulamıyordum. 2. günün sonuna doğru yabancı bir sitede sorunumun cevabını bulmuş ve çözmüştüm. O an yaşadığım mutluluk kelimelerle tarif edilemezdi. İşte bunun gibi bazen 2 gün sabretme olgunluğunu gösterebilmenizi bile gerektirebilir. Kafayı yeme seviyesine gelmenize bile sebep olabilir. Dışarıdan bakıldığında pek çekilecek bir durum değil gibi gözüksede, hep şunu derim yazılım geliştirmeyen ve o hazzı yaşamayan kişiler bunun ne demek olduğunu bilemezler. Çünkü sizden olan, sizin yaptığınız bir şeyi çalışırken görmek ve işe yaradığını bilmek yaşanabilecek en güzel duygu ve de haz diye düşünüyorum. Büyük ihtimal yazımı okuyan yazılımcı arkadaşlar veya büyüklerim varsa burada ne demek istediğimi anlamışlardır.
Sabır bir diğer sihirli anahtar.
İngilizce Neden Önemli?
Diğer bir konu İngilizce. C# konusunda artık Türkçe kaynaklar her geçen gün artsada, yine de yeni teknolojileri takip edebilme Türkçeye çevrilmesini beklemeden hemen öğrenme, sorunlarınıza çok daha çabuk çözümler bulmak istiyorsanız İngilizcenizi en azından okuma ve anlama seviyesinde iyi bir noktaya getirmeniz gelişiminiz açısından çok fazla önem arz etmektedir. Bazı yazılımların teknolojilerin Türkçe kaynakları henüz neredeyse yok denecek kadar az.
İngilizcemizi geliştirirsek yazılımda belli bir seviyeye geldikten sonra gelişimimizin aritmetik değil geometrik olduğunu çok rahat görebiliriz.
Google ve Yazılımdaki Önemi
Diğer bir mevzu ise Google ı kullanabilme. Her şey orada var, yeterki neyi nasıl arayacağımızı bilelim. Yazılımcının gözü kulağı eli kolu Google’dır. Çünkü her şeyi ezbere bilmemizin imkanı yok ve bir yazılımı geliştirirken pek çok şeyi arama, pek çok hatayı çözmek için başvurduğumuz kaynak Google’dır. Bu devasa kütüphaneyi çok iyi kullanabilmek, ondan en optimum seviyede yararlanabilmek gelişimimiz adına çok fazla şey ifade edebilir.
Zamanımız çok kıymetli olduğu içinde Google’ı iyi bir şekilde kullanmak her zaman büyük bir avantajdır.
Blog Sayfanızı Açın ve Gelişim Sürecinizi Paylaşın
Son olarak bir şey söyleyeyim Blog yazın. İnsanlara karşı yada kendinize karşı bir sorumluluk hissi oluşturacak bir blog yazmak yazılımdan vazgeçmenizin önünde durabilecek en güzel araçtır. Bildiğinizi paylaşmak, başkalarına yardımcı olabildiğinizi bilmek daha fazla gayretle çalışmanıza vesile olabilir. Bugüne kadar yaptığım en güzel işin kendi blog sayfamı açmak olduğunu rahatlıkla söyleyebilirim. 4 yıl önce muratbilginerncfkr.blogspot hesabı olarak açtığım blog sayfam 3 yıl sonra muratbilginer.net oldu bugün ise bu akademimizin sayfasından sizlere seslenmeme vesile oluyor. Gelişiminizi en güzel takip edebileceğiniz yollardan biri onu yazmaktır.
Evet kıymetli arkadaşlar benim şimdilik çok önemli gördüğüm ve aklıma gelenler bunlar oldu. Yine bu konuda aklımda yeni şeyler oluşursa yazımızın 3.sü ile sizlerle paylaşmaya çalışırım. Umarım fayda görmüşünüzdür. Ofiste Bugün’den saygılarla. Kendinize iyi bakın.