C++ ve C Programlama Dili ile İlgilenmek


Diğer popüler programlama dillerine nazaran C ve C++ programlama diliyle ilgilenen bir kardeşimizin sorusunu cevaplıyoruz.
SORU:

C ve C++ programlama dili ile ilgileniyorum. Diğer dillere bi yakınlık hissedemiyorum. Belki C/C++ ilk göz ağrısı olduğu için sevmişimdir. C’nin özgür bir dil olması da buna etken tabi ki. Günümüzde piyasa Java ve C# olmuş durumda. C’ye yönetilirsem ilerde bana +’sı -‘si ne olur? Rahat iş bulabilir miyim, alacağım maaş Java bilene göre ne olur vs yorumlar mısın. Birde C/C++ bilen birisi ne gibi bi işte çalışabilir? Teşekkür ederim şimdiden
CEVAP:
C ve C++ Programlama Dili
40 yıldan fazla bir geçmişe sahip C ve C++ Programlama dili günümüzde hala ayakta durmayı başarmış ve kullanılmaya devam eden bir dil. Son 10 yıldır teknolojinin ve programlama dillerinin gelişmesi, kolaylaşması, çok kullanışlı uygulama geliştirme programlarının çıkması C ve C++ Programlama dili yerine başka dillere yönelim artsa da, köklü ve sağlam bir geçmişe sahip olduğu için daha uzun süre ayakta kalacağına inanıyorum.
(Dennis Ritchie ‘yi Saygıyla Anıyoruz makalesinde biraz daha fazla bilgi almanız mümkün)
Özellikle günümüzde en çok kullanılan Java, C#, Objective-C gibi dillerin yapısını oluşturması, en popüler 3 işletim sistemi olan Mac, Linux ve Windows tarafından desteklenmesi ise çok ama çok ciddi bir avantaj. Tabi son yıllarda hızlı bir çıkış yakalayan mobil işletim sistemlerinde maalesef bu avantaj söz konusu olmasa da, Android için Java programlama dili, iOS için Objective-C programlama dili, Windows Phone için C# programlama dili kullanıldığını ve bu programlama dillerinin temeli C ve C++ Programlama dili olduğunu düşünürsek, C++ yada C programlama dili konusunda kendisini geliştiren birinin mobil uygulama geliştirmek istemesi durumunda, ilgili programlama dillerini öğrenmesinin zor olacağını zannetmiyorum.
C ve C++ Artısı / Eksisi
Eksisi; Aslında C ve C++ öğrenmek için çok fazla eksi bir şey söyleyemeyiz. Öğrenmek vesilesi ile çok fazla bir şey kaybedilmez. Çünkü diğer popüler dillerin temelini oluşturduğundan, daha sonrasında diğer programlama dillerinden birini öğrenmek istediğinizde sıkıntı çekmemiş olursunuz. Tabi bu ilk olarak C# öğrenmek ile başlayan birisi içinde geçerli. Örneğin C# bilen biri olarak Java öğrenmekte zorlanmıyorum. Çünkü hepsi yapısal olarak birbirine benziyor.
C++ Programlama DiliYinede sırf yazılım dili öğrenmek için yazılım dili öğrenilmez. Bir platform seçmeniz ve o platforma yönelik yazılım dili öğrenmek gerek. Örneğin Web Yazılım yapmak isteyen biriyseniz C ve C++ programlama dillerini öğrenmeye çalışmanız biraz vakit kaybı olabilir. Boşuna öğrenirsiniz demiyorum ama onu öğrenmeye harcadığınız vakti, Web Yazılım ile alakalı farklı dillere harcamanız daha faydalı olacaktır. Aynı şekilde mobil içinde geçerli, C ve C++ öğrenmek yerine, direk Objective-C yada Java öğrenmek daha faydalı olur.
Artısı; Bu noktaya kadar dolaylı yoldan bahsettim zaten. Bir çok programlama dilinin temelinde yer aldığı ve diğer programlama dillerini öğrenmeyi kolaylaştırması açısından ciddi bir artıya sahip.
Özellikle en büyük artısı yine bahsettiğim gibi en popüler PC işletim sistemleri tarafından destekleniyor olması. C# ‘ta bir şey geliştirdiğinizde onu Mac ve Linux’ta çalıştırmak için .Net Fremework kütüphanesine sahip olmanız, Java ‘da bir şey geliştirdiğinizde bütün işletim sistemlerinde Java kütüphanesini yüklemeniz gerekirken C ve C++ ‘ta geliştirilen bir şey de hiç bir yükleme yapma derdi olmadan direk çalıştırabilirsiniz.
Olaya sadece PC olarak değil bir çok ürün açısından bakmak mümkün. TV, uydu alıcısı ve benzeri elektronik cihazların yazılımında C ve C++ ağırlıklı olarak kullanılmaktadır. Özellikle tercih edilme durumu da söz konusudur, çünkü diğer programlama dilleri ek gereksinimlere sahiptir, ek gereksinimler kapasiteye ihtiyaç duyar, kapasitede maliyet gerektirir. Özellikle seri üretim yapan şirketler 1.000 Liralık bir üründe 1 lirayı hesap ederken bu çok önemli bir unsurdur.
C ve C++ İş İmkanı
C++ ve C programlama dili ağırlıklı olarak büyük şirketlerde ve sanayide kullanılır. Küçük ve orta şirketlerde çok büyük işler yapılmadığından, önemli olan işin hızlı olmasıdır. Bu nedenle kolay ve hızlı geliştirilebilen yazılım dillerini tercih ederler.
Bu nedenle iş imkanı elbette var fakat büyük ve sanayi kuruluşları ağırlıklı olarak tercih ettikleri, onlarda da bir şeyi bilmenizden çok diplomaya baktıkları için önce yazılım yada bilgisayarla alakalı bir lisans diplomasına sahip olmanız farz desek yanlış olmaz. Zaten ülkede genel olarak yazılıma desteğin az olduğunu düşünürsek çokta büyük beklentilere girmemek gerek. Çünkü bizim memlekette AR-GE yapmaktan çok satın alıp, uğraşmama mantığı var. Yani kendi ekibini kurup geliştirmektense, hazır bir yapı satın alınıyor.
C ve C++ Maaşları
Java programlama diliAlınan maaş şirkete ve yapılan işe göre değişir. Sağlam bir şirkette, şirket için önemli bir yazılım yapılıyorsa elbette yüksek maaşlar almak söz konusu. Fakat standart büyüklükte ve “olmasa da olur” veya şirket için çok önemli olmayan bir işte fazla maaşlar alınamayabilir.
Maaşlar zaten arz talep meselesine göre belirlenir. Örneğin benim bir şirketim var diyelim. C ve C++ bilen birini arıyorsam ve ondan sadece 1 kişi varsa, elemanın eli kuvvetlidir ve yüksek maaş beklentisini karşılayıp, onu bünyeme katmak ve bünyemde tutmak için yüksek maaş vermem gerekir. Fakat Java programlama dili bilen adam arıyorsam ve Java programlama dili bilen 10 tane adam varsa bu sefer şirketin eli kuvvetlidir. Eleman işi kaçırmamak için düşük maaşa razı olur, razı olmazsa şirket “sen bilirsin kardeşim, bak 9 kişi sırada bekliyor, elbet biri kabul eder” kafasıyla hareket edip sana kapıyı gösterir. Serbest piyasa ekonomisi =)
Dolayısıyla “şu dili bilen adam bu kadar maaş alır, bu dili bilen adam bu kadar maaş alır” demek zor.
SONUÇ
Sonuca gelecek olursak, popüler yazılım dillerinden herhangi biri için “bu dil gereksiz, bunu öğrenmen asla hiç bir işine yaramaz” demek doğru olmaz. En kötü ihtimalle bir temel oluşturur, bu temel sayesinde o dönemin en çok ihtiyaç duyulan yazılım dilini, hiç yazılım bilmeyen birine nazaran daha kolay öğrenebilirsiniz.
Örneğin ben C# bilen biri olarak bugün Java öğrenmeye başladığımda, hiç Java bilmeyen birisinden daha hızlı öğrenebilirim. Bu açıdan bakıldığında bir programlama dilini sevdiğiniz için öğrenmek istiyorsanız elbette öğrenin ve ilgilenin. Yok, “benim için para birinci planda, yazılım dili fark etmez” diyorsanız o zaman her zaman verdiğim mobile yönelik hareket etme tavsiyesini vericem 😉