 |
Kod Ezberleme Yolları |
Bir Bilgisayar Mühendisi olarak bu yazıyı yazdığıma utanıyorum ama aranızda cidden bunu yapanlar var. Mühendislik metodolojisine tamamen aykırı bu olayı bilgisayar mühendisliği öğrencileri cidden yapıyorlar. Şunu açıkça söylüyorum, Kod Ezberlemek Kod Yazmaktan Çok Daha Zordur!
Neden? Aslında bu durumu yazılımcılık ile anlatmak çok daha kolay. 100 boyutlu bir diziye bilgi girmek istiyorsunuz. Bu diziye bilgileri tek tek girmek mi daha kolaydır, yoksa for döngüsüyle mi? Ya da uygun bir fonksiyon oluşturarak mı? Bizim bilgisayar mühendisliği okumamızın temel amacı, daha çok iş gerektiren unsurları optimize ederek daha az adımda gerçekleşmesini sağlamaktır. "Peki ama sınavda hocamız soruyor ne yapacağız?" diyorsanız, beni dinleyin.
Kod Ezberlenmez! Algoritma Öğrenilir!
Yazılımın temel olayı algoritmanın kod olarak yazılmasıdır. Kodu sınav kağıdına yazarken ufak tefek hataların olması çok normaldir. Bu ufak tefek hatalardan hocanız not kırıyorsa bu onun ayıbıdır. Boş verin kırsın. Kod ezberlemek gibi akıl dışı bir olayı gerçekleştireceğinize algoritmayı bilin, algoritmayı koda dökün!
Biraz Daha Spesifik Konuşalım
Mesela hocanız sınavda size bir sayı dizisi verdi ve
Insertion Sort yöntemi ile sıralayın dedi. Size bunun kodlarını yazmanızı istedi. Sizin burada yapmanız gereken şey,
Insertion Sort Algoritması yapısını hatırlamak ve bunu koda dökmek.
Mesela sıralama algoritmalarının temel mantığını isimlerinden çıkarabilirsiniz. Insertion sokma demek. Araya sayı sokuyoruz yani. Neden sokuyoruz? Çünkü (mantıksal) iki dizi oluşturuyoruz, ilk diziye sıralı diyoruz, ikinciye sırasız. sırasız dizinin en küçük elemanını alıyoruz ve sıralı diziye yerleştiriyoruz. Buradaki esas nokta, sırasız diziden aldığımız sayıyı, sıralı dizideki sayılardan küçük olduğu müddetçe içeri doğru sokmak, kendinden büyük sayıyla karşılaştığınızda ise o konuma bırakmak.
Kağıda Kod Yazın
Hep bilgisayara kod yazmak olmaz, en güzel öğrenme yöntemi kağıda kod yazmaktır. İnternetten bakarak her şeyi öğrendiğimizi zannederiz ancak kendimizi kandırırız. Kağıda yazamadığımız kodu bilmiyoruz demektir. Kağıda kod yazmak demek, çalıştırılabilir kod yazmak demek değildir. Öyle olmak zorunda değildir, temel mantığı kağıda yansıtmak demektir. Zaten IDE'ye yazarken hata alırız, ve bunları düzeltiriz.
Algoritmayı Koda Dökemeyen Yazılım Bilmiyordur
Bu sektör ciddi bir iş. Sorumluluğu çok fazla, imza yetkisiyle para kazanan diğer tipteki mühendislere benzememize imkan yok. Yazılım bilmeyen, algoritmayı yazılıma dökemeyen bu sektörde tutunamaz. "ama her şeyin hazırı var" demeyin, hazır olanı kullanmak bile önemli bir bilgi birikimi gerektirir. Ayrıca hazır olarak ulaşabildiğiniz kodları bile optimize edebilmeniz lazım, gerekirse karmaşıklık analizini yapıp daha hızlı bir hale getirebilmeniz lazım. Yazılımcılığın en sevdiğim yönü de bu. Bilmiyorsan iş bulamazsın kardeşim. Kimse senin diploman var diye sana iş vermez. Acımasızca mı? Evet. Ama bu bizim için daha iyi. Kendimizi geliştirmek zorundayız, sürekli iyi olmak zorundayız. Bu ülkeyi geliştirecek olan da, kalkındıracak olan da bizleriz. İmza yetkisi var diye havadan 4000 lira maaş alan bilmem ne mühendisleri bu ülkeyi ilerletemez, kalkındıramaz. Lütfen işi geçiştirmek için kod ezberlemeye kalkmayın, hem size yazık, hem de geleceğinize. Düşük not almayı göze alarak algoritmayı koda dökmeye çalışın. Sizden not kıran hocanıza da yazıklar olsun. Yapabilecek bir şey yok. Dürüstlük olmadan gelişim olmaz arkadaşlar.