İçeriğe geç / Skip to content / Zum Inhalt

.NET Uzmanı Öğretmen Seçimi: C# ve ASP.NET Eğitimi Rehberi

Ahmet Balaman

Son güncelleme:

6 dk okuma

.NETC# Dersi.NET ÖğrenmekASP.NET CoreÖzel DersYol Haritası
.NET Uzmanı Öğretmen Seçimi: C# ve ASP.NET Eğitimi Rehberi

".NET öğrenmek istiyorum" cümlesi tek başına pek bir şey anlatmaz. C# ile üniversitedeki nesne yönelimli programlama dersini geçmek, ASP.NET Core ile web API yazmak, masaüstü uygulaması geliştirmek ve Unity'de oyun yapmak aynı dilin çok farklı kullanımlarıdır. İyi bir öğretmen seçimi, önce bunlardan hangisini istediğinizi bilmenizle başlar. Bu yazıda hedefe göre nasıl bir öğretmen ya da kurs aramanız gerektiğini, para ödemeden önce neleri kontrol edebileceğinizi ve C#'ı hangi sırayla öğrenmenin işe yaradığını anlatıyorum.

Hedefiniz Öğretmen Tipini Belirler

Programlamaya C# ile yeni başlıyorsanız ilk aylarınız konsol uygulamalarıyla geçmelidir. Değişkenler, koşullar, döngüler, metotlar ve koleksiyonlar oturmadan veritabanına ya da web'e geçmek, her şeyin aynı anda anlaşılmaz görünmesine yol açar. Bu aşamada "kurumsal mimari" anlatan değil, basit bir programı satır satır takip etmeyi öğreten biri gerekir.

Üniversite öğrencisiyseniz ve dersiniz C# ile nesne yönelimli programlama ise ihtiyacınız çok daha dardır: sınıf, kalıtım, arayüz, erişim belirleyiciler ve genellikle kâğıt üzerinde kod takibi. Sınav soruları çoğunlukla "bu kodun çıktısı nedir?" biçimindedir. Size ASP.NET anlatmaya çalışan bir öğretmen bu dönem için yanlış adrestir. Hocanızın önceki yıllarda sorduğu sorular üzerinden çalışmayı kabul eden biri doğru adrestir.

Java, Python ya da JavaScript gibi başka bir dilden geliyorsanız sözdizimi sizi zorlamaz. Zaman ayırmanız gereken yerler değer ve referans tipleri, LINQ, async/await, dependency injection ve ASP.NET Core'un istek hattıdır. Bu profilde sıfırdan başlayan bir kurs sizi sıkar. Kendi yazdığınız küçük bir API üzerinden yapılan kod incelemeleri daha çok şey öğretir.

Bir de isim karmaşası var ve öğretmen seçimini doğrudan etkiliyor. Yalnızca Windows'ta çalışan eski .NET Framework ile platformdan bağımsız, güncel .NET aynı şey değildir; ikisinin ayrımı Microsoft'un .NET'e giriş sayfasında net biçimde anlatılıyor. Yeni öğrenen biri güncel .NET ile başlamalıdır. Eski Framework'ü öğrenmeniz için tek geçerli neden, bakımını yapacağınız var olan bir projenin onu kullanmasıdır.

Öğretmeni Para Ödemeden Nasıl Sınarsınız?

Deneme dersi ya da kısa bir görüşme isteyin ve şunları sorun:

  • Hangi .NET sürüm ailesiyle çalışıyoruz ve hangi editörü kullanacağız?
  • İlk iki ayın konu listesi yazılı olarak var mı?
  • Entity Framework'e geçmeden önce SQL temellerine bakacak mıyız?
  • Ödevlerime nasıl geri bildirim vereceksiniz, kodumu birlikte okuyacak mıyız?
  • Yayında bir projeniz, açık kaynak kodunuz ya da yazdığınız teknik içerik var mı?

Küçük bir bilgi yoklaması da yapabilirsiniz. Öğretmenden interface ile abstract class arasındaki farkı ve hangisini ne zaman seçtiğini anlatmasını isteyin. Ezberden tanım okuyan biriyle, "şu senaryoda şunu seçerim çünkü..." diyen biri arasındaki fark hemen anlaşılır. İkinci bir soru: await yazdığınızda iş parçacığına ne olur? Cevabın kusursuz olması gerekmez. Anlaşılır olması ve bir örneğe dayanması gerekir.

İyi bir ilk derste kodu siz yazarsınız, öğretmen hata ayıklayıcıyı açıp bir değişkenin değerini adım adım izlemeyi gösterir ve ders sonunda elinizde çalışan küçük bir program ile bir sonraki derse kadar yapılacak net bir görev olur. Breakpoint koymayı hiç göstermeyen bir C# dersi eksiktir, çünkü Visual Studio'nun en güçlü yanı hata ayıklama araçlarıdır.

Öğretmenin GitHub hesabına bakarken şunlara dikkat edin: projeler güncel .NET ile mi yazılmış, test projesi var mı, commit mesajları bir şey anlatıyor mu? Blog yazısı ya da videosu varsa anlatım tarzını önceden görürsünüz. Kurumsal projelerde çalışmış biri kodunu paylaşamayabilir, bu normaldir. O durumda deneme dersinin ağırlığı artar.

Temkinli olmanızı gerektiren işaretler:

  • "3 ayda senior developer" gibi süre ve unvan vaatleri, iş garantisi
  • Başlangıç müfredatında microservice, CQRS gibi konuların yer alması
  • Yalnızca sürükle-bırak form tasarımı yapılması, sınıf tasarımına hiç girilmemesi
  • Yazılı bir konu sırasının olmaması, dersin slayttan ibaret olması
  • Kod incelemesi yapılmaması, ödeve geri bildirim verilmemesi
  • Ödevinizi ya da projenizi sizin yerinize yazma teklifi

Hangi Öğrenme Biçimi Ne Zaman Mantıklı?

Microsoft Learn'ün .NET eğitim merkezi ücretsizdir, günceldir ve C# ile ASP.NET Core için adım adım modüller sunar. Kendi kendine öğrenmeye buradan başlamak, herhangi bir ödeme yapmadan önce konuyu sevip sevmediğinizi anlamanın en ucuz yoludur. Eksik kalan kısım geri bildirimdir: çalışan ama bakımı zor kod yazdığınızı size kimse söylemez.

Video kurslar düzenli bir sıra ve düşük maliyet sunar. Dikkat etmeniz gereken kursun tarihidir; .NET her yıl yeni sürüm çıkarır ve birkaç yıl önceki proje şablonları bugünkünden farklı görünür. Bootcamp'ler tam zamanlı tempo ve grup ortamı sağlar, karşılığında pahalıdır ve hızı siz belirlemezsiniz.

Birebir ders saat başına en pahalı seçenektir ve her durumda karşılığını vermez. Henüz ücretsiz kaynaklarla bir hafta bile denemediyseniz erken davranıyorsunuz. Dersler arasında kod yazmaya vakit ayıramayacaksanız para boşa gider. Deneyimli bir geliştiriciyseniz haftalık ders yerine ara sıra yapılan bir kod inceleme saati yeterlidir. Birebir dersin gerçekten fark yarattığı yerler bellidir: sınava kısa süre kalmış ve eksikleri hızla kapatması gereken öğrenci, aynı yerde haftalardır takılan kişi ve yazdığı koda dışarıdan bir göz isteyen geliştirici.

C# ve .NET İçin Gerçekçi Öğrenme Sırası

  1. C# temelleri: tipler, koşullar, döngüler, metotlar, diziler ve koleksiyonlar. Hepsi konsol uygulamasıyla.
  2. Nesne yönelimli düşünme. Neden OOP sorusuyla başlayıp class ve object, constructor ve erişim belirleyiciler ile devam edin.
  3. Kalıtım ve polymorphism. Üniversite sınavlarının en çok soru çıkan bölümü genellikle burasıdır.
  4. Interface ve abstract class farkı. Dependency injection'ı anlamanın ön koşuludur.
  5. Generics, LINQ ve istisna yönetimi.
  6. async/await ve Task mantığı.
  7. SQL temelleri, ardından Entity Framework Core. Sıra önemlidir; SQL bilmeden ORM kullanan kişi yavaş sorguyu fark edemez.
  8. İlk web servisi. ASP.NET Core Minimal API'ye başlangıç yazısı en sade girişi gösteriyor.
  9. Dependency injection, yapılandırma, loglama ve birim testleri.
  10. Yayınlama: uygulamayı bir sunucuya ya da buluta çıkarmak.

Üniversite dersi için çalışıyorsanız ilk dört adım yeterlidir. Web geliştirici olmak istiyorsanız listenin tamamı gerekir ve beşinci adımdan sonrasını kendi küçük projenizle birlikte yürütmelisiniz.

Dersten Alacağınız Verimi Artırmak

Derse "anlamadım" diye değil, belirli bir soruyla gelin: hangi satır, hangi hata mesajı, ne bekliyordunuz, ne oldu. Hata mesajını ve stack trace'i kesmeden getirin. Ders konularının yanında kendinize ait küçük bir proje yürütün. Bir kütüphane takip programı ya da basit bir yapılacaklar API'si yeterlidir. Her yeni konuyu o projeye eklemek, konuyu gerçekten kavrayıp kavramadığınızı ortaya çıkarır.

Sınava hazırlanıyorsanız önceki yılların sorularını ilk derste öğretmenle paylaşın, ders planı onlara göre şekillensin. Kodunuzu Git'te tutun ki iki ders arasındaki değişiklik görülebilsin. Çözümü öğretmenden istemeden önce kendiniz en az bir deneme yapın. Yanlış denemeniz üzerinden yapılan açıklama, hazır çözümden daha kalıcıdır.

Verdiğim Dersler

C# ve .NET üzerine birebir, çevrim içi ders veriyorum. Ders ve yazılım hizmetlerinin ayrıntıları hizmetler sayfasında. Yukarıdaki soruları bana da sorabilirsiniz.

Sık Sorulan Sorular

C# öğrenmek için Windows şart mı?

Hayır. Güncel .NET Windows, macOS ve Linux'ta çalışır; macOS ve Linux'ta VS Code ya da Rider ile geliştirme yapabilirsiniz. Windows'a özel masaüstü teknolojileri (WinForms, WPF) için ise Windows gerekir.

.NET Framework mü, yoksa güncel .NET mi öğrenmeliyim?

Yeni başlıyorsanız güncel .NET'i öğrenin. .NET Framework'e yalnızca bakımını yapacağınız var olan bir proje onu kullanıyorsa ihtiyaç duyarsınız, temeller oturduktan sonra geçiş de zor değildir.

Haftada kaç saat ders yeterli?

Çoğu kişi için haftada bir ya da iki saat yeterlidir. Asıl ilerleme dersler arasında yazdığınız kodla olur. Sınava az kaldıysa geçici olarak sıklığı artırmak mantıklıdır.

Üniversitedeki OOP dersi için özel ders almaya değer mi?

Dersi takip edebiliyor ve ödevleri kendiniz yapabiliyorsanız gerekmez. Temel kavramlarda boşluk varsa ve sınava kısa süre kaldıysa, sınav sorularına odaklı birkaç ders eksikleri tek başınıza çalışmaktan daha hızlı kapatır.

Yorumlar