26 Temmuz 2017 Çarşamba

C DİLİNE NEDEN ÖĞRENMELİYİM?





İster programlamada yeni biri olun, ister deneyimli olun C dilini bilmek sizlere çok şey katar.


C dilini sadece yeni başlayanlar için gerekli olduğunu düşünmek yanlıştır. Başka programlama dillerinde uzmanlaşanların da bu dili bilmeleri belli noktalarda onlara yardımcı olacağını kesinlikle söyleyebilirim. Eğer C dilini bilmiyorsan bir programcı olarak ne yaptığını bilmiyorsun demektir. Etrafta kod yazan birçok kişi var ancak bazıları sorsan yazdığı kodun ne anlama geldiğini bilmez. Bu kişilerin kendilerine programcı, yazılımcı dediklerine de şahit oluyoruz. Lafı uzatmadan maddeler halinde C dilini bilmenin kazanımlarını sıralayalım.




C dilini öğrenmekle sadece yazmış olduğun programın nasıl çalıştığını öğrenmiş olmakla kalmaz, bir bilgisayarın nasıl çalıştığına dair mantaliteye de sahip olursunuz. Özellikle bellek yönetimi ve bellek tahsisi konusu zihninizde iyice yerleşir. C’nin bellek yönetimi ve belleğe erişip bilgileri okuma konusunda Java ve Pyton dillerinin aksine programcılara nasıl bir özgürlük sağladığını kavramış olursunuz. İzinsiz ve yetkisiz belleğe erişmek isteyenlerin bu özgürlüğü kötüye kullanmayacağını kimsenin garanti edemeyeceğini ve bu noktada C'nin kötü amaçlı kullanıma kısıtlamaları olmayan bir dil olduğunu hatırlatalım. C’nin öğrettiği en önemli noktalardan birisi de, bilgisayar mimarisi ile programlamanın yakın ilişkisini ortaya koyması. C dilini öğrenmekle C ile yazılmasını hayal dahi edemediğin programları yazabileceğinin farkına varmış olacaksınız.




C için tüm dillerin atasıdır demek doğru değilse de programlama dillerinin ortak dilidir demek yanlış olmayacaktır. Başka bir deyişle C, evrensel bir dildir. Diğer dillerle olan ortak özellikleri nedeniyle karşınızdaki programcının C dilini bilip bilmemesi önem taşımaz. Programlamaya ilişkin düşüncelerinizi karşılıklı olarak birbirinize aktarabilirsiniz.




C’nin önemsiz bir dil olduğu anlayışı programlamaya yeni başlayanlarda hakim olan bir anlayıştır. Başlangıçta böyle bir anlayışa sen de sahipsen program geliştirmeye başladıktan sonra bu yaklaşımınızın kökten sarsılacağını kesin olarak söyleyebilirim. Eğer bir mobil uygulama geliştirecekseniz Android için Java, İOS için Swift ve Objektif C ve eğer bir web uygulaması geliştirecekseniz PHP, C#, Asp.Net, Ruby, Paython gibi onlarca dil kullanabilirsiniz. Peki C’yi nereye koyacağız? Şöyle söylemek mümkün. Python’da, geniş çapta uygulamalar yapabilirsiniz. C ise Python’nun geliştirilmesinde kullanılır. Milyonlarca Python programcısını etkileyen Python yorumlayıcısı üzerinde katkı sağlamak istediğinizde C dilini bilmeniz bir mukadderat. Aynı şekilde C#’ve C++’ın, C’nin temelleri üzerine geliştirildiğini hatırlatmakta yarar var.


C programlama ile geliştirilen açık kaynak kodlu projelerden bazıları şöyle: LİNUX çekirdeği, Python yorumlayıcısı, SQlite veritabanı…




İyi bir programcı olmak her zaman sizin elinizde olan birşey. Ancak hangi noktadan başladığınızın da bir önemi var. Pek çok üniversitede - başlangıç dersi olarak başka diller öğretildiği görülmekle birlikte -  müfredatlarında ilk olarak C diliyle başladıkları bir gerçektir. C’nin ortak dil olması özelliği sayesinde başka dillerde kodlama yapmak ve diller arası geçiş kolaylaşmakta, farklı dillerde etkili kod yazmak olanaklı hale gelmektedir.




Bir çok popüler ve modern programlama dili, C’ye dayalı olduğunu yukarıda ifade ettik. Nesne tabanlı programlamaya imkan sağlaması özelliğiyle C++, C’nin bir üstü olarak kabul görür. C# ve Java ise doğrudan C ve C++ ile ilişkili olan dillerdir ve bu diller temel alınarak geliştirilmişlerdir. PHP ve JavaScript’in sentaksı C ile benzerlik göstermektedir. C ve C++ dillerini bilmekle adı geçen dilleri öğrenmekte zorluk çekmezsiniz.

Eğer C dilini öğrenmemişseniz doğrusunu söylemek gerekirse bir programcı olarak çok geride olduğunuzu kabul etmeniz gerekir.