Yazılım Geliştirmeye Nasıl Başlarsınız?
Yazılım geliştirmeye yeni başlayacaklar için bir mini rehber!

- Blog Yazısı
Yazılım, kaotiktir.
Sevgili dostum... Eğer yazılım geliştirmeye meraklandıysan ama başlamaya çekindiysen, seni çok iyi anlıyorum. Haklısın. Dışarıdan bakıldığında yazılım geliştirmenin her alanı, birer labirentin içinde kaybolmaya benzer. Özellikle rehberin yoksa veya rehberinden memnun değilsen, her şey senin için çok daha kaotik olacaktır. Özensiz YouTube eğitimleri, uzaktan bakıldığında bile hiçbir şey bilmediği bariz olan Udemy eğitmenleri ve daha niceleri senin eğitim patikanı kırdıysa, yazılım senin gözüne ulaşılması zor bir mecra olarak gelmiş olabilir. Topluluklarda soru sorduğunda, aldığın cevapların bile kafanda tonla soru işareti bırakmasıysa cabası.
Yine de...
Eğer tekrar başlamaya niyetin varsa diye sana bu blog yazısında birkaç ufak tüyo ve tavsiye vermeye geldim.
Bölüm 1: Yazılımda Alan Seçme!
Tamam, bugüne kadar danıştığın herkes sana "bir alan seçerek işe başla" demiş olabilir. Fakat bu tavsiye, yalnızca son çaresi yazılım geliştirme olan kişiler için geçerlidir. Alaylı yazılım mühendisi olmayı hedefleyen ve başka hiçbir alanda çalışmak istemeyen biriysen, ilk işin bir alan seçmek olabilir. Ancak yine de alan seçmek her zaman makul bir tercih olmayabilir.
"İyi de, ne yapmalıyım?"
Üç maddede basitçe anlatabilirim;
- Bir programlama diliyle tanış.
Bazıları okulda, çok alakasız bir bölüm olmasına rağmen yazılım geliştirmek için kullanılan programlama dilleriyle tanışır. Bazılarıysa merakına yenik düşerek bir iki video ile bir programlama diliyle tanışma fırsatı yakalar. Ancak o dili sığ bir şekilde öğrenmiş ve bırakmış olabilir. Eğer sen de bu kişilerden biriysen, HARİKA! Çünkü en azından programlama dillerinin neye benzediğini biliyorsun. Eğer değilsen ve hiçbir fikrin yoksa, sana Python'ı öneririm. Diğer maddelerde detaylandıracağım ama kısaca Python; Hiç bilmeyen adam için tam bir yap-boz deneyimi sunar. Deneme yapabileceğin, deneme yaparak öğrenirken seni sıkmayacak bir söz dizimine sahiptir. Basittir mesela Python. Eğlencelidir. Hedefini büyük tutmadığın sürece Python, tam bir 'Yeni Başlayan Dostu' sınıfındadır.
Söz dizimi: Bir programlama dilinde yapıları kurguladığımız kelimeler, o kelimelerin yazılma biçimi ve kurallarına verdiğimiz genel isimlendirme veya grammer. (Syntax)
- Programlama dili ile bağ kur.
Gündelik konuşma ve insan iletişimi sağlayan dillerin aksine programlama dilleri, makine ile iletişim kurmaya yarar. Makine, senden aldığı kod zincirlerini derler ve emirlerini yerine getirir. Basitçe programlamanın özü, makine yaratmak ve yaratılan makine ile bağ kurmaktır. Her programlama dili karakteristik bazı şeyler içerir. Bunlara "Native özellikler" deriz. Android geliştiren programlama dillerindeki Android'e has özellikleri barındırması ve onlarla çalışabilmemiz gibi. Tabii dilin kendine has söz dizimi de karakteristik olabilir. Mesela Python'ın söz dizimi çok karakteristiktir. Tuhaf fonksiyon yapılanması, girintili yapısı ve genel dosya düzeni; Benim gibi Java, Dart, JavaScript gibi programlama dilleriyle uzun yıllar çalışmış olan mühendislere tuhaf görünür. Yeni başlayanlar içinse tam bir altın madenidir. Çünkü süslü parantezlerle iç içe geçirme, ok fonksiyonlar ile tek satıra indirgeme gibi satır sayısını absürt derecede büyütebilme potansiyeli barındıran bir yapıya sahip değildir. Bir fonksiyon içine girebilmek için iki sütun ilerlemek yeterlidir.
Tam da bu noktada konumuza dönebiliriz; Programlama diliyle bağ kur. Onu tanı, hangi sembol ne işe yarıyor / nerede kullanılıyor öğren. O sembolün adını öğren ve o sembolü tanı. İki tane eşittir (==) gördüğünde, bunun "Eşit eşittir" olduğunu söyleyebildiğini fark et. Ya da başına ünlem geldiğinde (!=) "Eşit eşit değildir." gibi uzatılmış bir söz öbeği kullandığını gördüğünde gül falan. Eğlenmeye odaklan kısaca. Merak et. Merak et ki, öğren. İki özellik öğrendiğinde, o iki özelliğe takılıp kalmak yerine programlama dilinin yapabildiği her şeyi denemeye çalış.
Mesela ben uzunca bir süre "Sözlük (Dict)" diye adlandırılan ve çok işe yarayan bir özelliği öğrenmeyi reddetmiştim. Uzunca bir süre sözlükleri zorunlu kullandığım yerlerde internete başvurmayı tercih ederek, sözlükleri kendi başıma kullanmak istememiştim. İlerleyen dönemlerde sözlük kullanımını öğrendiğimde "Voav! Bu çok iyi bir şeymiş ya." diyerek kendime uzun uzun söylendiğimi ve öğrenmeye ayak dirediğim için kendime kızdığımı hatırlıyorum. Benim gibi olma, sözlükleri de öğren. Çok zor değil, emin ol haha!
- Çalışma stili geliştir.
Bir yazılımcının yazdığı kodu, başka bir yazılımcı okuyamaz.
Bu sözü hiç duymuş muydun? Yazılım mühendisleri arasında sıkça geçen ve çok gıcık olan bir durumdur. Yazılımcı, kendi stilinde bir kod yazar. Her ne kadar yazılım geliştirme standartlarına uyacak olsa da, başka bir yazılımcı o kodu okumaya çalıştığında ilk etapta hiçbir şey anlamaz. Çünkü bu kitap yazmaya benzemez. Dosya dosya, klasör klasör bir kod yapısı vardır. Özellikle yukarıdan aşağı akan bir derleme stiline sahip olmayan dillerde, bazı fonksiyonlar o kadar derinlere gömülebiliyor ki, "E bunun devamı nerede?" diye soruyoruz. Hatta bazen bir müşteri bize "Eski yazılımcımın koduna devam etmeni istiyorum" dediğinde, mümkünse sıfırdan yazmayı bile tercih edebiliyoruz.
Evrim Ağacı'nın çalışmalarına Kreosus, Patreon veya YouTube üzerinden maddi destekte bulunarak hem Türkiye'de bilim anlatıcılığının gelişmesine katkı sağlayabilirsiniz, hem de site ve uygulamamızı reklamsız olarak deneyimleyebilirsiniz. Reklamsız deneyim, sitemizin/uygulamamızın çeşitli kısımlarda gösterilen Google reklamlarını ve destek çağrılarını görmediğiniz, %100 reklamsız ve çok daha temiz bir site deneyimi sunmaktadır.
KreosusKreosus'ta her 50₺'lik destek, 1 aylık reklamsız deneyime karşılık geliyor. Bu sayede, tek seferlik destekçilerimiz de, aylık destekçilerimiz de toplam destekleriyle doğru orantılı bir süre boyunca reklamsız deneyim elde edebiliyorlar.
Kreosus destekçilerimizin reklamsız deneyimi, destek olmaya başladıkları anda devreye girmektedir ve ek bir işleme gerek yoktur.
PatreonPatreon destekçilerimiz, destek miktarından bağımsız olarak, Evrim Ağacı'na destek oldukları süre boyunca reklamsız deneyime erişmeyi sürdürebiliyorlar.
Patreon destekçilerimizin Patreon ile ilişkili e-posta hesapları, Evrim Ağacı'ndaki üyelik e-postaları ile birebir aynı olmalıdır. Patreon destekçilerimizin reklamsız deneyiminin devreye girmesi 24 saat alabilmektedir.
YouTubeYouTube destekçilerimizin hepsi otomatik olarak reklamsız deneyime şimdilik erişemiyorlar ve şu anda, YouTube üzerinden her destek seviyesine reklamsız deneyim ayrıcalığını sunamamaktayız. YouTube Destek Sistemi üzerinde sunulan farklı seviyelerin açıklamalarını okuyarak, hangi ayrıcalıklara erişebileceğinizi öğrenebilirsiniz.
Eğer seçtiğiniz seviye reklamsız deneyim ayrıcalığı sunuyorsa, destek olduktan sonra YouTube tarafından gösterilecek olan bağlantıdaki formu doldurarak reklamsız deneyime erişebilirsiniz. YouTube destekçilerimizin reklamsız deneyiminin devreye girmesi, formu doldurduktan sonra 24-72 saat alabilmektedir.
Diğer PlatformlarBu 3 platform haricinde destek olan destekçilerimize ne yazık ki reklamsız deneyim ayrıcalığını sunamamaktayız. Destekleriniz sayesinde sistemlerimizi geliştirmeyi sürdürüyoruz ve umuyoruz bu ayrıcalıkları zamanla genişletebileceğiz.
Giriş yapmayı unutmayın!Reklamsız deneyim için, maddi desteğiniz ile ilişkilendirilmiş olan Evrim Ağacı hesabınıza üye girişi yapmanız gerekmektedir. Giriş yapmadığınız takdirde reklamları görmeye devam edeceksinizdir.
Enkaz devralmak istemem.
Bu cümleyi hayatımda kaç kere kurdum... Saymayı bırakalı çok oldu.
İşte tam burada, 'stil' kelimesinden neyi anlatmaya çalıştığımı anladığını düşünüyorum. Her ne kadar kullanılan programlama dili aynı olsa da, kendi stilini otomatik olarak oluşturur ve o stil ile kodlarsın. Burada gerçekleşen otomatik olguyu kırıp, başka yazılımcıların kodlarında yaptıkları ufak dokunuşları taklit edebilir ve ortaya karışık bir stil çıkarabilirsin. Bu stil sayesinde kendi yazdığın kodlara daha iyi ayak uydurur, yıllar sonra o kodu okuduğunda bile neyi, nerede, ne için yaptığını anlarsın. Bu dediğimi yaparsan, gelecekte bana çok minnettar kalacağına eminim. Bu bilgiyi tavsiyeyi her yerde vermezler haha!
Bölüm 2: Güncel Kal, Öğrenmeye Devam Et ve Tazelen
Kodlamak iyi güzel de, güncel kalmak önemli. Sürekli araştırma yapmalı, sürekli yeni çıkan teknolojilerin nimetlerinden faydalanmalı ve öğrenmekten korkmamalısın. Bir şey gördüğünde hızla ona yapış ve öğren. Şu an kullandığın araçlardan çok daha rahat ve kolaylaştırılmış hatta daha fazla imkan sunmayı hedefleyen araçlar çıkıyor, çıkmaya da devam edecek. Eğer o araçları öğrenmeye odaklanırsan, önüne hem yeni iş kapıları çıkar, hem de mevcut araçların halletmekte zorlandığı veya uğraştırdığı bazı şeyleri yeni araçlar ile çözebilirsin.
- Asla, hiçbir zaman en iyisi olamayacaksın.
Büyük hedefler, ufak basamaklarda ayağına takılır ve düşüş kaçınılmazdır. Hedefini küçük tut, başarabileceğin kadarını başar. Çünkü emin ol hedeflemekten daha kolay hiçbir şey yok. Fakat hedefe giden yolların basamaklarının ne olduğunu öğrenmek bile bir ömür ister. Eğer iki kere yaşama şansın varsa, öldüğünde reenkarnasyona inanıyorsan; Sen bilirsin, kafana göre takıl. Ancak ben inanmıyorum. Ve sana verebileceğim en iyi tavsiye belki de budur: Ufak hayaller kur, başardıkça sonraki hedefe ilerle. Önce basit bir program yaz. İlk adımlarında Twitter'ı veya Evrim Ağacı'nı hedeflersen, rakip gördüğün platformlara nefret ederken bulursun kendini.
- Yakınlaş ve Keşfet
Uzaktan yapılan yazılım, yapay zekaya komut vermekten ibarettir. Başkalarının açık kaynak kodlarını düzenleyerek veya yapay zekanın yazdığı kodları projende kullanarak hiçbir zaman başarıya ulaşamayacaksın. Yapay zekadan daha akıllı olmaya odaklanmadığın sürece, asla yapay zekadan daha iyi olamazsın. "Ama çok iyi kod yazıyor?" diyor musun? Evet, haklısın. Çok başarılı. Fakat onu kullanarak bir yere varamazsın. Sırtını başkasına dayarsan, onun patladığı yerden daha ileri gidemezsin. Onun hatalarını düzeltebilecek kadar iyi olma, onun hata yapmayan bir versiyonu ol. Bunun için de yapılması gereken şey, kendi çalışma metodunu geliştirmektir. Kendi çalışma metodunun içinde, yeni geleni kovalamak ve eskileri en iyi şekilde öğrenmek yatmalı. İşlerin varsa bile gününün ufak bir kısmını buna ayır. Uğraş ver ve denemekten korkma. Yeni bir kod dosyası aç, kodu dene ve "Bu neden çalışıyor?" diye sor kendine. Bir yazılımcının sıkça sorduğu soru "Neden çalışmıyor?" değil, "Neden çalışıyor?" olmalıdır. Öyle olmalı ki, "Çalışıyorsa dokunma" yanılgısına düşmeyesin.
Bölüm 3: Kodlamak angaryadır.
Yazılım geliştirmenin en kritik kısmı kod yazmak değil, çözüm sunmaktır. Bir kodu yazabiliyor olman sana para kazandırır. Fakat bir kodun sorununu çözmek ve ileri teknolojiye taşımak mühendisliktir ve bu sana servet kazandırır. Kodlamayı başkalarının ellerinden öğrenir, balık tutmak yerine balığı satın almayı tercih edersen, asla balığı tutan kişi kadar başarılı olamazsın. Kodlamak, bir yazılımcı için angaryadır. Bu dediğimi yazılım geliştirmenin ilerleyen yıllarında anlarsın ama şimdiden kafanın bir yerine not al ve kodların hatalarını yapay zekaya çözdürmekten vazgeç! O senden daha iyi olmamalı. Senin çözemediğini o çözüyorsa, eksiklerin var demektir. Git ve o eksikleri telafi et. Yapay zeka mükemmel bir araç. Onunla öğren ve ona her şeyi sor. Hatta yer yer ona kod yazdırabilirsin. Özellikle sürekli yazmaya sıkıldığın kodları ona yazdırmak, o kodu sıfırdan yazmaktan daha hızlı ve daha verimli olabilir. Yine de ona yazdırdığın kodları iyice oku ve hatalı olmadığından emin ol. Yapay zekaya asla tanrı muamelesi yapma, o kusursuz değil. Yapay zeka senin asistanın olsun, yazılımcın değil.
Kapanış
Huh, sonunda bitti. Tabii burada sana iyi bir başlangıcın temel olarak nasıl sağlanması gerektiğine dair ipuçları vermiş olsam da, bunlar nihai değil. Sana en uygun olan bunlar mı bilemem ama bunları referans alarak sana en iyi gelecek yolları keşfedebilirsin. Yollar sonsuz; Ben ise yolculuğunda karşına çıkan basit bir yazarım. Sözlerimi dinle ama bildiğini yapmaktan çekinme. Hata yap. Daha fazla hata yap. Hata yap ki çalışmayan yolları öğren. Bu sayede bir daha ki sefere, çalışmayan yollara başvurmazsın. Araştırmaya devam et. Hayatında başarılar dilerim. Çok başarılı olacaksın!
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
Evrim Ağacı'na her ay sadece 1 kahve ısmarlayarak destek olmak ister misiniz?
Şu iki siteden birini kullanarak şimdi destek olabilirsiniz:
kreosus.com/evrimagaci | patreon.com/evrimagaci
Çıktı Bilgisi: Bu sayfa, Evrim Ağacı yazdırma aracı kullanılarak 14/08/2025 08:59:15 tarihinde oluşturulmuştur. Evrim Ağacı'ndaki içeriklerin tamamı, birden fazla editör tarafından, durmaksızın elden geçirilmekte, güncellenmekte ve geliştirilmektedir. Dolayısıyla bu çıktının alındığı tarihten sonra yapılan güncellemeleri görmek ve bu içeriğin en güncel halini okumak için lütfen şu adrese gidiniz: https://evrimagaci.org/s/21230
İçerik Kullanım İzinleri: Evrim Ağacı'ndaki yazılı içerikler orijinallerine hiçbir şekilde dokunulmadığı müddetçe izin alınmaksızın paylaşılabilir, kopyalanabilir, yapıştırılabilir, çoğaltılabilir, basılabilir, dağıtılabilir, yayılabilir, alıntılanabilir. Ancak bu içeriklerin hiçbiri izin alınmaksızın değiştirilemez ve değiştirilmiş halleri Evrim Ağacı'na aitmiş gibi sunulamaz. Benzer şekilde, içeriklerin hiçbiri, söz konusu içeriğin açıkça belirtilmiş yazarlarından ve Evrim Ağacı'ndan başkasına aitmiş gibi sunulamaz. Bu sayfa izin alınmaksızın düzenlenemez, Evrim Ağacı logosu, yazar/editör bilgileri ve içeriğin diğer kısımları izin alınmaksızın değiştirilemez veya kaldırılamaz.