Programlamaya nasıl başlarım?

Programlamaya nasıl başlarım?

By Ümit Kara • November 30, 2022 • 6 mins read

Bu satırları okumaya karar verdiğine göre, muhtemelen bilgisayar programları ile ilgileniyorsun, hatta ve hatta bu konu üzerine bir kariyer inşa etmek istiyorsun. Veya sadece keyfi olarak, eğlencesine bu alana ilgin var. Sebebin ne olursa olsun, umarım bu satırlar sana ilginle alakalı atacağın adımlar için ufak bir öncü olur.

Bu yazımda programlama nedir ve bu alana nasıl giriş yapılabilir, bundan bahsetmek istiyorum. Öncelikle kendimle başlamam doğru olur. Ben küçük bir çocukken elektrikli aletlere ve bilgisayarlara meraklıydım. 10 yaşımda bilgisayar programlarıyla tanıştım. Bu tanışmaya okuldaki öğretmenlerim vesile oldu. O günden beridir birçok alanda ve birçok farklı dilde programlar geliştirdim.

Asıl konumuza dönecek olursak, programlama nedir? En basit haliyle programlama, bir bilgisayara veya aritmetik ve mantıksal işlemler yapan herhangi bir elektrikli veya mekanik cihaza, bir işi nasıl yapacağını anlatan yönergeler oluşturma işidir. Böyle uzun bir cümle ile anlatmaya çalışmak, anlamayı zorlaştırmış olabilir fakat ilerledikçe neden bahsettiğimi daha detaylı ve sade şekilde anlatmaya çalışacağım.

Modern bilgisayarlar, içlerinde çok güçlü işlemciler barındırmaktalar. Bu işlemcilerde içlerinde çeşitli matematiksel ve mantıksal işleri yapabilecek devreler bulundurmaktalar. Bu cihazlar, içlerindeki işlemciler sayesinde birçok işin üstesinden çok hızlı bir şekilde gelebilirler. Fakat nasıl hiçbir taş kendi kendine yerinden oynamıyorsa, işlemcilerde bu işleri kendi kendilerine yapamazlar. Biz programlama yaparak bilgisayarlara, dolayısıyla işlemcilere, yapılacak işin nasıl yapılacağını söylemiş oluyoruz, yani onlar için yönergeler oluşturuyoruz. Bu yönergeler sayesinde bilgisayarlar mantıksal devrelerini kullanarak yönergeyi işleyebiliyor ve matematiksel devreleri ile işlerimizin hallolmalarını sağlıyorlar.

Basit hali ile anlatmaya çalıştığım programlama, biraz daha ayrıntıya girdiğimizde ise şöyle açıklanabilir: bir algoritma veya prensibin, bir dizi kurallar çerçevesinde bilgisayarlarca işlenebilir halde yazıya dökülmesi işine programlama denir. Burada bir prensip derken bir protokol yani kurallar bütününü, algoritma derken de bir problemi çözmek için gerekle matematiksel adımları kastediyorum. Belirli kurallar bütünü ise programlamayı yaptığımız dilin önceden belirlediği tüm kurallardan bahsediyorum. Bu kurallar, program cümlelerinin nasıl biteceğinden, aynı proje içeresindeki başka küçük programlara nasıl ulaşılacağına kadar birçok farklı kuralı içermekte. Bu kurallar bütününün literatür karşılığı ise sentaks(syntax) tır.

Temel olarak bahsetmeye çalıştığım programlamayı öğrenmek için yapmak gereken ilk şey, bir programlama dili seçmek olacaktır. Bu noktada şuna da değinmek isterim ki programlama analitik düşünmeyi gerektiren ve zaman zaman ileri matematiksel bilgiler kullanmak gereken bir iş olabilmekte. Bu nedenle mantık, cebir ve lineer cebir gibi konularda hiç değilse fikir sahibi olmak işinizi ilerleyen vakitlerde ciddi olarak kolaylaştıracaktır. Bir diğer başlangıç noktası ise İngilizce anlayabilmektir. Çağımızın Lingua Franca sı olan İngilizce, özellikle bilgisayar biliminde çok önemli bir yer tutuyor. Neredeyse tüm programlama dilleri İngilizcenin anlamsal bütünlüğü ve yazım kurallarına göre geliştirildiğinden İnglizceyi gerçekten anlamak bu alanda hızla ilerlemenin en önemli püf noktalarından biri.

Programla dili konusuna geri gelecek olursam, basit bir araştırma yaparak herkes giriş seviyesi için en kolay öğrenilebilir ve ilerlenebilir programlama dillerini bulabilir. Farklı insanların farklı fikirleri olacaktır elbette, fakat ben başlangıç için her zaman Python veya Javascript dillerini öneriyorum. Görece olarak Python daha kolay bir dil olsa da Javascript ile başlangıç seviyesi için daha fazla şey yapılabileceğini düşünüyorum. Bu Javascriptin bir internet standartı olmasından kaynaklanan bir düşüncem. Hiçbir program yüklemeksizin doğrudan tarayıcıda çalıştırılabilir olması, internet sitelerini oluşturmaya yarayan HTML ve CSS ile doğrudan iletişim kurabilmesi bu düşüncemi destekleyen noktalar. Python ise en az Javascript kadar kuvvetli ve kolay öğrenilebilir bir dil. Hakkında onlarca kitap yazılmış, binlerce geliştirici tarafından desteklenen uzun soluklu bir proje. Hala gelişen Python, hem başlangıç seviyesindekiler için hem de profesyonel geliştiriciler için çok kullanışlı bir dil. Nitekim Facebook ve Amazon gibi şirketler de bazı işler için Python kullanmaktalar.

Bu iki dilden hangisini seçeceğinize karar verirken ileride hangi alana yoğunlaşmak istediğinizi düşünmenizi tavsiye ederim. Javascript bir Web dili olduğundan, bu yönde ilerlemek isterseniz sizin için biçilmiş kaftan olacaktır. Çünkü bu alanda ilerledikçe Javascript ile arkaplanda çalışacak güçlü programlar da yazılabileceğini göreceksiniz. Ama eğer işletim sistemleri, Web arkaplan programları veya Makine öğrenmesi gibi alanlara ilginiz varsa Python öğrenmek sizin ilerlemeniz için daha iyi bir kaynak olacaktır. Javascriptten farklı olarak Python diğer önemli sistemsel dillerle benzeşen bir programlama paradigmasına sahiptir. Bu nedenle Pythondan diğer bir dile geçiş yapmak, sadece o dilin kurallarına ve akışına ayak uydurmayı gerektirecektir.

Bir dil seçtikten sonra, örneğin Python, bu dilin internet sitesine giderek dil hakkında yazılmış dokümanları okumanız size çok yardımcı olacaktır. Bu dokümanlar sadece sunulan işlevleri açıklamakla kalmayıp örneklendirerek güçlü bir anlatım sunmaktadır. Ayrıca Youtube sizin için iyi bir kaynak olacaktır. Bu gibi platformlardan programlama ve prensipleri konusunda videolar izleyerek gelişimizi devam ettirebilirsiniz.

Gelişimin en önemli noktası ise pratiktir. Öğrendiklerinizi uygulamanız öğrenme süreciniz kuvvetlendirecektir. Başlangıç olarak küçük programlar geliştirmek, devamında ise bu programlara eklemeler yaparak daha büyük programlara dönüştürmek iyi bir başlangıç noktası olabilir. Bunun dışında HackerRank gibi size sorular yönelten ve bu soruları seçtiğiniz dil ile çözmenizi isteyen siteler de pratik konusunda size yardımcı olabilir.

Umarım yazdığım bu yazıda işinize yarayacak ufakta olsa bir bilgi bulabilmişsinizdir. İlerleyen yazılarımda programlamaya, prensiplerine ve diller daha detaylı girmeye çalışacağım ve bu konuları elimden geldiğince anlaşılır şekilde anlatmaya çalışacağım.

İyi günler dilerim.