Programlamaya yeni başlayanlar için herhangi bir forum açarsanız, hemen hemen her gün sorulduğundan bu soru muhtemelen en üstte olacaktır. En yaygın cevap neredeyse her zaman şudur: “Ne yapmak istediğinize bağlı. Oyun kodlamak istiyorsanız, bu bir programlama dili, web siteleri olacak – mobil uygulamalar üzerinde çalışmaya karar verirseniz tamamen başka bir dil ailesi olacak. – üçüncü bir dil, vb.” Bu kadar basit, aklınıza gelen ilk sorunun cevabı karşısında şaşkına dönüyorsunuz. Ve sadece oradan daha da kötüleşiyor. Farklı diller hakkında okuduktan sonra, kütüphaneler, çerçeveler vb. olduğunu keşfedersiniz. Sonuç: nereden başlayacağınızı bilmiyorsunuz ve sonraki her soru sizi sadece tavşan deliğinin daha da derinlerine götürüyor. Tanıdık geliyor mu? O zaman birlikte teknoloji alanında nasıl gezineceğimizi bulalım.
Programlama hakkında konuşurken genellikle tüm konuları kategorilere ayırırım: problem çözme ve dil bilgisi. Neyin daha önemli olduğu, mülakatlarda ne sorulacağı ve ilk önce ne öğrenileceği konusunda bitmek bilmeyen tartışmalar var.
MAMAA(Meta, Apple, Microsoft, Amazon, Alphabet) şirketlerinde ilk teknoloji mülakatlarında ne sorduklarını hiç duydunuz mu? Genellikle bazı algoritmik görevlerdir. Nedenini düşündün mü? Çünkü problem çözme becerileri, bir programcı olarak sizin hakkınızda, React veya ASP.NET gibi diller veya çerçeveler bilgisinden daha fazlasını anlatır.
Problem çözme becerilerinizi, hangi dili veya teknolojiyi seçeceğinizden bağımsız olarak gerekli olan temel bir seviye olarak düşünebilirsiniz.
Yani programlamaya yeni başlıyorsanız ve daha önce hiç kodlama yapmadıysanız, problem çözme ile başlayın. Mümkün olan en basit bulmacadan daha büyük ve daha karmaşık olanlara başlayın. “Bir bilgisayarın nasıl düşündüğünü” anlamanız gerekir. Bu genellikle birkaç haftadan birkaç aya kadar sürer. Bu süreden sonra programlamanın ne olduğunu ve kod yazmanın ne anlama geldiğini zaten anlayacaksınız.
Herhangi bir programlama dili bilmiyorsam problem çözme becerilerimi nasıl geliştirebilirim?
Bir yol, satranç oynamak veya klasik mantıksal bulmacaları çözmek gibi kodlamaya benzer bir aktivite bulmaktır. Bu, beyninizi eğitmenize yardımcı olacaktır, ancak uyarı şu ki, bu büyülü “bilgisayar nasıl düşünür” sorusunu öğrenemeyeceksiniz. Ve bu beni en başından yeni başlayanlar için en iyisi olduğuna inandığım öğrenme yoluna getiriyor: problem çözme becerilerine odaklanan herhangi bir (çılgın olmayan) programlama dilini öğrenin. Çılgın DEĞİL örnekleri C#, Javascript, Java, Python ve Ruby‘dir.
Problem çözmeye odaklanmak, herhangi bir dil yapısını öğrendikten sonra, onunla oynamanız ve bu yapı için en basit algoritmaları öğrenmeniz anlamına gelir. Bu aşamada göreviniz, çerçevelere ve kütüphanelere dalmak değil, temel problem çözme becerilerini geliştirmektir. Bu “kodlamanın” ne olduğunu anlayana kadar onlardan uzak durmaya çalışın.
Bu aşamada çok fazla kodlama yapmalısınız. Yeni bir yapı veya konsept öğrenir öğrenmez – üzerinde 5-10 alıştırma yapmak gerekir.
Bu aşamadaki en büyük sorunlardan biri, rastgele web sitelerinde çevrimiçi bulduğunuz pratik görevlerin daha önce öğrenmediğiniz dil yapılarını içermesidir. Eğitim sürecinizi öyle kurgulamalısınız ki yeni bir kavram ortaya çıktıktan sonra hiç duymadığınız 10 yan kavramla beraberinde gelir.
Sıradaki ne?
Programlamanın ne olduğunu kavradıktan ve değişkenler, koşullar, döngüler, en basit veri yapıları ve türler gibi temel yapıları öğrendikten sonra, şu soruya geri dönmenin zamanı geldi: Benim için en iyi programlama dili nedir?
😍 Kullanıcı arayüzlerini, renkleri ve “nasıl hissettirdiğini” seven görsel bir insan mısınız?
Frontend programcı türüne daha yakından bakın. Bu, aşağıdakileri içerir ancak bunlarla sınırlı değildir:
Ön uç web geliştiricisi
- Javascript
- TypeScript
- Çerçeveler: React, Angular, Vue
Mobil uygulama geliştiricisi
- Swift
- Kotlin
- Dart oyunu
- Javascript
Oyun geliştiricisi
- C#
- C++
🤓 Verileri araştırmayı, analiz etmeyi ve paha biçilmez öngürüler elde etmeyi seven türden biri misiniz?
Bu durumda, bir veri analisti, istatistikçi veya makine öğrenimi uzmanı ileriye dönük bir yol olabilir. Bu dilleri göz önünde bulundurun:
- Python
- R
- SQL
- Julia
😎 Siz, kaputun altına girip “nasıl çalışır?” sorusuna cevap vermeyi seven türden biri misiniz?
İşte programlama dilleri hakkında bazı işaretçiler:
Arka uç geliştiricisi (web ve mobil için)
- C#
- Java
- Kotlin
- Go
- Javascript
- PHP
Oyun geliştiricisi
- C++
- C#
- Rust(dik bir öğrenme eğrisi vardır)
Masaüstü uygulamaları geliştiricisi
- C#
- C / C++
- Java
- Javascript
Kritik performans sistemleri (işletim sistemleri, oyun motorları, tarayıcı bileşenleri, dosya sistemleri)
- Rust (dik bir öğrenme eğrisi vardır)
- C / C++
Gömülü geliştirici
- C / C++
- Assembly
- Python
Ve lütfen unutmayın: programlama dili seçimi nihai DEĞİLDİR. Yazılım geliştiricileri genellikle kariyerleri boyunca asla tek bir dile bağlı kalmazlar. Bir dili öğrendikten sonra diğerine geçmek çok daha kolay hale geliyor çünkü diller arasında tonlarca kavram ve yaklaşım paylaşılıyor.
Sonuç
Problem çözme becerileri ve programlama dili bilgisi, öğrenmeniz gereken iki beceri kategorisidir. Problem çözme becerileri çok önemlidir, bu yüzden herhangi bir programlama dilinde ustalaşarak başlayın; mükemmeli aramayın. Programlamanın ne olduğunu anlamanıza yardımcı olacaktır. Temel bilgileri kavradıktan sonra, kendinize en çok hangi tür programları geliştirmekten hoşlandığınızı sorun ve buna göre dili seçin (yukarıdaki kategorilere bakın). Maaş sizin için önemli bir faktörse, boş pozisyonları ve maaşları da kontrol etmeyi düşünün. Pazar talebi, seçiminizi biraz değiştirebilir.
Dil seçiminizde iyi şanslar!