Şimdi Ara

Yazılım Mühendisi Olacağım Ama Şimdiden Çok Bunaldım!!!

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
11
Cevap
0
Favori
921
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Yazıyı uzun bulanlar bilgi birikimi özet ve yoluma nasıl devam etmeliyim bölümlerini okuyabilirler. Yardımlarınız için şimdiden teşekkürler.


    5-6 yaşımdan beri evde bilgisayar var. Yıllarca oyun oynamak internette gezinmek dışında yazılım anlamında hiçbir şey öğrenmemiştim. 2011 yılı LYS sonucunda puanımın rahat tutmasına rağmen yazılım mühendisliğini seçmedim. geçen yıl da çok çok daha yüksek bir puan almama rağmen tıpları bir kenara koyup yazılım mühendisliği seçmeye karar verdim ama ne kadar çalışmam gerektiğinin farkındayım. Bir çok Türk genci gibi benim de hayallerimde oyun yazmak var tabi. Bunun eğer olursa çok uzun yıllar sonra büyük bilgi birikimleri ve çok iyi bir ekiple mümkün olabileceğinin farkındayım. Çocukluğumdan beri arkadaş olduğum birçok şuan bilgisayar mühendisliği okuyan arkadaşım var, zaten tercihleri birlikte yaptık. Herkese sorsan hedef aynı birlikte ileride oyun yazmak. İşin gerçeğinin okul derslerini çok iyi öğrenmekte olmadığının farkındayım. Daha bölümü seçmeye kesin karar verdiğim anda elimden geleni yapmaya başladım. Şuan hazırlık okuyorum ama biran önce çok hızlı ve güzel bir şekilde bu işleri öğrenmeye başlamak lazım ki gerçekten oyun yazabilecek seviyeye gelince yaş çoktan 35-40 olmasın mezun olana kadar bu bilgi birikimini yakalayabilelim. Oyun dediğim öyle flash oyun değil tabiki ciddi bir MMORPG hatta MMORPG'den bile çok daha öte ama detaya girmek istemiyorum. Yazın ilk adım olarak Java öğrenmeye başladım. 1-2 ay öncesine kadar oldukça ilerlettim seviyemi (nesneye yönelimli programlama mantığını ileri düzey kavradım ve algoritma konusunda da daha ders bile almamış birisine göre oldukça ileri seviyedeyim tabi ciddi bir projede çalışmadan ne kadar olunursa) 1-2 ay önce Java'yı biraz askıya alıp C++ öğrenmeye başladım ki Java'yı bilgiğimden dolayı hiçbir zorluk çekmeden Java'da yapabildiğim şeyleri ve çok daha fazlasını C++'ta yapabilecek düzeye geldim.


    !!!!!!!! Şimdi bunaldığım nokta şu: Onca büyük hedeflerle yola çıktığım arkadaşlarımın hepsi bırakın yarı yolu, yolun başında bıraktı. Bırakın fazladan yazılım çalışmayı okulda gördükleri yazılım derslerine bile doğru dürüst çalışmıyorlar ve tercihlerin yapılışından 3-4 ay geçmesine rağmen henüz neredeyse hiçbir şey bilmiyorlar. Daha çalışmaya başlamadan bile bu işlerin ne kadar zor, ne kadar fazla çalışma ve ne insan üstü bir azim gerektirdiğinin farkındaydım ki 3-4 aydır her yeni bir şey öğrendikçe öğrenmem gerekenler sayısının gitgide arttığının farkındayım ve boğulmak üzereyim ve bu yolda yalnızım. İnternetten öğrenmem gereken konularla ilgili elimde 300-400 civarı video 1000-2000 civarı sayfa kitap olması ve bunlarla işin bitmeyip bunların üstüne çok çok daha şey öğrenmem gerektiğini biliyorum. Arkadaşlarımı hala ikna etmeye çalışıyorum ama her zamanki gibi bahaneler bitmiyor. Vize haftaları bitince bu yolda cidden yalnız mıyım yoksa en azından çok arkamdan da olsa bir ekibimin geldiğini mi göreceğim belirsiz. İleride illa ki birçok iş yapılabilecek arkadaş bulacağımı düşünüyorum ama okulda da sözde herkes hevesli ama çalışma konusunda kimsede bendeki azmi göremiyorum ve tüm bunlar oldukça bunaltıyor. Tabiki oyun yazarken herkesin farklı konularda profesyonelleşmesi lazım ama ben kendi konumda profesyonelleşsem bile ekip arkadaşlarımın kendi konularında bu düzeyi sergileyemeyeceğini düşünüyorum. Bu yüzden en azından işimizle alakalı olacak bütün konularda orta düzey (fikir yardımında bulunabilme, belirli seviyeye kadar yazabilme vs.) bazı konularda da çok üst düzey bilgimin olması gerekiyor.


    !!!!!! Bilgi birikimi özet: Nesneye yönelik programlama mantığı iyi seviyede kavrandı. Java ve C++ fena olmayan bir seviye ( yeni bir şeyler görünce asla dumura uğramayacak şekilde hatta belki direk kavranabilcek seviye ama birçok hazır library, sınıf, metod konusunda eksiklik). Algoritma seviyesi proje görmemiş birine göre üst ama tabiki hedefler için oldukça yetersiz şuanda.



    !!!!!! Yoluma nasıl devam etmeliyim???
    Tabiki tüm bu olumsuzluklara rağmen çalışma azmim kırılmayacak ve yoluma devam edeceğim ama önümde birçok seçenek var:
    1. Java'da bilmediğim library, sınıflar ve onların özel metodlarını öğrenmeye mi başlasam? (Yeni bir metod yazma konusunda kendime yeterince güveniyorum ama tabi birçok hazır sınıf ve metodu da ezbere bilmek gerekiyor)
    2. Aynı olayı C++ için mi yapsam?
    3.Elimdeki hazır Unity3d oyun yapım videolarını mı izlesem?( Anladığım kadarıyla C#,JavaScript falan kullanılıyor. Bunlara hiç çalışmadım ama izlediğim birkaç videodaki yapılan her şeyi çok iyi anladım C++ ve Java bilgilerim sayesinde ayrıca bu programı öğrenmem gelecekteki ciddi MMORPG oyun yazılımları için iyi bir tecrübe mi olur yoksa boşa kürek çekmiş mi olurum bilemiyorum. Sonuçta oyun yapımı birden olmuyor basitlerinden de olsa başka diller ya da motorlarla da olsa bir şeyler çalışmanın çok büyük faydası olduğunu birçok yerden duydum.)
    4. Assembly mi öğrenmeye başlasam?( Zor ama hızlı bir dil olup C++ içinde de kullanılabildiğinden hız gerektiren konularda biliyor olmanın çok büyük faydaları olacağını duydum ama ne kadar gerekli o konuda bilgim yok)
    5. Bunları bir kenara koyup ciddi anlamda ilk adım olarak çok ileri düzey algoritma mı öğrensem?( Sonuçta yeni bir şeyler yaratmak algoritma demektir, bilmem yanılıyor muyum?)
    6. Yoksa bambaşka bir yol mu izlemem gerekiyor?


    Kesinlikle dünyanın en iyi okuluna gitsen en iyi eğitimini de alsan okulda öğrendiklerin ciddi anlamda bir şeyler yazmak için kesinlikle yeterli olmayacaktır. Ondan çalışmak için hiç de erken olmadığını düşünüyorum ve önerilerinizi bekliyorum.



    < Bu mesaj bu kişi tarafından değiştirildi InstICH -- 30 Kasım 2012; 4:05:42 >
    < Bu ileti mobil sürüm kullanılarak atıldı >







  • Bütün programlama dillerini ögrenmene gerek yok proje tabanlı ilerle .Kullanman gerektiğinde zaten kütüphanleri ögrenmen gerekecek .Bir dilde ileri seviyeye geld,ğ,nde sonraki dillerdede kısa sürede kendini geliştirebilirsin .
    Oyun programlama düşünüyorsan unity3d olabilir ama 3d grafiker bulman zor olabilir ama 2d daha basit oyunlarla başlaman daha iyi olur .
    Eski blogumda bir kac yazı yazmıstım öğrenciyken onları bi oku istersen c sharp kullanarak 90 tank yapmaya çalışmıstık arkadaşlarla .http://muratcakal.blogspot.com/
    Şimdi o arkadaşla aynı oyun şirketinde çalışıyoruz .Şimdi keşke başldığımız işi bitirseydik diyoruz .



    < Bu mesaj bu kişi tarafından değiştirildi muratsal -- 30 Kasım 2012; 9:48:22 >
  • Ezberleme diye birşey yok, hiçbirşeyi ezberlemeyeceksin. Öğrenmenin en iyi proje geliştirmektir. Ayrıntılara api referanslarından bakacaksın. Elde proje olmadan, yani öğrendiğini kullanabileceğin bir durum olmadığı sürece oturup java framework u okumak sadece beyin sulandırır, tek kelime ile zaman kaybı. Bu işe yıllarını vermiş olanlar bile herzaman kullandığı araçlara oturup tekrar bakıyor. Herşeyi akılda tutmak imkansız ve gereksiz.

    Assembly olayı şöyle. Eğer derleyicinin zaten üretebildiği asm komutlarını tekrar kendin yazacaksan boşa zaman kaybı. Fakat derleyicinin optimizasyon konusunda yardıma ihtiyaç duyduğu bazı durumlar olabiliyor. Bu yardımlar kodun için bazı direktifler kullanmak,derleyiciye parametre vererek bazı olanakların kullanılmasını sağlamak ve nihayetinde inline asm yazmak şeklinde olabilir. Mesela bir diziyi başka bir diziye kopyalamak konusunda işi derleyiciye bırakırsan her seferinde en fazla 4 byte kopyalar fakat kendin müdahale edersen işlemcinin sse ünitelerini kullandırıp 16 byte transfer edebilirsin. Bu küçük bir örnek tabi.

    Hızlı hesaplama için işine yarayacak gerçekçi bir tavsiye istersen Multithread proglamlama ve openCL öğren.

    Artık oyun geliştirme de programlama eskisi kadar yoğun değil ne yazıkki. Oyun motorları geliştikçe kodlama yükü giderek azalıyor ve daha çok işin sanatsal tarafına doğru kayıyor. Yazılan kodlar tekrar kullanılabiliyor ama grafikler, animasyonlar, ses efektleri, senaryo vs. sil baştan yapılması gerekli. Bu yüzden oyun geliştirme de farklılaşmak ve sıradan piyasa programcılarının altından kalkamayacağı işler için bazı sofistike alanlara yönelmek gerekli bence. Benim gözlemlediğim kadarıyla bu konular 1- Yapay zeka, 2- Fizik işlemleri. Bir 3d fizik motorunu yazmayı bırak kullanmak bile ciddi bir matematik ve fizik altyapısı gerektiriyor. Yapay zeka zaten başlı başına bir alem.
    Benim konu hakkındaki düşüncelerim bunlar. Kolay gelsin.




  • /l64bfbgn mnrysr



    < Bu mesaj bu kişi tarafından değiştirildi rob dö şambır -- 30 Nisan 2013; 16:58:02 >
  • Bugün programcılık okuyan 10 öğrencinin 5'i oyun yazmak istiyor neden?
    Oyun yazmak çok mu kolay?
    Bir ekibin mi var tek başına yazabileceğini mi düşünüyorsun?
    Çok fazla para mı kazanacaksın ekibindeki diğer insanlar ne olacak ve bu oyunu yazmak ne kadar zamanını alacak?
    Arkadaşlar biraz düşünün bunları.Ama bazı insanlar sadece debug işlemi görür sadece hata ayıklar.
  • Okul bitince ortada kalmak istemiyorsan c++ java yanında Ms'ye özel şeylerle de ilgi duy derim(biçok alanda algoritma bulunabiliyor zaten, önüne çıkan ve yardım almadan çözmen gereken ve parçalara ayıramayacağın durumların sayısı genelde çok az). Yoksa okul bitince compilerdan, compiler optimizasyonundan kat kat iyi asm yazabiliyor olsan da, ortada kalırsın, arkadaşın da 3-5 bin maaşla database admin olur. ASM'den kastettiğin şey, çoğu kişinin kastettiği x86 zaten. Bunun androidi, ios'si vs. si var. Ha x86 nın adresleme modları vs. si ARM'dan daha karmaşık, bi mimariye özel bişeyi öğrenince diğerinin nasıl işlediği vs. kafanda daha kolay şekillenir doğru da, bu devirde kolay kolay kimse ARM üstünde asm kod yazmaya gerek duymaz. İhtiyaç duymadığın sürece asm sana dolaylı olarak katkıda bulunur. SSE / AVX gibi SIMD kullanmak için inline asm kullanabileceğin tek tek yeni şeyler geliştirmek için sürünüp durabileceğin gibi, mesela Agner Fogun AVX2 için hazırladığı kütüphaneye benzer şeyler de var. Bişeyleri implement etmek yerine bu tür şeylerin getirisi çok fazla.

    Ben kendimi bildim bileli, daha birinci günden direk hocayla kavgaya tutuşacak derecede algoritmanın (veya geliştirildiği dile göre kodun ) yavaşlığı veya optimize olmamasına takacak biriydim (hiç de değişmedim lol). Bu tür uğraşılar sana çok şey katabileceği gibi çok şey de götürebilir (iyi bi multi-threaded koddan, daha iyi algoritmaya kadar). Bi sürü ama bi sürü yerde öncelikli olan projenin düzgün stabil ve ihtiyaca uygun şekilde geliştirilebilmesidir. Performans olarak yeterince iyi olması yeterlidir, sırf %20 daha hızlı olabilmesi için geliştirme zamanı 2 katına kadar uzayabiliyorsa bi çok durumda bu kabul edilemez.

    Arkadaşların dediği gibi büyük çaplı bi iş içn yüksek miktarda bütçe / sermaye gerekiyor, bunları gözardı etmemen lazım.

    TR gibi bi yerde hem yeterli çevre hemde yeterli kaynak bulmak açısından sorun yaşanılabiliyor(tmm sade TR değil heryerde böyle ağız alışkanlığı). Yerine göre projede çalışacak sanatçı artist tasarımcının giderleri büyük meblağlar tutabiliyor (düşük poligon sayılı istediğin modelleri tasarlayacak insanlardan ekip gerekebiliyor vs. vs.).

    Oyun için hazır / hızlı geliştirme araçları var şimdi, oyun motorları vs. var. Bunlar sayesinde bi sürü ama sürü şey için dünyayı baştan keşfetmene gerek yok. Sahip olduğun programlama altyapısı ile bahsettiğin gibi unity3d ye benzer motorlar ile geliştirme yapabilme süresi kısalmış durumda baya. Baştan bi d3d nin nasıl çalıştığını, PC de drawcall'ın nasıl pahalıya patladığını vs. vs. dünya kadar şeyin öğrenme gerekliliğini azaltıyor.

    Ayrıca üzerinde geliştirmek istediğin platform da, mobil / konsol / pc 'ye göre çok ama çok farklılık gösterebilir. Basit şeylerle mobil platformu hedef alarak başlamak da ilginç olabilir ve maddi olarak sana geri dönebilir, bunun bi sürü örneği var, bu forumda da var. Hızlı geri dönüş, bazı açılardan daha hızlı proje geliştirme imkanı, daha çok insana ulaşma seçenekleri , görece daha basitlik gibi şeylerden dolayı ilk denemelerini mobil platformları hedef alarak yapabilirisn. Görsellikten ziyade oynanabilirlik, iyi kodlama(vasat kod için tolerans daha az diye), geniş kitleye ulaşma, ilgi çekici olma , belki yenilikçi fikirleri denemek gibi şeyler için mobil alanı da düşünmen lazım. ios android için bi sürü mmo var mesela.

    Şimdiden wow, sw,lotr vs. gibi mmolar seviyesini hedeflersen, zaten bu tür işler için sana en başta büyük bi sermaye lazım ki bütçye programcı / programcılar da dahil edilir.

    Bizim zmanımızda grafiker tasarımcı vs. bulmak çok büyük sorundu öyleki adam kod yazmayı bırakıp kendisi oyun için grafik tasarlamaya çalışır, 3 saat kod için uğraşıyorsa onun kat kat fazlasını diğer şeyler için harcardı (3 ayda bir, bi akıllının çıkıp gaza gelip kendi işletim sistemimi yazacam dedği milleti örgütleyip organize ettiği ama 1aya kalmadı herşeyin foss olduğu asm grubu zamanlarında...).

    Benim kendi açımdan tavsiyem şimdilik mobil alana yönelmen, kendine destekci grup oluşturmaya çalışman olur(programcı olmasına gerek yok, istediğin tarzda tasarım model vs. için yardımcı olabilecek insanlar mesela). yukarda yine arkadaşların dediğ gibi, oyun için ne bilgisayar bilimlerinden olunması gerekiyor nede illa 4 yıllık unide olması gerekiyor. Ters bi zmanda sana kazık atmyacak birilerini bulmaya çalış yeterli.

    edit: kısatlama eksiltme ://



    < Bu mesaj bu kişi tarafından değiştirildi Rubisco -- 30 Kasım 2012; 12:29:36 >




  • yazilim sözlukte yeniler icin etiketlenen konulara bakabilirsin

    http://yazilimsozluk.com/eyazilim/Yeniler
  • Tavsiyeleriniz için teşekkürler. Elbette ki işin maddi yönünü atlamıyorum. Bu işe maddi çıkarlar için de girmiyorum zaten ve bu yüzden ekip arkadaşlarımı şimdiden belirlemeye çalışıyorum ki yarın öbür gün çok uzun süreler hiçbir maddi gelir olmadan çalışmaya niyetli ve kararlı insanları bulabileyim. Tabiki her dili öğrenme gibi bir saçmalık işine düşmem. Senaryo falan konusunda da aklımda çok ciddi taslaklar var zaten birkaç yaratıcı arkadaş biraraya gelip kolaylıkla üstüne düşülerek ciddi bir senaryo çıkacağına inanıyorum boş değilim bu konuda da hiç aklımdan çıkmıyor. Grafik konusunda da atılabilinecek en minimum adımları atma taraftarıyım. Ciddi anlamda Türk milletinin beklediği tarzda birşeyler ortaya koymak istiyorum. Çok düzgün kusursuz mantıklar yanında idare eder grafikler. En azından proje oluşturulur iş çok ciddi yerlere gitmeye başlarsa grafik konusunda çalışmalara gidilir. Gerekirse proje bi ara askıya alınıp maddi durum sağlanıp devam edilebilir bunun gibi. Tabi ki öncesinde basit oyunlar yazacağım direk MMORPG yazılmaz ama ileride izleyebileceğim muhtemel yollar üzerine birikimleri de yazacağım zaman değil şimdiden atmaya çalışıyorum ki zaman kaybetmeyeyim.
    Ayrıca işin okulla pek alakalı olmadığının farkındayım ama tabiki okulun sağladığı birçok maddi ve manevi olanaklar göz ardı edilemez ki bu dünyanın her yerinde aynıdır.
    Tavsiyelerinizi dikkate alacağım.

    < Bu ileti mobil sürüm kullanılarak atıldı >




  • kj.gfugsvbvgbvb



    < Bu mesaj bu kişi tarafından değiştirildi rob dö şambır -- 30 Nisan 2013; 16:57:53 >
  • quote:

    Orijinalden alıntı: rob dö şambır
    o kadar okuyup diploma alırsın, sonunda "şu reklamı nereye koysam da android telefonlu amelenin parmağını reklama çarptırsam" hesabı yaparsın, ad positioning optimization falan gibi havalı lafların arkasına saklanıp.

    Bu kısmı harika olmuş eline sağlık.
  • quote:

    Orijinalden alıntı: seyfi84

    tl;dr
    çok ve hızlı okuyup bilgi sahibi olma önerisine katılıyorum. rasgele forumlarda alacağın cevaplarla kendine yön tayin etmeye kalkışmanı tavsiye etmem, hatta bilerek yalan yanlış cevap verenler bile olabilir çünkü bu iş dalında denetleme düzenleme yok sokak kuralları işliyor.
    Maddeler halinde yazdığın şeyler abuk sabuk, belli ki henüz üni. eğitiminin sağlayacağı formasyona girmemişsin. Java sınıfları metotları ezberlenmez. Ama standart kütüphaneyi açıp paketleri, sınıfları top-down inceleyip ne var ne yokmuş fikir sahibi olursun.
    Daha önce yazdım bu forumlarda: bir şeyleri erkenden yanlış öğrenirsen sonra düzeltmesi çok zor olur. Oyun yazmak diyorsun iş kurmak diyorsun sonra assembly diyorsun, herşeyi çorba etmişsin, altyapın yok daha böyle şeyleri irdelemeye. Önce diplomanı al.


    altyapım yok zaten ayrıca üni eğitimine de henüz dediğin gibi başlamadım ama en azından bazı şeylere göz aşinalığı olmasının faydası olacağını düşünüyorum ezberlemekten kastım da kütüphanelerin ne işe yaradıkları hakkında genel bilgi belki bikaç küçük alıştırmalarla en azından 3-5 kere kullanmış olurum ve üni eğitimi sırasında her konuyla karşılaşmamda dumur olmam millet sıfırdan öğrenirken ben basit bilgimin üstüne koyarak ya da yanlışlarımı görerek olaylara mantıksal yaklaşma gibi şeyleri kastediyorum. ayrıca önce bi üni diplomanı al demişsin de diplomayı 4.00la bile alsan oyun yazma konusunda tatmin edici bilgi donanımına sahip olunacağını düşünmüyorum. Öyle düşünen de kendini kandırır doğru ya da yanlış olsa da pratik yapmak en doğrusu kanımca çünkü öğrendiğini direk bişeyler yazarak denemeyince çok çabuk unutabiliyor insan ya da yazarken defalarca hatalar yapıyor ki mesala internette ders anlatılan videolardaki bilgili insanlar bile basit hatalar yapıyor 2 saattir yanında olsam da gösterebilsem hatasını da vakti boşa harcamasın diye içimden geçiriyorum. Pratik olmayınca durum böyle oluyor ve zaten ideler yeterince yönlendiriyor en azından bi classın bi metodunu hatırlamaya çalışırken her baktığım metodu benim için anlamlı olsun istiyorum ve bazen anlatımda es geçilen önemli metodları bilmek çok şey katıyor.
    En basit dersleri bile farklı kişilerden dinlemek okumak çok farkediyor en iyi hoca da olsa atladığı birçok şey oluyor ve diğerleri onun eksiklerinin bi kısmını dolduruyor ama bu kadar çok atlanan şey olduğunu gördükçe tabandan kütüphaneleri incelemenin faydalı olacağını düşünüyorum ki ilerde işler iyice sarpa sarmasın

    < Bu ileti mobil sürüm kullanılarak atıldı >




  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.