C/C++ Uzmanlaşmak ne anlama geliyor?

yasinbmt00

Hectopat
Katılım
18 Temmuz 2022
Mesajlar
189
Daha fazla  
Cinsiyet
Erkek
Selam, C++ uzmani 10 yilda yetisir gibi sozler var, simdi bu tam olarak ne demek? Mesela biri Unreal Engine da C++ yazar, digeri QT de yazar, digeri de bilmem nerererde Gomulu yazar(Daha cok C var ama C++ da kullaniliyor diye biliyorum) simdi hepsi 10 yil sonra C++ da uzman mi olacak? Ve dil uzmanligi tam olarak ne demek? Yillar gectikce dili daha mi iyi kullaniyoruz? 5 yil sonra da C++ da ogrenilecek bir şey var mi ki?(Alan degil dil ozelinde soruyorum), Yani is artik belli bir sure sonra Oyun gelistirmekte uzmanlasmak, masautsu uygulama gelistirmekte uzmanlasmaya donmuyor mu? Birinde uzman olan biri C++ kullanilan baska bir alana gecince ne gibi avantajlari olur baska dilen gecen birine gore? Son olarak C++ da uzman olan biri C ye de gomulu yazilim alaninda cabucak adapte olur mu yoksa Java, C# yazan biri ile ayni sekilde mi baslar?
 
Son düzenleyen: Moderatör:
Dili tam anlamıylabilmek ya da her şeyini bitirmek diye bir şey yoktur çünkü o kadar fazla bilgi var ki siz ihtiyacınız kadarını öğrenip istenileni yapıyorsanız ve o işte belli bir seviyedeyseniz uzman olursunuz bence ama uzmanlık tam olarak ne demek bilmiyorum.
 
Selam, C++ uzmani 10 yilda yetisir gibi sozler var, simdi bu tam olarak ne demek? Mesela biri Unreal Engine da C++ yazar, digeri QT de yazar, digeri de bilmem nerererde Gomulu yazar(Daha cok C var ama C++ da kullaniliyor diye biliyorum) simdi hepsi 10 yil sonra C++ da uzman mi olacak? Ve dil uzmanligi tam olarak ne demek? Yillar gectikce dili daha mi iyi kullaniyoruz? 5 yil sonra da C++ da ogrenilecek bir şey var mi ki?(Alan degil dil ozelinde soruyorum), Yani is artik belli bir sure sonra Oyun gelistirmekte uzmanlasmak, masautsu uygulama gelistirmekte uzmanlasmaya donmuyor mu? Birinde uzman olan biri C++ kullanilan baska bir alana gecince ne gibi avantajlari olur baska dilen gecen birine gore? Son olarak C++ da uzman olan biri C ye de gomulu yazilim alaninda cabucak adapte olur mu yoksa Java, C# yazan biri ile ayni sekilde mi baslar?
Hocam 10 yıl abartı kişiye bağlı tamamen
 
Dili öğrenmek ayrı dili kullanmak ayrı mevzu. Sen bir programlama dilinin bütün özelliklerini bir yılda öğrendin diyelim artık hazır mısın? Her türlü programı geliştirebilir misin? Tabii ki hayır. Ölçeklenebilir, performanslı ve verimli bir yazılım üretebilmen için birkaç yıl o programlama diliyle proje geliştirmen gerekir bu süreçte dilden bağımsız olarak birçok programlama paradigmasına hakim olursun, neyi nerede nasıl kullanman gerektiğini, neyin daha iyi performans vereceğini ya da neyin tanımlanamayan davranışlara sebep olabileceğini kestirebilirsin. Bu tamamen tecrübedir. Bu bağlamda elbette üzerinde vakit geçirdiğin programlama dilinin kendine has avantajları ve spesifik özelliklerine hakim olursun bu kısım programlama dilinde uzmanlaşmayı kapsar. Sonuçta asıl olay "programlama dilinde" uzmanlaşmaktan ziyade "programlama kavramında" uzmanlaşmaktır.

Bunun dışında diller de sürekli gelişen şeyler. Mesela C++ sürekli geliştirilmeye devam ediyor dile yeni özellikler ekleniyor, merak ediyorsan versiyonlara bir bakabilirsin (c++11, c++17, c++23 vs). Yani her zaman öğrenecek yeni bir şey var, CS dünyasında öğrendim bitti, artık uzmanın diye bir olay yok.
 
Siz dil var, bir de alan var diye düşünüyorsunuz. Dilde uzmanlık ile alanda uzmanlığı ayırıyorsunuz.

Doğru ama eksik, bir de aralarında yazılımda uzmanlık katmanı mevcut. Dil->Yazılım Teknikleri -> Alanda uzmanlık gibi düşünebilirsiniz.

Mesela oyun geliştirme alanında uzman olan bir kişi, design patternler hakkında uzman olmalı.
Gömülü sistem alanında uzman birisi low level code yazma konusunda uzman olmalı.

Design patternlar oyun geliştirme dışında masaüstü programcılığında da işe yarayacak bir teknik bilgi.
Low level coding mesela işletim sistemi kodlayacakların da işine yarayacak bir teknik bilgi.

Dil ise sadece bir araç ancak mesela gömülü sistem kodlayacak birisi bu aracı nasıl kullanacağını iyi biliyorsa çok güçlü bir araç.

Resim yapmak isteyen birini düşünün, yağlı boya, suluboya, guaş muaş neyse bir araç seçiyor.
Mesela boya hakkında yeterince bilgi sahibi oluyor, yağlı boyayı nasıl beziryağı ile karıştıracağını, fırçasını tinerle nasıl temizleyeceğini, ne kadar sürede kuruyacağını vb. seçtiği boyanın teknik bilgilerini öğreniyor.
(Bu dil bilgisi)

Sonra resim teknikleri öğrenmeye başlıyor, nesne nasıl çizilir, ışık ve gölge nasıl tuvale aktarılır, perspektif nedir, insan nasıl çizilir vb. Bu bilgiler yağlıboyadan bağımsız resim bilgileridir, sulu boyaya da uyarlanır, karakalem çizime de uyarlanır yani. (Bu yazılım hakkındaki genel bilgiler, veri yapıları, design patternler, veritabanı bağlantısı vb.)

Sonra bu ressam bu bilgileri harmanlayıp bir portre ressamı oluyor, insan yüzünün detaylarını, insanın duygusal ifadesini resme aktarıyor, portrenin gözlerine bakınca hüzün ya da neşe hissedebiliyorsunuz.

Başka bir ressam ise bu bilgileri harmanlayıp savaş manzarası ressamı oluyor, kılıçlar, atlar, birbirine giren askerler, toz duman, aksiyonu çok iyi yansıtıyor, resme bakarken kendinizi savaşın ortasında hissediyorsunuz.

Başka bir ressam ise bu bilgileri harmanlayıp doğa manzarası ressamı oluyor, ağaçlar, gün batımı, deniz, dağ vs. büyük bir ustalıkla tuvaline aktarıyor ve bunları inanılmaz bir kompozisyon ile size sunuyor.
(Bu da bir alanda uzmanlaşmak)

Bu üç ressam da yağlıboyada uzman diyeceğimiz kişiler. 10 yıl boyunca yağlıboya ile yapılabilecek tüm renk karışımlarını, tüm teknikleri (katman katman çalışma, boyayı inceltmeden kullanma, ince, kalın, yelpaze vb. tüm fırçalar ile resim yapma vb. ) uygulamışlar, ezberlemişler.

Bu adamlar bundan sonra suluboyaya geçerlerse, ne kadar perspektif, ne kadar kompozisyon bilgisine (boyadan bağımsız bilgiler) sahip olsalar da 10 yıllık suluboya ressamları kadar iyi resim yapamayacaklar, ustalaşmaları için yıllar geçmesi lazım. Resme biz bakınca güzel resim diyeceğiz belki ama uzman bir suluboya ressamı gelince onların işlerindeki sorunları görebilecek, örneğin: bak burada istediğin rengi elde edemeyince ıslak bir bezle silmeye çalışmışsın ama ben bunu fark edebiliyorum diyecek mesela. Yağlıboyada bir yeri yanlış boyarsan kuruyunca üstünden tekrar boyayabilirsiniz ama suluboyada bunu yapamazsınız, alt katmanlar görünür, kapatamazsınız. Suluboya ressamı olabilecekler ama suluboya konusunda uzman olmaları vakit alacak. Suluboya nasıl kullanılır öğrendikten sonra ise suluboyanın güçlü ve zayıf noktalarını bilerek, zaten sahip oldukları resim (kompozisyon, renk, ışık, perspektif vb.) bilgisiyle yine manzara, portre vb. çizebilecekler.
 
Dil aractir, onun uzmanligi olmaz. Tornavida uzmani, matkap gurusu, pense experi diye bir sey yok.
Ben kendi gozlerimle gordum ayni sirkette 20 sene Java yazip da cok temel seyleri bilmeyen yasli amcalari. Ayni projede hic kastirmadan ayni 3-5 fonksiyonu kullana kullana dilin geri kalanina dokunmadan maas almis adam.

Burada da yazdigi projede Array ve Dictionary disinda data structure kullanmamis, buna ihtiyaci olmamis tonla insan vardir. Kavram olarak bilmen yetmez, yazip uygulaman ve insanlara bunu sunabilmen onemli.

Sonuc olarak dil de tornavida gibi bir aractir ve onu kullanip ne yapiyorsan ve o yaptigin iste ne kadar iyiysen onun uzmani olursun. Motor uzmani olursun, jenerator experi olursun.

C++ ile embedded yazmissindir, dusuk sistem kaynagi kullanimi ve ve compatibility konusunda uzmansindir; C++ ile mission critical fuze sistemi kodluyorsundur reliability ve redundancy uzmanligin vardir, C++ ile oyun motoru yaziyorsun super hizli image transpose ediyorsundur.

Dilden bagimsiz teknik seviyen ne durumda, domain bilgin ne durumda, o alan icin gerekli matematik seviyen ne durumda, buna gore uzmanlasirsin.

10 senedir C++ ile embedded yazan muhendisi oturt bir sandalyaye, yeni cikmis fakat ayni isi yapabilecek syntax'i farkli X diliyle de sana ayni yetkinlikte yazmasi 3 gun surmez.

Dil bir sey degil.
 
Son düzenleme:

Technopat Haberler

Geri
Yukarı