Rehber Yazılıma nasıl başlanır?

Sosyal'de neredeyse her gün yazılıma nasıl başlanacağı hakkında yeni konu açılıyor. Açıkçası her gördüğümde önceki konulara neden bakılmıyor diye şaşırıyorum. Yazılım, günümüzde çok fazla ilgi görüyor. Ben de yıllardır yazılımla ilgilendiğim için gereken tecrübeye sahip olduğumu ve rehberlik edebileceğimi düşünüyorum. Pekala, o halde ilk olarak yazılım ne olduğunu öğrenelim.

"Yazılım" nedir?​

Aslında yazılımın birçok anlamı var ancak bizim kullanacağımız anlam, programlama. Aslında yazılım, bilgisayarla sohbet etmektir. Hatta bir programcının "kodlama, aptal bir bilgisayara ne yapacağını tek tek anlatmaktır" diye bir sözü dahi var, söyleyen kimdi hatırlamıyorum. Yani şu: Yazdığınız kodlarla, bilgisayara komut veriyorsunuz. Verdiğiniz komutlarla bir yazılım oluşturuyorsunuz. Bu komutlar ise makine kodları sayesinde bilgisayarın anlayacağı dile çevriliyor. Mesela şu koda bakacak olursak:

Python:
print("Hello, World!")

Aslında bilgisayar bu kodu compile edip öyle çalıştırıyor.compile etmek demek, kodu 0 ve 1'e, yani bilgisayarın diline çevirmek demektir.

Yazılım ve alanları​

Yazılım, genel bir kullanımdır. Birisine "ben yazılım öğreneceğim deyince" kişinin aklına makine de gelebilir, mobil uygulama da. O yüzden bir alan seçmeli ve o alana göre ilerlemeniz gerekir. Peki tüm yazılımı öğrenemez miyim? Mantıkla düşünecek olursak hayır. Çünkü yazılım içerisinde onlarca alan var ve hepsi de farklı diller kullanıyor. Yani minimum 20 tane dil ve algoritma yapısı öğrenmeniz gerekiyor.

Peki yazılım alanları neler? İşte en popülerleri:
  • Web tasarım.
  • Web geliştirme.
  • Mobil uygulama geliştirme.
  • Oyun geliştirme.
  • Masaüstü uygulaması geliştirme.
  • Robotik kodlama.
Dediğim gibi bunların dışında yine birçok alan bulunuyor. Ancak en popülerleri bu şekilde. Yazılımda bir de Front-End ve Back-End terimleri vardır. Örneğin web tasarım Front-End grubuna giriyorken, web geliştirme ise Back-End grubuna girer. Front-End kullanıcının ekranında oluşan görüntüyü kodlarken, Back-End yazılımcı ise kullanıcının göremediği, daha çok veri tabanı ile uğraşan yazılımcıya denir. Mesela Sosyal'in menüsü, listelenen konular Front-End geliştirici tarafından yapılmışken, gönderdiğimiz konunun veritabanına kaydolması, hesap ayarlarımız (örneğin: Doğrulama maili gönderme) gibi işlemler de Back-End geliştirici tarafından kodlanır. Bunlara ilaven bir de Full-stack geliştiriciler vardır. Bu ise hem Front-End hem de Back-End geliştiricilerin tüm yeteneklerine sahip yazılımcılara denir.

Front-End ile Back-End ayrımı genellikle web site geliştirmede kullanılıyor. Zira mobil geliştiricilerin %90'ı Full-stack çalışıyor. Masaüstü uygulaması geliştirmeyi aslında yok dahi sayabilirsiniz. Çünkü günümüz yazılım alanlarında artık adı geçmiyor denebilir. Genellikle okullardaki yazılım eğitimlerinde, mantığı anlatmak ve öğrencinin özgüvenini yükseltmek için öğretilir. Tabii mesela Spotify, slack gibi şirketlerin de masaüstü uygulaması var. Ancak bu gibi yazılımlar, genellikle web sitelerini programa yansıtırlar. Yani yalnızca masaüstü uygulaması için çok fazla bütçe ayırmazlar.

Yazılıma nasıl başlanır?​


Öncelikle dediğimiz gibi yazılım, birden fazla alanı temsil eden bir terimdir. Bu da demek oluyor ki bir alan seçmelisiniz. Örneğin web site tasarımı, mobil uygulama veya oyun geliştirmek gibi. Daha çok ilginizi çeken bir alanı seçmenizi şiddetle tavsiye ederim. Zira bir süre sonra zevk alamayacaksınız. Yapmanız gerekenleri adım adım anlatacak olursak:
  1. Alan seç.
  2. Uygun dil tercih et.
  3. Dili öğren.
Yapmanız gerekenler yalnızca bu ve abartılacak bir şey değil. Ek olarak şunu da belirtmek isterim: Yazılımı ve algoritmasının mantığını öğrenmek için bir dil öğrenmenize gerek yok. Bu zaman kaybıdır. Bunun yerine seçtiğiniz alana uygun bir dille başlayın.

Diğer bilinmesi gerekenler​


Öncelikle yazılıma başlayan insanların %90'ı sıkılıp geri bırakıyor. Rica ediyorum yalnızca bilgisayarınız var yazılım öğrenmeyi şart koşmayın. Her bilgisayarı olan yazılım öğrenecek diye bir şey yok. İşin iyi, kötü yanlarını araştırın, meslektekilerin ne yaptığına bakın ve ilginizi çekerse yazılım öğrenin. Şunu bilmenizi isterim ki: Sırf yazılım öğrenmek için öğrenenler, meslekten dışlanıyor. Hatta meslek haini dahi deniliyor. Şahsen haklı olunduğunu düşünüyorum çünkü sadece öğrenmek için öğrenenlerin piyasaya mahvettiğini düşünüyorum. Demem o ki: Gerçekten ilginizi çekiyorsa bu işe başlayın. Öğrenmek için öğrenmeyin. Zaten bir süre sonra sıkılacaksınız. Ancak gerçekten ilgisini çeken birisi sıkılmaz.

Ek olarak: Hata aldığınızda korkmanıza gerek yok. Aldığınız hatayı binlerce kişi aldı ve illaki birisi internet forumlarından yardım istedi. Hatayı araştırın. Bunların dışında bilmeniz gereken bir diğer önemli madde ise İngilizce konusu. Sektördeki birçok kişi yazılımda ingilizcenin önemli olduğunu söylüyor. Aslında bakacak olursak, %100 gerekli bir şey değil. Yalnızca okuduğunu anlama ve problemini anlatabilmeniz yeterli olacaktır. Zira kendim de 4 yıldır yazılımla ilgileniyorum ve okuyup, derdimi anlatabilecek seviyedeyim. İleri seviye ingilizceye ihtiyaç duymadım. Ancak yine de kültür ve dünya yazılımcılarıyla iletişime geçmek için öğrenmenizi tavsiye ederim.

Bunların dışında merak ettikleriniz olursa çekinmeden sorabilirsiniz. Rica ediyorum gelip de yazdıklarımı okumadan "yazılım alanı tavsiye eder misiniz?" diye sormayın. Alan öneriye göre değil, ilgiye göre seçilmelidir.
 
Güzel rehber elinize sağlık. (Dalgınlıkla inceleme yazmışım 😅)
 
Eline sağlık. Çok fazla böyle konu var ve normal olarak bilgi karmaşıklığı oluşuyor. Çoğu kişinin çok işine yarayacağına eminim.
 
1665919918671.png



Güzel bir rehber olmuş bu alana özellikle Technopat'ta bayağı bir ilgi var.
 
Peki ben bir yazılım mühendisi öğrencisi olarak ne seçmeliyim? Benim asıl amacım oyun ve uygulama geliştiricisi olmak ama bir tanıdığım abi kendini web yönünden geliştirip okulu bitirdikten sonra işinde kendini ufaktan geliştirdi ve şu an maddi olarak fazlasıyla iyi durumda ki yurt dışı iş tekliflerini bile reddediyor yani. Web yönüne de ilgim var ancak asıl ilgim oyun ve uyguluma özellikle mobil + bilgisayar alanında.
 
Peki ben bir yazılım mühendisi öğrencisi olarak ne seçmeliyim? Benim asıl amacım oyun ve uygulama geliştiricisi olmak ama bir tanıdığım abi kendini web yönünden geliştirip okulu bitirdikten sonra işinde kendini ufaktan geliştirdi ve şu an maddi olarak fazlasıyla iyi durumda ki yurt dışı iş tekliflerini bile reddediyor yani. Web yönüne de ilgim var ancak asıl ilgim oyun ve uyguluma özellikle mobil + bilgisayar alanında.
Hocam ilk oyun geliştirin, sonra onun web sitesini oluşturun. Çok iyi para kazanırsınız.
 
Peki ben bir yazılım mühendisi öğrencisi olarak ne seçmeliyim?
Buna sadece sen karar verebilirsin. Etrafından gördüklerine değil de kendi istediğin işe odaklan çünkü yazılımda hangi alanda gelişirsen geliş genellikle para kazanmak sıkıntı olmuyor.

Hocam ilk oyun geliştirin, sonra onun web sitesini oluşturun. Çok iyi para kazanırsınız.
Bunun için game development + web development öğrenilmesine gerek yok. Oyunu geliştirdikten sonra hazır script'ler kullanılarak veya başka yazılımcıyla çalışarak web sitesi yapılabilir. İki sektör de zaman alan işlere sahip o yüzden bence tek bir sektöre yönelip diğer sektörleri hobi olarak öğrenmek lazım. Kendi sektörünüzden sıkılırsanız da direkt başkasına kayarsınız.
 

Technopat Haberler

Geri
Yukarı