Bu yazım Koçtaki stajımdan önce yaptığım stajın neden patladığını, sıkıntının ne olduğunu ve nasıl olması gerektiğini içeriyor. 1 senede ne kadar çok şeyin değiştiğini görmek için yararlı.
Önceki Stajım
Öncelikle bu ilk araştırma stajım değil. Yukarıda Avrupa başlığında da okuyabileceğiniz gibi daha önce de Slovakya'da araştırma stajı yaptım. Ama bu staj tamamen fail oldu. Neden özetleyeyim:
Staj 6 haftaydı ki bu zaten çok kısa bir süre. İlk hafta "ofis hazır değil." diye kafa izni verdiler. İkinci hafta bize doktora öğrencilerinin yaptığı projelerden bahsettiler biz de içlerinden bir tanesini seçtik. Proje kuş seslerini kaydedip eşleştirme üzerine bir makalenin simülasyonunu yapmaktı. Projeyi üçe böldüler.
Kuş seslerini kaydetmeyi yarayan elektronik makinayı kodlama görevini Makedonyalı elemana verdiler. (Adam zaten elektronik ve haberleşme okuyordu.)
Websitesini ben alayım dedim Hindistanlı "Hayıır onu ben almak istiyorum." diye mızmızlandı ben de tamam o zaman dedim. Sonra anladım ki adam kurnazlık etmiş, internetten şablon indirip bir günde bitirdi siteyi, geri kalan 5 hafta ofiste film izledi.
Ben mi? Bana bir iş verdiler. İşle alakalı olan konuyu (sinyal işleme) gözden geçirdim ilk hafta. İkinci hafta işi hala anlamamıştım, kafama göre bir şeyler yaptım. İkinci haftanın sonunda iki tane Türk stajer geldi, ikisi de benim bir sene üstümdü. Bir tanesi ne yapmam gerektiğini açıkladı ve oh sonunda dedim.
İki tane açıklama koyacağım, yazılım konusunda iyi olmayanlar birinciyi, iyi olanlar veya detayları merak edenler ikinciyi okusun. *'dan sonrasını herkes okusun.
1. Açıklama
Asistan Peter benden televizyon yapmamı istedi. Biraz televizyon nasıl yaparım diye elektronik devre kitapları karıştırdıktan sonra zorup "Ya önce benim için görüntü atacağım bir kasam olsun da içini sonra yaparız." diye çalışmanın yönünü değiştirip marangozluğa kaydım. Bir hafta çivi çakarak tahtadan da olsa televizyon kasası yapmakla uğraştım. Sonra Türk bir abi geldi "olm bırak bu işi onu makine mühendisleri yapar sen devreleri yapıcan onlara vericen sonrası hallolur." dedi. Aklıma yattı, asıl işime geri döndüm.
2. Açıklama
Asistan Peter bana "sesleri alıp FFT ile frekans verilerine dönüştürüp bizim vereceğimiz seslerle eşleştiren bir web aplikasyonu yaz." (la düşündüm de şimdi bunun üzerine akademik makale yazılır. amma uçmuş bu Peter.) FFT ne? Sesleri frekans verilerine dönüştürmek ne demek? Siz sesi bana nasıl vereceksiniz? Web aplikasyonu ne?
İlk hafta ilk iki soru üzerine yoğunlaşıp internetten okudum ama başlı başına dersti bu. Okuyup bitirilecek gibi değildi. Uğraşmadan direkt internetten FFT kodu indirdim. Fakat son iki soru kafamı karıştırıyordu? Web aplikasyonunu nasıl yazacaktım? Web aplikasyonu diyince aklıma hemen javanın başında kahve logosuyla yükleme yapan abuk grafikli uygulamaları geliyordu, ben de ona yönelik araştırmada bulundum.
O sıralar frontend ne backend ne bilmediğim için "ya önce site üzerinde çalışan bir appim olsun da sonrasına bakarız." diyerek internette bulduğum "web application" tutoriallarına bakmaya başladım. Peter ne yaptığımı kontrol ediyordu ama hiçbir şey demiyordu. Belli ki Peter de çakmıyordu yazılımdan. En sonunda yemekte Peter'in arkadaşlarından biri "Kardeş Peter söyledi hiç yol katedemememişsin projede." diyince "başlarım stajına" diyip her şeyi bırakasım geldi.
O anda yeni gelen YTÜ'lü 3. sınıf öğrencisi eleman "Ya kardeş sen bildiğin gibi programı yaz, websitesini kim yapmışsa o kişi serverda senin programı çalıştırır, girdiyi verir çıktıyı alır, sen orayı kafana takma." dedi. O zaman elimdeki hazır FFT kodları ve en iyi bildiğim dil Javayla projeye yeni bir başlangıç yaptım.
Bu arada servermış, backendmiş, databaseymiş falan kaldı öyle. Hindistanlı frontendi bitirdi uykuya daldı, benim database filan yapmadığımı görünce o işi Makedonyalıya verdiler, o bitirdi mi bilmiyorum. Bu işin böyle kalması Peterin olayları açıklayamamasındandı bence.
Mini sözlük:
frontend: Bir sitenin kullanıcının gördüğü yüzü, tasarımı, renkleri, üzerindeki kutular, butonlar, teması logosu püsürü + javascriptle yazılmış basit kodlar.
backend: Yapımcının gördüğü yüz. Kullanıcının login olmasını sağlama, kullanıcı bilgilerini tutma, her türlü bilgiyi tutma, düzenleme, kullanıcıyla server vasıtasıyla haberleşme + serverdeki karışık ve uzun hesapları yapma.
*
Geriye 3 hafta kalmıştı. 2 hafta (ki sadece 8 gününde çalıştım.) Son günü 1 ay sonrası olan proje ödevini yapar gibi ağırdan alarak çalıştım. Zaten 9'da geliyordum, sabah 10'a kadar haberleri okuyordum, 11-11:30 gibi öğlen yemeğine gidiyorduk, 13-14 gibi dönüyorduk e zaten en geç 17'de de çıkıyorduk. Çalışmaya zaman yoktu resmen.
Son hafta da saçma durumlardan ötürü güme gitti. Yani benim ilk staj özetle 8 gün sürdü. Bu 8 gün içinde Makedonyalıyla LoL seansları ve benim haftasonu tatilini planlama seanslarım mevcut.
Şimdi Slovakya'da olsaydım..
Slovakyadaki stajım bittiğinde ilk iş olarak Bolu Linux Yaz Kampına yazıldım, iki haftamı Bolu'da websitesi yapmayı öğrenmekle geçirdim. Aşırı tembel olduğumdan tam anlamıyla öğrenemedim hatta adamlar Django yani backend öğretirken dinlemeyi bıraktım. Fakat işin mantığını öğrendim diyebilirim.
Şimdi ben burada ne yaptım? Diyip sinyal işleme dersi aldım Bilkent'te. Ne yaptığımı da öğrenmiş oldum. Ve tabii bunu yapmanın daha kolay yolunu da; yani MatLab'ı.
Exchange için gittiğim NUS'ta ise bilgisayar ağları dersi alarak server ne client ne onu öğrenmiştim.
Parçaları birleştirirsek: Peter asla televizyon kasasını kimin ve nasıl yapması gerektiğini söylememişti. Kasası olmayan televizyonun çalışmayacağını düşündüğümden projeye de asla inanamamıştım. Hep günü kurtarıcı baştan sağma devreler tasarlamıştım o yüzden.
Şimdiki aklım olsa; bilgisayara Python ve numpy (Matlabin Python versiyonu) kurar, fft( kuş sesi ) fonksiyonunu çalıştırıp ilk günden kendi partımı bitirmiş olurum. Sonra Hindistanlıya "E hani birader sen site yapmıyon?" diyip backend kısmını da yapar bir de adamın yaptığı sadece frontend'den ibaret sitenin dizaynını da kendi kafama göre değiştirirdim. En sonunda da Makedonyalı'ya "Hadi Bünyamin çok yavaşsın seni bekleyemeyeceğim." diyip Avrupa turnesine çıkarım çünkü daha ilk günden "Eğer işinizi erken bitirirseniz takılabilirsiniz." demişlerdi. Veya birkaç kişinin daha projesine yardım eder referans mektubu kapmaya çalışırım. Gerçi 5 haftada o kadar da uçamazdım herhalde. Bilemiyorum.
Peki KUSRP'te ne oldu?
Bir kere KUSRP'te asistan (master öğrencisi) bir bilgisayar mühendisiydi ve t*şaklı biriydi afedersiniz. Adamı Bilkentten tanıdığımdan ve ne kadar iyi bir yazılımcı olduğunu bildiğimden başvurdum bu projeye bir bakıma.
Peter birkaç kez uygulayacağımız makaledeki algoritmayı tahtayı da kullanarak açıklamıştı. Fakat bunu nasıl yapacağımız konusunu sorunca "İstediğiniz gibi yapın sizi serbest bırakıyorum." demişti. Doğal olarak benim bir haftam bunu nasıl yapacağımı bulmamla daha doğrusu bulamamla geçti. Java server pages diye saçma sapan bir şeyin tutoriallarına bakıp html css kodu yazdım ne yaptığımın farkında olmadan.
KUSRP'te ise asistan sadece algoritmayı değil projeyi, parçaları ve parçalarda yapılması gerekenleri kullanılması gereken yazılım araçlarıyla açıkladı. 3-4. gün python kodlamaya başladım. İkinci hafta ilk birkaç gün yapacak bir şey bulamadım, sonra asistan "bir-iki hafta sonra şunu yapacağız, ona hazırlık olarak şu veri yapısını javascriptte yaz." dedi. Yani her şey planlı gitti.
Peki Slovakya kakaydı da KUSRP muhteşem mi? Olay şu; beni Slovakya'ya getiren IAESTE isimli kurumun gönüllü çalışanları bu Slovakya'daki üniversite gibi tiplerle "Nolur bizim stajerlerimizie iş imkanı veriiiiiin." diyor, adamlar da acıyor veriyor. Özetle Slovakya'daki adamlardan daha fazlasını beklememek lazım. KUSRP ise Koç'a öğrenci çekmek için düzenlenmiş. Projeyi koordine etmek asistanın görevi, asistan da oranın paralı çalışanı. Ha bizimki koordinasyon konusunda oldukça başarılıydı, bu da onun iş ahlakından kaynaklanıyor.
KUSRP'teki teknik detaylara bir dahaki yazımda devam edeceğim.