Üniversitede Yolun Yarısı
Bilgisayar Mühendisliği bölümünde bir akademik yıl daha sona erdi ve böylece 3. sınıf öğrencisi olmuş oldum. Aslında bu yazı kimseyi eleştirmek veya suçlamak değil özeleştiri yapmaktır. İyi bir yazılım mühendisi olma yolundaki maceramın yarısında elime ne geçmiş bir bakalım. Bu tablo ne öğrendiğimi kimseye değil kendime göstermektir. Ne kadar az şey öğrendiğimi görmek ve yaptığım hataları bir daha tekrar etmemek içindir.
1. Sınıf
Konular
- Algoritma konusunda gelişme
- Hızlı ve etkin algoritma üretme
- Nesne esaslı programlama temelleri
- PHP-5 ve Mysqli Kütüphanesi
- Temel C++
Kitaplar
- Nesne Yönelimli C++ Kılavuzu (Robert Lafore)
- Uzmanlar için PHP
Kısacası 1. Sınıfta okul dönemi boyunca algoritma derslerindeki kolaylık ve rahatlık yüzünden resmen yattım. Halbuki bu zamanı İngilizce ile değerlendirebilirdim. Malesef bunu yapmak yerine 1. sınıfı boş geçirdim. Yukardaki 1 madde hariç hepsi yazın tatilde çalıştım. En azından bunu yapabildiğim için mutluyum.
2. Sınıf başlamadan önce bir karar verdim. 2. Sınıf özellikle bizim okulda en zor 2 dönemden oluşuyor. Elektronik ve matematik derslerinin yoğunluğu insanı bunaltmaya yeter. Ayrıca şunu belirteyim bir matematik sevdalısıyımdır. Buna rağmen böyle. Bu yüzden tüm sosyal etkinlikleri bıraktım. Kurucusu olduğum dergiyi, topluluktaki işleri vs. 2. Sınıfa başlamadan önce C# dersi göreceğimizi biliyordum. Ben bu dili derste ne kadar öğrenirsem o kadardır diye düşünüp Java ve Python öğrenmeye karar verdim. Kaynak arayışlarım bir süredir devam etti. Aslına bakarsanız algoritma değil de hızlıca bir dili öğreten bir kitap istiyordum.
İlk “Aramıza hoş geldin” diyen Fatih Karatana ile yoğun görüşmeye başladım. Tabi kaynak konusunda onun da görüşlerini istedim. Tabiki de İngilizce kitapları önerdi. Aslına bakarsanız ilk başta baya moralim bozuldu. İngilizcem iyi değildi çünkü. Oysaki lisede Serkan Hocam (Serkan Doğruer) ne güzel öğretmişti İngilizce’yi. Ama aradan 4 yıl geçince İngilizce’m kötü bir hale döndü. Ben de o gün bir karar aldım. Ne olursa olsun gerekirse kitaptaki bilmediğim bütün kelimelere bakarım, geç öğrenirim belki ama en azından İngilizce’mi biraz geliştiririm diye düşündüm. İlk yaptığım şey kullandığım Ubuntu işletim sistemini İngilizce’ye çevirmek oldu. Ve çalışmalara başladım.
Başlangıçta çok zorlandım. Ama birçok teorik kelimeler öğrendim. Ayrıca Java’yıda çok güzel bir şekilde öğrenmekle kalmadım aynı zamanda Deitel hocam sayesinde OOP’nin 4 temel özelliğini (kapsülleme, kalıtım, soyutlama, polimorfizm) de tam olarak öğrenmiş oldum. Daha sonra PHP ile MVC sistemlerine ilgi duyup Zend Framework konusunda birşeyler üretmeye çalıştım. Başlangıçta güzeldi ama vizeler, finaller derken karanlık bir süreç başlamış oldu. Sadece bu kadar çalışabildim yazılıma. Aslında çalışmadım! Sınav döneminde yaklaşık 1 ay çalışmayı bırakıp sınavlardan sonra devam edebileceğimi düşündüm. Ama tam bir fiyasko oldu. Kitap okumayı bıraktıktan sonra toparlamak gerçekten çok zor oldu. Toparladığım anda yine sınavlar… 2. Sınıfın da kısaca tablosuna bakarsak:
2. Sınıf
Konular
- Nesne esaslı programlama
- Temel düzeyde MVC ve 3 katmanlı yazılım geliştirme
- Temel Java
- Birazcık daha İngilizce
- Başlangıç düzeyinde Zend Framework
- HTML5 Uygulama
Kitaplar
- Deitel, How to Program Java
- Yazın okuyabileceğim diğer kitaplar
Bir yazılımcı adayı yılda en az 6 yazılım kitabı bitirmek zorundaymış. Ben ise 1 yılda toplasanız 2.5 kitap ancak okumuşum. Rezalet! Aynı zamanda ara sınavlarım da çok kötü geçmiş. Bu daha da moralimi bozmuştur. Moralimi bozan tabiki de aldığım notlar değil, bu derslerden kalacak olmam sonucunda yazılım çalışabileceğim zamanları bu derslerle tekrar uğraşarak heba edeceğimdi. Derken KurumsalJava.com web sayfasını gezerken seminerlere rastladım. Özcan Acar tarafından verilen Bilge Programcı seminerleri ile ne öğrenmem gerektiğini keşfettim. Bu programda öğrenilmesi gerekenler kuşaklara ayrılmış, bu kuşaklar karate kuşakları gibi renklendirilmişti. Ayrıca test güdümlü yazılım, refactoring, çevik programlama gibi düşüncelerin, metodların varlığını öğrenince bir hayli sevindim. KurumsalJava ve BilgeProgramci.com adreslerinden bu konuda bilgi edinebilirsiniz.
Bırakın yaz okulunu, bütünlemeye kalmaya bile tahammülüm yoktu. Çünkü yazılım öğrenmek istiyordum. 2 yılın hatasını telafi edebilmek ve daha fazla zaman kaybetme lüksüm yoktu. Bu yüzden ilk defa derslere bu kadar sınavlara çalıştım ve çok şükür tüm dersleri başımdan saldım. Artık yazılım çalışabilirim.
Evet lisans öğretim hayatımın yarısı böyle geçti. Derslerden geçsem de yazılım konusunda 2 defa sınıfta kaldım. Malesef geçen zaman bir daha geri gelmeyecektir. O yüzden bundan sonrası için daha çok çalışmalı, aynı hataları yapmamam gerekiyor. Çünkü sadece 2 yıl kaldı. Bugün beyaz kuşak programcı olarak yoluma devam ediyorum.