220 saatlik C kursu alınır mı?

220 saatlik C kursu alınır mı?

Necati Ergin Bey'den aldığım kurs sonrasında kendisinin ve Kaan Aslan Bey'in (CSD) verdiği uzun C kursu hakkında görüşlerimi aktarıyorum.

💭
Bu yazı kişisel görüşler barındırmaktadır.

Necati Ergin Bey, 30 yıldan fazla tecrübesi olan bir C/C++ eğitmeni ve aynı zamanda bir recruiter. Özellikle C ve C++ olmak üzere programlama ile ilgilenen birçok kişinin, bu ismi ve Necati Bey'in kuzeni olan [2] Kaan Aslan'ı ve C ve Sistem Programcıları Derneği'ni (CSD) bildiğine eminim. Bu yüzden, uzun uzun kendilerini anlatmaya gerek duymuyorum.

Bu yazının konusu, Necati Bey'den ya da Necati Hoca'dan (ki kendisine hoca denmesinden pek hoşlanmıyor hatırladığım kadarıyla ama herkes böyle diyor, ben de böyle diyeceğim yazıda. Kendisi okuyorsa: Kusura bakmayın hocam!) aldığım C dersi olacak. Bu doğrultuda aldığım ders ile ilgili çeşitli bilgiler verip, kişisel görüşlerimi paylaşacağım. Benzer bir kursu Necati Bey ve Kaan Bey'den almayı düşünen arkadaşlara da yardımcı olabilmeyi umuyorum. Uzun bir yazı sizi bekliyor (e dersin kendisi 220 saat, kısa yazmak yakışmaz değil mi!), o yüzden favori içeceğinizi alabilirsiniz, mesela çay 🍵.

Aldığım kurs

Necati Hoca'nın periyodik olarak C ve C++ kurslarını açtığını söylemem yanlış olmaz. Ben de Eylül 2022'de açılan, Online C Kursu'na katıldım. Kurs, 3 Eylül 2022'de başladı ve 2 Nisan 2023'te tamamlandı, neredeyse tam 6 ay. Kurs boyunca toplam 60 ders yapılmış oldu. Ben ise ne yazık ki sadece ilk 9 derse canlı katılabildim. Kalan dersleri kayıtlardan izledim ve bu izlemeyi Kasım 2023'te bitirdikten sonra (dersin başlangıcından itibaren 1 yıldan uzun sürdü), verilen sertifikayı artık hak ettiğimi düşünerek Necati Hoca'dan gururla sertifikamı aldım.

Aldığım Sertifika (QR kod çalışmıyor, boşuna uğraşmayın.) Başkaları kendine çoğaltırken zorlansın diye rastgele RGB gürültü ekleyecek kadar da düşünceliyim. Evet!

Evet, kurs sonunda bir sertifika alabiliyorsunuz. Gördüğünüz üzere hem Necati Hoca'dan hem de CSD Başkan'ı Kaan Hoca'dan imzalı bir dijital katılım sertifikanız oluyor. Bu sertifika, bir sınav karşılığı verilmiyor, bu bir başarı değil bir katılım sertifikası. Derse katılan herkes sertifikayı alabiliyor. Burada karşılıklı dürüstlük üzerine kurulu bir güven var aslında. Necati Hoca, derslerin hepsini izledikten sonra sertifika istenmesini rica etmişti, ben de öyle yaptığım için sertifikayı almam ve bu yazıyı yazmam Aralık 2023'e kadar uzadı.

💡
Linkedin gibi platformlarda veya iş başvurularında bu ve benzeri kurslarda sertifikası olan arkadaşları görebilirsiniz. Eğer işe alım tarafında çalışıyorsanız CSD sertifikalarının ders tamamlama sonrası verildiğini vurgulamak isterim, yani bir sınav karşılığı verilmiyor, sertifikayı alan kişi tüm derslere (hatta hiç bir derse bile teorik olarak) katılmamış olabilir. Bu sadece bir katılım sertifikası. Ayrıca biri isterse "Paint"te kendisine bunu yapabilir, sertifikanın bir doğrulama mekanizması bulunmuyor. Ama illa emin olmak isterseniz, ilgili adayın aldığı dersin hocasına, adeta kişinin velisi gibi "Bizim oğlanın/kızın dersleri nasıl?" diye sorabilirsiniz belki. Eğer kursun üzerinden çok süre geçmediyse, 200+ saat beraber vakit geçirilen birinin hoca tarafından unutulacağını çok sanmıyorum, hele ki ilgili kişi derse soru/cevaplar ile aktif katılım sağlıyor ise...

Benim aldığım kursun dersleri Cumartesi ve Pazar günleri, 14-18 saatleri arasında, haftada 8 saat olacak şekilde işleniyordu. Kurslar, dersleri ya hafta sonları ya da hafta içi akşam (19-22 gibi) olacak şekilde açılıyor. Kurslar, Zoom üzerinden canlı olarak işleniyor. 4 saatlik dersin toplam yaklaşık 30 dakikası aradan oluşuyor. Canlı ders sırasında, hocaya soru sorabiliyorsunuz. Her kursun bir de Telegram grubu bulunuyor. Yine ders dışında da istediğiniz zaman soru sormak mümkün. Sorularınız genelde yanıtsız kalmıyor. Derslerin video kayıtları Vimeo platformuna yükleniyor ve bir kurs sistemi üzerinden üreteceğiniz şifre ile kayıtlı derslere ulaşabiliyorsunuz. Derslerin kayıtlarına sonsuza kadar erişeceğinizin bir garantisi yok fakat benim aldığım kursun video kayıtlarına 1 sene geçmesine rağmen erişim sağlanabiliyor.

Derste ödevler, daha doğrusu çalışma soruları oluyor. Hoca, bir kısmını derste çözüyor ve bir kısmını kendisine yollamanızı bekliyor. Ben çözüp yollamadığım için oradaki süreci bilmiyorum (tembellikten) fakat gördüğüm kadarıyla gönderen kişilere iyi ve doğru kod yazmayı merkeze koyan bir bakış açısı ile geri dönüşler sağlanıyor. Ama hiç göndermediğim için "şöyle oluyor" desem de yalan olacak. Ders içerisinde de bazen öğrencilerin gönderdiği çözümlerde bulunan genel ve tipik hatalar da konuşulmuştu.

Bizim kursumuz, 180 saat olarak planlanmıştı fakat 220 saat olarak tamamlandı. Araları çıkarttığım zaman da "kemiksiz" olarak 198 saat 10 dakika 02 saniye C işlemiş olduk.

Kursu neden aldım? 🤔

Bu yazı öncesinde beni paylaşımlarından biraz tanıyor olabilirsiniz. Kursa başladığım zaman tam 10 yıllık mühendistim ve gerek mezuniyet öncesi gerekse işe başladıktan sonra profesyonel anlamda C programlama ile zaten bir tecrübem vardı. Kursu alana kadar yazdığım C kodları çalıştığım firmanın ürünlerinde yer alıyordu.

Peki neden bu kursu aldım? Çünkü özünde takıntılı biriyimdir! Üzerine uzun süre zaman harcadığım ve çalıştığım şeylerin incik cincik detayını öğrenmeden pek rahat edemiyorum, bir süre sonra görece "yüzeysel" kalmak batmaya başlıyor. Kendimi gömülü yazılım mühendisi olarak nitelendirmiyorum, bu aralar "Full Stack" Elektronik Mühendisi diyorum başka işler de yaptığım için ama ağırlıklı olarak gömülü alanda yaptığım C programlama ve okuma, günlük rutinimin bir kısmını oluşturuyor. Hal böyle olunca, güzelce ve sakince bir öğrenme ihtiyacı hissettim. Bazı kavramları tam oturtamadığımı hissediyordum. Kursun bu konuda yardımcı olacağını düşündüm (ve yanılmadım). Benim aldığım kursun yaklaşık 1 ay öncesinde başlayan, yine Necati Hoca'nın verdiği C++ kursuna katılan arkadaşlarım vardı. Onların da Necati Hoca hakkındaki olumlu yorumlarını duyduktan sonra kursu almaya karar verdim. Kurs hakkındaki görüşlerimi ilerleyen kısımlarda belirteceğim, burada sadece alma nedenimi belirtmek istedim ama özetle beklentilerimi fazlasıyla karşıladığını söyleyebilirim.

Aslında Kaan Hoca'dan bu kurs öncesinde 120 saatlik bir C kursu da almıştım, kendi kişisel sayfamda ve Linkedin profilimde de bu bilgi var. Fakat bu çalıştığım firmaya verilen kurumsal bir kurstu ve içeriği tam aynı değildi. Necati Hoca'dan aldığım kursu da bu kurs sonrasında aldım. Yani adeta toplamda 340 saat sadece C kursu almış oldum, gerçekten uzun bir süre. İleride buraya tekrar değineceğim.

Kursu nasıl takip ettim? 👓

Başlarda da belirttiğim gibi ne yazık ki canlı katılım imkanım pek olmadı. Canlı katılımın düşmesinin hocanın motivasyonunu da azaltabileceğini biliyorum ama denk getiremedim ne yazık ki (Kusura bakmayın hocam!), çoğunlukla kayıtlardan izledim. Kayıtlardan izlemenin avantajı da yok değil elbette. İstediğiniz hızda izleyip, durdurup geri alabiliyorsunuz. Zorluğu ise disiplini sağlamak. Yani insan salladıkça sallayabiliyor izleme işini. Kendimden pay biçelim, Nisan'da biten kursu Kasım'da tamamlayabildim. Canlı izlemenin bir avantajı da hemen soru sorabilme imkanı. Ama Telegram grubu da olduğu için kayıtlardan izlerken de soru sorma şansı oluyor, tam yerini tutar mı bu size kalmış biraz.

Kurstan elde edindiğim bilgiden aslında kendime bir referans kaynak oluşturmak istedim. Bu yüzden dersleri dinlerken kendime notlar çıkardım. Takdir edersiniz ki videolara süresiz erişim şansı yok ve olsa bile günümüz teknolojisi ile Türkçe içerikli videolarda arama yapmak pek kolay değil. O yüzden yazılı olarak içeriğin elimde olmasını istedim.

Not alma yöntemim 📝

Not alma yöntemimi kısaca anlatmak istiyorum, merak edip soran arkadaşlar olmuştu. Notları Markdown formatında aldım. Editör olarak bir miktar eklentiyle beraber Visual Studio Code (VS Code) kullanıyorum. Bu kısımla ilgili belki ayrı bir yazı yazabilirim, o yüzden pek detaya girmiyorum. Daha sonra da Sphinx isimli bir araç ile Markdown dosyaları derleyip, statik bir HTML site oluşturuyorum. Aslında böyle yönetmeye çalıştığım kişisel bir wikimsi bir kaynağım var, ders notları da bunun bir parçası oldu.

Not alma akışım

Sol tarafta görebileceğiniz gibi her ders için aynı bir dosya tutuyorum. Sağ üst köşede, bir adet dosyanın bir kısmını görüyorsunuz. Bu, Markdown formatında bir yazı. Sağ altta ise ilgili dosyanın Sphinx tarafından HTML'e çevrildikten sonraki halinin, tarayıcıda nasıl göründüğü yer alıyor. Ne kadar şeker... 🍬

Herkesin yoğurt yiyişi farklıdır, özellikle not alma konusunda. Ben bu akıştan memnunum.

Benden sayılar 🧮

Derslerdeki içeriği neredeyse olduğu gibi yazıya döktüğüm için bu notlar üzerinden çeşitli sayılar sunmak istiyorum. Böylece dersin ne kadar dolu olduğunu daha rahat aktarabilirim.

Takıntılı biri olduğumu söylemiştim. Takıntılarımdan biri de sanki bir VT terminalde yazıyormuş gibi bir satırda 80 karakteri aşmamaktadır [1]. Yani Markdown dosyalarının bir satırında (neredeyse) maksimum 80 karakter oluyor. Bir üstteki VS Code ekran görüntüsüne bakarsanız ekranın en sağında yukarıdan aşağıya inen silik bir çizgi görebilirsiniz, işte o sütün no 80'i gösteren bir çizgi. İşte bu şekilde yazdığım zaman, aldığım tüm notların Markdown hali tam 37095 satır tutuyor, toplamda ise 141784 kelime yazmışım ve bu da 1047310 karakter ediyor (evet milyon, klavyemin pilinin niye hızlı bittiğine şaşırmamam lazım). Derste toplam irili ufaklı 1616 adet C kodu yazmışız. Bunlar bir kısmı birkaç satırlık, bir kısmı ise onlarca satırdan oluşan kodlar. Bu sayı, notlardaki blok kod sayısını gösteriyor yani Markdown'da ```c <kod>``` şeklinde yazdığım kodlar. Metin içerisine yazdığım inline olan, Markdown'da `` olarak yazılan, çok ufak kod parçaları buna dahil değil. Bu 1616 adet C kodunun toplam uzunluğu ise 12039 satır oluyor. Markdown dosyalarını birleştirip, pandoc, xelatex ve pdftk araçları ile tek bir PDF'e çevirdiğim zaman ise 690 sayfa uzunluğunda bir doküman elde ediyorum. Bu elbette, font büyüklüğüne, şablona vs bağlı bir değer. Ama hangi şablon olursa olsun temiz bir 300 sayfa olur diye düşünüyorum. Ders notlarında toplamda 47 adet mülakat sözcüğü geçiyor, bu sayıdan neden bahsettiğimden ileride bahsedeceğim. Ayrıca toplamda 200 kere tanımsız davranış, undefined behivor, UB demişiz. Bu yine, derste en sık duyacağınız sözcüklerden biri.

Elinizde yazılı notlar olduğu zaman arama yapmak kolaylaşıyor. Not çıkarmak kolay değil, biliyorum. Hele ki böyle uzun bir kursta not çıkarmak kişiyi yavaşlattığı için kurs hiç bitmeyecekmiş gibi geliyor. Ama buna dayanıp, not çıkararak gitmenin faydalı olacağına inanıyorum sizler için de. Komik bir anı olarak, bizim kurs grubunda bir arkadaşımız structlar hangi dersteydi diye sormuştu. Ben de hiç gerek olmamasına rağmen ders notlarımdaki struct kelimesinin sıklığını gösteren bir grafik paylaşmıştım. Böyle gereksiz şeyler de yapmanıza imkan sağlıyor not almak.

Elde notlar olunca böyle veriler çıkarabiliyorsunuz.

Kurs içeriği 📚

Ders notlarıma bakarak kabaca kursu parçalara bölmeye çalıştım. Ben 6 parçaya böldüm. Elbette kurs akıp gidiyor, keskin geçişleri yok ama konu içeriklerine göre böyle bölebilirim diye düşündüm. Kursta işlenen konuları, fikir vermesi açısından paylaşıyorum. Eğer almaya karar verirseniz Necati Hoca'nın kurs ile ilgili Github'taki sayfalarında daha detaylı konu başlıkları da oluyor.

İçerikUzunluk
temel C kavramları, temel veri yapıları, fonksiyonlar, operatörler ve öncelikleri, temel kavramlar (short ciruit, UB, sequence point, scope, value category vs.), temel standart kütüphane fonksiyonları, kontrol ve döngü deyimleri, preprocessor (tüm direktifler, functional macro vs.), tür dönüşümleri77 saat
diziler, O() notasyonu, temel algoritma ve veri yapıları, yazı işlemleri15 saat
pointer, pointer aritmetiği, typedef, NULL pointer, string literals, pointer arrays, pointer-to-pointer, void pointer, function pointer (array), multi-dimensional arrays51 saat
dinamik bellek yönetimi, dynamic array, linkage, type qualifiers15 saat
struct, incomplete type, linked list, handle technique, union, enum, bit operations, bitfield30 saat
komut satırı argümanları, dosya işlemleri, C99, variadic functions, VLA, assertions, inline, tipik hatalar32 saat
Toplam220 saat

Siz bu kursu aldığınız zaman süreler biraz değişebilir, bunu fikir versin diye verdim. Necati Bey'in takip ettiği sıra bana başlarda biraz garip gelmişti. Bazı konuların yerlerinin yanlış olduğunu hissetmiştim. Ama ders ilerledikçe konuları, örnek kodlar üzerinden de o kadar güzel bağladığını gördüm ki kursun sonlarına doğru kendisini içimden ve gönülden takdir ettim.

C ve Sistem Programcıları Derneği (CSD)

C ve Sistem Programcıları Derneği yani CSD'den bahsetmemek olmaz. Çünkü bahsettiğim kurs aslında hem Kaan Bey ve hem Necati Bey tarafından veriliyor. Sn. Kaan Aslan'nın dernek yöneticiliğini yaptığı (ve bildiğim kadarıyla da kurucusu) olan dernek 1993 yılında kurulmuştur ve İstanbul'dadır. Bugüne kadar C ve C++ olmak üzere çeşitli konularda binlerce öğrenciye ders vermiştir. Ülkemizde bu seviyede ve detayda kurslar verebilen böyle kişilerin ve oluşumların bulunmasını bir şans olarak görüyorum.

CSD, verdiği uzun süreli kurslarla ünlü olan bir dernektir (+ zamanında geliştirdikleri kendi işletim sistemleri de ses getirmiştir). Benim Necati Hoca'dan aldığım C kursu da bu ekolden gelen bir kurstur. Kendisi de uzun yıllar boyunca dernekte eğitmen olarak da görev almıştır. Son yıllarda kursları dernekten bağımsız mı veriyor tam bilmiyorum, ticari ve fatura boyutu da beni ilgilendirmiyor ama derneğin sayfasında kendisi "konuk eğitmen" olarak geçmektedir, ama CSD bünyesinde Kaan Hoca tarafından açılan kurs ile benim aldığım kurs özünde aynı kurstur. Elbette kurslar ve eğitmenler arasında farklılıklar vardır. Objektif bir şekilde belirtebileceğim farkları ilerleyen kısımlarda aktaracağım.

Yeri gelmişken, Kaan Bey'in A'dan Z'ye C Kılavuzu, İntel İşlemcileri Korumalı Mod Yazılım Mimarisi (bu derin teknik bir konudur) ve C Yanlışları adlı zamanında basılmış 3 adet kitabı olduğunu da belirteyim. Bu kitaplar eski ve günümüzde pek bulunmuyorlar (bulan olursa bana da hediye etsin lütfen 😆), sahaflarda olabilir.

💡
Konusu açılmışken belirteyim, A'dan Z'ye C Kılavuzu'na sahip olan arkadaşlar biliyorum (kendi arkadaşlarımda da var). Kaan Bey'in de laf arasında belirttiği gibi bu eski bir kitap ve "modern" C'yi kapsamıyor. Yani bir şekilde bu kitaba erişirseniz buradan C öğrenmek de günümüzde çok doğru bir yol olmayabilir. Kitap yanlış demiyorum ama günümüz için eksik kalacaktır.

CSD demişken şunu da belirtmek isterim: Tam COVID-19 zamanlarında, CSD kurs notlarını kendi Github sayfalarından "fırsat eşitliğine katkıda bulunmak" için paylaşmıştır.

Salgın zamanı ilaç gibi hareket 💉

Kısaca kral hareket demek istiyorum! Notların önemli bir kısmı Kaan Bey'e aittir ve bu şekilde paylaşmaları takdir edilesidir 👏. Notlar, Türkçe olarak (hatta belki İngilizce kaynaklar arasında da) bulunabilecek en kaliteli ve doğru kaynaklardandır. Linki bıraktım.

Kurs kimler için uygun ve değil? 🤷‍♂️

  • ✅ “Profesyonel” (para kazanan) C programcıları (gömülü dahil)

  • ✅ Bu işi “profesyonel” olarak yapmayı planlayan öğrenciler

  • ✅ C++ öğrenmek isteyenler

  • ✅ C’yi doğru öğrenmek isteyenler ve “takıntılı kişilikler”

  • ✅ Temiz, verimli, idiomatic kod yazmak isteyenler

Kimlere uygun değil?

  • ⛔ C’yi yanlış ve eksik öğrenmek isteyenler 😝

  • ⛔ Kısa zamanda "öğrenmek" isteyenler

  • ⛔ C ile kısa süreli bir ilişkisi olacak kişiler. (Örneğin okulda sadece 1 dönem C ile uğraşacak ve tekrar kullanmayacak öğrenci arkadaşlar için daha kısa süren ve ucuz olan Udemy kursları, YouTube kursları daha uygun olacaktır)

Kurs tarihçesi ⏳

C kursu, muhtemelen CSD'nin kurulduğu 1993 tarihinden itibaren verilen bir kurs. Wayback Machine üzerinde CSD'nin en eski arşivi 1999 yılından çıkıyor ve bu yılda da bu kurs veriliyormuş.

😂
Fun fact: CSD'nin sitesine gideceğim diye kafadan csd.org.tr yazarsanız sizi Çorap Sanayicileri Derneği karşılıyor. Derneğin websitesi csystem.org tur.

Ben de ne yaptım dersiniz? Kursun süre ve fiyat geçmişini de merak ettiğim için aşağıdaki tabloyu oluşturdum. Fiyatı doğrudan TL olarak vermemin pek anlamlı olmayacağını düşünerek (2005'te 6 sıfır atma da var), asgari ücret ve USD cinsinden kurs fiyatının değişimini göstermek istedim. Fiyatları yine Wayback Machine üzerinden elde ettim. Elbette ilgili yılın asgari ücret ve kur bilgilerini kullandım.

YılKurs Süresi (Saat)x Asgari ÜcretUSD
19991203.05405
20021353.25364
2006150 + 30 (C Std)3.751065
2010160 + 30 (C Std)2.811078
2015160 + 30 (C Std)2.67966
2020170??
20232001.1480

Necati Bey'in Ocak 2024'te başlayacak kursunun belirlenmiş fiyatı 18000 TL. Henüz o gün gelmediği ve kur bilgisi gibi bilgiler elimde olmadığı için tabloya eklemedim.

Kurs fiyatının zamanla değişimine bakarsanız yeni fiyatlar ucuz da gelebilir, pahalı da. Elbette son yıllarda kurslar online olarak verildiği için katılımcı sayısı muhtemelen çok daha fazla eskiye göre. Benim gözlemlediğim kadarıyla CSD ve Necati Bey'in kurslarına en az 100 kişi kayıt oluyor. Bu yüzden "sürümden kazanacak" şekilde kurs fiyatları USD cinsinden eskiye nazaran düşürülmüş olabilir. Bir de KDV ve öğrenci/"tam" konusu var. Artık o detaylara kursu almak isterseniz siz bakarsınız. Onun dışında fiyatın pahalı olduğunu da düşünebilirsiniz, Udemy'nin fiyatlarına bakarsanız haksızsınız diyemem ama kurs içeriği vs. bir sürü parametre var. Özellikle bireysel katılım için az bir para değil elbette. Bu konuyu bir sonraki başlık altında biraz daha irdeleyeceğim.

Bir de dikkat ederseniz kurs zamanla uzamış, güncel durumda 200 saat açılıyor umarım daha da uzamaz. Bir ara 30 saatlik "C standardı" kursu ayrı veriliyormuş gördüğüm kadarıyla. Burada C99 standardları ayrıca anlatılıyor diye anlıyorum. Zamanında bu 30 saatlik kursun saatlik fiyatı 150 ya da 160 saatlik ana kursun saatlik fiyatının birkaç katıymış. Aslında bu 30 saatlik kursu eklemezseniz tablodaki toplam fiyatlar fena olmayan bir oranda düşüyor ama günümüzdeki kurslarda bu konular kursa dahil edilip tek kurs olarak anlatıldığı için eklemeyi uygun gördüm.

C dilinin en büyük değişimi C99 ile yaşadığını söylemek herhalde yanlış olmaz. Kulağa biraz garip gelebilir ama ilerleyen yıllardaki standartlarla eklenen ve günümüzde yaygın olarak kullanılan çok sayıda özellik var diyemeyiz. Yani dil o kadar da büyümez iken ders niye sürekli uzuyor bilmiyorum. Belki eğitmenler daha çok soru çözüyordur, sınıf kalabalıklaşınca eğitmene gelen soru sayısı artıyordur ve akış yavaşlıyordur artık onu bilemiyorum ama 200 saat'i geçmez umarım, biraz psikolojik bir sınır bence.

Kurs pahalı 💰 ve uzun mu ⏱️? Diğer kurumsal kurslar? Udemy?

Kişisel siteme veya Linkedin profilime bakarsanız bu kurstan önce PLC2 ve Doulos gibi kurumsal eğitim firmalarından çeşitli konularda kurslar aldığımı görebilirsiniz. Biraz bu tarz kursları da göz önünde bulundurarak bir kıyaslama yapmak istiyorum.

Bildiğim kadarıyla bahsettiğim firmalardaki kursların en uzunları 40 saat oluyor. Örnek olarak gelin Doulos tarafından verilen C Programming for Embedded Systems isimli kursa bir bakalım.

Bu kursu ben almadım fakat alan arkadaşlarım oldu. Bu yazıyı yazmadan önce Doulos'un kursunun da notlarına göz attım. Doulos, alanında oldukça iyi bir eğitim firması. Notlarda gözüme büyük hatalar çarpmadı (ufak tefek var). Fakat C ile ilgili bazı konular çok hızlı geçilmiş bence. Elbette iki kursun amacı farklı. Doulos'un kursu gömülü sistemlerde C programlamayı hedefliyor. Bu kurs, 4 günlük ve 8 saat/gün olarak düşünürsek kursun toplam süresi yaklaşık 32 saat olacaktır. Kurs sayfasında da belirtildiği üzere kursun yarısı eğitimden yarısı ise lab alıştırmalarından oluşuyor. Kursa fiziksel katıldığınızda (online katılımda nasıl yapılıyor bilmiyorum) bir demo kart üzerinde de çalışıyorsunuz.Bu kursların fiyatları ise kur ile değişmek ile beraber Necati Bey tarafından Ocak 2024'te açılacak 200 saatlik C kursunun iyimser bir tahminle en az 2-3 katı.

Necati ve Kaan Bey kadar dile bu kadar hakim birilerine denk gelmeniz de pek olası değil. Eğer bir iş veren olsaydım ve çalışanlarıma 200 saatlik C kursunu aldırsaydım bunu ekonomik bulurdum. Bu kursu hakkını vererek tamamlayan bir çalışan zaten daha az hatalı kod yazarak, daha hızlı kod yazarak kendi kurs parasını rahatlıkla çıkaracaktır. Buradaki esas problem zaman. 200 saat gerçekten uzun bir süre. Bir de not tutuyorsanız, ödevleri çözüyorsanız ve ek çalışma yapıyorsanız belki bir 200 saat daha harcarsınız. Kursların mesai saatleri dışında olduğunu belirtmiştim. Yine bir iş veren olsam ve çalışanım bu kursu mesai saatleri dışında alacağım dese ona hem kursu aldırır hem de bir kurs parasını da ona teşvik olarak verirdim belki 😬. Kurumsal bakış açısıyla fiyatın, diğer eğitim firmalarının eğitimlerini de düşünerek çok sürpriz olmadığını söyleyebilirim.

Gelelim bireysel katılımcılara. Eğer bir çalışansanız ve kendi cebinizden alacaksanız (benim gibi) da hala alınabilir diye düşünüyorum. Profesyonel yaşantıda para kazandığınız şeye yatırım yapmanız gerekiyor. Bu bir yazılım olabilir, donanım olabilir ya da kendiniz olabilirsiniz. Bu yatırımlar her zaman ya da hemen paraya dönüşmeyebilir. Ama bu işten para kazanıyorsanız ve uzun yıllar çalışmayı düşünüyorsanız kursu kendinize yatırım olarak düşünülebilir. Bu kursun bir iş ya da terfi garantisi elbette yok ama böyle bir duruma yardımcı olursa zaten parasını çıkaracaktır.

Öğrenci arkadaşlarımız için kursta bir miktar indirim oluyor ama kurs hala muhtemelen pahalı kalacaktır. Bu ve katıldığım başka kurslarda üniversite, lise öğrencileri ile hatta daha küçük kardeşlerimizle karşılaştım. Lisede okuyup, CSD'den üçüncü kursunu alan bir arkadaşımızı hatırlıyorum. Açıkça bu vizyon ve azimlerini takdir ettiğimi söylemek isterim. Bizim zamanımızda online kurslar yoktu böyle ama hani şimdi okuyor olsam yine bunu almayı akıl eder miydim bilmiyorum. Bu arkadaşların kendilerine çok iyi bir yatırım yaptıklarını söyleyebilirim. Ama buna heves edip maddi durumu yetmeyen arkadaşların üzülmemesi gerekiyor. Öğrenci iken ailenizin imkanı olmayabilir bu paraları vermeye. Kariyer çok uzun bir yol, bu kursu ya da eksiklerinizi para kazanmaya başladıktan bir süre sonra hevesiniz var ise yine tamamlayabilirsiniz, çok da üzülecek bir durum yok bence. Eldeki imkanlara göre kendimize bir yol çizmemiz gerekiyor, kendimizi fazla üzmeden ve yıpratmadan... Yani alabiliyorsanız çok iyi ama alamıyorsanız da üzülecek bir şey yok, belki işe girdiğiniz firma bile size bu eğitimi aldırtabilir. 😉

Çevremde CSD kursları konuşulduğunda hemen Udemy kursları ile bir kıyaslama yapılıyor. Udemy kursları hem çok daha ucuz ve kısa. Bazı firmaların Udemy Businness anlaşmaları da olduğu için mümkünse tüm eğitim ihtiyaçlarını bu platformdan karşılamak istiyorlar. Takdir edersiniz ki Udemy'deki tüm kursları izleyip bir kıyaslama yapmam mümkün değil. Özellikle C ile ilgili de birçok kurs var. Dildeki önemli detaylar ne kadar doğru anlatılıyor inanın bilmiyorum. Udemy'deki problem eğitmenin kalitesi ile ilgili pek bir bilginiz olmaması. Bir kursa verilen puanlar gerçeği çok iyi yansıtmayabiliyor çünkü puanları kursu alan ve öğrenen kişiler veriyor. Siz bir kursta öğrencileri çok zorlamayarak ve bilmediklerini pek hissettirmeyerek öğrencilerin kursa pozitif duygular beslemesini ve yüksek puan vermesini sağlayabilirsiniz. Ayrıca öğrenen kişi en fazla dersin işleniş tarzını puanlayabiliyor, zaten öğrendiği bir konunun doğruluğunu bilmesi pek olası değil. O yüzden Udemy (veya benzer platformdaki) kursları düşünürken bu şekilde düşünmek gerekiyor.

Kurumsal, özel sınıf ders 🏢

Hem Necati Bey hem de Kaan Bey kurumların talebi üzerine doğrudan kuruma özel sınıf açıp, ders veriyorlar. Peki hangisini tercih etmeli?

İlerleyen paragraflarda yazılanlar bu kurs veya bu eğitmenler hakkında değil, genel olarak kurumsal eğitimler hakkındaki görüşlerimdir.

Bugüne kadar yurt içi/dışı çeşitli eğitim kurumlarının çeşitli derslerinin kurumsal olarak (özel sınıf) düzenlenmesinde görev aldım. En son söyleyeceğimi en başta söyleyeyim:

Herhangi bir kurumsal eğitimde en az 1 kişi mutsuz olur ve o kişi de eğitimi organize edendir!

Eğer bir kurumsal eğitim organize etmeye çalışan bir mühendisseniz, elinizdeki "Eğitim Talep Formu"nu hemen yere bırakın ve alabiliyosanız genele açılan kursları alın 😄. Eğitimi organize etmeye çalışan kişi çoğunlukla eğitmen, eğitime katılan iş arkadaşları (sınıf), yöneticiler ve varsa kurumunda eğitimler ile ilgilenen bölüm ve parayı ödeyen satın alma bölümü arasında sıkışabiliyor. Bu sıkışıklıkta en azından düzenleyen kişi bir mutsuzluk, bir "lanet olsun" hissi yaşayabiliyor. Çoğu zaman da ya sınıftan en az biri ya da eğitmen mutsuz oluyor. Fakat yine de herhangi bir kurumsal eğitim alacaksanız, eğitim öncesinde şu noktalara dikkat etmenizi öneririm:

  • Eğitmenle süre üzerinden mi anlaşıyorsunuz yoksa konu üzerinden mi? Diyelim ki süre olarak konuştunuz, şu kadar gün veya saat. Bu süre zarfında konular yetişmez ise ne olacak? Hoca yavaş anlatmış olabilir ya da sınıfta çok soru gelmiştir akış yavaşlamıştır (burada akışı korumak bir miktar hocanın sorumluluğundadır). Eksik konu ile mi kurs kapanacak? Kurs uzayacak mı? Uzayacaksa ödeme yapacak mısınız?

  • Ödeme takvimi nasıl olacak? Hangi para biriminde ödeme yapılacak? Büyük bir firmada çalışıyorsanız bir mühendis olarak siz kursun teknik tarafıyla ilgileniyor olacaksanız. Ödeme tarafı ve para aktarımı pek sizin kontrolünüzde olmayacaktır. Ama eğer ödeme planında çeşitli sebeplerden dolayı değişiklikler olursa işte kursu düzenleyen kişi olarak siz mutsuz olmaya başlayacaksınız. Çünkü eğitmen iletişim noktası olarak sizi biliyor olacak.

  • Kurs içeriği ne olacak? Bir müfredat var mı? Konu ekleyip çıkaracak mısınız? Bu da üzerinde anlaşılması gereken önemli bir konu.

  • Kurumunuz sertifika istiyor mu? Bazı kurumlar, çalışanlarına aldırdıkları eğitimler sonrasında çalışanların sertifika almasını fazla önemsiyorlar. Böyle bir durumda iseniz eğitim aldığınız kurumun alacağınız özel ders sonrasında size bir sertifika vereceğini doğrulayın.

Bu yukarıda saydığım maddeler herhangi bir kurumsal kurs düzenlerken dikkat etmeniz gerekenler. Bu konularda eğitim aldığınız kurum ile yazılı olarak (e-posta gibi) anlaşmalısınız, hatta olabiliyorsa mini bir sözleşme de yapabilirsiniz.

Bu C kursuna ve benzeri kurslara bakacak olursak genel sınıf kursuna katılımın çeşitli avantaj ve dezavantajları olabilir.

  • Genel kursların saatleri mesai saatleri dışında olacak şekilde ayarlanıyor. Bu da sizler için bir dezavantaj olabilir. Özel kurs aldığınızda ise hoca ile beraber istediğiniz saati belirleyebilirsiniz.

  • Genel kursta, ekibiniz ve kurumunuz dışında da kişiler olacaktır. Dersler her ne kadar online olsa da bu sayede yeni kişilerle tanışabilir ve sosyalleşebilirsiniz. Kurum için aldığınız kurslarda genelde her gün beraber çalıştığınız ekip arkadaşlarınız olacaktır. Başka kişilerin sorularını ve bakış açılarını görmek de size katkı sağlayabilir.

  • Genel kurslar, adı üstünde genele hitap ettiği için C programlamanın başından ve görece düşük tempoyla başlayacaktır. Yine katılım profiline bağlı olarak dersi size göre fazla yavaşlatacak, size göre basit bir sürü soru geliyor olabilir. Bunları birer dezavantaj olarak değerlendirebilirsiniz. Özel kursta ise konuyu ve süreyi belirleyerek tempoyu ayarlama şansınız var. Ama bu beklediğiniz gibi olmayabilir. Bu şekilde süresi ve içeriği uzun sürelerdir oturmuş kurslarda, "hocanın ayarı ile oynamak" çok iyi olmayabiliyor. Hocanın kafasındaki akışı bozmuş oluyorsunuz. Belirlediğiniz içerik ve sürenin uygun olduğundan hoca ile karşılıklı emin olmalısınız. Bir de işin şu boyutu var: Bunu Necati Hoca'dan C++ eğitimi alan arkadaşlardan da duymuştum. Hoca ilk derste "Kimler C biliyor?" diye soruyor, elbette hemen herkes "Ben biliyorum." diyor. İlk C sorusunda sınıf pert 😄. Çünkü kişiler neyi bilip bilmediğini fark edemiyor. Benzer bir durum kurs alırken de olabilir. Biz bu konuları istemiyoruz, biliyoruz diyebilirsiniz. Ders sırasında ise o konuları aslında bilmediğiniz ortaya çıkabilir. Bu durumda ya hoca geriye dönüp daha temel konuları anlatacaktır (Bu ya kursun zamanının uzamasına ya da zaman aynı kalacaksa içerikte azalmaya neden olacaktır) ya da hoca eksik konuları işlemeyecek ve istediğiniz konuları da tam öğrenemeyeceksiniz, bu eksiklerden dolayı. O yüzden hoca ile tam olarak içerik konusunda anlaşmadan kursların ayarları ile oynamanızı pek tavsiye etmem.

Tahmin edersiniz ki özel kursun ekonomik anlamda mantıklı olması için kursu kalabalık bir grup olarak almanız gerekecektir. Zaten 2-3 kişi alacaksanız genele açılan kurslar dışında bir şansınız yok.

Genel derslerin işlendiği saatler, konu, süreler ve tempo sizler için uygun değilse özel kurs talebinde bulunabilirsiniz.

Kurumsal eğitim düzenleme işinden biraz ağızım yandığı için biraz karamsar ve taraflı bir tablo çizmiş olabilirim. Belirttiğim gibi yazdıklarım C kursu veya bahsettiğim eğitmenler özelinde değil, genel önerilerdir. Birçok kurumsal kurs firması zaten "halka açık" kurslar düzenlemiyor, o noktada tercih şansınız olmuyor zaten isteseniz de istemeseniz de kurumsal olarak kursu almanız gerekiyor.

Gömülü (Embedded) C anlatılıyor mu?

C'yi kullanan veya öğrenmek isteyen kitlenin önemli bir kısmı gömülü sistemler alanında çalışıyor. Peki bu dersin içeriği bu tarz işlerde çalışan kişilere uygun mu? Genelde Gömülü C ile ilgili bir konu açıldığında her ne kadar çoğu insan da yanlış bir algı olmasa da öncelikle şunu vurgulama ihtiyacı hissediyorum: C dili Gömülü C ve Normal C olarak ikiye ayrılmıyor.

Yani Gömülü C diye ayrı bir dil yok, öncelikle bunu vurgulamakta fayda var. Ha elbette gömülü sistemler için yazılmış C kodları ile örneğin bir Linux işletim sistemi üzerinde çalışacak şekilde yazılmış C kodları arasında belli başlı farklar olabiliyor. Bir programlama dilini bize çeşitli araçlar sunan bir araç kutusu olarak düşünebiliriz. C dili de bundan farklı değil. Programcı olarak kullanabileceğimiz bir çok araç seti yer alıyor. Belki gömülü sistemler için söyleyebileceğimiz şey, bazı araçların daha sık bazı araçların ise daha az kullanılması olabilir. Ama kullandığımız dil bir adet: C.

Konu ile ilgili güzel bir LinkedIn postu

Örneğin gömülü sistemler için yazılmış bir C kodunda, doğrudan bellekte belirli bir adresi gösteren pointerları, struct ve union gibi anahtar kelimeleri, bit işlemlerini, function pointer kullanımını bir tık daha sık görebiliriz. Buna karşılık birçok gömülü sistemde dinamik bellek kullanımı tavsiye edilmediği ya da desteklenmediği için malloc/free türevi fonksiyon çağrılarını da daha az görebiliriz. Yine gömülü sistemlerde bellek limitinden dolayı bellek alanının (stack ve global alan) verimli kullanımı için bazı teknikler kullanılıyor olabilir. Ama bu tekniklere Linux üzerinde koşacak "sistem programları"nda da rastlamak mümkün. Benim tavsiyem, gömülü sistemlerde çalışıyor olsanız da C dilinin genelini bir öğrenin, dildeki araçları ve dilin sınırlarını görün. Elbette zamanla bazı kısımlarını daha sık bazı kısımlarını da daha seyrek kullanacaksınız.

Gömülü sistemlerde C diline hakimiyet önemli bir artı olsa da bu tek başına genelde yeterli değil. Buna ek olarak, temel bir elektronik bilgisi, I2C/SPI/UART gibi temel iletişim protokolleri hakkında bilgi, bir osiloskop ile kart üzerinden ölçüm alabilme, bilgisayar mimarileri ve işlemciler hakkında bilgi, bir miktar assembly bilgisi aranan yetkinlikler arasında yer alıyor. Bu yüzden iyi bir C bilgisi çok işinize yarayacaktır ama diğer konularda da kendinizi geliştirmeniz beklenecektir.

Derse gelecek olursak, gömülü sistemlerde sık kullanılan araçlar olmak üzere dilin tüm araçları anlatıldığı için bu açıdan bir eksiğiniz kalmayacaktır. Ayrıca Necati Bey dersin birçok noktasında yazdığı kodlar üzerinden bir kodun daha verimli (hız veya bellek alanı gibi) nasıl yazılabileceğini defalarca anlatmaktadır. Ben de C'yi ağırlıklı gömülü tarafta kullanan biri olarak verilen örneklerden oldukça tatmin oldum. Ama dediğim gibi gömülü yazılım işi sadece C'den ibaret değil, fakat önemli bir kısmı da C hakimiyeti.

Çeşitli kurumlarda (verdiğim Doulos kursu örneği gibi) ve internette C'yi mikrokontrolcü gibi bir gömülü sistem üzerinden anlatan kurslar bulmak mümkün. Bu böyle bir kurs değil, onu da belirtmiş olayım.

Okula faydası olur mu? 🏫

Okulda aldığınız C dersini geçmek için bu kursu almanıza hiç gerek yok. Kurs zaten uzun sürdüğü için okuldaki C dersinizden belki 1 dönem önce buna başlamanız gerekecektir. Zaten okulda aldığınız C dersinde hocanızın ve asistanların C'yi muhtemelen pek de iyi bilmediğini göreceksiniz. Bu kurs, profesyonel anlamda C ile uğraşan ya da uğraşacak kişiler için uygun. Okuldaki C için YouTube dersleri ve Udemy fazlasıyla yeterli olacaktır. Öğrenci iseniz almayın demiyorum, zaten yukarıda bahsettim bu konudan ama sırf ders geçmek için almayın. Böyle alırsanız tam bir overengineering yapmış olursunuz. Ama diyelim ki aldınız, okulda size muhtemelen C'yi az ya da çok yanlış öğretecekleri için sinirleriniz bile bozulabilir derste, benden söylemesi...

Fakat elektronik ya da bilgisayar mühendisliği gibi bir alanda okuyorsanız ve meslek hayatınızda C'nin yer alacağını düşünüyorsanız ve amacınız sadece okuldaki C kursunu geçmek değilse, bu kursu öğrenci iken alabiliyorsanız (para ve zaman) açısından muhakkak alın, kendinize çok iyi bir yatırım yapmış olacaksınız.

Mülakatlara hazırlık 👔

Mülakatlara hazırlık konusunda Necati Bey'den C öğrenmenin doğru bir karar olacağını rahatlıkla söyleyebilirim. Hatırlarsanız yazının başında kendi notlarımdan çeşitli sayıları sizlerle paylaşmış ve notlarımda toplam 47 kere mülakat kelimesinin geçtiğini belirtmiştim. Bunun sebebi derste mülakatlarda sık çıkan soruların da çözülmesidir.

Yine belirttiğim gibi Necati Bey, recruiter olarak da görev alıyor. Kendisi C/C++ bilen geliştirici arayan firmalar için uygun adayları eşleştirmek adına kişilerle mülakat yapıyor. Sürekli mülakatların iş veren tarafında olan biri olarak derste C mülakatlarında sorulan sorulardan da bahsediyor. Bununla ilgili ilginç bir durumu da aktarmak istiyorum.

Apple'da 🍏 gömülü sistemler üzerine C ağırlıklı çalışan bir arkadaşımla konuşurken, işe girerken ona sorulan mülakat sorularından bahsetmişti. Bu konuşmamız kurstan önceydi. Kursun sonuna geldiğimizde Necati Hoca bu soruların neredeyse hepsini çözmüştü. Soruları derste görünce şaşırmıştım. Elbette Apple'ın ya da bir firmanın sorduğu C mülakat soruları üç aşağı beş yukarı aynı olmaktadır, sonuçta adayda test edilmek istenen bilgiler ve soru tarzları belli. Bu yüzden firmalar benzer soruları soracaktır.

Programlamayı yeni öğrenenler için? 🐣

Bu kursun C'yi ilk defa öğrenmek isteyen kişiler için uygun olacağını düşünüyorum. Bu konuyu kendim deneyimlemediğim için kesin konuşamıyorum. Belirttiğim gibi ben kursu almaya başladığımda 10 yıllık mühendistim. Bu yüzden hiç C'yi bilmeyip bu kursu alan kişinin ne hissettiğini bilemem. Ama kursun içeriğinden, gidiş hızından, kursu bu şekilde alan arkadaşlara ait gözlemlerimden, kursun yeni başlayanlar için de uygun olduğunu söyleyebilirim.

Hatta Necati Hoca, sık sık en sevdiği öğrenci profilinin C'yi bilmeyen kişiler olduğunu belirtmektedir. Buna hak veriyorum, çünkü C'yi okuldan veya başka yerlerden öğrenen kişilerin önemli bir kısmı özellikle pointer, array gibi konularda hatalı bilgiler ile geliyor. Necati Hoca, derste sık sık önce bu hataları düzeltmeye çalışıyordu. Bizlere sürekli unlearn (yani unutulması) edilmesi gereken kısımların olduğunu belirtiyordu.

Eğer programlama ile ilgili hiçbir fikriniz yok ise, bir programlamaya giriş kursunun alınması belki faydalı olabilir. Bu doğrultuda CSD'de 80 saat olarak Ali Vefa Serçe Bey tarafından verilen Programlamaya Giriş kursunun iyi olabileceğini duydum, kendim deneyimlemedim, çevremde de alan bilmiyorum. Böyle bir durumdaysanız bir kontrol edebilirsiniz.

Kaan Aslan vs Necati Ergin ⚔️

"Uzun C kursu", CSD bünyesinde hem Kaan Bey hem de Necati Bey tarafından farklı zamanlarda verilebiliyor. Burada da "Kursu kimden almalıyım?" gibi bir soru akıllarda oluşuyor. En son söyleyeceğimi en başta söyleyeyim:

İstediğiniz hocadan alabilirsiniz. İki eğitmen de size C'yi düzgün bir şekilde öğretecektir.

Hoca ve ders karşılaştırması yapmak gerçekten çok öznel bir şey. Hiç unutmuyorum, üniversite yıllarında aynı sınıfta aynı hocadan aynı dersi aldığımız bir arkadaşım ile konuşuyorduk. Ben hocanın ve işleyişinin çok iyi olduğunu söyleyince o da hiç bir şey anlamadığını, hocanın çok kötü anlattığını söylemişti. Aynı dersi veren başka bir hocadan dersi takip ettiğini ve onun sayesinde anlayabildiğini iletmişti. Sizin de tecrübe etmiş olmanız çok olası, her hoca ve her anlatış tarzı herkese gitmiyor. O yüzden benim burada kendi görüşlerimi aktarmam sizlere faydalı olmayacaktır. Ama nesnel olduğunu düşündüklerimi aktaracağım.

İki hocayı karşılaştırmamda teknik olarak da şöyle bir problem var: İkisinden de aynı dersi almadım. Yazının başında Kaan Bey'den bir kurum eğitimi çerçevisinde 120 saatlik C eğitimi aldığımı belirtmiştim. Bu, dışarıya açık olan bir kurs değildi ve içeriği farklıydı. Necati Bey'den aldığım kurs ise dışarıya açık olan bir kurstu. İki eğitmenden birebir aynı dersi almadığım için teknik olarak doğru bir karşılaştırma yapmam zaten mümkün değil.

Yine de Kaan Bey'in genele açılan ve aldığım kurslardan edindiğim gözlemlerle olabildiğince objektif noktalara değinmeye çalışacağım.

  • Burada tercih yaparken cevaplamanız gereken ilk soru: "Kurs sonunda elimde hoca tarafından hazırlanmış bir ders notu istiyor muyum?" olmalıdır. Çünkü Kaan Bey, kurslarda ya kurs sırasında not yazarak ya da kurstan önce hazırlanmış notların üzerinden geçerek her kursa özel bir not hazırlıyor. Bu sayede kurs bitiminde elinizde hoca tarafından hazırlanmış bir not oluyor. Necati Bey'in ders anlatış yöntemi böyle değil, kendisi tarafından hazırlanmış notlar bulunmuyor. Benim gibi derslere katılıp, video izledikçe kendi notlarınızı çıkarabilirsiniz ya da derse daha önceden katılan arkadaşların hazırladığı, İnternette bulunan çeşitli notları kullanabilirsiniz. Başkasının hazırladığı notlar öğrenmenizde ne kadar faydalı olur bilemiyorum, belki üzerinde arama yapacağınız bir referans kaynak olabilir. Ama kurs katılımcılarının hazırladığı notlarda da hata olma olasılığı, bir hocanın notlarında olma olasılığına göre kağıt üzerinde bence daha fazla. Bunu bir olasılık olarak söylüyorum, yoksa Necati Hoca'nın C kursu ile ilgili İnternette bulunan notları incelemedim. Kaan Hoca'nın tercih ettiği gibi derste not hazırlandığı zaman toplam ders süresi uzayabiliyor (veya aynı sürede kalınmak istenirse konu içeriği daralacaktır ama şimdiye kadar hep ders uzadı). Öte yandan not alma sırasında oluşan ufak tefek aralar biraz düşünmeye ve bir şeyleri denemeye de fırsat sağlıyor. Necati Bey'in dersleri bu açıdan biraz daha yoğun ve kesintisiz geçiyor.

  • Kaan Bey, CSD kapsamında İleri C ve Unix/Linux Sistem Programlama kursları veriyor. Her iki kursu da alan ve henüz tamamlamamış biri olarak söyleyebilirim ki, Temel C Kursu'nun (bu yazının konusu olan kurs) devamı niteliğinde sayılabilecek bu kursların içerikleri oldukça zengin. C dilinde ciddi bir şekilde çalışacaksanız bu kursun arkasına, bahsettiğim kurslardan birini almanız bir nevi bekleniyor. Necati Bey ise bu C kursu dışında başka bir C kursu vermiyor. Bu kapsamda, Necati Hoca'nın anlattığı C kursunda, Kaan Bey'in verdiği İleri C kursundan çeşitli konular yer alıyor. Necati Bey'in C kursunun içeriği bir miktar daha geniş olabilir. Kaan Bey'den İleri C ve/veya Unix/Linux Sistem Programlama kursu alacaksanız, her iki hocadan da ders tatmış olmak adına tamamen taktiksel olarak C kursunu Necati Bey'den almayı düşünebilirsiniz. Böylece iki farklı ustanın yaklaşımını da gözlemlemiş olursunuz.

  • Necati Bey'in verdiği C++ kursunda, C anlatılmıyor. Kursa gelen adayların biliyor olması bekleniyor. Eğer amacınız C++ kursunu Necati Hoca'dan almak ise, bütünlüğün ve devamlılığın sağlanması açısından C'yi de kendisinden almanızı önerebilirim.

  • Kaan Bey'in dersleri, kısa bilgisayar tarihi gibi genel kültür konuları ile başlıyor. Ayrıca kendisinin Unix/Linux Sistem Programlama, Linux Kernel gibi kurslar verdiğini düşünürsek aklınız hep böyle donanıma yakın çalışıyorsa kendisiyle soru/cevaplar üzerinden güzel anlaşırsınız diye düşünüyorum.

  • Necati Bey'in derslerinin Telegram gruplarının soru cevap açısından biraz daha aktif olduğunu gözlemliyorum.

  • Her iki hocada da çok keyifli anılar ve keyifli muhabbet var, bazıları ufuk açıcı oluyor.

Olası mutsuzluklar 😔

Kurs ile ilgili hissedebileceğiniz çeşitli olumsuzluklardan biraz bahsetmek istiyorum.

  • Ücret ve süre konusuna tekrar değinmeyeceğim. Süre açısından, bu kursların tarzı bu şekilde. Ücret olarak da görüşlerimi iletmiştim.

  • Süre konusuna şöyle bir ekleme yapabilirim. Kurslar uzayabiliyor. Örneğin şu an almakta olduğum Unix/Linux Sistem Programlama kursu 220 saat olarak duyurulmuştu ama şu an sanıyorum 400 saati geçmiş durumda. Çok şikayetçi değilim, konular hoşuma gidiyor ama neden bu kadar sapma oluyor bilmiyorum. Neyse ki genele açılan kurslarda konular bitene kadar kurs sürüyor ya da eski derslerden kayıtlarla eksik içerikler telafi ediliyor. Örneğin Necati Bey'den aldığım C kursu bir süre daha canlı devam etmişti fakat kalan birkaç ders, eski kayıtlardan telafi edilmişti (o yüzden süresi aslında 220 saatten de biraz uzun). Kaan Bey'den aldığım kurslar ise şimdilik içerik bitene kadar canlı olarak devam ediyor. Yani içerik açısından bir eksiğiniz kalmıyor ama sürenin uzaması motivasyonu ve katılımı düşürebiliyor.

  • C kursu geniş bir katılım profilini hedeflediğinden konular basitten başlıyor ve görece yavaş bir tempo ile ilerliyor. Eğer benim gibi dil ile biraz tecrübeniz varsa biraz sıkılabilirsiniz. Kayıtlardan izlerseniz dersleri atlama veya hızlandırma imkanınız oluyor. Ama öğrenme açısından canlı katılım en iyisi (ben yapamamış olsam da). Öte yandan bahsettiğim İleri C ve Unix/Linux Sistem Programlama gibi kursların hedef kitlesi daha dar olduğu için kursun ilerleme hızı da bir miktar artıyor

  • Kurumsal olarak PLC2, Doulos gibi firmalardan eğitim aldıysanız bu firmaların eğitimleri sonunda çok iyi materyaller (aranabilir PDF gibi) verdiğini biliyorsunuzdur. Kaan Bey'in dersleri sonunda .txt formatında bir kurs notu elinizde oluyor. Necati Bey'in kursu sonunda ise elinizde sadece videolar oluyor. Hoş Udemy kursları da genelde sadece video içerikli oluyor. Kaan Bey'in notları oldukça yeterli. Ama özellikle Necati Bey'in kursu sonrasında bir ders notu olmaması kurumsal tarafta çeşitli soru işaretleri doğurabiliyor (gözlem).

Kursu alacaklara öneriler 💡

Kursu almaya düşünen arkadaşlara naçizane önerilerim şöyle olacaktır:

  • Canlı katılım sağlamaya çalışın. Derslerde sorulan sorulara cevap vermeye çalışın, soru sormaya çalışın. Telegram grubunda da olan tartışmalara katılmaya çalışın.

  • Ödevleri, yani çalışma sorularını, yapın.

  • Kendi notunuzu çıkarın. Çok daha öğretici olacaktır. Dönüp dönüp videolarda içerik aramaya çalışmazsınız.

  • Kursun toplam içerik süresinin uzama ihtimaline (canlı ders sayısının artması ya da kayıtlı derslerin eklenmesi) hazırlıklı olun.

Meraklılara... 🔍

C ve C++ ile çalışıyorsanız Necati Bey'in kurucusu olduğu Türkiye C++ Topluluğu'na muhakkak katılın. Necati Bey gibi alanında bilgili kişilerin olduğu iki adet Telegram grubunda (C++ Türkiye - Basic ve C++ Türkiye Topluluğu) kaliteli bilgi paylaşımları ve tartışmalar dönüyor. C ile ilgili sorularınızı Basic grubuna sorabilirsiniz. Grupların adresleri topluluğun sitesinde bulunuyor. Topluluğun bir de bir YouTube kanalı var. Zaman zaman canlı yayınlar ve çeşitli sunumlar yapılıyor.

Necati Ergin: GitHub, YouTube ve LinkedIn, Kaan Aslan: LinkedIn, CSD: LinkedIn takip edebilirsiniz.

Necati Bey, yakın zamanda Coşkun Taşdemir Bey'in canlı yayınına konuk olmuştu:

Yıllar önce Bilişim Sohbetleri kanalı tarafından, CSD ile yapılmış uzun bir program (ses kalitesi biraz kötü):


Buraya kadar okuduysanız tebrik ve teşekkür ederim. Amacım kursu almayı düşünen arkadaşlara faydalı olabilmekti, umarım öyle de olabilmişimdir.

Görüşmek üzere... 👋

Referanslar 🔗