Programlama Yolculuğum #1 — Amatörlük Maceram

Ahmed Şeref Güneysu
3 min readJun 29, 2016

İlk ve Orta Okul Yılları

4. sınıfta bilgisayar öğretmeninin, sürekli deftere tanım yazdırarak geçen “RAM bellek, ROM bellek, 1 byte=8 bit” şeklinde başlayan daha sonra kuşe kağıda basılı ve benim satrancı öğrenmemden başka bir işe yaramayan bilgisayar dersleri.

Orta okul’da:

  • Bilgisayar dersinde abone olduğumuz Byte ve CHIP dergilerini,
  • C++ ile kendi oyununuz yapın sloganıyla PCNet ile verilen kitapçıkları

hatırlıyorum.

Ayrıca Bilgisayar öğretmenimiz Serkan TEMEL’in:

“Sınıfa site yapalım, Şeref yapar”

sözü. Site yapmayı bilmiyordum. Fakat meraklı ve heyecanlıydım. Ne bilgisayar, ne de internetim vardı.

Lise Yıllarım

Yatılı okuduğum Tekirdağ Fen Lisesi’nde 2005–2006 yılları, tamamen gönüllü, lise 2, kütüphane kolu ve bilgisayardan anlayan bir öğrenci olarak Visual Basic 6.0 + Ado.NET (ya da ODBC hatırlamıyorum 😞) ile Access veri tabanı kullanarak hem hızlıca kitap girmemize yaradı. Hem de bizden başka kimsenin pek kullanmadığı kütüphane için kitap alışverişlerini takip ettiğimiz programa bir yazımı harcadım.

Kitap girmemizi hızlandırması için yazar isimlerini DB’den alıp otomatik tamamlama özelliği bile düşünüp koymuştum. (🐣 UX ) Yıllar sonra tekrar aynı özelliği daha modern ve düzgün şekilde şurada denedim:

“Harcadım” diyorum zira en çok hata düzeltme ve geliştirmeyi okul açılıp programı kullanmaya başladıktan sonra yaptım. Bilgisayarım evimde olduğu için haftasonları çalışıp, 45 TL diye hatırladığım bir paraya satın aldığım 128 MB bellek ile programı derleyip okula götüyordum. (Scrum Weekly sprint’i aslında ben buldum ☺)

“Harcadım” diyorum çünkü SQL sorgularını metin birleştirip (string concatenation) ile yapmak o zamanda da zulüm geliyordu. (Şu zamanda hala bu şekilde SQL sorgusu yazanlar var)

Böyle iş mi yapılır! ” deyip, bir anlık kızgınlıkla kodları da Visual Studio ile hazırladığım Windows Installer’ı da sonsuzluğa uğurladım ve:

Üniversite tercihlerinde hiç bir bilgisayar bilimi veya yazılım adına tercih yapmayarak İTÜ Uçak Mühendisliği’ne rahatça kazandım.

Üniversite’de Yazılım Başkadır

Liseden sonra uzun bir aradan sonra Matlab gibi çocuk oyuncağı bir dille yazmaya tekrar başladım. Milletin neden degisken=111 yazıldığını anlayana kadar derse gitmeyi bıraktım. Tam bir programlama dili olmaması sebebiyle sevmesem de çok ekmeğini yedim MATLAB’in. Isı geçişi ve Aerodinamik ödevlerini keyifle yazar ve görselleștirirdim.

Fortran’ı Çok Sevdim, O Yüzden Olmadı

Fortran’ı çok sevdim. Hala da severim. Kolay olması, daha önce yazdığım VB 6’ya benzemesi, derlenen bir dil olması, C/C++ kütüphanelerinden kullanabilmesi, vs… Hatta kağıt üzerindeki bir vizede for döngüsünü Basic ile yazmışım. 😊

Tabi Fortran için gfortan, Makefile, Static-dynamic linking, ve bazı derleme parametrelerini bilmeniz gerekiyordu. CodeBlocks iş görse de, çoğu zaman Makefile kullanmak daha makul geliyordu. Anlayarak sadece DISLIN’i (grafik çizdirme kütüphanesi) kullanabilmiștim.

UYBHM Paralel Programlama Eğitimi

Çoğunluğu akademik personelin oluşturduğu İTÜ UYBHM tarafından verilen 2 haftalık eğitim temel bilgisayar bilimleri kapılarını aramama yardımcı oldu. L1, L2, L3 cache, Matris işlemlerinde sadece içerideki döngüyü dışa alarak (i ve j sıralamasını değiştirerek) hesaplamalarda nasıl yüksek bir performans artışı sağlanacağı gibi…

Temel Make komutlarını da bu iki hafta içinde öğrendim.

Ayrıca OpenMP ve MPI paradigmaları hakkında bilgi sahibi oldum.

Bitirme Projem C++ (wxWidgets)

İlk olarak hesaplamalı akışkanlar mekaniği üstünde çalışan öğretim üyesinin kapısını așındırdım. İkinci görüşmemizde tamamen haklı olarak “Vereceğim konu sana ağır gelir, ayrıca dört doktora öğrencim var” diyerek kibarca reddetti.

Beni daha iyi tanıyan hocamızın odasına girdiğimde ilk sözü “Sen program yaz” oldu. Neticede konsolda çalışan DATCOM uygulamasına WxWidgets ile GUI wrapper, config parser, config generator yazdım. (wxDatcom)

SVN, Mercurial Maceram

Neredeyse çok az bildiğim C++ ile yazarken başıma gelecekleri az çok bildiğim için SVN kullandım. Sorun yaşayınca Mercurial’la bitirme projemi sonlandırdım. Daha sonra da GitHub’a projeyi aktardım.

R Maceram

R’ı bir vesileyle öğrendim. OOP yazmak için berbat bir dil olsa da (fonksiyonel tasarıma sahip diye hatırlıyorum) akademik alanda en işe yarar dillerden biri.

Python

Okul bittiğinde Python, Numpy, Scipy, Matplotlib, Sympy ve Spider MATLAB’in yerini aldı.

Bir kaç ay boyunca Isı geçişi, Sonlu Elemanlar ve Alışkanlar Mekaniği konularını tekrar ederek çok basit 1D ısı geçişi çözümü yapan bir program yazdım ve akabinde 2D ısı geçişi, sonrasında Alışkanlar mekaniği yazıp bunları tek bir program altında birleştirmek hedefimdi. Bir hocamın “Çok vaktini alır” uyarısını da dikkate alarak bu işten vazgeçtim.

Daha sonra da Python ve webi öğrenmeye başladım. Google App Engine ile hayli vakit geçirdim.

Sonuç

Dikkatinizi çekti mi bilmem ama yukarıda Database adına sadece lisede yazdığım MS Access + VB 6 dışında hiç bir şey yok. Çünkü DB işinden köşe bucak kaçıyordum.

Bir sonraki yazımda:

  • Bilge Adam’daki Yazılım ve Database tasarımı eğitiminden başlayan yazılım kariyeri maceramı,
  • Daha çok Full Stack çalışma mecburiyetimden dolayı girmeyi istediğim bir şirketten haklı olarak nasıl Frontend’ci damgası yiyerek reddedildiğimi,
  • Risk alamayan sağlamcı yapımın beni mecburen nasıl TDD’ye yönlendirdiğini,
  • Normalization kurallarına uymayan ve bütün sütunların varchar olarak saklandığı bir veritabanı, şemasına dokunmadan soyut SP/View katmanıyla normalizasyon kurallarına daha uygun hale getirdiğimi,

Anlatmaya çalışacağım.

--

--