programlama-dili-ogret

Herhangi bir programlama dilini veya sorgu dilini (SQL vb.) sıfırdan ileri seviyeye öğrenmek, bu dillerde ders, kavram anlatımı, örnek, alıştırma veya quiz istendiğinde bu skille başvurulması gerekiyor. Dil ne olursa olsun aynı eğitim taslağı ve kalite kuralları kullanılır.

O que é programlama-dili-ogret?

Bu skill, kullanıcıya herhangi bir programlama dilini, sorgu dilini veya işaretleme dilini sıfırdan ileri seviyeye kadar öğretmek için tasarlanmış evrensel bir eğitim aracıdır. C++, Python, Rust, Go, Java, SQL, HTML gibi çok çeşitli dilleri destekler ve bağımsız bir eğitim taslağı kullanarak tüm dillerde tutarlı bir öğrenme deneyimi sunar. Skill, kullanıcının bilgi seviyesini, öğrenmek istediği dili ve konuyu alarak müfredat, ders, alıştırma ve quiz oluşturur. Akademik modda altı katmanlı derinlemesine anlatım sunar (sözdizimi, anlam, çalışma modeli, veri/bellek karşılığı, tasarım gerekçesi/ödünler, formal temel). Ayrıca, dil profili tablosu ve kurulum rehberi ile kullanıcının ortamını hazırlamasına yardımcı olur, kod kurallarına uyar ve etkileşimli öğretim ilkelerini benimser.

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

Installed? Explore more Programação e Desenvolvimento skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

İsim

programlama-dili-ogret

Açıklama

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, dilin test araçları
  • Performans ve profil çıkarma (profiling): darboğazları bulma, optimizasyon teknikleri
  • Güvenlik temelleri: giriş doğrulama, bellek güvenliği, yaygın güvenlik açıkları
  • Dağıtım (deployment): paketleme, bağımlılıkları yönetme, CI/CD temelleri
  • Bölüm projesi: Tam bir uygulamanın geliştirme, test ve dağıtım döngüsünü içeren bitirme projesi

Individual skills in this repo

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

Habilidades Relacionadas