Yazılıma Başlamadan Önce Sindirmeniz Gereken 6 Madde

Nisan 19, 2017 Mustafa BÜKÜLMEZ 0 Yorum


Bu dersimizde kendi tecrübelerimden yola çıkarak yazılım sektörüne girmek isteyen arkadaşlara tavsiyler bulunmaktadır.

Selamlar arkadaşlar,
Bu dersimizde kendi tecrübelerimden yola çıkarak sizlere nacizane tavsiyeler vermek istedim. Umraım faydası dokunur.
1 - Araştır, araştır ve araştırmayı sev;
Araştırma yapmadığın sürece kendini geliştirmen imkansız. Yazdığın kod çalışıyor diye sorun yok şeklinde düşünmek çok yanlış. Bol bol araştırma yap, araştırmayı sev.... Kendini geliştir, kodlarınız geliştir, yazım tekniği geliştir. Yeniliklerden haberdar ol. Yeni şeyler denemekten korkma. 
2 - Yaz sil, yaz sil, yaz sil;
Genelde bir yazılımcı işe çok kod yazarak başlar. Onlara diyecek bir sözümüz yok tabi bizde en başta aynı kodu tekrar tekrar ve uzun uzun yazıyorduk. Ancak örneğin ben hiçbir zaman formun içerisinde sql connection string yazmadım. Üniversitede proje ödevi olarak bir asp.net site yaparken izlediğim eğitim setinde adam direk sql connection class ve diğer class hazırlama işlemlerini de göstermişti. Bu yüzden direk classlar ile çalışmaya başladım. Ve inanın proje bitiş süresini inanılmaz etkiliyor. O ilk sql class yorum satırları ile birlikte 205 satırdı. Şuan da ise yorum satırları dahil 63 satır. Peki bu nasıl oluyor?. İşte yaz sil, yaz sil, yaz sil burada ortaya çıkıyor. Yazıyorsun sonra bakıyorsun  işe yaramayan yerler var siliyorsun. Yazıyorsun sonra bakıyorsun buraları şöyle birleştirsem yine aynı şey olur diyip siliyorsun. Yeni birşey öğreniyorsun onu eklemek için silip yazıyorsun. Kodları artık ihtiyaçlarını karşılamıyor araştırıp öğreniyorsun silip yazıyorsun. Hatta bazen tamamen silip yeniden yazıyorsun. Ve kodların daha kısa ve anlaşılır oluyor. Hatta  3 4 yıl sonra ilk projelerine bakıp kendine küfür edebiliyorsun. Ben burada ne yapmışım looooo diyorsun kendi kendine: Ara sıra ilk yazdığım projelere geri dönüp bakıyorum "bu ne la" diyip siliyorum, "ne yazmışım la burada" diyip siliyorum. Ve inanın sile sile projedeki kodların yarısından fazlasını silmişim ve hala siliyorum.
3 - Önce düşün sonra yaz;
Yazılımcı olmak istiyorsanız düşünce şeklinizi bir düzene sokmalısınız. Analitik düşünmek gibi şeylerden bahsetmeyeceğim. Öyle üstün matemetik bilmenize de gerek yok. Size lazım oln formülleri ihtiyacınız olduğunda zaten mecburen öğreneceksiniz. Bu yüzden kasenizi şimdiden bunlarla doldurmaya gerek yok. Elbette zaten biliyorsanız ne ala! Matematik bilmenin hiçbir zaman kötüsü olmaz. Ne kadar çok biliyorsanız bilmem kaç sıfır önce başlarsınız ama matemetik bilmeyen programcı olamaz diyenleri zerre takmayın. Yazılım işi gönül işi gibidir. Matematik profesörü olsanızda sevmediğiniz takdirde yapamazsınız.  (Yalan söylemiyorum ben daha geçen seneye kadar çarpım tablosunu bile ezbere bilmiyordum.) Bilmeniz ilk şey gereken şey işlem önceliği. İlk olarak bunu öğrendiyseniz şimdilik yeter. Kaldı ki bu sadece matematik sorularında değil bu sektörün kendisinde vardır. 
      Sırası ile
      1 - Düşün.
      2 - Soru sor.
      3 - Tekrar düşün.
      4 - Kafanda soru işareti kalmayana kadar soru sor.
      5 - Kafanda projeyi (mümkünse son haline kadar) tasarla - Gerekirse kağıt kalem al yaz çiz.
      6 - Kullanacağın formları kafanda çizdiğin tasarıya göre tasarla
      7 - Kodlarını yazmaya başla. (Database tablolarını hazırlamakta bu aşamada).
                Ben from tasarımlarını yaptıktan sonra tabloları açma taraftarıyım. Çünkü yaptığım tasarımı kafamda ilgili her yere bağlıyorum. İlişkilendirmelerini ayarlıyorum. Sonra tablolarını açmaya başlıyorum. Elbette gözden kaçan şeyler olmuyor değil ama en azından geri dönüş süreci minimum seviyede oluyor.
Şimdi böyle bir sıralama ile başlamazsan ve devam etmezsen o projenin büyük ihtimalle sonu gelmeyecektir. "Yaw hele bir başla sen, aklımıza geldikçe söyleriz eklersin" diyerek işe başlamanı isteyen bir müşteri üç beş kuruşa kendi kafasındaki mükemmel programı sana yazdırmaya çalışacaktır. Tecrübe ile sabittir. Üç yılda zar zor bitirebildiğim bir proje olmuştu. Tahmini altı yedi ay gibi bir sürede bitebilirdim.
4 - Basit düşün;
İnsanlar basit şeyleri severler. Bir formdan gir ona tıkla, oradan çık şuraya gir şunu tıkla, şurdan da şuna tıklarsan istediğin olur dersen bir adama, adam mala bağlar "yaw bu seferlik sen yapta bende bakıp öğreneyim" der. Sonra bir bakmışsın herkes o raporu senden ister olmuş. Sana göre çok basittir. "Yahu bunde ne var ki?" dersin ama müşteri anlamayabilir. O yüzden yapabildiğin en basit halinde yapman gerekir. 
            Unutma o projeyi sen yazdığın için ve neyin nerede olduğunu çok iyi bildiğin için sana çok basit gelmesi gayet normaldir.
           "Dünya üzerindeki en düşük IQ ya sahip bir insanın bile anlayacağı şekilde yap." bu benim bu konudaki felsefemdir. Yardım dosyalarını hazırlarken, Kullanım klavuzu hazırlarken ve programı yazarken hep bu felsefe ile yazarım. En temel anlamı da "Basit Düşün" dür.
5 - Az kod çok iş;
Yazılımcıların bazıları yazdıkları kod satırı sayısı ile hava atarlar. "Çok iyi yaa bugün 10.000 satır kod yazdım. Varmı benden hızlısı" diyen bir tanıdığım vardı. Benim gözümde onlar yazılımcı değildir. O hava atan insanlar bu işi hava atmak için yapıyorlardır. Fazla kod yazmak sadece hammallıktır. Bende kopyala yapıştır ile günde bir proje bitirebilirim. Benim mantığıma göre bir kodu / kod bloğunu iki kere yazmak hammallıktır ve o işte bir sıkıntı vardır. Hatta bırakın kodu benzer işleri yapacak bir formu bile iki kere kullanmam. Örneğin bir seçim listesi yapacaksam gelinen sayfaya göre sadece gösterilecek verileri değiştiririm. Mesela sql bağlantısı yaparken her yere connection string yazmak, bağlantı açmak/lkapatmak ve daha bir sürü kod yazmak yanlıştır.  Bunları bir class içerisine çekip genel bir hale getirdiğinizde bir kere yazar tüm projede kullanabilirsiniz. bir değişiklik yapmanız gerektiğinde classı değiştirirsiniz ve tüm proje güncel olur. Diğer türlü her formu tek tek gezmek zorundasınız.
Tabiki bu biraz tecrübeye bağlıdır. Ancak 1. maddeden buraya geldiyseniz direk aşağıdaki 4. sorudan başlamanız hiçte zor olmaz.
              * - Kod çalışıyor mu? Evet. Tamam elleme (50 satır)
              * - Kod çalışıyor mu? Evet de bu kodlar ne la. Gereksiz satırları sil. (35 satır)
              * - Kod çalışıyor mu? Evet de bu kodu yazan çocuk kör oldu. Gereksiz satırları sil. (17 satır)
                           bkz. Bu Halıyı Dokuyan Çocuk Kör Oldu
              * - Kod çalışıyor mu? Evet de aga her yerde bu kod var. Kodları bir class' a çek. (25 kullanım 25 * 17 satır )
              Son hali class içi 25 satır ve 1 satırda çağırma ( 25 * 1 ) + 25 satır = proje genelinde toplam 50 satır. 
              Proje genelinde  25 * 50(ilk hali) = 1250 satırdan 25 + 25 = 50 satıra düşürdük.
Hiç araştırma yapmayan kişi kendinden çok iyi yazılımcıların yazılarını hiç göremeyecek ve kendi yazdığı kodların on numara olduğunu düşünecek. Kodlar çalıştığı için kendini geliştirmeyecek ve böylece devam edecek. Düşünün bu kodda bir değişiklik yapmanız gerekirse? 50 yerde kullandınız tek tek oralara gidip tek tek düzelttiniz. Kaç saatinizi alacak?. Proje ilerledikçe değişiklik yapmaktan korkacaksınız ve giderek meslekten uzaklaşacaksınız.
6 - Kopyala yapıştır hiçbir şeyi çözmez;
En iyi yazılımcılar bile yeri geldiğinde kopyala yapıştır yapar. Ancak kopyalayıp yapıştırdıktan sonra geri dönüp o kodları paylaşan adama küfür veya hakaret etmez. Çünkü bilir ki o kodları kendi kodlarına uyarlaması gerekir. Hatta bazen kodların son hali kopyala/yapıştır yaptığı kodlardan alakasız bir hale gelecek ama o yazılımcı o işi öğrenmiş olacak. Çünkü kodlar üzerinde çalışacak mantığını anlayacak belki o mantığı kendi yöntemleri ile bambaşka bir şekilde sıfırdan yapacak. Dediğim gibi kopyala yapıştır hiçbir şeyi çözmez. O kodları önce sindirmelisiniz. Kendi kodlarınıza adapte etmelisiniz. Ve yine dediğimiz gibi belki de son hali alakasız olacak ama istediğiniz işi de başarmış olacaksınız. 
Şimdilik bu kadara arkadaşlar. Zamanla bu paylaşımı güncelleyeceğim.
Bol kodlu günler.


0 Yorum: