<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="tr"><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://cnklc.me/feed.xml" rel="self" type="application/atom+xml" /><link href="https://cnklc.me/" rel="alternate" type="text/html" hreflang="tr" /><updated>2026-06-13T17:19:26+03:00</updated><id>https://cnklc.me/feed.xml</id><title type="html">Can KILIÇ</title><subtitle>Can KILIÇ — Senior .NET Developer. 10 yıldır C#, .NET ve PostgreSQL ile uçtan uca yazılım geliştiriyorum; yapay zeka ve otomasyon çözümlerine odaklanıyorum. Geliştirdiğim projeler ve blog yazıları.</subtitle><author><name>Can KILIÇ</name><email>cnklc@ymail.com</email></author><entry xml:lang="en"><title type="html">What Is a Coding Agent?</title><link href="https://cnklc.me/en/blog/coding-agent-nedir/" rel="alternate" type="text/html" title="What Is a Coding Agent?" /><published>2026-06-13T00:00:00+03:00</published><updated>2026-06-13T00:00:00+03:00</updated><id>https://cnklc.me/en/blog/coding-agent-nedir.en</id><content type="html" xml:base="https://cnklc.me/en/blog/coding-agent-nedir/"><![CDATA[<blockquote>
  <p>The second stop in the “Claude Code Journey” series. Last time we looked at what
<a href="/en/blog/vibe-coding-nedir/">vibe coding</a> is; now we turn
to the thing that makes it possible — the coding agent.</p>
</blockquote>

<p>In the last post I talked about vibe coding: describing intent and leaving the
code to AI. But what exactly is on that “AI” side? The answer: a <strong>coding agent</strong>.</p>

<h2 id="autocomplete-is-not-an-agent">Autocomplete is not an agent</h2>

<p>Most of us first met AI-assisted coding through autocomplete tools. You start
typing and the tool suggests the rest of the line. Useful, but passive: it only
looks at where your cursor is and makes a guess based on the immediate context.
It doesn’t <em>do</em> anything for you — it just predicts the next keystroke.</p>

<p>A coding agent is a completely different category. You give it not a line but a
<strong>goal</strong>: “write tests for the auth module, run them, and fix the failures.”
The agent then plans and carries out its own steps to reach that goal.</p>

<h2 id="what-makes-a-tool-an-agent">What makes a tool an “agent”?</h2>

<p>By its official definition, Claude Code is “an agentic coding tool that reads
your codebase, edits files, runs commands, and integrates with your development
tools.” The verbs in that sentence matter, because they’re exactly what separates
an agent from autocomplete:</p>

<ul>
  <li><strong>Reads:</strong> It can look at the whole project, not just one file, and find the
relevant places itself.</li>
  <li><strong>Writes:</strong> It makes changes across multiple files.</li>
  <li><strong>Runs:</strong> It executes terminal commands — runs tests, calls the linter, builds.</li>
  <li><strong>Observes and fixes:</strong> It sees the output and, if there’s an error, goes back
and fixes it.</li>
</ul>

<p>That loop — plan, act, observe the result, retry if needed — is the heart of
agentic behavior. (I’ll devote a separate post to this “agentic loop” later in
the series.)</p>

<h2 id="a-small-example">A small example</h2>

<p>Say you give a command like this:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>claude <span class="s2">"write tests for the auth module, run them, and fix any failures"</span>
</code></pre></div></div>

<p>An agent won’t just generate code once and stop. Typically it will: read the auth
module’s files, understand what they do, write the tests, run the test command,
read any errors, fix the code or the tests, and keep cycling until the tests
pass. In other words, it runs the “write–run–debug” loop you’d otherwise do by
hand.</p>

<h2 id="why-does-this-matter">Why does this matter?</h2>

<p>Because it changes the kind of problems you can solve. Autocomplete is good at
“how do I finish this line?” An agent can take on <strong>multi-step, side-effecting</strong>
work like “find and fix this bug,” “update the dependencies,” or “clean up these
lint errors across the project.” In the words of the official docs, it can take
over “the tedious tasks you keep putting off.”</p>

<p>But — as I said in the first post — this power doesn’t remove the responsibility
to review. Because the agent can run commands and change files, understanding and
approving what it does is still your job. A powerful assistant, not a boss.</p>

<h2 id="summary">Summary</h2>

<p>Autocomplete predicts the next keystroke; a coding agent reads, writes, runs and
fixes itself to reach a goal. Claude Code is exactly that kind of tool. In the
next post we’ll look at its concrete face — the Claude CLI in the terminal.</p>

<hr />

<p><em>Next post: Getting Started with the Claude CLI</em></p>]]></content><author><name>Can KILIÇ</name><email>cnklc@ymail.com</email></author><category term="claude-code" /><category term="coding-agent" /><category term="ai" /><summary type="html"><![CDATA[The second stop in the “Claude Code Journey” series. Last time we looked at what vibe coding is; now we turn to the thing that makes it possible — the coding agent.]]></summary></entry><entry xml:lang="tr"><title type="html">Coding Agent (Kodlama Ajanı) Nedir?</title><link href="https://cnklc.me/blog/coding-agent-nedir/" rel="alternate" type="text/html" title="Coding Agent (Kodlama Ajanı) Nedir?" /><published>2026-06-13T00:00:00+03:00</published><updated>2026-06-13T00:00:00+03:00</updated><id>https://cnklc.me/blog/coding-agent-nedir</id><content type="html" xml:base="https://cnklc.me/blog/coding-agent-nedir/"><![CDATA[<blockquote>
  <p>“Claude Code Yolculuğu” serisinin ikinci durağı. Önceki yazıda
<a href="/blog/vibe-coding-nedir/">vibe coding</a>‘in ne olduğuna
bakmıştık; şimdi onu mümkün kılan asıl şeye, kodlama ajanına geliyoruz.</p>
</blockquote>

<p>Geçen yazıda vibe coding’den, yani niyeti tarif edip kodu yapay zekâya
bırakmaktan bahsettim. Peki o “yapay zekâ” tarafında tam olarak ne var?
Cevap: bir <strong>coding agent</strong> (kodlama ajanı).</p>

<h2 id="otomatik-tamamlama-bir-ajan-değildir">Otomatik tamamlama bir ajan değildir</h2>

<p>Çoğumuz yapay zekâ destekli kodlamayı önce otomatik tamamlama araçlarıyla
tanıdık. Yazmaya başlıyorsun, araç satırın geri kalanını öneriyor. Faydalı,
ama pasif: sadece imlecin olduğu yere, o anki bağlama bakarak bir tahmin
yapıyor. Senin yerine bir şey <em>yapmıyor</em>, sadece bir sonraki tuşu tahmin ediyor.</p>

<p>Kodlama ajanı bambaşka bir kategori. Ona bir satır değil, bir <strong>hedef</strong>
veriyorsun: “auth modülü için testleri yaz, çalıştır ve hataları düzelt”.
Sonra ajan bu hedefe ulaşmak için kendi adımlarını planlıyor ve uyguluyor.</p>

<h2 id="bir-aracı-ajan-yapan-nedir">Bir aracı “ajan” yapan nedir?</h2>

<p>Resmi tanımıyla Claude Code “kod tabanını okuyan, dosyaları düzenleyen,
komutları çalıştıran ve geliştirme araçlarınla entegre olan ajansal bir
kodlama aracı”. Bu cümledeki fiiller önemli, çünkü bir ajanı tamamlayıcıdan
ayıran şey tam olarak bunlar:</p>

<ul>
  <li><strong>Okur:</strong> Tek bir dosyaya değil, projenin bütününe bakabilir; ilgili
yerleri kendi bulur.</li>
  <li><strong>Yazar:</strong> Birden fazla dosyada değişiklik yapar.</li>
  <li><strong>Çalıştırır:</strong> Terminal komutları çalıştırır — testleri koşar, linter’ı
çağırır, build alır.</li>
  <li><strong>Gözlemler ve düzeltir:</strong> Çıktıyı görür, hata varsa geri dönüp düzeltir.</li>
</ul>

<p>İşte bu döngü — planla, uygula, sonucu gözlemle, gerekiyorsa tekrar dene —
ajansal davranışın kalbi. (Serinin ileri yazılarında bu “agentic loop”
konusuna ayrı bir başlık ayıracağım.)</p>

<h2 id="küçük-bir-örnek">Küçük bir örnek</h2>

<p>Diyelim ki şöyle bir komut veriyorsun:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>claude <span class="s2">"auth modülü için testleri yaz, çalıştır ve hataları düzelt"</span>
</code></pre></div></div>

<p>Bir ajan burada tek seferde kod üretip durmaz. Tipik olarak: önce auth
modülünün dosyalarını okur, ne yaptığını anlar, testleri yazar, test
komutunu çalıştırır, çıkan hataları okur, kodu veya testi düzeltir ve
testler geçene kadar bu döngüyü sürdürür. Yani senin elle yapacağın
“yaz–çalıştır–hata ayıkla” turunu kendisi çeviriyor.</p>

<h2 id="neden-bu-önemli">Neden bu önemli?</h2>

<p>Çünkü çözebileceği problemlerin türünü değiştiriyor. Tamamlayıcı, “bu satırı
nasıl bitiririm?” sorusuna iyidir. Ajan ise “bu bug’ı bul ve düzelt”,
“bağımlılıkları güncelle”, “şu lint hatalarını proje genelinde temizle” gibi
<strong>çok adımlı ve yan etkili</strong> işlerin altından kalkabilir. Resmi dokümanın
deyişiyle, “sürekli ertelediğin sıkıcı işleri” devralabilir.</p>

<p>Ama —ilk yazıda da söylediğim gibi— bu güç, gözden geçirme sorumluluğunu
ortadan kaldırmıyor. Ajan komut çalıştırıp dosya değiştirebildiği için,
ne yaptığını anlamak ve onaylamak hâlâ senin işin. Güçlü bir asistan,
patron değil.</p>

<h2 id="özet">Özet</h2>

<p>Otomatik tamamlama bir sonraki tuşu tahmin eder; kodlama ajanı bir hedefe
ulaşmak için okur, yazar, çalıştırır ve kendini düzeltir. Claude Code da tam
olarak böyle bir araç. Bir sonraki yazıda bu aracın somut yüzüne —
terminaldeki Claude CLI’a — bakacağız.</p>

<hr />

<p><em>Sıradaki yazı: Claude CLI’a Giriş</em></p>]]></content><author><name>Can KILIÇ</name><email>cnklc@ymail.com</email></author><category term="claude-code" /><category term="coding-agent" /><category term="yapay-zeka" /><summary type="html"><![CDATA[“Claude Code Yolculuğu” serisinin ikinci durağı. Önceki yazıda vibe coding‘in ne olduğuna bakmıştık; şimdi onu mümkün kılan asıl şeye, kodlama ajanına geliyoruz.]]></summary></entry><entry xml:lang="en"><title type="html">What Is Vibe Coding?</title><link href="https://cnklc.me/en/blog/vibe-coding-nedir/" rel="alternate" type="text/html" title="What Is Vibe Coding?" /><published>2026-06-12T00:00:00+03:00</published><updated>2026-06-12T00:00:00+03:00</updated><id>https://cnklc.me/en/blog/vibe-coding-nedir.en</id><content type="html" xml:base="https://cnklc.me/en/blog/vibe-coding-nedir/"><![CDATA[<blockquote>
  <p>The first stop in my “Claude Code Journey” series, following the
<a href="https://roadmap.sh/claude-code">roadmap.sh/claude-code</a> curriculum.</p>
</blockquote>

<p>A few years ago, writing code meant typing every single line yourself. Today a
different approach is becoming common: you describe what you want in natural
language, the AI writes the code, and you run it and steer the result. This is
called <strong>vibe coding</strong>.</p>

<h2 id="where-does-the-term-come-from">Where does the term come from?</h2>

<p>The phrase took off in early 2025 to describe the “go by feel” nature of
AI-assisted development. The idea is simple: instead of holding every detail of
the code in your head, you describe the overall intent (“make a login screen like
this, validate the email”) and evaluate and correct what the model produces. The
focus shifts from <em>how</em> something is written to <em>what</em> it does.</p>

<h2 id="how-it-differs-from-traditional-coding">How it differs from traditional coding</h2>

<p>In the classic flow the loop is: think → write → run → debug. In vibe coding the
loop becomes: describe → evaluate → steer. You’re now responsible for the result
and the direction, not for each individual line. This is a real speed boost,
especially when:</p>

<ul>
  <li>prototyping quickly,</li>
  <li>taking your first steps with an unfamiliar library,</li>
  <li>handling repetitive, tedious work (boilerplate, test scaffolding, conversion
scripts).</li>
</ul>

<h2 id="but-isnt-there-a-risk">But isn’t there a risk?</h2>

<p>Let’s be honest — yes. The appeal of vibe coding also brings the risk of
accepting generated code <strong>without understanding it</strong>. Code that runs isn’t
always correct, secure or maintainable. If you keep piling up output without
reading it, your own project eventually turns into a stranger.</p>

<p>The balance that works: let the AI produce the draft, but keep <strong>understanding
and approval</strong> with you. Just like I don’t auto-publish this blog series without
reviewing it — speeding up production is one thing, handing off responsibility is
another.</p>

<h2 id="where-does-claude-code-fit-in">Where does Claude Code fit in?</h2>

<p>Claude Code is a tool that lets you do vibe coding from the terminal. Instead of
asking for individual functions, you give it a goal (“make these tests pass”,
“find and fix this bug”) and it works toward that goal by reading and writing
files and running commands. In the next posts of the series we’ll get into
exactly how that works — starting from the CLI and moving on to commands, hooks
and subagents.</p>

<h2 id="summary">Summary</h2>

<p>Vibe coding is the shift from writing code to managing it. Used well, it’s an
enormous accelerator; trusted blindly, it’s a technical-debt machine. The secret
is to take the speed without giving up control.</p>

<hr />

<p><em>Next post: What Is a Coding Agent?</em></p>]]></content><author><name>Can KILIÇ</name><email>cnklc@ymail.com</email></author><category term="claude-code" /><category term="vibe-coding" /><category term="ai" /><summary type="html"><![CDATA[The first stop in my “Claude Code Journey” series, following the roadmap.sh/claude-code curriculum.]]></summary></entry><entry xml:lang="tr"><title type="html">Vibe Coding Nedir?</title><link href="https://cnklc.me/blog/vibe-coding-nedir/" rel="alternate" type="text/html" title="Vibe Coding Nedir?" /><published>2026-06-12T00:00:00+03:00</published><updated>2026-06-12T00:00:00+03:00</updated><id>https://cnklc.me/blog/vibe-coding-nedir</id><content type="html" xml:base="https://cnklc.me/blog/vibe-coding-nedir/"><![CDATA[<blockquote>
  <p>Bu yazı, <a href="https://roadmap.sh/claude-code">roadmap.sh/claude-code</a> müfredatını
takip ettiğim “Claude Code Yolculuğu” serisinin ilk durağı.</p>
</blockquote>

<p>Birkaç yıl önce kod yazmak demek, her satırı bizzat klavyeden geçirmek demekti.
Bugün giderek yaygınlaşan başka bir yaklaşım var: ne istediğini doğal dille
anlatıyorsun, yapay zekâ kodu yazıyor, sen sonucu çalıştırıp yönlendiriyorsun.
Buna <strong>vibe coding</strong> deniyor.</p>

<h2 id="terim-nereden-geliyor">Terim nereden geliyor?</h2>

<p>Tabir, 2025 başında yapay zekâ destekli geliştirmenin “hisse göre ilerleyen”
doğasını anlatmak için popülerleşti. Fikir basit: kodun her detayını kafanda
kurmak yerine, genel niyeti (“şuna benzer bir giriş ekranı yap, e-postayı doğrula”)
tarif ediyorsun ve modelin ürettiğini değerlendirip düzeltiyorsun. Odak, <em>nasıl</em>
yazıldığından <em>ne</em> yapıldığına kayıyor.</p>

<h2 id="geleneksel-kodlamadan-farkı">Geleneksel kodlamadan farkı</h2>

<p>Klasik akışta döngü şöyle: düşün → yaz → çalıştır → hata ayıkla. Vibe coding’de
döngü şuna dönüşüyor: tarif et → değerlendir → yönlendir. Sen artık tek tek
satırların değil, sonucun ve yönün sorumlususun. Bu, özellikle:</p>

<ul>
  <li>hızlı prototip çıkarırken,</li>
  <li>aşina olmadığın bir kütüphaneyle ilk adımı atarken,</li>
  <li>tekrarlayan, sıkıcı işleri (boilerplate, test iskeleti, dönüşüm scriptleri)
hallederken</li>
</ul>

<p>ciddi bir hız kazandırıyor.</p>

<h2 id="peki-tehlikesi-yok-mu">Peki tehlikesi yok mu?</h2>

<p>Burada dürüst olmak lazım — var. Vibe coding’in cazibesi, üretilen kodu
<strong>anlamadan</strong> kabul etme riskini de beraberinde getiriyor. Çalışan kod her zaman
doğru, güvenli veya bakımı kolay kod demek değil. Üretilen şeyi okumadan
biriktirdiğinde, bir süre sonra kendi projende yabancıya dönüşürsün.</p>

<p>İşe yarayan denge şu: yapay zekâ taslağı üretsin, ama <strong>anlama ve onay</strong> sende
kalsın. Tıpkı bu blog serisini otomatik üretip incelemeden yayınlamamam gibi —
üretimi hızlandırmak başka, sorumluluğu devretmek başka.</p>

<h2 id="claude-code-bu-resmin-neresinde">Claude Code bu resmin neresinde?</h2>

<p>Claude Code, vibe coding’i terminalden yapmanı sağlayan bir araç. Tek tek
fonksiyon istemek yerine, ona bir hedef veriyorsun (“bu testleri geçir”,
“şu bug’ı bul ve düzelt”) ve dosyaları okuyup yazarak, komut çalıştırarak
hedefe gidiyor. Serinin sonraki yazılarında tam olarak bunun nasıl çalıştığına —
CLI’dan başlayıp komutlara, hooks’a ve subagent’lara kadar — gireceğiz.</p>

<h2 id="özet">Özet</h2>

<p>Vibe coding, kodu yazmaktan çok kodu yönetmeye geçiş. Doğru kullanıldığında
muazzam bir hızlandırıcı; körü körüne güvenildiğinde ise teknik borç makinesi.
Sır, hızı almak ama kontrolü bırakmamakta.</p>

<hr />

<p><em>Sıradaki yazı: Coding Agent (Kodlama Ajanı) Nedir?</em></p>]]></content><author><name>Can KILIÇ</name><email>cnklc@ymail.com</email></author><category term="claude-code" /><category term="vibe-coding" /><category term="yapay-zeka" /><summary type="html"><![CDATA[Bu yazı, roadmap.sh/claude-code müfredatını takip ettiğim “Claude Code Yolculuğu” serisinin ilk durağı.]]></summary></entry></feed>