Nasıl Yazılımcı Olunur?

Web için HTML-CSS-JavaScript sırasıyla ilerlemelisin. Program dili olarak Python ile başlayabilirsin.

Yazıda belirttiğim gibi zaten Python ve HTML öğrendim, şu an CSS öğreniyorum ama bir arkadaş web tasarımcılığının artık bir işe yaramadığını söyledi ve haklı. Benim bunları öğrenmem boşa mı gider yoksa sadece python öğrenmek gibi antrenman maksatlı mı olur? Son olarak, JavaScipt öğrendikten sonra ne öğrenmeliyim?
 
Yazıda belirttiğim gibi zaten Python ve HTML öğrendim, şu an CSS öğreniyorum ama bir arkadaş web tasarımcılığının artık bir işe yaramadığını söyledi ve haklı. Benim bunları öğrenmem boşa mı gider yoksa sadece python öğrenmek gibi antrenman maksatlı mı olur? Son olarak, JavaScipt öğrendikten sonra ne öğrenmeliyim?
İlerisi hakkında benim de pek bilgim yok. 🙂
 
Bu arada bir sorum daha var ben boş zamanlarımda yazılımla uğraşmayı seviyorum ne önerirsiniz, hangi dili öğrenmeliyim?
Merhabalar,

@bitwise hocam yeteri kadar bilgi vermiş aslında. Ben de naçizane birkaç öneri de bulunmak ve detay vermek isterim.

@bitwise hocamın da dediği üzere özenilerek yapılacak bir meslek kesinlikle değildir ve kendi içinde çok fazla alt dalı vardır. Mesela kullanıcı arayüzleri tasarlamak istiyorsanız frontend developer olmanız gerekiyor. Bu da yapılacak uygulamaya göre değişebilir. Yani, bahsi geçen uygulama "bir web uygulaması mı olacak yoksa executable mı" gibi... Buna göre bilmeniz gereken dil/diller değişir. Web uygulaması için HTML, JavaScript, PHP vb. bilmeniz gerekirken; bir desktop uygulaması executable için isterler bambaşka olabilir. Java'da da yazabilirsiniz, C#'da da, C++'da da, Python'da da yada daha bambaşka bir dilde de. Bu da tamamen isterlere bağlıdır. Eğer serbest bırakılırsanız ve yazılımın çalışacağı platform da müsaade ediyor ise istediğiniz dille yazarsınız. Yoksa istenilen dili bilmeniz gerekir.

Aynı şekilde backend vardır. Burada geliştirdiğiniz uygulama arkadaki gizli adamdır, hiçbir şekilde önde görünmeden arkada çalışarak bütün istenilen işleri halleder. Desktop executable'larında genelde frontend ve backend iç içedir. Web uygulamalarında ise genelde ayrıdır. Bir de her iki alanı da bilen insanlar vardır. Bunlar full-stack developer diye geçer. Ayrıca daha sayamayacağım kadar çok farklı alanlar mevcut: Big Data, Database, AI, CV vs. vs. Daha fazla detay vermeme gerek olmadığını düşünüyorum. Zaten meraklıysanız kendiniz öğrenirsiniz.

Üniversite konusunda ise diyeceklerim şunlar:
Gidebildiğiniz kadar isim yapmış üniversiteye gitmeye çalışın tabi ki. Ama gidemezseniz de bu dünyanın sonu değil. Hiçbir farkı yok. Herhangi bir üniversiteye de gidebilirsiniz. Asıl olay sizde bitiyor. Ne yapmak istediğinize karar verip kendinizi o alanda olabildiğince çok geliştirmeye bakın. İsmi olan üniversitelerin size sağlayacağı tek fayda; sağlam hocaların olması ve bu hocalardan faydalanabilecek olmanızdır. Onun dışında size iş öğretip de mezun edeceklerini düşünmeyin. Mezun olduğunuz anda kendinizi geliştirmemiş iseniz aslında ne kadar boş olduğunuzu, üniversitenin bir işe yaramadığını anlarsınız. Eğer isim yapmış bir üniversiteden mezunsanız ve şanslı iseniz belki yeni mezun aday arayan firmaların gözüne çarparsınız. Burada da mülakatta; beğenmediğiniz bir üniversiteden mezun ama kendini geliştirmiş bir aday gelip işi elinizden alabilir. Bu yüzden kendinizi geliştirmeye bakın. 4 yıl hiç kısa bir süre değil. Yazılım Mühendisliği'dir, Bilgisayar Mühendisliği'dir bunlara çok takılmayın. Yapmak istediğiniz iş yazılım ise ikisinden birinden mezun olmanız yeterlidir. Bilgisayar Mühendisliği'nde ekstra olarak biraz donanım da anlatılır. Mikroişlemci dersi de verilir. Yazılım Mühendisliği ile ilgili bilgim yok maalesef. Ne anlatılıyor, müfredat nedir bilmiyorum. Ama olay yazılım olunca aynı şeyler anlatılmak zorunda. Detay farkı olabilir tabi ki. Oyun tasarımı dediğiniz nokta da aynı şeydir. Genelde bir oyun için öncelikle bir oyun motoru yazılması gerekir. Burada da kapı yine bilinen dillere çıkar. Oyun motorları verim ve hızından dolayı genellikle C++ kullanır. Bu dili biliyorsanız motor tasarımında görev alabilirsiniz mesela. Motor tasarlandıktan sonra bu motorun limitlerine göre oyun tasarımına başlanır. Senaryosu vardır, görselliği vardır, ses efektleri ve müziği vardır. Kısaca çok uzun iştir. :) Günümüzde Unreal Engine (C++ tabanlı) ve Unity (C# (Mono) tabanlı) gibi hazır oyun motorları da vardır. Burada da yine bu motorların yazıldığı ve kullandığı dilleri bir de motorun API'ını bilmeniz gerekmektedir. Genelde API için dokümantasyonlara bakılır. İşin özeti kapı hep dile ve tecrübeye çıkar. Siz kendinizi farklı işler yaparak geliştirdikten ve mezun olduktan sonra çalışmak istediğiniz alana karar verir ve o alanda ilerlersiniz. Yani hep masaüstü uygulama geliştirdiniz diye oyun yapamayacaksınız tarzında bir düşünce yanlıştır. Dile hakimseniz girer o alanda çalışırsınız. Neticede kimse üniversiteden oyun tasarımı yaparak çıkmıyor. İlk tercih olmamanız için bir sebep değil yani.

Uzun bir yazı oldu, okuyanlara teşekkür ederim. Hayatınızda başarılar.
 

Yeni konular

Geri
Yukarı