Pages

Showing posts with label Türkçe. Show all posts
Showing posts with label Türkçe. Show all posts

Thursday, October 3, 2013

İş Bulma Macerası

Uzun süredir Türkçe yazı yazmıyordum. Aslında bu yazıyı da İngilizce yazmayı planlıyordum. Fakat daha çok Türkiye'yi ilgilendirdiği için ve de ileride birilerine bilgi sağlayabilir diye bu fikrimi değiştirdim.

İş ilanlarına bakmaya geçen yaz başlamıştım. İlgimi çekenleri yaptığım listelere atıyordum. Bu işlere ikinci dönemde başvururum diye düşünüyordum. Not aldığım iş ilanları genelde oyun geliştirmeyle ilgiliydi ve çoğu Avrupa'daydı. Ben de seçmeli derslerimin çoğunu oyun geliştirmeyle alakalı olanlardan almıştım. Bitirme projesinde online multiplayer oyun yapıyorduk. Bütün bunlar ışığında kendime bu konuda güveniyordum. Türkiye'deki oyun şirketlerinde de açık pozisyonlar olduğunu bulmuştum. İşler genelde Flash ağırlıklıydı. Ben de Flash oyun yapmama rağmen kendimi Unity ile daha rahat hissediyordum.

Avrupa'da genelde Almanya'daki işlere bakmıştım ve onlara başvurmuştum. Üzücüdür ki neredeyse bütün şirketlerden ret cevabı almıştım. O kadar çok yere başvurup reddedildikten sonra ret maillerinin nasıl yazılacağını öğrendim: "We regret to inform you that ..." Bu mailleri aldıktan sonra moralim bozulmuyordu demek isterdim fakat bu haberler yüzümün asılmasına  ve günümü morali bozuk şekilde geçirmeme yetiyordu. En kötüsü de iş bulamayacağımı düşünmeye başlıyordum. Nitekim de öyle oldu ve oyun şirketinde iş bulamadım. 

Kafamda bir planlama yapmıştım. İlk başta yurtdışındaki işlere başvuracaktım daha sonra yurtiçindekilere. Türkiye'deki işlere başvurmaya planladığımdan geç başladım. Nedeni ise Almanya'daki Goodgame Studios ile yaptığımız uzun görüşmelerdi. Bu şirket bana geri dönmüştü ve benden transkript, referans mektubu ve örnek kodlar istemişlerdi. İstediklerini yolladıktan sonra da telefon görüşmesi yapmak istemişlerdi. Bu haberi aldıktan sonra deli gibi heyecanlanmıştım ve de ister istemez hayaller kurmaya başlamıştım. Telefonda konuşacağımız için bir not kağıdı hazırladım. Kendimi anlatan ufak bir paragraf, yaptığım şeyleri anlatan bir paragraf, sevdiğim oyunların isimleri ve onları neden sevdiğimi anlatan bir paragraf vardı. Hatta ne olur ne olmaz diye sevdiğim ve sevmediğim üç özelliğimi bile yazmıştım. Görüşme saati akşamdı ve o kadar heyecanlıydım ki hayatım boyunca kalbimin o kadar hızlı attığını hatırlamıyorum. Vakit geldi ve görüşmeyi yaptık ve tam bir hayal kırıklığıydı. Hazırladığım notlarla ilgili hiçbir şey sormamışlardı. Telefonu kapattığımda işe alınmayacağımı biliyordum.

Görüşmede çok enteresan olaylar oldu. Mesela bana "Not ortalaman çok iyi. Neden yüksek lisans yapmıyorsun?", "İkinci yabancı dil olarak neden İspanyolca seçtin?" gibi sorular sordular. Bu soruları soran kişi insan kaynaklarındandı ve daha sonra telefonu teknik ekipten birine verdi ve onunla konuşmaya başladım. Duyduğum en kötü İngilizcelerden biriydi. Onlara CV'mi yollamama rağmen, bana CV'mde yazmayan şeyleri bilip bilmediğimi sordu sadece. Mesela CV'de hiç yazmamasına rağmen bana SVN kullanıp kullanmadığımı sordu. Bütün bunlar sonucunda beklenen oldu ve olumsuz bir geri dönüş geldi. Biraz üzülmeme rağmen işe aldıkları adama gelişme şansı sunmayan bir şirket olduğunu düşünüp içimi rahatlattım. Daha sonra Wooga'dan da transkriptimi ve örnek kodlarımı isteyen mail aldım. Fakat altı ay geçmesine rağmen hala bir cevap alamadım.

Artık Türkiye'deki işlere başvurma zamanı gelmişti. Ve o kadar reddedildikten sonra moralim çok bozuktu. Türkiye'de ilk olarak Peak Games'e başvurdum. Birçok pozisyon vardı ve ben bana en uygun olan New Graduate Programme'ı seçtim. Başvurudan iki hafta geçmesine rağmen cevap yoktu. Sitelerine bir daha girdim. Jobs sayfası değişmişti ve artık JobVite destekliydi. Ben de başvurumu maille yapmıştım. "Heralde artık maille başvuru almıyormıyorlar." deyip bir kere daha başvurdum. Hala geri dönüş yok.

Sonra Game Developers Turkey'in Facebook sayfasında bir ilan dikkatimi çekti. İlan Tart Games'indi ve Unity'ci arıyorlardı. Facebook'a futbol oyunu yapıyorlardı. Yaptıkları oyunu oynadım hemen. Daha betaydı ve benim bitirme projeme çok benziyordu. Hatta oyundaki bazı hataları görünce benim de bitirme projemde aynı tür sıkıntılar yaşadığım geldi aklıma. Oraya da başvuru yaptım. Ve onlardan da herhangi bir mail gelmedi. 

Bazen röportajlarda görüyorum, oyun şirketi sahipleri "Türkiye'de kalifiye eleman bulamıyoruz." gibi şeyler söylüyorlar. Bu bana çok samimiyetsiz bir yorum olarak geliyor artık. 

Şimdi ise kariyer gününe katıldığım ve oyunla alakası olmayan bir şirkette çalışıyorum. "Çalıştığım yerde yaptığım şeylerden tatmin oluyor muyum?", "Beklentilerimi karşılıyor mu?" gibi tehlikeli sorular sormamaya çalışıyorum kendime. Oyun geliştirmeden de çok uzaklaştım ister istemez. Şimdi kendimi işten kalan zamanlarda geliştirmeye çalışıyorum. Online dersler alıyorum. Şimdi 10gen'in verdiği MongoDB dersini alıyorum ve fırsat buldukça Python kurcalıyorum. Web geliştirmeye tekrar ilgi duymaya başladım diyebilirim.

Artık daha fazla Türkçe yazı yazmak istiyorum. Bakalım neler olacak?

Sunday, February 19, 2012

C ile Multithreading Örneği

Geçen dönem İşletim Sistemleri dersinin en heyecanlı lab dersi Thread konusundakiydi. Bir programın yapacağı işi parçalara bölmek ve her parçayı ayrı ayrı thread’lere paralel olarak yaptırma fikri gerçekten herkesin ilgisini çekmişti.

Labda yaptığımız örnek ise Silberschatz’ın kitabındaki matris çarpma projesi oldu. Labdan kısaca bahsedeyim: A ve B matrisini çarpıp C matrisi elde ediyoruz. Yalnız bu çarpma işlemini yaparken C’nin her bir elemanını ayrı ayrı thread’lerde hesaplıyoruz. Örneğin, A 3x2 bir matris ve B 2x3 bir matris olsun, çarpma sonucu oluşan C matrisi bu durumda 3x3 olur ve C matrisini oluşturmak için toplam 9 thread kullanılırız. Umarım anlatabilmişimdir.

Labın kodlama kısmı şöyle:


Şimdi ise nasıl derleyip çalıştırdığımıza ve çıktısına bakalım.

ozan@pardus2011 Labs $ gcc thread_project2.c -o thread_project2.o -pthread
ozan@pardus2011 Labs $ ./thread_project2.o  
28      23      18
41      34      27
54      45      36

Görüşmek üzere.

Saturday, February 4, 2012

Pygame ile Zombi Oyunu Denemesi

Daha önce de bahsettiğim gibi Pygame ile uğraşmak istiyordum. Başlangıç için ufak bir zombi oyunu yapmaya karar verdim. Şu ana kadar, temel bazı şeylerin programlaması bitti, mermi ve zombilerin hareketleri gibi.

Bu aşamaya kadar yazarken, beni biraz da olsa zorlayan kısım mermilerin nasıl çapraz hareket edeceği oldu. Bu sorunu halletmek için mermilerin x ve y koordinatlarını belli bir açının sinüs ve kosinüsleriyle arttırarak çözdüm. Bu oyunda ise o açı, asker ve hedef arasında kalan açı.

Yalnız hala çözemediğim bi’ şey var. Hareket halindeyken ateş edince mermiler falso alıyormuş gibi gözüküyor. Bu olması gereken bir durum mu yoksa göz ardı ettiğim bir durum mu hala karar veremedim.

Bir sonraki aşama için ise eklenebilecek pek çok şey var gibi gözüküyor. Öncelikle, zombiler ve asker resimleri olarak kareler yerine resimler koymak istiyorum, tabii uygun spritesheet’leri bulabilirsem. Daha sonra, silahların geliştirilebilir olması, zombilerin bölümler geçtikçe daha hızlı hareket etmesi, bazılarının bize fırlatabilecekleri şeylerin olması aklıma ilk gelenler.

Ama bu aralar Unity3D'ye merak saldığım için devam eder miyim bilmiyorum.

Oyundan bir görüntü:


Kodu çok dağınık yazdığım için koymadım. Biraz vakit harcayıp düzelttikten sonra koymayı düşünüyorum.

Görüşmek üzere.

Monday, January 16, 2012

Burada Neler Oluyor?

Bir dönemi daha geride bıraktık. Bu dönem boyunca blogu çok fazla ihmal ettim. Gerek derslerin yoğunluğu gerekse projeler fazlasıyla vakit alıcıydı. Ama bugün son final sınavının bitmesiyle hiçbir engel kalmadı ve kendimi hemen buraya attım. Bu yazıda da bu süreçte aklımda kalan bir-iki şeyden bahsedeceğim.

Geçen dönemin en flaş dersi Bilgisayar Oyunlarına Giriş oldu benim için. Garip bi’ şekilde çok sevdim. Ders projesi olarak Jurump adlı bir oyun yaptık. Dersi sevmemin sebebi bu dönem içerisinde Humble Indie Bundle’ı keşfetmem oldu sanırım. Herhalde, oradaki acayip orijinal, süper oyunları görünce ben de o tarzda bir oyun yapmak istedim. Ama tabii olaya yeni başladığım için yaptığımız oyun basit bir oyun oldu. Başka bir yazıda bahsetmeyi düşünüyorum bu oyundan.

Ee, şimdi tatil zamanı. Bu tatilde yapmak istediğim bazı şeyler var. Python’dan çok uzaklaştım, ona biraz yönelmeyi düşünüyorum. Pygame ile basit bi’ zombi öldürme oyunu düşüncem var. Git’i öğrenmek istiyorum. Geçen yaz Github’da hesap açıp ilk adımları attım ama şimdi onları da unuttum. Ve de blogu güncel tutmak istiyorum.

Bu arada sizlere son bi’ şeyden daha bahsetmek istiyorum. Kodlama yaparken veya çalışırken müzik dinlemeyi seviyorsanız mutlaka Grooveshark’ın Ambient tarzdaki radyosunu dinleyin. Mükemmel şarkılar çıkıyor. Ben sağlam adamlar keşfettim, Milosh, Deaf Center, Max Richter, M83 bunlardan bazıları.

Lamp Mien by Deaf Center on Grooveshark

Şimdilik benden bu kadar.

Görüşmek üzere.

Monday, September 12, 2011

Python’da NetworkX ile Graph Denemeleri

Geçen dönem C ile gördüğümüz graph algoritmalarını bir de Python ile denemek istedim. Ve bu işlemleri daha kolay yapabileceğimiz bir kütüphane arayışına girdim. Stackoverflow’da bu konuyla alakalı şu soruyu da görünce, NetworkX ile tanışmış oldum.

Gerekli yüklemeleri yaptıktan sonra, bu kütüphaneyle biraz uğraşmak adına unweighted (unit-weight) shortest path algoritmasını yazmayı denedim. Ve de bu kütüphanenin özelliklerinden biri olan ve beni heyecanlandıran oluşturduğumuz graph’ları mathplotlib ile çizdirme özelliğini de görmek istedim.

C ile yazarken graph’ı tutmak için 2 boyutlu array kullanmıştık ve bu array’in boyutunu da node sayısı belirlemişti. Node’ların komşuluklarını (adjacency) belirlemek için ise kesişim yerlerine flag koymuştuk, Graph[1][3] = -1 gibi. Eğer unweighted değilse, iki node’un arasındaki ağırlık neyse onu yazmıştık.

NetworkX’te ise herşey daha kolay. Kullanıcının işini kolaylaştıran add_node(), add_edge() vb. methodlar var. Eğer edge’lere ağırlık eklemek istersek G.add_edge(1, 2, weight=4.7 )
ve G.edge[1][2]['weight'] = 4 gibi kullanımlar mevcut.

Kendi sitesindeki başlangıç tutorial’ı için buraya bakabilirsiniz. Gerçekten uğraşması zevkli bir kütüphane.

Yazıyı bitirmeden önce bahsettiğim algoritmayı ve çıktı resmini ekliyorum.


Kaynak 3, hedef 6 iken oluşan görüntü:


Aslında kodun bu kadar uzun sürmemesi gerekiyordu. Ben çıktıyı biraz daha süslemek istediğim için oldu galiba. Bu süslemeyi yaparken de şuradaki örnek çok işime yaramıştı.

Görüşmek üzere.

Wednesday, August 24, 2011

Python ile Twitter'dan Trending Topics Almak

Geçenlerde Twitter’da gündem konuları (Trending topics’in Türkçe’si buymuş.) hakkında yazılanlara bakıyordum yine, bi’ hesap gördüm. 15 dakikada bir - veya 30 tam hatırlamıyorum - bu konuları otomatik olarak tweet atıyordu. “Aaa!” dedim, “Acaba bunu nasıl yapmışlar?”.

Daha sonra Twitter api’lerini buradan incelemeye başladım. GET Trends tam benim aradığım şeydi. Ayrıca Twitter, gündem konularını almak için günlük, haftalık gibi seçenekler de sunmuş, buradan bakabilirsiniz. Dikkat ettiyseniz bu konular JSON uzantısıyla geliyor. JSON’u daha önce duymuştum ama ne olduğuna dair fazla bilgim yoktu. Biraz araştırdıktan sonra artık işin Python kısmı için hazırdım.

Python’da JSON dosyalarını decode etmek için simplejson kullandım. Bu kütüphaneyi de böylece ilk defa kullanmış oldum. Kodlar şu şekilde:


Kodun içerisindeki yorum satırını aktive ederek gelen JSON dosyasının içeriğini görebilirsiniz.

Bu arada simplejson için buraya, JSON için ise wikipedia sayfasına bakabilirsiniz.

Son olarak hem örnek bir çıktı göstermek hem de bu yazıyı yazarken Twitter'da gündem konuları neymiş öğrenmek için programı çalıştırıp sonucu yapıştırıyorum.

['#Cheers2Rihanna',
'#HappyBirthdayRupert',
'SMASH HEART SCTV',
'#bakerfilms',
'Jorge Luis Borges',
'Charlie and the Chocolate Factory',
'TOTP',
'QPR',
'Brenda Song',
'Trace Cyrus']

Görüşmek üzere.

GÜNCELLEME: Kod, Twitter API'sinin değişen methodu nedeniyle yenilendi. (11.02.2012)

Sunday, August 21, 2011

Merhaba Dünya!

Uzun süre önce almıştım blogspot’tan bu adresi. “ozanyildiz” isminin uygun olduğunu görünce hemen üye olmuştum. Gmail, hotmail, yahoo gibi e-mail servislerinden isim alırken aynı şekilde şanslı değildim. Yahoo’nun “rocketmail.com” uzantısını bile denediğimi hatırlıyorum.

Aslında çoktandır bi’ şeyler yazmayı düşünüyordum fakat kafamda bazı sorular vardı. Baktım zaman geçiyor, daha fazla bu sorular üzerinde düşünmeden bu fikri aksiyona geçirmeye karar verdim. (Cümleye bak be!)

Umarım uzun soluklu bi’ şey olur. Daha sonra görüşmek üzere.