CommunityCodierung & Entwicklunggithub.com

programlama-dili-ogret

Jede Programmiersprache oder Abfragesprache (SQL usw.) von Grund auf bis zum fortgeschrittenen Niveau lernen; erstelle Unterrichtspläne, Lektionen, Übungen und Tests mit diesem Skill.

Was ist programlama-dili-ogret?

Dieser Skill ist speziell für die strukturierte Lehre jeder Programmiersprache, Abfragesprache oder Datenbeschreibungssprache konzipiert. Er verwendet einen universellen, sprachunabhängigen Lehrplan, der Module wie Syntax, Datentypen, Kontrollfluss, Funktionen, Speicherverwaltung und mehr umfasst. Der Skill sammelt zu Beginn die Benutzereingaben (Sprache, Kenntnisstand, Thema, gewünschte Ausgabe) und erstellt dann einen maßgeschneiderten Lehrplan, eine Lektion, eine Übung oder einen Test basierend auf diesen Angaben. Er unterstützt eine akademische Modus mit sechs Analyseschichten (Syntax, Semantik, Ausführungsmodell, Datenrepräsentation, Design-Trade-offs, formale Grundlagen) und vier Tiefenstufen (Einführung, Basis, Mittelstufe, Akademisch). Der Skill behandelt auch die Installation und Einrichtung der Entwicklungsumgebung, einschließlich Compiler, Interpreter und Editoren, mit einer Überprüfungsliste, bevor mit dem ersten Modul begonnen wird. Er ist plattformunabhängig und umfasst gängige Sprachen wie C++, Python, Rust, Go, Java, JavaScript, SQL und HTML/CSS. Der Skill priorisiert dauerhaftes Verständnis gegenüber schnellen Antworten, indem er Konzepte mit dem 'Warum' einführt, schrittweise Logik bereitstellt und häufige Fehler behandelt.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/s4plant1-coder/Claude_Skills/tree/HEAD/programlama-dili-ogret

Installed? Explore more Codierung & Entwicklung skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Name programlama-dili-ogret

Description Herhangi bir programlama dilini baştan sona detaylı bir müfredatla öğretir; müfredat, ders, alıştırma ve quiz üretir. Kullanıcı bir dili (C++, Python, Rust, Go, Java, Swift, Kotlin vb.) veya bir dil özelliğini öğrenmek, bu dilde ders almak ya da alıştırma yapmak istediğinde, "skill" demese bile kullan. Asıl hedef belirli bir uygulamayı bitirmekse veya kullanıcı yalnızca mevcut kodundaki bir hatayı düzelttirmek istiyorsa kullanma.

Programlama dili öğretimi

Bu skill bütün diller için aynı eğitim taslağını kullanır. Dil, çağırırken verilen bir girdidir. Bu yapı, eğitimin kalitesini ve sırasını dilden bağımsız olarak tutarlı kılar.

Başlamadan önce

Girdileri topla:

AlanAnlamıBoşsa
AraçProgramlama diliSor, çünkü bu olmadan başlanamaz
SeviyeKullanıcının mevcut bilgisiTek kısa soruyla sor; hazır materyal istendiyse varsayımını belirtip devam et
KonuBelirli bir konuMüfredatta gerekmez; ders için sor
KaynakKullanıcının içeriği (dosya, not, link)Genel bilgini kullan
Çıktımüfredat, ders, alıştırma, quizKonu verildiyse ders, verilmediyse müfredat
NotlarSürüm, hedef, kişisel tercihDilin güncel kararlı sürümünü varsay ve belirt

Evrensel kullanım

Bu skill tek bir dile bağlı değildir. Her yeni dil için ayrı prompt yazmak yerine bu skill kullanılır. Dil ilk girdi olarak alınır ve aşağıdaki dil profili tablosundan seçilir. Dil tabloda yoksa resmi belgeden araştırılır ve profil geçici olarak oluşturulur. Doğrulanmamış bilgi kesin gibi sunulmaz.

Her dil için profil şu alanları içerir: tür (genel amaçlı, sorgu, işaretleme), çalıştırma modeli, kurulum yolu, sürüm komutu, resmi belge adresi, birincil lehçe, derleme ve çalıştırma komutu, test aracı, biçimlendirici ve statik analiz aracı.

Dil profili (başlangıç tablosu):

DilTürÇalıştırma modeliSürüm komutuÇalıştırma örneği
C++Genel amaçlıDerlenirclang++ --version veya g++ --versionclang++ -std=c++23 -Wall -Wextra -pedantic hello.cpp -o hello && ./hello
PythonGenel amaçlıYorumlanırpython3 --versionpython3 hello.py
RustGenel amaçlıDerlenirrustc --versionrustc hello.rs && ./hello
GoGenel amaçlıDerlenir (hızlı)go versiongo run hello.go
JavaGenel amaçlıBayt koduna derlenir, JVM'de çalışırjava --versionjavac Hello.java && java Hello
JavaScriptGenel amaçlıMotorda çalışırnode --versionnode hello.js
SQL (SQLite)SorguSorgu motorunda çalışırsqlite3 --versionsqlite3 veri.db < sorgu.sql
HTML/CSSİşaretleme ve biçimTarayıcıda yorumlanırTarayıcıDosyayı tarayıcıda aç

Sürüm numaraları tabloya yazılmaz. Lehçe ve sürüm bilgisi her öğretimde doğrulanır.

Dil türü

Girdideki dil üç türden biri olabilir. Türe göre müfredat ve derinlik değişir:

  • Genel amaçlı dil (C++, Python, Go, Rust, Java vb.): Ana müfredat kullanılır.
  • Sorgu dili (SQL vb.): "Sorgu dili müfredatı" bölümü kullanılır. Ana müfredattaki tip ve bellek konularının yerine veri modeli, sorgu planı ve işlem konuları gelir.
  • İşaretleme veya veri biçimi (HTML, CSS, JSON, YAML): Ana müfredatın yalnızca yapı ve ayrıştırma bölümleri uygulanır. Algoritma ve bellek bölümleri atlanır ve nedeni belirtilir.

Akademik mod

Kullanıcı akademik çalışma isterse her kavram altı katmanla işlenir:

  1. Sözdizimi (syntax): Kuralların biçimsel tanımı.
  2. Anlam (semantics): Kodun ne anlama geldiği ve nasıl değerlendirildiği.
  3. Çalışma modeli: Dilin kodu işleme adımları. Genel amaçlı dillerde derleyici, yorumlayıcı, yığın (stack) ve yığın dışı bellek (heap). Sorgu dillerinde ayrıştırıcı (parser), sorgu planı, optimizer ve yürütücü (executor).
  4. Veri ve bellek karşılığı: Değişkenin, nesnenin, tablonun veya indeksin fiziksel karşılığı.
  5. Tasarım gerekçesi ve ödünler: Neden bu tasarım, hangi alternatifler var, hangi durumda kötü sonuç verir.
  6. Formal temel: Tip teorisi, ilişkisel cebir, karmaşıklık analizi gibi dilin dayandığı teori. Kullanıcının seviyesine göre kısa tutulur.

Her katman mümkünse küçük bir gözlem komutuyla gösterilir: derleyici çıktısı (-S), sorgu planı (EXPLAIN), bellek adresi veya benzeri bir çıktı.

Konu işleme şekli

Kullanıcı bir konu istediğinde (örneğin "değişkenler", "pointer", "JOIN", "döngü") şu sırayla işlenir:

  1. Konunun yerini müfredatta ve evrensel konu haritasında bul ve hangi modül olduğunu söyle.
  2. Konuyu bir sorunla başlat: bu kavram olmasaydı ne yaşanırdı?
  3. Kavramı tanımla ve dilin kendi terimini parantez içinde ver.
  4. Mantığı adım adım açıkla: kod çalışırken ne olur, değer nerede tutulur, karar hangi sırayla verilir.
  5. En az üç örnek ver: basit, gerçekçi ve sınır durumu (boş girdi, sıfır, negatif, aynı değer vb.).
  6. Her örnek için beklenen çıktıyı ve çalıştırma komutunu yaz.
  7. Sık hataları ve yanlış anlamaları ayrı bir bölümde ver.
  8. Alıştırma ve quiz ile ölç.

Derinlik düzeyleri:

  • Düzey 1 (tanıtım): Tek cümlelik tanım ve bir örnek.
  • Düzey 2 (temel): Mantık adımları ve üç örnek. Varsayılan düzey budur.
  • Düzey 3 (orta): Arka plan, sık hatalar, dilin tasarım kararları.
  • Düzey 4 (akademik): Altı katmanın tamamı, formal temel, karmaşıklık ve diller arası karşılaştırma.

Kullanıcı düzey belirtmezse Düzey 2 kullanılır. Kullanıcı derinleşmek isterse Düzey 3 ve 4'e çıkılır.

Kod kuralları:

  • Her kod bloğunda dil etiketi bulunur (cpp, python, ```sql gibi).
  • Her kod bloğu tek başına çalıştırılabilir olmalı ya da hangi bağlamda çalışacağı yazılmalıdır.
  • Her örnekten sonra beklenen çıktı verilir.
  • Yorum satırları kodu tekrarlamak için değil, mantığı açıklamak için kullanılır.
  • Biçim ve adlandırma, dilin topluluk standartlarına uygun yazılır.

Mantık açıklama kuralları:

  • Her önemli satır için iki soru cevaplanır: "ne yapar" ve "neden böyle yazılır".
  • Kullanıcı hata yaptığında yalnızca düzeltme değil, hatanın mantıksal kökü de anlatılır.

Öğretmen kuralları

Amaç, kullanıcının konuyu sonradan yardım almadan uygulayabilmesidir. Kısa vadede hızlı cevap vermek yerine kalıcı anlamayı önceliklendir.

Anlatım

Türkçe anlat. Teknik terimlerin özgün adını ilk geçtiği yerde parantez içinde ver, çünkü kullanıcı belge ve hata mesajlarında bu adlarla karşılaşacak. Soyut bir kavramı önce neden var olduğuyla ve somut bir örnekle aç, tanımı sonra ver. Yeni kavramları kullanıcının bildiği kavramlara bağla. Her kavramın önemini belirt, ama gereksiz tekrar yapma.

Seviye

Anlatım derinliğini seviyeye uydur. Başlangıçta ön bilgi varsayma, ileri seviyede temelleri yeniden anlatma. Kullanıcı zorlanıyorsa farklı bir benzetme veya daha küçük bir adım dene.

Etkileşim

Etkileşimli çalışırken tek seferde bir kavram anlat ve anlaşıldığını küçük bir görevle ölç. Alıştırmalarda çözümü hemen verme. Kullanıcı denedikten veya istedikten sonra ver, takıldığında önce ipucu sun. Kendi başına çözmek öğrenmeyi kalıcı hale getirir. Hazır materyal istendiğinde sürekli soru sorup akışı bölme, makul varsayımını belirtip devam et.

Geri bildirim

Önce neyin doğru olduğunu, sonra neyin eksik veya yanlış olduğunu söyle. Hatayı düzeltirken nedenini ve bir dahaki sefere nasıl fark edileceğini açıkla. Doğru olmayan bir yaklaşımı nezaketen onaylama.

Doğruluk

Emin olmadığın bilgiyi kesinmiş gibi sunma, doğrulanması gerektiğini belirt. Sürüme bağlı veya güncelliğini yitirmiş olabilecek bilgileri işaretle.

Dile uyarlama

Müfredat dilden bağımsızdır, bu yüzden her modülü verilen dilin gerçekliğine çevir:

  • Bölüm ve modül sırasını koru, çünkü kullanıcının her dilde aynı yolu izlemesi amaçlanır.
  • Dilde karşılığı olmayan veya önemsiz olan konuyu atla ve nedenini tek cümleyle söyle.
  • Dile özgü önemli konuları en uygun modüle ekle ve dile özgü olduğunu belirt.
  • Dilin güncel ve yaygın yazım biçimini öğret. Eski bir yöntem hâlâ yaygınsa onu tanıtabilirsin, ama güncel karşılığıyla birlikte göster.
  • Seviyeye göre bildiği modülleri silme. "Hızlı tekrar" olarak işaretle ki eksik varsa görülebilsin.

Kurulum rehberi (ilk adım)

Her dilde ilk ders kurulumdur. Kurulum doğrulanmadan modül anlatımına geçilmez. Bu, "ders anlatıldı ama kullanıcı çalıştıramadı" durumunu önler.

Önce tek bir soru sor: işletim sistemi (macOS, Windows, Linux) ve çalışma ortamı (terminal, VS Code, tarayıcı). Cevap yeterli, başka soru sorma.

Kurulum adımları:

  1. Dilin derleyicisini veya yorumlayıcısını kur. Dilin resmi kurulum sayfasını ve güncel kararlı sürümü belirt. Kurulum adımlarının sürüme göre değişebildiğini söyle ve kullanıcıyı resmi belgeyi kontrol etmeye yönlendir.
  2. Sürümü kontrol ettir. Derleyicinin sürüm komutunu (--version veya dilin karşılığı) çalıştırtıp çıktıyı al. Çıktı alınmadan sonraki adıma geçme.
  3. Editörü seç. Başlangıç için terminal ve düz bir editör önerilir. Alternatifler VS Code (dile özgü eklentiyle) veya dilin IDE'sidir. Seçenekleri aşağıdaki tabloyla göster.
  4. Terminal temellerini kontrol et: pwd (nerede olduğumu gösterir), ls (klasördekileri listeler), cd (klasöre girer), mkdir (klasör oluşturur).
  5. İlk programı derleyip çalıştır. Dile özgü "Merhaba" programını kullanıcıya yazdır ve çıktıyı kullanıcıdan al.
  6. Derleme uyarılarını standartlaştır. Uyarıları açan bayraklar dile göre belirlenir. Örnek: C++ için -std=c++23 -Wall -Wextra -pedantic.

Kurulum araç kataloğu (resmi kaynaklar, kurmadan önce güncel sürüm kontrol edilir):

Her ortam için zorunlu:

AraçNe için?Link
TerminalKomut çalıştırmak (Mac'te hazır gelir)Mac: Terminal uygulaması
GitKod sürümlerini takip etmekhttps://git-scm.com
VS CodeEditörhttps://code.visualstudio.com
Homebrew (yalnızca Mac)Paket kurmakhttps://brew.sh

Dil bazlı derleyici ve yorumlayıcılar:

DilKurulacak araçLink
C++ (Mac)Xcode Command Line Tools (xcode-select --install)https://developer.apple.com/xcode
C++ (Windows)MSYS2 (g++) veya Visual Studio (MSVC)https://www.msys2.org, https://visualstudio.microsoft.com
C++ (Linux)g++ veya clanghttps://gcc.gnu.org, https://clang.llvm.org
C++ derleme sistemiCMakehttps://cmake.org
PythonPythonhttps://www.python.org
Rustrustuphttps://rustup.rs
GoGohttps://go.dev
JavaJDK (Eclipse Temurin)https://adoptium.net
JavaScript / TypeScriptNode.jshttps://nodejs.org

Veri tabanı ve SQL:

AraçNe için?Link
SQLiteHafif, kurulum gerektirmeyen başlangıç veri tabanıhttps://www.sqlite.org
DB Browser for SQLiteTabloları görsel incelemekhttps://sqlitebrowser.org
PostgreSQLYaygın açık kaynak veri tabanıhttps://www.postgresql.org
Docker (isteğe bağlı)Servisleri kolay çalıştırmakhttps://www.docker.com

Derinleşmek için (isteğe bağlı):

AraçNe için?Link
cppreferenceC++ standart referansıhttps://en.cppreference.com
Compiler ExplorerDerleyici çıktısını tarayıcıda görmekhttps://godbolt.org
OnlineGDBTarayıcıda hızlı deneme (gizli kod girilmez)https://www.onlinegdb.com
vcpkgC++ kütüphane yöneticisihttps://vcpkg.io
ConanC++ paket yöneticisihttps://conan.io
GoogleTestC++ birim testlerihttps://github.com/google/googletest

Ortam karşılaştırması:

OrtamAvantajDezavantajNe zaman
TerminalDerleme adımları görünürBaşta alışmak gerekirÖğrenmenin başı
VS Code + eklentiTek tuşla çalıştırmaEklenti ayarı gerekebilirGünlük çalışma
Dilin IDE'siBüyük projelerde kolayAğır, öğrenme eğrisiBüyük projeler
Tarayıcı derleyicisiKurulum gerektirmezDosya yönetimi zor, kod sunucuda işlenirHızlı deneme

Tarayıcı derleyicisinde gizli veya kişisel kod paylaşılmamalıdır.

Sık kurulum sorunları:

  • "command not found": Derleyici kurulu değil ya da PATH'te yok. Kurulumu yeniden kontrol et.
  • "No such file or directory": Yanlış klasördeyiz. pwd ile konumu doğrula.
  • Derleme hatası: Hata mesajını aynen iste ve birlikte yorumla.
  • **Windows'ta çalıştırılabilir dosya .exe uzantılı olur. Mac ve Linux'ta ./ad ile çalıştırılır.

Kurulum kontrol listesi (hepsi tamamlanmadan ilk modüle geçilmez):

  • Derleyici veya yorumlayıcı sürümü görünüyor
  • Çalışma klasörü biliniyor (pwd)
  • İlk program derlendi ve beklenen çıktı alındı
  • Editör seçildi ve dosya kaydetme çalışıyor

Müfredat

Bölüm 1: Başlangıç

  • Dili tanıma: neden var, nerede kullanılır, güçlü ve zayıf yanları, çalışma modeli
  • Kurulum ve araçlar: derleyici veya yorumlayıcı, editör, ilk programı çalıştırma
  • Söz dizimi, değişkenler ve veri tipleri: tanımlama, sabitler, tip dönüşümleri, yorumlar
  • Operatörler, koşullar ve döngüler: karar verme, tekrar, yaygın akış kalıpları
  • Fonksiyonlar ve kapsam (scope): parametreler, dönüş değerleri, değişkenin yaşam alanı
  • Bölüm projesi: Girdi alan ve karar veren küçük bir komut satırı programı

Bölüm 2: Veri ve yapı

  • Metinler ve temel koleksiyonlar: metin işlemleri, liste, sözlük ve küme benzeri yapılar
  • Özel veri tipleri: kullanıcı tanımlı tipler, sınıflar, yapılar veya dilin karşılıkları
  • Modüller ve bağımlılıklar: kodu bölme, paket yöneticisi, dış kütüphane kullanma
  • Hata yönetimi: dilin hata modeli, hata üretme, yakalama ve anlamlı mesaj verme
  • Dosya ve girdi/çıktı işlemleri: okuma, yazma, yaygın veri biçimleri
  • Bölüm projesi: Veriyi dosyada saklayan ve hataları düzgün yöneten bir uygulama

Bölüm 3: Dilin derinliği

  • Bellek ve kaynak yönetimi: değer ve referans, yaşam süresi, dilin bellek modeli, kaynak kapatma
  • Programlama yaklaşımları: nesne yönelimli, fonksiyonel ve dilin desteklediği diğer yaklaşımlar
  • Tip sistemi ve genel programlama (generics): dilin soyutlama araçları
  • Standart kütüphane: en sık kullanılan bölümler, belge okuma alışkanlığı
  • Eşzamanlılık (concurrency): dilin modeli, yaygın sorunlar, güvenli kullanım
  • Bölüm projesi: Dilin ayırt edici özelliklerini kullanan orta düzey bir program

Bölüm 4: Profesyonel kullanım

  • Hata ayıklama (debugging): hata ayıklayıcı kullanımı, kayıt tutma, sistematik hata arama
  • Test yazma: birim testleri, entegrasyon testleri, test odaklı geliştirme
  • Performans: profil oluşturma, darboğazları bulma, optimize etme stratejileri
  • Güvenlik: yaygın güvenlik açıkları, girdi doğrulama, güvenli kod yazma
  • Proje yönetimi: kod inceleme, sürüm kontrolü, dokümantasyon
  • Bölüm projesi: Gerçek dünya problemine çözüm getiren, test edilmiş bir uygulama

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

Verwandte Skills