İçeriğe geç
← Yazılar

7 Ekim 2026 · 8 dk okuma

IHK 2. Sınav: Nasıl çalıştım, sunumda neler soruldu?

Merhabalar, IHK 1. Sınav yazısında 2. sınav için de kendime not alacağımı söylemiştim. Aralık 2024'te Teil 2'ye de girdim ve ortalama 2 ile geçtim. Bu yazıda Teil 2'ye nasıl çalıştığımı ve sunumdan sonraki Fachgespräch'te sorulan soruları, verdiğim cevaplarla birlikte anlatıyorum.

Nasıl çalıştım

Teil 2'nin 1. sınavı: Teil 1'den farklı bir taktik uygulamadım. Geçmiş soruları çözdüm, çıkan ve çıkması muhtemel konuları kafamda toparladım ve bunlarla ilgili OneNote notlarımı tekrar ettim. Bir de Teil 1'den daha derine inilen Anwendungsentwickler1 Fachinformatiker für Anwendungsentwicklung: Fachinformatiker eğitiminin yazılım geliştirme dalı. konularına baktım.

Teil 2'nin 2. sınavı: Özellikle pseudocode ve algoritma konularında çıkmış sorulara uzun zaman ayırdım, derste hoca ile üzerlerinden geçtim. Bazı klasik algoritmaları, sıralama ve arama algoritmalarının en basitlerini genel manada ezberledim; mesela "bu algoritmada iç içe iki tane for döngüsü var" gibi. Ama bu algoritmaların mantığını da kavramaya çalıştım, derste hocayla beraber programlamıştık zaten.

SQL: Bu konuya ağırlık verdim, çünkü algoritma ve SQL bence Teil 2 için kesinlikle öğrenilmesi gereken, en çok puan getiren konular. Sınavda çıkan soruların veri bankasını yapay zekâ ile birebir kopyaladım ve soruda istenen sonucu alabilmek için bu veri bankasında kendim SQL sorguları yazdım. İstediğim sonuç çıkmayınca, çıkan sonuca bakarak nerede yanlış mantık kurduğumu bulmaya ve daha iyi bir mantık kurmaya çalıştım. Yani sadece cevabı değil, çalışma sistemini anlamaya çalıştım.

Nesne yönelimli programlama (OOP): Bence Teil 2'nin olmazsa olmazlarından. Ben burada biraz zayıftım ve puanların çoğunu bu kısımdan kaybettim. Teorik olarak çalışmıştım ama stajda ve bence derste de bu konularda çok fazla programlama yapılmadığı için mantığını tam oturtamamıştım. Sunumdan önce konuyu tam olarak anladım ve sunumda da oradan çok soru geldi; o soruları aşağıda yazdım.

WiSo:2 WiSo (Wirtschafts- und Sozialkunde): Teil 2'deki ekonomi ve sosyal bilgiler sınavı. Sadece çıkmış sorulara baktım, zaten WiSo notum çok iyi değil 😁

Kısaca aklıma gelen çalışma yöntemleri bunlar.

Projem

Projem bir Mitarbeiterportal'dı (çalışan portalı), daha doğrusu Staj Tecrübelerim yazısında bahsettiğim hastalık bildirim sistemi. Önceden hastalık bildirimleri kâğıt üzerinde yürüyordu. Çıktı hâlâ gerekiyor, bu yüzden portal da bir çıktı üretiyor ama bu sefer PDF olarak: Firma formu elle doldurmak zorunda kalmıyor, PDF'i indirip gönderilmesi gereken yere e-postayla gönderiyor.

Projeyi Laravel ve FilamentPHP ile yazdım. Filament'i hızlıca kurabilmek için ve bir deneme olsun diye seçtim. Bu deneme sonradan çok işime yaradı: Firmada çalışmaya başladığımda Filament'i bilen tek kişi bendim ve Filament ile yapılacak müşteri projeleri hep bana verildi, hâlâ da veriliyor.

PDF'ler için önce dompdf'i denedim ama Tailwind CSS ile çalışmadı. Bu yüzden spatie/browsershot kullandım. Browsershot sayfayı arka planda gerçek bir tarayıcıda (headless Chrome) açıp PDF'e çeviriyor, böylece Tailwind ile tasarladığım sayfa PDF'te de birebir aynı görünüyor.

Proje raporu (Projektdokumentation) için Stefan Macke'nin rapor şablonunu3 „Vorlage zur Projektdokumentation der IT-Berufe (Basic)“: Word ve LibreOffice için ücretli bir şablon. Raporun bütün bölüm yapısı, örnek içerikler ve otomatik içindekiler hazır geliyor. kullandım, kesinlikle tavsiye ederim. Aynı şablonun ücretsiz bir LaTeX sürümü de var, ama LaTeX öğrenmek için vakit kaybetmek istemediğim için ben ücretli sürümü seçtim.

Sunumda canlı demo yapmadım, portalın ekran görüntülerini kullandım. İsteyen olursa sunumumu gönderebilirim, yorumlarda yazmanız yeterli.

Portal bir yıldır kullanılıyor ve yeni özellikler eklenerek geliştirilmeye devam ediyor.

Sunumda sorulan sorular

Sunumdan, aşağıda göreceğiniz yanlışlarıma ve eksiklerime rağmen 96 puan aldım4 IHK'nın puan tablosunda 92 ile 100 puan arası 1, yani „sehr gut“ demek..

Sunumdan sonraki Fachgespräch'te5 Teil 2'de proje raporundan sonra en fazla 15 dakikalık bir sunum (Projektpräsentation) ve ardından en fazla 15 dakikalık bir Fachgespräch, yani Prüfer'lerle uzmanlık sohbeti var. sorulan soruları ve verdiğim cevapları hatırladığım kadarıyla yazdım. Cevaplarımın içeriğine dokunmadım. Eksik ya da yanlış kalan yerlerin altına doğrusunu ekledim.

Soruları okurken fark edeceksiniz: Prüfer'ler bir cevapta eksik varsa sorularına oradan devam ediyor ve eksiğini kapatman için sana fırsat veriyor. Netzplan'dan sonra kritik yolu, Kapselung'dan sonra da private, protected ve public'i sormaları bu yüzden. Yani bir soru eksik kaldı diye moralini bozma, büyük ihtimalle ikinci bir şansın gelecek.

Proje yönetimi

Was ist ein Projekt?

Cevabım: „Ein Projekt ist ein einmaliges, zeitlich und durch Ressourcen begrenztes, komplexes Vorhaben. Es hat einen festen Anfang und ein festes Ende.“

Eksik kalan: Projenin net bir hedefi (Zielvorgabe) olduğunu da söylemek gerekirdi. DIN 69901'deki tanımın özü bu: hedef, zaman, para ve personel sınırları ve projeye özel organizasyon gibi koşulların bir defaya özgü olması.

Wie kann man den Zeitablauf in einem Projekt darstellen? Welche Diagramme gibt es dafür?

Cevabım: „Mit einem Gantt-Diagramm und einem Netzplan.“

Erklären Sie bitte den Netzplan.

Cevabım: „Ein Netzplan besteht aus Tabellen, die miteinander verbunden sind. Diese Tabellen zeigen den frühesten und spätesten Anfangszeitpunkt, den frühesten und spätesten Endzeitpunkt sowie die Pufferzeiten.“

Eksik kalan: O kutuların adı „Knoten“ (Vorgangsknoten). Her biri bir işi (Vorgang) gösteriyor ve içinde işin numarası, adı ve süresi (Dauer) de var. Asıl önemli olan oklar: hangi işin hangisi bittikten sonra başlayabileceğini, yani bağımlılıkları (Abhängigkeiten) gösteriyorlar. Kısaltmaları da bilmek iyi olur: FAZ, FEZ, SAZ, SEZ, GP (Gesamtpuffer) ve FP (freier Puffer).

Wofür ist ein Netzplan am besten geeignet?

Cevabım: „Um parallele Phasen zu erkennen.“ Prüfer'ler bunun tam doğru olmadığını söyledi.

Doğrusu: Netzplan en çok işler arasındaki bağımlılıkları göstermek ve bunlardan kritik yolu (kritischer Pfad), puffer sürelerini ve projenin en erken bitiş tarihini hesaplamak için uygun. Paralel işleri bir zaman çizelgesinde görmek için Gantt diyagramı daha uygun. Zaten bir sonraki soru da beni kritik yola yönlendirdi.

Haben Sie schon vom kritischen Pfad gehört?

Cevabım: „Ach ja, der kritische Pfad ist der Pfad, der keine Pufferzeit hat. Wenn sich ein Vorgang auf diesem Pfad verzögert, verlängert sich das ganze Projekt und es wird nicht rechtzeitig fertig.“

Bir de şunu eklemek iyi olurdu: Kritik yol, başlangıçtan bitişe en uzun yol ve projenin toplam süresini o belirliyor.

PHP ve programlama dilleri

Welche Programmiersprache haben Sie in Ihrem Projekt verwendet?

Cevabım: „PHP.“

Was ist PHP?

Cevabım: „PHP ist eine serverseitige Skriptsprache.“

Was ist eine Skriptsprache?

Cevabım: „Skriptsprachen sind gut für Automatisierungen geeignet und meistens auf einen Bereich spezialisiert: PHP zum Beispiel auf Webserver, JavaScript, das auch eine Skriptsprache ist, auf Webbrowser und die Shell auf Betriebssysteme. Skriptsprachen sind meistens interpretierte Sprachen.“

Eksik kalan: Asıl tanım sondaki cümle. Skriptsprache'lerde kod önceden derlenmiyor, çalışırken bir Interpreter tarafından çalıştırılıyor. Bu diller genelde dinamik tipli ve hızlı yazılabiliyor. "Bir alana özel" kısmı ise zayıf bir ayrım: JavaScript Node.js ile sunucuda, PHP de komut satırında çalışabiliyor.

Was ist der Unterschied zwischen einem Interpreter und einem Compiler?

Cevabım: „Ein Compiler übersetzt den gesamten Quellcode in Maschinencode. Ein Interpreter übersetzt ihn Zeile für Zeile. Der Interpreter hat gegenüber dem Compiler Vor- und Nachteile: Ein Nachteil ist, dass er langsamer ist, ein Vorteil ist zum Beispiel, dass die Fehlererkennung einfacher ist.“

Eksik kalan: Compiler kodu program çalışmadan önce bir kere çeviriyor. Interpreter ise çalışma anında satır satır çevirip hemen çalıştırıyor. "Hata bulmak daha kolay" avantajı, Prüfer'lerin de dediği gibi geçerli değil. Hatta Compiler birçok hatayı (yazım ve tip hataları) program çalışmadan önce yakalıyor; Interpreter ise hatayı ancak o satıra gelince fark ediyor.

Die Fehlererkennung ist für beide schwer. Welche anderen Vorteile hat ein Interpreter?

Cevabım: Önce aklıma bir şey gelmedi. Prüfer'lerden biri „Für Java gilt es aber nicht“ diye ipucu verdi, ben de şöyle dedim: „Interpretierte Programme sind plattformunabhängig. Aber ja, wie Sie gesagt haben, für Java gilt das nicht.“

Bir de şunlar sayılabilirdi: Derleme adımı olmadığı için değişiklik hemen denenebiliyor, geliştirme hızlı ilerliyor. Kod etkileşimli olarak da (örneğin php -a ile) satır satır denenebiliyor.

Warum ist Java trotzdem plattformunabhängig?

Cevabım: „Java hat eine virtuelle Maschine.“

Eksik kalan: Doğru ama kısa. Java kodu önce Bytecode'a derleniyor, bu Bytecode'u da her platformdaki Java Virtual Machine (JVM) çalıştırıyor. Böylece aynı Bytecode, JVM'i olan her sistemde çalışıyor: „Write once, run anywhere“.

Nesne yönelimli programlama (OOP)

Welche Programmierparadigmen kennen Sie?

Cevabım: „Prozedurale und objektorientierte Programmierung.“

Bir de şunlar sayılabilirdi: fonksiyonel programlama ve deklaratif programlama (örneğin SQL). Üstteki büyük ayrım da imperatif ve deklaratif.

Welche Paradigmen unterstützt PHP?

Cevabım: „PHP ist prozedural, aber man kann es auch objektorientiert verwenden.“

Was ist OOP?

Cevabım: „In der OOP lösen wir ein Problem, indem wir es in Objekte aufteilen. Es gibt Klassen, die als Bauplan oder Vorlage für diese Objekte dienen. Die OOP hat drei Merkmale, manche sagen auch vier: Vererbung, Polymorphie und Kapselung. Manche zählen die Abstraktion als viertes Merkmal dazu.“

Erklären Sie bitte diese Merkmale.

Cevabım: Hepsini kısaca açıkladım ama Kapselung'da erişim belirleyicilerinden (private, protected, public) bahsetmedim.

Sie haben bei der Kapselung etwas vergessen. Was könnte das sein?

Cevabım: „Ja, ich habe private, protected und public vergessen.“ Sonra bunları açıkladım.

Kısaca: private sadece sınıfın içinden, protected sınıfın ve ondan türeyen alt sınıfların içinden, public her yerden erişilebilir.

Wenn ein Attribut als protected gekennzeichnet ist, kann man es dann nicht ändern?

Cevabım: „Doch, mit einem Setter kann man es ändern.“

Eksik kalan: protected bir özellik, sınıfın kendi içinde ve alt sınıflarda doğrudan değiştirilebiliyor. Sadece dışarıdan doğrudan erişilemiyor; dışarıdan değiştirmek için public bir metot, yani bir Setter gerekiyor.

Warum brauchen wir in dieser Situation einen Setter?

Cevabım: Burada süre doldu :D

Doğrusu: Setter, değişikliği sınıfın kontrolüne bırakıyor. Yeni değer kaydedilmeden önce kontrol edilebiliyor, böylece nesne hiçbir zaman geçersiz bir duruma düşmüyor. Sınıfın içi sonradan değişse bile dışarıya açılan arayüz aynı kalıyor. Bir değerin dışarıdan hiç değiştirilmemesini istiyorsak da Setter yazmıyoruz. Kapselung'un asıl amacı bu:

php
class Produkt
{
    protected float $preis;

    public function setPreis(float $preis): void
    {
        if ($preis < 0) {
            throw new InvalidArgumentException('Der Preis darf nicht negativ sein.');
        }

        $this->preis = $preis;
    }
}

Küçük bir ipucu

Bir şeyi hatırlayamadığında Prüfer'ler yardım etmek için cevabı kendileri söyleyebiliyor. O an bilmediğini belli etme. „Ach ja, genau, so war das!“ de ve konuyla ilgili bildiğin bir şey varsa hemen ekle. Bilmiyorsan da sadece „Ach ja, stimmt!“ demen yeterli, sanki hatırlamışsın gibi :) Java sorusunda ben de böyle yaptım: Prüfer ipucu verince „Aber ja, wie Sie gesagt haben…“ diyerek devam ettim.

Fachgespräch'te Almanca konuşmak seni zorluyorsa IT-Almancası Atölyesi'ne bir göz at.

Teil 2 ile ilgili aklıma gelenler şimdilik bu kadar. Sınava girecek herkese şimdiden başarılar dilerim, sorunuz olursa yorumlarda yazabilirsiniz.

Kadir
7 Ekim 2026

Kenara düşülen notlar

yorumlar · henüz yok

Yorum yazmak için giriş yap ya da kayıt ol.

İlgili yazılar

  1. 05.03 IHK 1. Sınav 5 dk
  2. 22.12 Staj Tecrübelerim 2 dk
  3. 07.01 Yolda kaldım: Schutzbrief neden önemli? 2 dk