Geleceği Yazanlar
Yeni Danışmanımız Anıl Sözeri
Geleceği Yazanlar yeni danışmanlarından Anıl Sözeri ile onu daha yakından tanıyabilmeniz için bir röportaj yaptık.Bu işe nasıl başladığı, nasıl ilerlediği ve geldiği nokta hakkında topluluğa ışık tutacak bir röportaj olduğunu düşünüyoruz....
Geleceği Yazanlar yeni danışmanlarından Anıl Sözeri ile onu daha yakından tanıyabilmeniz için bir röportaj yaptık. Bu işe nasıl başladığı, nasıl ilerlediği ve geldiği nokta hakkında topluluğa ışık tutacak bir röportaj olduğunu düşünüyoruz.
- Selam Anıl. 1994 doğumlu genç bir arkadaşımız olarak programlama macerana nasıl başladığını anlatır mısın?
- Küçüklüğümden beri sürekli merakım olan bilgisayarla ilgili meslek olarak da uğraşmak istiyordum ve 2012 yılında Cumhuriyet Üniversitesi Bilgisayar Mühendisliği bölümünü kazanmakla bu hayalimi gerçekleştirmek üzere ilk adımımı attım.
Yazılımla ilk tanışmam, üniversite 1. sınıfta aldığım Algoritma dersinde C programlama ile gerçekleşti. Yalnızca okulla yetinmeyip kendimi dışarıdan da geliştirmem gerektiğini anlamam çok uzun sürmedi. Algoritma dersiyle başlayan yazılım serüvenimi Türkçe ve İngilizce eğitim videoları izleyerek devam ettirdim.
- Aynı zamanda çalışmaya başlamışsın.
- Evet, birinci sınıfın sonlarına doğru hocamın da referans olmasıyla beraber Detaysoft firmasında stajyer olarak yarı zamanlı çalışmaya başladım.
- Birinci sınıf, çalışmak için biraz erken gibi. Neler biliyordun?
- Çalışmaya başladığım ilk zamanlarda programlamanın temeli hakkında, belki de temelinin temeli olan değişken tanımlama, döngüler, kontrol yapıları ve biraz da diziler hakkında bilgi sahibiydim.
- Neler yaptın şirkette?
- Şirkette ilk olarak C# ekibinde çalışmaya başladım. Ardından iki ay sonra Java ekibine geçiş yaptım. Bu süre zarfında algoritma bilgimi geliştirmek adına basit işlemler yapmaya çalışıyordum. Zaman geçtikçe daha da komplike yapılar üzerine çalışarak kendimi geliştirmeye devam ettim. Java'nın ardından Android ekibine geçiş yaptım. Yaptığım ilk elle tutulur işim burada gerçekleşti diyebilirim.
- Sanıyorum ilk mobil tecrüben de böyle başlamış oldu. Biraz ayrıntı paylaşır mısın?
- Android ekibinde şirketin SAP ile entegre çalışan bir iş uygulaması projesinde yer almaya başladım. Altyapıya yeteri kadar hâkim olmadığımdan dolayı çekirdek yapısında yer almadım fakat projeye ekleyeceğimiz konum bulma modülü üzerine çalışmaya başladım. Bu projede kişinin bulunduğu konumu GPS üzerinden bularak Google Maps üzerinde o kişinin gün içerisinde gezdiği noktaları gösteriyordum.
- Şu an daha çok iOS ile meşgulsün sanıyoruz.
- Evet, az önce anlattığım çalışmalardan sonra Android ekibinden ayrılarak iOS ekibine geçiş yaptım. Ekip demeyi isterdim fakat ortada bir ekip olmadığından dolayı tek başıma yola devam ettim. İlk hafta iki kişiydik, daha sonra üç kişi olduk fakat kısa bir sürenin sonunda daha, bir projeye bile doğru düzgün başlayamadan tek kaldım.
- Sanıyorum ki bu dönemde seninle tanıştık.
- Evet, projeye başlamadan önce Turkcell Geleceği Yazanlar Projesi'nin İstanbul'da gerçekleşen fiziki sınavlarına başvuruda bulundum. Daha önceden web üzerinden sanal başarı belgelerini almıştım, böyle bir fırsatım olunca da hem kendimi görmek adına hem de yeni başlayan ve Türkiye'de ilk olan bu projenin ilk mezunlarından olmak için sınava katılmaya karar verdim. Windows Phone, Android ve iOS platformlarının üçünün de fiziki sınavına katılarak üç sertifikayı da almaya hak kazandım. Orada yeni insanlarla tanışıp, konuşma fırsatı buldum. Gerçekten çok sıcakkanlı ve içten davrandılar. Turkcell Geleceği Yazanlar ekibi ile güzel vakit geçirdikten sonra yeniden hayatıma ve projeme döndüm. :)
- Proje neydi? Hemen kodlamaya mı başladın?
- Başlayacağım proje Android platformunda SAP ile entegre olan iş uygulamasının iOS sürümüydü. Projede kullanacağım XMPP yapısına ve iOS'a yabancı olmam, başlarken en büyük engellerden biriydi. Özellikle C#, Java, Android yazdıktan sonra Objective-C gibi bir dile geçmek gerçekten çok farklı bir deneyim oldu benim için. Sentaks yapısına alışmam birkaç ayımı aldı diyebilirim ama hâlâ önümdeki en büyük sorun XMPP yapısı olarak duruyordu ve bu sorunu bir türlü aşamıyordum. XMPP için XMPPFramework adında GitHub'da açık kaynak bir projeyi incelemeye başladım ve kurcalayarak elimden geldiğince çözmeye çalıştım. XMPPFramework hakkında yazılan yazıları okuyup tercüme etmeye çalışarak XMPP yapısını kavrayabilmek için bazen günlerimi, haftalarımı harcadım. Uygulama olmaksızın sürekli belge okumayla geçen günlerim bile oldu. Yavaş yavaş anlamaya başlamıştım, bu buzdağının görünen kısmıydı. Ben de bu konuda tecrübeli olabilecek insanları araştırıp XMPP hakkında yardım almaya karar verdim. Ne yazık ki bu konuda bilgisi olabilecek birine rastlayamadım. Bundan daha kötü olan durumsa, çoğu kişi soru sorduğum halde olumlu ya da olumsuz bir dönüş yapmadı ve sanırım ülke olarak yazılım konusundaki en önemli eksiklerimizden birisi de bilgi paylaşımı eksikliği ve iletişimsizlik.
- Haklısın. Bizim de Geleceği Yazanlar projesindeki temel dürtülerden biri buydu. Sen bu ortamda problemi nasıl çözdün?
- Android sürümünü yapan arkadaşım ile beraber oturup XMPP yapısında kurduğu mantığı inceleyerek, iOS kısmına entegre etmeye başladım. Artık yavaş yavaş sis bulutları dağılmaya ve kafamda belli başlı fikirler oluşmaya başlamıştı.
- Bu fikirlerini nasıl gerçeğe dönüştürdün?
- Adım adım anlatmak gerekirse: İlk etapta sunucuya bağlandım. Ardından oturum açıp, kimlik doğrulaması yapılmasını sağladım. Daha sonra kullanıcı listelerini çektim ve listeler dinamik geldiğinden dolayı favorilerim ve son konuşulanlar şeklinde iki farklı liste oluşturdum. Aynı zamanda oluşturduğum bu listelerde bulunan kişilerin bilgilerini (resim, telefon, e-posta vb.) almak için de XMPPFramework'ün Custom IQ paketleri ile son derece içli dışlı bir ilişkimiz vardı. :)
- O kısımda seninle çok konuştuğumuzu hatırlıyorum. Biraz daha ayrıntı verir misin?
- Custom IQ paketlerinden cevap olarak dönen, sunucu tarafından sıkıştırılmış Base64 verileri açamıyordum. Sunucu tarafında sıkıştırılan verinin açılmasını sağlamak için Objective-C tarafında denemediğim kütüphane kalmamasına rağmen bir sonuç alamamıştım. Yaklaşık iki hafta vaktimi burada bir sonuç bulabilmek için harcadım fakat nafile, bir sonuca ulaşamadım. En sonunda benim iki hafta uğraşıp da çözemediğim sorunun sunucu tarafından 5 dakikada çözülmesini izleyip, yoluma devam ettim.:)
- Bazen sorunun çözümü pek beklemediğimiz kaynaklardan olabiliyor. Sanıyorum uygulama bununla kalmadı?
- Evet, listeleme işleminin ardından Real Time Chat uygulaması yeniden gündeme geldi :). Bu kez daha tecrübeli olduğum için biraz uğraşının ardından chat uygulamasını eklemeyi başardım. Chat uygulaması eklendikten sonra kullanıcıya mesaj geldiğinde bildirim gönderme amaçlı düzenlemeleri eklemek üzere çalışmalara başladım. Bildirim işlerinde yaşadığım en büyük sorunlardan birisi de UILocalNotification sınıfında, program arkaplandayken delegate metotlarımın çalışmaması ve bildirimin program yeniden aktif hale geldiğinde yeniden gelmesi ve bildirime tıklandığında chat ekranına yönlenememe vb. durumlarla karşılaştım. Biraz araştırmanın ardından bulduğum örnek uygulama ile bu sorunu da çözdüm. Daha sonra dinamik kişi listesi kullandığımız için bizim listelerimizde olmayan fakat şirket bünyesinde bulunan çalışanlarla görüşmemiz gerektiğinde onları bulmamız için UITableView yapısına SearchBar dâhil ettim ve burada Server'dan dönen sonuca göre TableView'i yeniden güncelledim. Bu aşamanın ardından istediğimiz kişileri favorilerimize ekleyerek veya mesaj attığımız anda (ya da mesaj aldığımız anda) kişinin son konuşulanlar listesine eklenmesini sağlayıp, sunucuya bu bilgiyi göndererek bir sonraki oturum açışımızda dinamik listemizin yapısında bu kişilerinde gelmesini sağladım. Son olarak UIWebView üzerinden JavaScript metotlarını tetikleyerek parametre geçişleri ile SAP UI5 sayfalarını çalıştırdım. Burada To Do, Activity, Calendar gibi alanların seçilip çağırılması için ekranın solundan sağa doğru kaydırıldığında görünür hale gelen açılır menüyü ekleyip, menüden seçtiğimiz modülün çalışmasını sağladım.
- Harika. 2 yıl gibi bir sürede bunca programlama tecrübesi edinmiş ve sonunda böyle kapsamlı bir projeyi tamamlamışsın. Projeye dair eklemek istediklerin var mı?
- Projeyi şimdilik sonlandırdım fakat testlerine hâlâ devam etmekteyim. Böylelikle projeyi yazıp hayata geçirmek kadar, test işlemlerinin de en az projeyi yazmak kadar önemli olduğunu bir kez daha anlamış oldum. :)
- Haklısın. Test süreci de geliştirme sürecinde kodlama dönemi kadar önemlidir. Projenin sana kattıklarını özetler misin?
- Bu zamana kadar sık sık dil değiştirerek bir nevi tercümanlık yapıyordum diyebilirim ama bu projeyle beraber eksikleri ve fazlalarıyla gerçekten yaptım diyebileceğim bir projem oldu. Projede nasıl çalışılması gerektiğini, herşeyi enine ve boyuna değerlendirmezsek ileride başımıza çok daha büyük sorunlar açılabileceğini gördüm ve iyi ki de tecrübe ettim :).
- Deneyimleyerek öğrenmek bizim işin olmazlarından. Şu an ne yapıyorsun?
- Program yazmak ve çalıştığını görmek insanı son derece mutlu eden bir şey. Program yazan herkes bu lezzeti tatmıştır sanıyorum. İlk başladığımız zamanlarda ekrana “Hello World!” yazdırabildiğimizi gördüğünde bile herkes çok sevinir. Aynı zamanda bu sevinç, anında kursağımızda da kalmıştır. Yazdık, çalıştı, bitti. Böyle bir durum hiçbir zaman olmuyor. Programlamaya başladığımız ilk zamanlarda olmasa bile belli bir süreçten sonra nasıl daha dinamik ve performanslı olarak yazabilirim diye düşünmeye başlıyoruz. Ben bu durum için "program yazmak, bir şeyleri yaparken yapamadığımızın farkına varmaktır" diyorum.
- Senin başlangıç zamanlarında olan sanıyorum yüzlerce geliştirici adayı vardır. Ne söylemek istersin?
- Bu yaşadığım süreçte öğrendiklerimi onlarla paylaşmam doğru olacaktır sanıyorum, özetle;
- Hayatınızı bilgisayar üzerine kuracaksanız, sürekli gelişime açık olmalı ve teknolojiyi takip edip, sürekli kendinizi geliştirmelisiniz. Bir şeyi "öğrendim bitti" dersek, biz de biteriz. :)
- Bilgisayar sektöründe var olmak için gereken en önemli kişisel özelliklerden birisi de tartışmasız araştırmacı yapıda olmak gerektiğidir.
- Geniş bir çevreye sahip olmak da çok önemli. Konu üzerinde bilgi sahibi kişiler ile konuşup beyin fırtınası yapmak, onlardan yardım alıp (bazen alamasak bile) kendimizi geliştirmek ve vizyon sahibi olmamız açısından da çok önemli.
Bunların yanı sıra yaratıcılık, olayları farklı açıdan değerlendirebilmek, kendinizi iyi ifade edebilmeniz ve takım çalışmasına uygun bir yapıda olmanız da sektörün vazgeçilmezlerinden biri.
Ve belki de en önemlisi tecrübe. Kendimden örneklemem gerekirse, programlamaya ilk başladığım zamanlarda basit bir dört işlem uygulamasını kodlara baka baka bile zor yazıyordum. Önümde hâlâ çok uzun bir yol olmasına rağmen o zamandan bu zamana baktığımda ne kadar ilerlediğimi görebiliyorum. Bu da çabalarsanız bir şeyleri başarabileceğiniz inancını kazandırıyor.
24.09.2014
Yorumlar
Anıl kardeşimle aynı yerde stajdayız.Birbirimizi bir yıldır tanıyoruz ama birlikte çok güzel vakit geçiriyoruz.Geleceği Yazanlar projesi ikimizede çok şey kattı.Bunun için Turkcell firmasına sonsuz teşekkürlerimi sunuyorum.Bizde bundan sonra elimizden gelen yardımı bu portal için yapacağız inşallah.