<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[izleogrenkodla]]></title><description><![CDATA[Adım Adım IT Kariyeri]]></description><link>https://izleogrenkodla.dev/</link><image><url>https://izleogrenkodla.dev/favicon.png</url><title>izleogrenkodla</title><link>https://izleogrenkodla.dev/</link></image><generator>Ghost 5.71</generator><lastBuildDate>Tue, 05 May 2026 13:49:48 GMT</lastBuildDate><atom:link href="https://izleogrenkodla.dev/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[Python Baş Ucu Rehberi]]></title><description><![CDATA[<!--kg-card-begin: html-->
<ul id="programlama-python-rehber-contents">
    
    <li><a href="#programlama-python-rehber-genel"><b>GENEL</b></a>
    	<ul>
         	<li>
             	<a style="color:c91d62;" href="#programlama-python-rehber-python-nedir">Python nedir?
             	</a>
         	</li>
            <li>
             	<a style="color:c91d62;" href="#programlama-python-rehber-neden-popular">Ni&#xE7;in Python Bu Kadar Yayg&#x131;n?
             	</a>
         	</li>
            <li>
             	<a style="color:c91d62;" href="#programlama-python-rehber-python-kurulum">Python Kurulumu
             	</a>
         	</li>
    	</ul>
    </li>
    
    <li><a href="#programlama-python-rehber-ilk-kod"><b>&#x130;LK PYTHON KODUNUZ (NASIL &#xC7;ALI&#x15E;TIRALIM?)</b></a>
    	<ul>
         	<li>
             	<a style="color:c91d62;" href="#programlama-python-rehber-run-cli">&#x130;nteraktif Komut Sat&#x131;r&#x131;
             	</a>
         	</li>
            <li>
             	<a style="color:c91d62;" href="#programlama-python-rehber-ide">Kod Edit&#xF6;r&#xFC; (IDE)
             	</a>
         	</li>
            <li>
             	<a style="color:c91d62;" href="#programlama-python-rehber-online-editor">Online Edit&#xF6;rler
             	</a>
         	</li>
    	</ul>
    </li>
    
    <li><a href="#programlama-python-rehber-syntax"><b>PYTHON YAZIM KURALLARI</b></a>
    	<ul>
         	<li>
             	<a style="color:c91d62;" href="#programlama-python-rehber-indentation">Indentation (Girinti / Sat&#x131;rba&#x15F;&#x131;</a></li></ul></li></ul>]]></description><link>https://izleogrenkodla.dev/python-basucu-rehberi/</link><guid isPermaLink="false">63320f97664b710001ec4fcb</guid><category><![CDATA[Programlama]]></category><dc:creator><![CDATA[izle-öğren-kodla]]></dc:creator><pubDate>Mon, 07 Nov 2022 21:48:51 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1649180556628-9ba704115795?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDEyMXx8cHl0aG9ufGVufDB8fHx8MTY5NzkyNzY4OXww&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[
<!--kg-card-begin: html-->
<ul id="programlama-python-rehber-contents">
    
    <li><a href="#programlama-python-rehber-genel"><b>GENEL</b></a>
    	<ul>
         	<li>
             	<a style="color:c91d62;" href="#programlama-python-rehber-python-nedir">Python nedir?
             	</a>
         	</li>
            <li>
             	<a style="color:c91d62;" href="#programlama-python-rehber-neden-popular">Ni&#xE7;in Python Bu Kadar Yayg&#x131;n?
             	</a>
         	</li>
            <li>
             	<a style="color:c91d62;" href="#programlama-python-rehber-python-kurulum">Python Kurulumu
             	</a>
         	</li>
    	</ul>
    </li>
    
    <li><a href="#programlama-python-rehber-ilk-kod"><b>&#x130;LK PYTHON KODUNUZ (NASIL &#xC7;ALI&#x15E;TIRALIM?)</b></a>
    	<ul>
         	<li>
             	<a style="color:c91d62;" href="#programlama-python-rehber-run-cli">&#x130;nteraktif Komut Sat&#x131;r&#x131;
             	</a>
         	</li>
            <li>
             	<a style="color:c91d62;" href="#programlama-python-rehber-ide">Kod Edit&#xF6;r&#xFC; (IDE)
             	</a>
         	</li>
            <li>
             	<a style="color:c91d62;" href="#programlama-python-rehber-online-editor">Online Edit&#xF6;rler
             	</a>
         	</li>
    	</ul>
    </li>
    
    <li><a href="#programlama-python-rehber-syntax"><b>PYTHON YAZIM KURALLARI</b></a>
    	<ul>
         	<li>
             	<a style="color:c91d62;" href="#programlama-python-rehber-indentation">Indentation (Girinti / Sat&#x131;rba&#x15F;&#x131;)
             	</a>
         	</li>
            <li>
             	<a style="color:c91d62;" href="#programlama-python-rehber-comment">Yorum Sat&#x131;r&#x131;
             	</a>
         	</li>
            <li>
             	<a style="color:c91d62;" href="#programlama-python-rehber-naming">&#x130;simlendirme Kurallar&#x131;
             	</a>
         	</li>
    	</ul>
    </li>
    
    <li><a href="#programlama-python-rehber-fumdamentals"><b>TEMEL ESASLAR</b></a>
    	<ul>
         	<li>
             	<a style="color:c91d62;" href="#programlama-python-rehber-variables">De&#x11F;i&#x15F;kenler (Variables)
             	</a>
         	</li>
            <li>
             	<a style="color:c91d62;" href="#programlama-python-rehber-primitives">Basit Tipler (Primitive Types)
             	</a>
         	</li>
            <li>
             	<a style="color:c91d62;" href="#programlama-python-rehber-understand-strings">Metinsel Tipleri (Strings) Anlamak
             	</a>
         	</li>
            <li>
             	<a style="color:c91d62;" href="#programlama-python-rehber-operators">Operat&#xF6;rler (Operators)
             	</a>
         	</li>
            <li>
             	<a style="color:c91d62;" href="#programlama-python-rehber-user-inputs">Kullan&#x131;c&#x131;dan Girdi Almak (User Inputs)
             	</a>
         	</li>
            <li>
             	<a style="color:c91d62;" href="#programlama-python-rehber-type-conversion">Tip D&#xF6;n&#xFC;&#x15F;&#xFC;mleri (Type Conversion)
             	</a>
         	</li>
            <li>
             	<a style="color:c91d62;" href="#programlama-python-rehber-py-files">Python Dosyalar&#x131;
             	</a>
         	</li>
    	</ul>
    </li>
    
     <li><a href="#programlama-python-rehber-conditionals"><b>KO&#x15E;ULLAR</b></a>
    	<ul>
         	<li>
             	<a style="color:c91d62;" href="#programlama-python-rehber-if-statement">if Statement (if &#x130;fadesi)
             	</a>
         	</li>
            <li>
             	<a style="color:c91d62;" href="#programlama-python-rehber-if-else">if - else
             	</a>
         	</li>
            <li>
             	<a style="color:c91d62;" href="#programlama-python-rehber-elif">elif Statement (elif &#x130;fadesi)
             	</a>
         	</li>
    	</ul>
    </li>
    
     <li><a href="#programlama-python-rehber-loops"><b>D&#xD6;NG&#xDC;LER (LOOPS)</b></a>
    	<ul>
         	<li>
             	<a style="color:c91d62;" href="#programlama-python-rehber-forloop">for D&#xF6;ng&#xFC;s&#xFC; (Loop)
             	</a>
         	</li>
            <li>
             	<a style="color:c91d62;" href="#programlama-python-rehber-whileloop">while D&#xF6;ng&#xFC;s&#xFC; (Loop)
             	</a>
         	</li>
    	</ul>
    </li>
    <li><a href="#programlama-python-rehber-data-yapilari"><b>DATA YAPILARI</b></a>
    	<ul>
         	<li>
             	<a style="color:c91d62;" href="#programlama-python-rehber-lists">Diziler (Lists)
             	</a>
         	</li>
            <li>
             	<a style="color:c91d62;" href="#programlama-python-rehber-tuples">Demetler (Tuples)
             	</a>
         	</li>
    	</ul>
    </li>
</ul>
<!--kg-card-end: html-->
<img src="https://images.unsplash.com/photo-1649180556628-9ba704115795?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDEyMXx8cHl0aG9ufGVufDB8fHx8MTY5NzkyNzY4OXww&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" alt="Python Ba&#x15F; Ucu Rehberi"><p>BU BOLUMLER GUNCELLENIYOR...</p>
<pre><code>* Tuples
* Sets
* Dictionaries
</code></pre>
<ul>
<li>Fonksiyonlar</li>
<li>Nesne Tabanl&#x131; Programlama ve Python</li>
</ul>

<!--kg-card-begin: html-->
<h2 id="programlama-python-rehber-genel">1. GENEL</h2>
<!--kg-card-end: html-->

<!--kg-card-begin: html-->
<h3 id="programlama-python-rehber-python-nedir">1.1 Python Nedir?</h3>
<!--kg-card-end: html-->
<p><code>Python</code> &#xFC;st seviye (high-level), &#xE7;oklu model (multi-paradigm) bir programlama dilidir. &#xC7;oklu model diyoruz &#xE7;&#xFC;nk&#xFC; hem fonksiyonel hem de nesne tabanl&#x131; programlamay&#x131; destekler. Bu bir a&#x11F;&#x131;z dolusu ifade size bir &#x15F;ey ifade etmiyorsa ald&#x131;rmay&#x131;n. &#x130;lerleyen b&#xF6;l&#xFC;mlerde s&#x131;ras&#x131; geldik&#xE7;e bu konular&#x131; kavrayaca&#x11F;&#x131;z.</p>
<p>Ayr&#x131;ca <code>Python</code> dinamik yaz&#x131;ml&#x131; bir programlama dilidir. Ancak tip kontrol&#xFC;nde kat&#x131; de&#x11F;ildir. Yani <code>Java</code>ve <code>C#</code>gibi diller daha siz yazarken kodunuzdaki nesnelerin tipini kontrol ederken <code>Python</code>bunu yapmaz ve sizin yazman&#x131;za izin verir. Bunun yerine yazd&#x131;&#x11F;&#x131;n&#x131;z kod &#xE7;al&#x131;&#x15F;ma zaman&#x131;nda (run time) kontrol edilir. Bu bazen hatal&#x131; tip kullan&#x131;m&#x131;na neden olsa da esnekli&#x11F;i y&#xFC;ksek bir dil oldu&#x11F;u i&#xE7;in &#xE7;ok h&#x131;zl&#x131; geli&#x15F;tirmryr imkan verir.</p>
<p><code>Python</code> 1980&apos; lerin sonunda tasarland&#x131; ve ad&#x131;n&#x131; BBC televizyonunda g&#xF6;sterimde olan <code>Monty Python&#x2019;s Flying Circus</code> (Monty Piton&apos;un U&#xE7;an Sirki) isimli bir &#x15F;ovdan ald&#x131;. Hollandal&#x131; bir programc&#x131; olan <strong>Guido van Rossum</strong> ilk Python uygulamalar&#x131;n&#x131; <code>ABC</code> isimli ba&#x15F;ka bir programlama dilinden esinlenerek 1989 y&#x131;l&#x131;nda olu&#x15F;turdu.</p>
<p>Python 2.0 versiyonu 16 Ekim 2000 y&#x131;l&#x131;nda ve Python 3.0 versiyonu ise 3 Aral&#x131;k 2008 y&#x131;l&#x131;nda piyasaya s&#xFC;r&#xFC;ld&#xFC;. Python 3.0 b&#xFC;y&#xFC;k de&#x11F;i&#x15F;iklik ve yenilikler i&#xE7;erir ve bir &#xF6;nceki 2.0 versiyonu ile tam uyumlu de&#x11F;ildir. Bu yaz&#x131;n&#x131;n yaz&#x131;ld&#x131;&#x11F;&#x131; tarih itibariyle <code>Pyton 3.11</code> versiyonu yay&#x131;mlanm&#x131;&#x15F;t&#x131;r ve hala da g&#xFC;ncellenmeye devam etmektedir. Bu rehber Python 3 versiyonu i&#xE7;in haz&#x131;rlanm&#x131;&#x15F;t&#x131;r.</p>

<!--kg-card-begin: html-->
<h3 id="programlama-python-rehber-neden-popular">1.2 Ni&#xE7;in Python Bu Kadar Yayg&#x131;n?</h3>
<!--kg-card-end: html-->
<p>Bu sorunun en iyi cevab&#x131; Python&apos; &#x131;n ana &#xF6;zelliklerinde gizli. S&#x131;ralayacak olursak;</p>
<ul>
<li>&#xDC;cretsiz ve a&#xE7;&#x131;k kaynak</li>
<li>Hemen her ortamda &#xE7;al&#x131;&#x15F;abilir. (Linux, Windows, Mac, FreeBSD, Entegre Cihazlar ...)</li>
<li>&#x130;nan&#x131;lmaz geni&#x15F; ve kullanmaya haz&#x131;r k&#xFC;t&#xFC;phaneler</li>
<li>&#xC7;oklu model (Fonksiyonel veya Nesne Tabanl&#x131;)</li>
<li>&#x130;yi bir topluluk (community) deste&#x11F;i</li>
<li>Web geli&#x15F;tirme, otomasyon, data bilimi ve makine &#xF6;&#x11F;renmesi, yaz&#x131;l&#x131;m testi gibi &#xE7;ok geni&#x15F; kullan&#x131;m alan&#x131;</li>
<li>Di&#x11F;er dillere g&#xF6;re kolay &#xF6;&#x11F;renme e&#x11F;risi olmas&#x131;</li>
</ul>
<p>Listeye bak&#x131;nca <code>Python</code> &apos;&#x131;n <code>StackOverFlow</code> 2022 anketlerinde Javascript&apos; ten sonra en &#xE7;ok kullan&#x131;lan 2&apos;nci dil se&#xE7;ilmesine &#x15F;a&#x15F;&#x131;rmamak gerekir. Bu listeyi daha da uzatabiliriz.</p>
<p>K&#x131;sacas&#x131; ya&#x15F;ayan, iyi bir topluluk deste&#x11F;ine sahip ve zengin bir dil olmas&#x131; ile Python &#xF6;&#x11F;renmeye de&#x11F;en bir programlama dilidir.</p>

<!--kg-card-begin: html-->
<h3 id="programlama-python-rehber-python-kurulum">1.3 Python Kurulumu</h3>
<!--kg-card-end: html-->
<p><a href="https://www.python.org/?ref=izleogrenkodla.dev">https://www.python.org</a> adresine gidin ve <code>Downloads</code> men&#xFC;s&#xFC;ne t&#x131;klay&#x131;n. &#x130;&#x15F;letim sisteminiz i&#xE7;in uygun olan paketi indirin. Genelde en son kararl&#x131; s&#xFC;r&#xFC;m&#xFC; size &#xF6;nerecektir. Paketi indirdikten sonra y&#xF6;nergeleri izleyerek kurun.</p>
<figure class="kg-card kg-image-card"><img src="https://izleogrenkodla.dev/content/images/2022/09/Screen-Shot-2022-09-27-at-00.20.55.png" class="kg-image" alt="Python Ba&#x15F; Ucu Rehberi" loading="lazy" width="1204" height="575" srcset="https://izleogrenkodla.dev/content/images/size/w600/2022/09/Screen-Shot-2022-09-27-at-00.20.55.png 600w, https://izleogrenkodla.dev/content/images/size/w1000/2022/09/Screen-Shot-2022-09-27-at-00.20.55.png 1000w, https://izleogrenkodla.dev/content/images/2022/09/Screen-Shot-2022-09-27-at-00.20.55.png 1204w" sizes="(min-width: 720px) 720px"></figure><p>E&#x11F;er i&#x15F;letim sisteminiz macOS ise yukar&#x131;daki kuruluma alternatif olarak <a href="https://brew.sh/?ref=izleogrenkodla.dev">homebrew</a> ile (tavsiye edilen y&#xF6;ntem) kurulum yapabilirsiniz.</p>
<p></p>
<!--kg-card-begin: html-->
<h2 id="programlama-python-rehber-ilk-kod">2. &#x130;LK PYTHON KODUNUZ (NASIL &#xC7;ALI&#x15E;TIRALIM?)<a alt="ba&#x15F;a d&#xF6;n" href="#programlama-python-rehber-contents" style="text-decoration: none; margin-left:5px">&#x2303;</a></h2>
<!--kg-card-end: html-->
<p>Python kurulumunu tamamlad&#x131; iseniz, art&#x131;k kodlar&#x131;m&#x131;z&#x131; &#xE7;al&#x131;&#x15F;t&#x131;rabiliriz. Python kodlar&#x131;n&#x131; &#xE7;al&#x131;&#x15F;t&#x131;rman&#x131;n iki temel yolu vard&#x131;r.</p>
<ul>
<li>&#x130;nteraktif komut sat&#x131;r&#x131; ile do&#x11F;rdan &#xE7;al&#x131;&#x15F;t&#x131;rma</li>
<li>Kod Edit&#xF6;r ile Python dosyalar&#x131;n&#x131; &#xE7;al&#x131;&#x15F;t&#x131;rma</li>
</ul>

<!--kg-card-begin: html-->
<h3 id="programlama-python-rehber-run-cli">2.1 &#x130;nteraktif Komut Sat&#x131;r&#x131;</h3>
<!--kg-card-end: html-->
<p>&#x130;&#x15F;letim sisteminize g&#xF6;re uygun terminali a&#xE7;&#x131;n ve e&#x11F;er <code>Windows</code> veya <code>macOS</code> kullan&#x131;yorsan&#x131;z komut sat&#x131;r&#x131;na <code>python</code> e&#x11F;er <code>Linux</code> kullan&#x131;yorsan&#x131;z <code>python3</code> yaz&#x131;n. Bu rehberin kalan b&#xF6;l&#xFC;mlerinde bu komut <code>python</code> olarak kullan&#x131;lacakt&#x131;r. Siz i&#x15F;letim sisteminize uygu olan&#x131; kullanmal&#x131;s&#x131;n&#x131;z. A&#x15F;a&#x11F;&#x131;dakine benzer bir ekran g&#xF6;r&#xFC;yorsan&#x131;z <code>Python</code> bilgisayar&#x131;n&#x131;za do&#x11F;ru kurulmu&#x15F; ve sistem yolu (environmental variable) do&#x11F;ru ayarlanm&#x131;&#x15F; demektir.</p>
<pre><code class="language-sh">~ python
Python 3.10.6 (main, Aug 30 2022, 05:12:36) [Clang 13.1.6 (clang-1316.0.21.2.5)] on darwin
Type &quot;help&quot;, &quot;copyright&quot;, &quot;credits&quot; or &quot;license&quot; for more information.
&gt;&gt;&gt;</code></pre><p>Yukar&#x131;da yazd&#x131;&#x11F;&#x131;n&#x131;z <code>python</code> komutu ile python konsoluna giri&#x15F; yapt&#x131;n&#x131;z. Buna <code>REPL</code> da denir. Yani <strong>Read-Evaluate-Print-Loop</strong> (Oku-De&#x11F;erlendir-Ekranda g&#xF6;ster-Tekrar komut sat&#x131;r&#x131;na d&#xF6;n)</p>
<p>Ekran &#xE7;&#x131;kt&#x131;s&#x131;nda kulland&#x131;&#x11F;&#x131;n&#x131;z <code>Python</code> s&#xFC;r&#xFC;m&#xFC;n&#xFC; g&#xF6;rebilirsiniz. Ekranda bulunan <code>&gt;&gt;&gt;</code> bize <code>Python</code> konsolunu kulland&#x131;&#x11F;&#x131;m&#x131;z&#x131; ve onun i&#xE7;inde oldu&#x11F;umuzu g&#xF6;sterir.</p>
<p>&#x15E;imdi ilk <code>Python</code> kodumuzu deneyelim. Basit bir toplama yapal&#x131;m.</p>
<pre><code class="language-sh">~ python
Python 3.10.6 (main, Aug 30 2022, 05:12:36) [Clang 13.1.6 (clang-1316.0.21.2.5)] on darwin
Type &quot;help&quot;, &quot;copyright&quot;, &quot;credits&quot; or &quot;license&quot; for more information.
&gt;&gt;&gt; 1 + 1
2
&gt;&gt;&gt;</code></pre><p>G&#xF6;rd&#xFC;&#x11F;&#xFC;n&#xFC;z gibi yazd&#x131;&#x11F;&#x131;n&#x131;z kod <code>enter</code> tu&#x15F;una basar basmaz uyguland&#x131; (execute) ve ekranda sonucu g&#xF6;sterdi.</p>
<p>Python&apos; da en yayg&#x131;n fonksiyonlardan biri <code>print</code> yani &quot;ekrana yazd&#x131;r&quot; fonksiyonudur. Bu fonksiyon ile tek ya da &#xE7;ift t&#x131;rnak kullan&#x131;labilir.</p>
<pre><code class="language-sh">~ python
Python 3.10.6 (main, Aug 30 2022, 05:12:36) [Clang 13.1.6 (clang-1316.0.21.2.5)] on darwin
Type &quot;help&quot;, &quot;copyright&quot;, &quot;credits&quot; or &quot;license&quot; for more information.
&gt;&gt;&gt; print(&apos;Merhaba izleogrenkodla&apos;)
Merhaba izleogrenkodla
&gt;&gt;&gt;</code></pre><p>Tebrikler ilk Python kodlar&#x131;n&#x131;z&#x131; &#x15F;imdiden yazd&#x131;n&#x131;z.</p>
<!--kg-card-begin: html-->
<h3 id="programlama-python-rehber-ide">2.2 Kod Edit&#xF6;r&#xFC; (IDE)</h3>
<!--kg-card-end: html-->
<p>REPL anl&#x131;k sonu&#xE7;lar&#x131; g&#xF6;rmek i&#xE7;in &#xE7;ok pratik bir y&#xF6;ntem olsa da, Python programlama i&#xE7;in bir IDE (Integrated Development Environment) &apos;ye ihtiya&#xE7; duyar&#x131;z. IDE, Entegre edilmi&#x15F; geli&#x15F;tirme ortam&#x131; ya da kod edit&#xF6;r&#xFC; diye &#xE7;evrilebilir. IDE&apos;ler yazd&#x131;&#x11F;&#x131;m&#x131;z kodun yaz&#x131;m kontrol&#xFC;, otomatik tamamlama, farkl&#x131; b&#xF6;l&#xFC;mleri farkl&#x131; renklendirme (code highlighting) gibi bir&#xE7;ok kolayl&#x131;k sa&#x11F;larlar.</p>
<p>Ayr&#x131;ca <code>python</code> kodlar&#x131;m&#x131;z&#x131; tek sat&#x131;rl&#x131;k komutlar yerine sonu <code>.py</code> uzanl&#x131;t&#x131; Python dosyalar&#x131;nda tutar ve bu dosyalar&#x131; &#xE7;al&#x131;&#x15F;t&#x131;r&#x131;r&#x131;z. REPL ile bunlar&#x131; y&#xF6;netmek m&#xFC;mk&#xFC;n de&#x11F;ildir. IDE&apos; ler klas&#xF6;r ve dosya y&#xF6;netimi a&#xE7;&#x131;s&#x131;ndan gereklidir.</p>
<p>Python ile geli&#x15F;tirme yapaca&#x11F;&#x131;n&#x131;z bir&#xE7;ok IDE var. En &#xE7;ok bilinenleri <code>VS Code</code> ve <code>Pycharm</code>. Siz istedi&#x11F;iniz bir edit&#xF6;r&#xFC; se&#xE7;ebilirsiniz, izleogrenkodla olarak bizim tercihimiz <code>VS Code</code>.</p>
<p>VS Code edit&#xF6;r&#xFC;n&#xFC; <a href="https://code.visualstudio.com/?ref=izleogrenkodla.dev">bu adresten </a> indirip kurabilirsiniz. Kurulum ger&#xE7;ekten &#xE7;ok basit, sadece y&#xF6;nergeleri izleyin. VS Code kurduktan sonra en sol men&#xFC; &#xE7;ubu&#x11F;undan eklentilere t&#x131;klay&#x131;n ve arama &#xE7;ubu&#x11F;una <code>Python yaz&#x131;n</code>. Ekrana gelen eklentilerden <code>Microsoft</code> taraf&#x131;ndan sunulan official Python eklentisini kurun. Bu VS Code edit&#xF6;r&#xFC;n&#xFC;n Python kodlar&#x131;n&#x131; otomatik alg&#x131;lamas&#x131;n&#x131;, tamamlamas&#x131;n&#x131; ve renklendirmesini sa&#x11F;layacak.</p>
<figure class="kg-card kg-image-card"><img src="https://izleogrenkodla.dev/content/images/2022/10/Screen-Shot-2022-10-02-at-21.20.15.png" class="kg-image" alt="Python Ba&#x15F; Ucu Rehberi" loading="lazy" width="1718" height="1410" srcset="https://izleogrenkodla.dev/content/images/size/w600/2022/10/Screen-Shot-2022-10-02-at-21.20.15.png 600w, https://izleogrenkodla.dev/content/images/size/w1000/2022/10/Screen-Shot-2022-10-02-at-21.20.15.png 1000w, https://izleogrenkodla.dev/content/images/size/w1600/2022/10/Screen-Shot-2022-10-02-at-21.20.15.png 1600w, https://izleogrenkodla.dev/content/images/2022/10/Screen-Shot-2022-10-02-at-21.20.15.png 1718w" sizes="(min-width: 720px) 720px"></figure><p>Python kodlar&#x131;n&#x131;z&#x131; yazaca&#x11F;&#x131;n&#x131;z bir klas&#xF6;r olu&#x15F;turun. &#xD6;rne&#x11F;in biz dosyalar&#x131;m alt&#x131;nda <code>python_rehberi</code> isimli bir klas&#xF6;r olu&#x15F;turduk.</p>
<p>VS Code ile bu klas&#xF6;r&#xFC; <strong>Open Folder</strong> tu&#x15F;una basarak a&#xE7;&#x131;n ve <code>program.py</code> isminde bir dosya olu&#x15F;turun. Dosyan&#x131;n i&#xE7;ine a&#x15F;a&#x11F;&#x131;daki kodu yaz&#x131;n. Kod basit&#xE7;e <code>ad</code> isminde bir de&#x11F;i&#x15F;ken olu&#x15F;turuyor ve ona <strong>izleogrenkodla</strong> de&#x11F;erini at&#x131;yor. Sonrada bunu ekranda yazd&#x131;r&#x131;yor. Bu konuyu ilerleyen b&#xF6;l&#xFC;mde a&#xE7;&#x131;klayaca&#x11F;&#x131;z &#x15F;imdilik sadece dosyan&#x131;z&#x131; olu&#x15F;turun.</p>
<p>Dosyan&#x131;zdaki de&#x11F;i&#x15F;iklikleri kaydedin ve VS Code <code>Terminal</code> men&#xFC;s&#xFC;nden <code>New Terminal</code> tu&#x15F;una bas&#x131;n. Bu VS Code i&#xE7;inde bir komut sat&#x131;r&#x131; a&#xE7;acakt&#x131;r. Komut sat&#x131;r&#x131;na <code>python program.py</code> yaz&#x131;n. Bu dosyam&#x131;zdaki kodu okuyup &#xE7;al&#x131;&#x15F;t&#x131;racakt&#x131;r.</p>
<figure class="kg-card kg-image-card"><img src="https://izleogrenkodla.dev/content/images/2022/10/Screen-Shot-2022-10-02-at-21.49.26.png" class="kg-image" alt="Python Ba&#x15F; Ucu Rehberi" loading="lazy" width="1145" height="753" srcset="https://izleogrenkodla.dev/content/images/size/w600/2022/10/Screen-Shot-2022-10-02-at-21.49.26.png 600w, https://izleogrenkodla.dev/content/images/size/w1000/2022/10/Screen-Shot-2022-10-02-at-21.49.26.png 1000w, https://izleogrenkodla.dev/content/images/2022/10/Screen-Shot-2022-10-02-at-21.49.26.png 1145w" sizes="(min-width: 720px) 720px"></figure>
<!--kg-card-begin: html-->
<h3 id="programlama-python-rehber-online-editor">2.3 Online Edit&#xF6;rler</h3>
<!--kg-card-end: html-->
<p>Python &#xF6;&#x11F;renirken i&#x15F;inize &#xE7;ok yarayaca&#x11F;&#x131;n&#x131; d&#xFC;&#x15F;&#xFC;nd&#xFC;&#x11F;&#xFC;m&#xFC;z iki ara&#xE7;tan bahsedece&#x11F;iz. Bunlardan ilki siz kodunuzu yazd&#x131;k&#xE7;a g&#xF6;rsel olarak kodun ne yapt&#x131;&#x11F;&#x131;n&#x131; g&#xF6;steren <a href="https://pythontutor.com/visualize.html?ref=izleogrenkodla.dev#mode=edit">Python Tutor,</a> di&#x11F;eri ise <code>python</code>dahil onlarca de&#x11F;i&#x15F;ik programlama dilini do&#x11F;rudan yazabilece&#x11F;iniz <a href="https://replit.com/?ref=izleogrenkodla.dev">repl.it</a></p>

<!--kg-card-begin: html-->
<h4>Python Tutor</h4>
<!--kg-card-end: html-->
<p>Python Tutor kod g&#xF6;rselle&#x15F;tirme arac&#x131;d&#x131;r. Kodunuzu &#xE7;al&#x131;&#x15F;t&#x131;r&#x131;rken her ad&#x131;mda size ne oldu&#x11F;unu g&#xF6;sterir. Bu sayede yeni programlamaya ba&#x15F;layanlar&#x131;n en &#xE7;ok zorland&#x131;&#x11F;&#x131; b&#xF6;l&#xFC;mlerde &#xE7;ok i&#x15F;e yarayan bir ara&#xE7;t&#x131;r.</p>
<figure class="kg-card kg-image-card"><img src="https://izleogrenkodla.dev/content/images/2022/10/Screen-Shot-2022-10-02-at-23.02.10.png" class="kg-image" alt="Python Ba&#x15F; Ucu Rehberi" loading="lazy" width="1061" height="464" srcset="https://izleogrenkodla.dev/content/images/size/w600/2022/10/Screen-Shot-2022-10-02-at-23.02.10.png 600w, https://izleogrenkodla.dev/content/images/size/w1000/2022/10/Screen-Shot-2022-10-02-at-23.02.10.png 1000w, https://izleogrenkodla.dev/content/images/2022/10/Screen-Shot-2022-10-02-at-23.02.10.png 1061w" sizes="(min-width: 720px) 720px"></figure><p>Bu rehberde bulunan &#xE7;o&#x11F;u konuyu bilgisayar&#x131;n&#x131;za hi&#xE7;bir &#x15F;ey kurmadan Python Tutor ile yapabilirsiniz. ancak yine de hat&#x131;rlatal&#x131;m <code>Python Tutor</code> tam kapsaml&#x131; bir geli&#x15F;tirme edit&#xF6;r&#xFC; ya da ortam&#x131; de&#x11F;ildir. Bu nedenle Python ve VS Code edit&#xF6;r&#xFC; bilgisayar&#x131;n&#x131;za kurman&#x131;z&#x131; &#x15F;iddetle tavsiye ederiz.</p>

<!--kg-card-begin: html-->
<h4>repl.it</h4>
<!--kg-card-end: html-->
<p>repl.it <code>Python</code> da dahil olmak &#xFC;zere bir&#xE7;ok dilde geli&#x15F;tirme ortam&#x131;n&#x131;z&#x131; online olu&#x15F;turup direkt kodlamaya ba&#x15F;layabilece&#x11F;iniz bir uygulama. Python Tutor&apos; dan farkl&#x131; olarak rpel.it tam bir geli&#x15F;tirme ortam&#x131; sunar.</p>
<figure class="kg-card kg-image-card"><img src="https://izleogrenkodla.dev/content/images/2022/10/Screen-Shot-2022-10-03-at-01.03.17.png" class="kg-image" alt="Python Ba&#x15F; Ucu Rehberi" loading="lazy" width="1600" height="920" srcset="https://izleogrenkodla.dev/content/images/size/w600/2022/10/Screen-Shot-2022-10-03-at-01.03.17.png 600w, https://izleogrenkodla.dev/content/images/size/w1000/2022/10/Screen-Shot-2022-10-03-at-01.03.17.png 1000w, https://izleogrenkodla.dev/content/images/2022/10/Screen-Shot-2022-10-03-at-01.03.17.png 1600w" sizes="(min-width: 720px) 720px"></figure><p>Siteye kaydolun (&#xFC;cretsiz) ve <code>Create</code> butonuna bas&#x131;p ard&#x131;ndan <code>Python</code> &apos;&#x131; se&#xE7;in. Daha sonra projenize bir isim verin ya da &#xF6;nerilen ismi kbul edin ve <code>Create Repl</code> butonuna bas&#x131;n.</p>
<figure class="kg-card kg-image-card"><img src="https://izleogrenkodla.dev/content/images/2022/10/Screen-Shot-2022-10-03-at-01.10.39.png" class="kg-image" alt="Python Ba&#x15F; Ucu Rehberi" loading="lazy" width="753" height="445" srcset="https://izleogrenkodla.dev/content/images/size/w600/2022/10/Screen-Shot-2022-10-03-at-01.10.39.png 600w, https://izleogrenkodla.dev/content/images/2022/10/Screen-Shot-2022-10-03-at-01.10.39.png 753w" sizes="(min-width: 720px) 720px"></figure><p>Online editor a&#xE7;&#x131;lacak <code>main.py</code> dosyas&#x131; olu&#x15F;turulmu&#x15F; olacakt&#x131;r. burada istedi&#x11F;iniz klas&#xF6;r ve dosyalar&#x131; olu&#x15F;turarak projenizi geli&#x15F;tirebilirsiniz.Dosyan&#x131;zda kodlar&#x131;n&#x131;z&#x131; yazd&#x131;ktan <code>Run</code> tu&#x15F;una bas&#x131;n ve kodunuzu &#xE7;al&#x131;&#x15F;t&#x131;r&#x131;n.</p>
<figure class="kg-card kg-image-card"><img src="https://izleogrenkodla.dev/content/images/2022/10/Screen-Shot-2022-10-03-at-01.16.55.png" class="kg-image" alt="Python Ba&#x15F; Ucu Rehberi" loading="lazy" width="1117" height="505" srcset="https://izleogrenkodla.dev/content/images/size/w600/2022/10/Screen-Shot-2022-10-03-at-01.16.55.png 600w, https://izleogrenkodla.dev/content/images/size/w1000/2022/10/Screen-Shot-2022-10-03-at-01.16.55.png 1000w, https://izleogrenkodla.dev/content/images/2022/10/Screen-Shot-2022-10-03-at-01.16.55.png 1117w" sizes="(min-width: 720px) 720px"></figure><p></p>
<!--kg-card-begin: html-->
<h2 id="programlama-python-rehber-syntax">3. PYTHON YAZIM KURALLARI<a alt="ba&#x15F;a d&#xF6;n" href="#programlama-python-rehber-contents" style="text-decoration: none; margin-left:5px">&#x2303;</a></h2>
<!--kg-card-end: html-->
<p>Python ana prensiplerinden biri de insano&#x11F;lu taraf&#x131;ndan kolay okunabilecek bir dil olu&#x15F;turmakt&#x131;r. Bu nedenle di&#x11F;er dillerde oldu&#x11F;u gibi ilave sembol ve yap&#x131;lara ihtiya&#xE7; duyman okunmas&#x131; kolay bir dildir. Elbette her dilde oldu&#x11F;u gibi Python da kendine &#xF6;zg&#xFC; kurallara sahiptir.</p>

<!--kg-card-begin: html-->
<h3 id="programlama-python-rehber-indentation">3.1 Indentation (Girinti / Sat&#x131;rba&#x15F;&#x131;)</h3>
<!--kg-card-end: html-->
<p>A&#x15F;a&#x11F;&#x131;daki &#xF6;rnek kod par&#xE7;as&#x131;nda <code>scope</code> yani blok konseptini a&#xE7;&#x131;klamaya &#xE7;al&#x131;&#x15F;al&#x131;m. Bu &#xF6;rnekte bir fonksiyon var. Bu sizin i&#xE7;in bir anlam ifade etmiyorsa endi&#x15F;elenmeyin fonksiyonlar konusunu ileride &#xF6;&#x11F;renece&#x11F;iz.</p>
<pre><code class="language-python">def carp_yazdir(number1, number2):
    print(number1 * number2)</code></pre><p>Yukar&#x131;da <code>carp_yazdir</code> isminde bir fonksiyon tan&#x131;ml&#x131;yoruz. Bu fonksiyon <strong>number1</strong> ve <strong>number2</strong> iki ad&#x131;nda iki de&#x11F;er al&#x131;yor. &#x130;lk sat&#x131;r fonksiyonu tan&#x131;mlama sat&#x131;r&#x131;.</p>
<p>Farketti&#x11F;iniz gibi ikinci sat&#x131;r bir girinti ile ba&#x15F;l&#x131;yor. Bu girinti bize ikinci sat&#x131;r&#x131;n ilk sat&#x131;r&#x131;n kapsama alan&#x131; i&#xE7;inde oldu&#x11F;unu g&#xF6;sterir. Ya da bunu &#x15F;&#xF6;yle ifade edebiliriz: &#x130;kinci sat&#x131;r <code>carp_yazdir</code> fonksiyon blo&#x11F;una (scope) aittir.</p>
<p>Javascript, C#, Java gibi bir&#xE7;ok yayg&#x131;n dil <code>scope</code> ya da blok belirlemek i&#xE7;in s&#xFC;sl&#xFC; parantez kullan&#x131;r. bu dillerde her sat&#x131;r sonunda da noktal&#x131; virg&#xFC;l vard&#x131;r. E&#x11F;er yukar&#x131;daki fonksiyonu <code>Javascript</code> ile yazm&#x131;&#x15F; olsayd&#x131;k a&#x15F;a&#x11F;&#x131;daki gibi olurdu.</p>
<pre><code class="language-Javascript">function carp_yazdir(number1, number2) {
    console.log(number1 * number2)
}</code></pre><p>Fakat Python&apos; da bu noktal&#x131; virg&#xFC;ller ve s&#xFC;sl&#xFC; parantezler yoktur. Sadece indentation (girinti) vard&#x131;r. bu nedenle indentation &#xF6;nemlidir ve indentation&apos; da hata yap&#x131;l&#x131;rsa kod ya hi&#xE7; &#xE7;al&#x131;&#x15F;maz ya da do&#x11F;ru &#xE7;al&#x131;&#x15F;maz.</p>

<!--kg-card-begin: html-->
<h3 id="programlama-python-rehber-comment">3.2 Yorum Sat&#x131;r&#x131;</h3>
<!--kg-card-end: html-->
<p>Yorum sat&#x131;rlar&#x131; programlama dillerinin &#xE7;al&#x131;&#x15F;t&#x131;&#x11F;&#x131; anda dikkate almad&#x131;klar&#x131; ve es ge&#xE7;tikleri sat&#x131;rlard&#x131;r. Program&#x131;m&#x131;za bir not ya da bilgi eklemek istedi&#x11F;imizde yorum sat&#x131;rlar&#x131;n&#x131; kullan&#x131;r&#x131;z. Bu sayede kodumuzu dokumante ederiz. Komut sat&#x131;rlar&#x131; hem bizim hem de projede beraber &#xE7;al&#x131;&#x15F;t&#x131;&#x11F;&#x131;m&#x131;z tak&#x131;m arkada&#x15F;lar&#x131; i&#xE7;in &#xF6;nemlidir. &#xC7;&#xFC;nk&#xFC; bir kodu yazd&#x131;ktan bir s&#xFC;re sonra tekrar geri d&#xF6;nd&#xFC;&#x11F;&#xFC;n&#xFC;zde size rehberlik eder ve kod okuman&#x131;z&#x131; h&#x131;zland&#x131;r&#x131;r.</p>
<p>Python programlama dilinde yorum sat&#x131;r&#x131; eklemek i&#xE7;in hashtag karakteri <code>#</code> kullan&#x131;l&#x131;r. A&#x15F;a&#x11F;&#x131;daki sat&#x131;rlar Python taraf&#x131;ndan &#xE7;al&#x131;&#x15F;t&#x131;r&#x131;lmaz ve es ge&#xE7;ilir.</p>

<!--kg-card-begin: html-->
<pre><code class="language-css line-numbers"># &#x130;lk yorumumu yaz&#x131;yorum.
# &#x130;kinci yorumumu yz&#x131;yorum</code></pre>
<!--kg-card-end: html-->
<p>Maalesef Python&apos; da &#xE7;oklu yorum sat&#x131;r&#x131; eklemek m&#xFC;mk&#xFC;n de&#x11F;ildir bu nedenle yorum olan her sat&#x131;r&#x131;n ba&#x15F;&#x131;na <code>#</code> eklemek zorunday&#x131;z.</p>

<!--kg-card-begin: html-->
<h3 id="programlama-python-rehber-naming">3.3 &#x130;simlendirme Kurallar&#x131;</h3>
<!--kg-card-end: html-->
<p>Python&apos;da varsay&#x131;lan olarak <code>snake_case</code> isimlendirme kural&#x131; kullan&#x131;l&#x131;r. Bu kural genel olarak k&#xFC;&#xE7;&#xFC;k harf kullanmay&#x131; ve her kelimenin aras&#x131;na alt tire <code>_</code> i&#x15F;areti koymay&#x131; kapsar.</p>
<p>Python&apos;da yaz&#x131;lan bir ifade b&#xFC;y&#xFC;k ve k&#xFC;&#xE7;&#xFC;k harf hassat&#x131;r. Yani <code>ilk_listem</code> ile <code>Ilk_Listem</code> ayn&#x131; gibi g&#xF6;r&#xFC;nseler de iki ayr&#x131; &#x15F;eydir. Belirtti&#x11F;imiz gibi Python dilinde &#xE7;o&#x11F;u zaman k&#xFC;&#xE7;&#xFC;k harfler kullan&#x131;l&#x131;r. Baz&#x131; yap&#x131;lar&#x131;n tan&#x131;mlamas&#x131;nda ise b&#xFC;y&#xFC;k harfle ba&#x15F;lan&#x131;r. &#xD6;rne&#x11F;in ileride g&#xF6;rece&#x11F;imiz <code>class</code> (S&#x131;n&#x131;f) yap&#x131;lar&#x131; b&#xFC;y&#xFC;k harfle tan&#x131;mlan&#x131;r. S&#x131;ras&#x131; geldik&#xE7;e bu konulardan bahsedec&#x11F;iz.</p>
<p></p>
<!--kg-card-begin: html-->
<h2 id="programlama-python-rehber-fumdamentals">4. TEMEL ESASLAR<a alt="ba&#x15F;a d&#xF6;n" href="#programlama-python-rehber-contents" style="text-decoration: none; margin-left:5px">&#x2303;</a></h2>
<!--kg-card-end: html-->

<!--kg-card-begin: html-->
<h3 id="programlama-python-rehber-variables">4.1 De&#x11F;i&#x15F;kenler (Variables</h3>
<!--kg-card-end: html-->
<p>Devam etmeden &#xF6;nce bir hususu hat&#x131;rlatmakta yarar var. Bu rehber boyunca kodlar&#x131; g&#xF6;rd&#xFC;&#x11F;&#xFC;n&#xFC;z kod snippet sa&#x11F; &#xFC;st&#xFC;ne mouse ile gelirseniz, <code>Copy</code> butonunu g&#xF6;rebilirsiniz. Bu sayede istedi&#x11F;iniz kodu kopyalayabilirsiniz.</p>
<figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://izleogrenkodla.dev/content/images/2022/10/Screen-Shot-2022-10-04-at-13.29.58.png" class="kg-image" alt="Python Ba&#x15F; Ucu Rehberi" loading="lazy" width="755" height="122" srcset="https://izleogrenkodla.dev/content/images/size/w600/2022/10/Screen-Shot-2022-10-04-at-13.29.58.png 600w, https://izleogrenkodla.dev/content/images/2022/10/Screen-Shot-2022-10-04-at-13.29.58.png 755w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">a sample code snippet</span></figcaption></figure><p>De&#x11F;i&#x15F;kenler (variables) bo&#x15F; kutulara benzetilebilir. Nas&#x131;l bir kutunun i&#xE7;inde bir &#x15F;ey saklars&#x131;n&#x131;z, gerekti&#x11F;inde kutudan &#xE7;&#x131;kar&#x131;r ve bazen i&#xE7;ine ba&#x15F;ka bir &#x15F;ey koyars&#x131;n&#x131;z, de&#x11F;i&#x15F;kenler de belirli de&#x11F;erleri saklamak i&#xE7;in kullan&#x131;l&#x131;r. Bir de&#x11F;i&#x15F;ken olu&#x15F;turdu&#x11F;unuzda haf&#x131;zada (memory) bir yer tutar. Bir&#xE7;ok programlama dili bir de&#x11F;i&#x15F;kenin &#xF6;nceden tan&#x131;mlanmas&#x131;n&#x131; gerektirir. Ancak Python&apos; da buna ihtiya&#xE7; yoktur. De&#x11F;i&#x15F;keni yaz&#x131;p ona bir de&#x11F;er atad&#x131;&#x11F;&#x131;m&#x131;z anda Python otomatik olarak &#xF6;nce onu olu&#x15F;turur ve sonra de&#x11F;eri ona atar.</p>
<pre><code class="language-python">ad = &quot;izleogrenkodla&quot;
hedef = &quot;IT konular&#x131;n&#x131; en basit haliyle anlatmak&quot;
makale_sayisi = 11
</code></pre><p>Yukar&#x131;da de&#x11F;i&#x15F;kenlerimizi tan&#x131;mlad&#x131;k. &#x15E;imdi onlar&#x131; ekrana yazd&#x131;rabiliriz.</p>
<pre><code class="language-python">print(ad)
print(hedef)
print(makale_sayisi)</code></pre><p>ve kodun &#xE7;&#x131;kt&#x131;s&#x131;;</p><pre><code class="language-sh">izleogrenkodla
IT konular&#x131;n&#x131; en basit haliyle anlatmak
11</code></pre><p>Say&#x131;lar de&#x11F;i&#x15F;ken isminde kullan&#x131;labilir ama bir de&#x11F;i&#x15F;ken isimi say&#x131; ile ba&#x15F;layamaz. Ya bir harfle ba&#x15F;lamal&#x131;d&#x131;r ya da alt tire ile ba&#x15F;layabilir. <code>@, $</code> gibi &#xF6;zel karakterler kullan&#x131;lamaz. Bunlar&#x131;n yan&#x131;nda Python&apos; a &#xF6;zel anahtar kelimeler (keywords) de de&#x11F;i&#x15F;ken ismi olarak kullan&#x131;lamaz. &#xD6;rne&#x11F;in <code>print</code> gibi. T&#xFC;m anahtar kelime listesine <a href="https://docs.python.org/3/reference/lexical_analysis.html?ref=izleogrenkodla.dev#keywords">buradan</a> eri&#x15F;ebilirsiniz.</p>

<!--kg-card-begin: html-->
<h3 id="programlama-python-rehber-primitives">4.2 Basit Tipler (Primitive Types)</h3>
<!--kg-card-end: html-->
<p>Basit tipler, temel data yap&#x131;lar&#x131;d&#x131;r. Bunlar&#x131; s&#x131;ralayacak olursak;</p>
<ul>
<li>Say&#x131;lar (Integers)</li>
<li>Ondal&#x131;kl&#x131; Tipler (Floats)</li>
<li>Metinsel tipler (Strings)</li>
<li>Do&#x11F;ru-Yanl&#x131;&#x15F; (Boolean)</li>
</ul>

<!--kg-card-begin: html-->
<h4>Integers</h4>
<!--kg-card-end: html-->
<p>Bu tipler pozitif ve negatif tam say&#x131;lard&#x131;r.</p>
<pre><code class="language-python">derecem = 84</code></pre>
<!--kg-card-begin: html-->
<h4>Floats</h4>
<!--kg-card-end: html-->
<p>E&#x11F;er ondal&#x131;k kullanmak istersek tipimiz float olmal&#x131;d&#x131;r.</p>
<pre><code class="language-python">tam_derecem = 84.30</code></pre>
<!--kg-card-begin: html-->
<h4>Strings</h4>
<!--kg-card-end: html-->
<p>Bu ifadenin tam T&#xFC;rk&#xE7;e kar&#x15F;&#x131;l&#x131;&#x11F;&#x131; yok gibi ama metinsel ifadeler diyebiliriz. Strings deyince akl&#x131;m&#x131;za harfler, kelimeler, karakterler gelmeli. Tek sat&#x131;r bir string yaz&#x131;yorsak tek <code>&apos; &apos;</code> ya da &#xE7;ift <code>&quot; &quot;</code> t&#x131;rnak i&#x15F;areti kullan&#x131;r&#x131;z. E&#x11F;er &#xE7;ok sat&#x131;rl&#x131; bir string yaz&#x131;yor isek &#xFC;&#xE7;l&#xFC; t&#x131;rnak kullan&#x131;r&#x131;z.</p>
<pre><code class="language-python">ad = &quot;Ali&quot;
konu = &apos;Python&apos;
benim_fikrim = &quot;Python 10 numara bir dil!&quot;
alisveris_listem = &quot;&quot;&quot;
Limon
Marul
&#xDC;z&#xFC;m
&quot;&quot;&quot;</code></pre><p>String ifade i&#xE7;inde t&#x131;rnak i&#x15F;areti kullanmam&#x131;z gerekiyor ise d&#x131;&#x15F;ar&#x131;daki t&#x131;rnak i&#x15F;aretini tek kulland&#x131; isek i&#xE7;eridekini &#xE7;ift kullanabiliriz ya da tam tersi. Di&#x11F;er bir y&#xF6;ntem ise programc&#x131;l&#x131;kta ka&#xE7;ma karakteri <code>escape character</code> denen karakteri kullanmak. Python&apos;da <code>\</code> escape karakterdir. Bu karakter kendinden sonra gelen karakteri direkt string i&#xE7;inde yazd&#x131;r&#x131;r. &#xD6;rneklerle daha iyi anla&#x15F;&#x131;lacakt&#x131;r.</p>
<pre><code class="language-python"># D&#x131;&#x15F;ar&#x131;da tek t&#x131;rnak
gunun_sozu1 = &apos;En de&#x11F;erli &quot;hazine&quot; sa&#x11F;l&#x131;&#x11F;&#x131;m&#x131;zd&#x131;r.&apos;

# D&#x131;&#x15F;ar&#x131;da &#xE7;ift t&#x131;rnak
gunun_sozu2 = &quot;Ak&#x131;l ya&#x15F;ta de&#x11F;il &apos;ba&#x15F;ta&apos; d&#x131;r.&quot;

# Escape karakter ile
gunun_sozu3 = &quot;Sakla \&quot;saman&#x131;\&quot; gelir zaman&#x131;.&quot;
</code></pre><p>Yukar&#x131;da son de&#x11F;i&#x15F;kende escape karakter kulland&#x131;k. Dolay&#x131;s&#x131;yla <code>saman&#x131;</code> kelimesinden &#xF6;nceki ve sonraki &#xE7;ift t&#x131;rnaklar bir string ifadenin ba&#x15F;lad&#x131;&#x11F;&#x131;n&#x131; ya da bitti&#x11F;ini belirtmiyor. &#xC7;&#xFC;nk&#xFC; t&#x131;rnak i&#x15F;aretinin Python&apos; daki g&#xF6;revinden ka&#xE7;t&#x131;k ya da escape yapt&#x131;k. Onun yerine bu i&#x15F;aretler sadece t&#x131;rnak i&#x15F;areti belirtiyor.</p>

<!--kg-card-begin: html-->
<h4>Boolean</h4>
<!--kg-card-end: html-->
<p>Boolean veritipi <strong>do&#x11F;ru</strong> (True) ve <strong>yanl&#x131;&#x15F;</strong> (False) olmak &#xFC;zere iki de&#x11F;er alabilir.</p>
<pre><code class="language-python">ali_ayseden_buyuk = True
ali_ayseden_buyuk = False</code></pre>
<!--kg-card-begin: html-->
<h4>Tip Kontrol&#xFC; (Checking type)</h4>
<!--kg-card-end: html-->
<p>Bu k&#x131;sm&#x131; bitirmeden &#xF6;nce Python&apos; da tip kontrol&#xFC; nas&#x131;l yap&#x131;l&#x131;r bir g&#xF6;zatal&#x131;m.</p>
<p>Python&apos;da tip kontrol&#xFC; i&#xE7;in <code>type()</code> fonksiyonu kullan&#x131;l&#x131;r. Tipini kontrol etmek istedi&#x11F;iniz de&#x11F;i&#x15F;keni (variable) bu fonksiyon i&#xE7;inde arg&#xFC;man olarak kullanman&#x131;z gerekir.</p>
<p>Parametre ve Arg&#xFC;man konusunu fonksiyonlar konusunda detayl&#x131; olarak g&#xF6;rece&#x11F;iz. type fonksiyonu i&#xE7;in yapman&#x131;z greken tipini &#xF6;&#x11F;renmek istedi&#x11F;iniz de&#x11F;i&#x15F;keni parantezler i&#xE7;ine yazman&#x131;z.</p>
<pre><code class="language-python">name = Ali
type(name)
</code></pre><p>Yukar&#x131;daki kod <code>name</code> de&#x11F;i&#x15F;keninin tipini bize geri d&#xF6;nd&#xFC;r&#xFC;r ancak biz onu g&#xF6;remeyiz. Onu ekranda g&#xF6;rmek istersek bir de yazd&#x131;rmam&#x131;z gerekir. Bu nedenle kodu &#x15F;u &#x15F;ekilde yazal&#x131;m.</p>
<pre><code class="language-python">name = Ali
print(type(name))
</code></pre><p>ve &#xE7;&#x131;kt&#x131;;</p><pre><code class="language-sh">&lt;class &apos;str&gt;&apos;</code></pre><p>G&#xF6;rd&#xFC;&#x11F;&#xFC;n&#xFC;z gibi fonksiyonlar i&#xE7; i&#xE7;e de kullan&#x131;labilir. Yukar&#x131;da &#xF6;nce name isminde de&#x11F;i&#x15F;ken tan&#x131;mlad&#x131;k. En i&#xE7;eriden ba&#x15F;larsak &#xF6;nce bu de&#x11F;i&#x15F;kenin tipini bulduk sonra da yazd&#x131;rd&#x131;k. Tahmin etti&#x11F;iniz gibi name de&#x11F;i&#x15F;kenin tipi bir <code>string</code>.</p>

<!--kg-card-begin: html-->
<h3 id="programlama-python-rehber-understand-strings">4.3 Metinsel Tipleri (Strings) Anlamak</h3>
<!--kg-card-end: html-->

<!--kg-card-begin: html-->
<h4>Index</h4>
<!--kg-card-end: html-->
<p><code>String</code> tipi asl&#x131;nda birden fazla karakter dizisidir. Bu dizide her bir karakterin dizin i&#xE7;indeki i&#x15F;aret numaras&#x131; yani <code>index</code> numaras&#x131; vard&#x131;r. Index mumaras&#x131; soldan sa&#x11F;a <code>0</code>&apos; dan, sa&#x11F;dan sola ise <code>-1</code>&apos; den ba&#x15F;lar.</p>
<p>Hemen bir &#xF6;rnek verelim. A&#x15F;a&#x11F;&#x131;da `name` isminde bir de&#x11F;i&#x15F;ken (variable) tan&#x131;ml&#x131;yoruz ve &quot;izle &#xF6;&#x11F;ren kodla&quot; de&#x11F;erini bu de&#x11F;i&#x15F;kene at&#x131;yoruz.</p>
<!--kg-card-begin: html-->
<pre><code class="language-python line-numbers">name = &apos;izle &#xF6;&#x11F;ren kodla&apos;</code></pre>
<!--kg-card-end: html-->
<p>&#x15E;imdi soldan ikinci karakteri yazd&#x131;rmak istedi&#x11F;imizi d&#xFC;&#x15F;&#xFC;nelim. Bu <code>z</code> harfidir. Bunun i&#xE7;in Python&apos; a do&#x11F;ru index bilgisini s&#xF6;ylememiz gerekir. A&#x15F;a&#x11F;&#x131;daki tabloda index numaralar&#x131; soldan ve sa&#x11F;dan g&#xF6;sterilmi&#x15F;tir.</p>

<!--kg-card-begin: html-->
<table xmlns="http://www.w3.org/1999/xhtml" cellspacing="0" cellpadding="0" dir="ltr" border="1" style="table-layout:fixed;font-size:10pt;font-family:Arial;width:0px;border-collapse:collapse;border:none"><colgroup><col width="81"><col width="36"><col width="36"><col width="36"><col width="36"><col width="36"><col width="36"><col width="36"><col width="36"><col width="36"><col width="36"><col width="36"><col width="36"><col width="36"><col width="36"><col width="36"><col width="36"><col width="81"></colgroup><tbody><tr style="height:43px;"><td style="border-top:1px solid #000000;border-right:1px solid #000000;border-bottom:1px solid #000000;border-left:1px solid #000000;overflow:hidden;padding:2px 3px 2px 3px;vertical-align:middle;"></td><td style="border-top:1px solid #000000;border-right:1px solid #000000;border-bottom:1px solid #000000;overflow:hidden;padding:2px 3px 2px 3px;vertical-align:middle;background-color:#e6b8af;text-align:center;" data-sheets-value="{" 1":3,"3":-16}">-16</td><td style="border-top:1px solid #000000;border-right:1px solid #000000;border-bottom:1px solid #000000;overflow:hidden;padding:2px 3px 2px 3px;vertical-align:middle;background-color:#e6b8af;text-align:center;" data-sheets-value="{" 1":3,"3":-15}">-15</td><td style="border-top:1px solid #000000;border-right:1px solid #000000;border-bottom:1px solid #000000;overflow:hidden;padding:2px 3px 2px 3px;vertical-align:middle;background-color:#e6b8af;text-align:center;" data-sheets-value="{" 1":3,"3":-14}">-14</td><td style="border-top:1px solid #000000;border-right:1px solid #000000;border-bottom:1px solid #000000;overflow:hidden;padding:2px 3px 2px 3px;vertical-align:middle;background-color:#e6b8af;text-align:center;" data-sheets-value="{" 1":3,"3":-13}">-13</td><td style="border-top:1px solid #000000;border-right:1px solid #000000;border-bottom:1px solid #000000;overflow:hidden;padding:2px 3px 2px 3px;vertical-align:middle;background-color:#e6b8af;text-align:center;" data-sheets-value="{" 1":3,"3":-12}">-12</td><td style="border-top:1px solid #000000;border-right:1px solid #000000;border-bottom:1px solid #000000;overflow:hidden;padding:2px 3px 2px 3px;vertical-align:middle;background-color:#e6b8af;text-align:center;" data-sheets-value="{" 1":3,"3":-11}">-11</td><td style="border-top:1px solid #000000;border-right:1px solid #000000;border-bottom:1px solid #000000;overflow:hidden;padding:2px 3px 2px 3px;vertical-align:middle;background-color:#e6b8af;text-align:center;" data-sheets-value="{" 1":3,"3":-10}">-10</td><td style="border-top:1px solid #000000;border-right:1px solid #000000;border-bottom:1px solid #000000;overflow:hidden;padding:2px 3px 2px 3px;vertical-align:middle;background-color:#e6b8af;text-align:center;" data-sheets-value="{" 1":3,"3":-9}">-9</td><td style="border-top:1px solid #000000;border-right:1px solid #000000;border-bottom:1px solid #000000;overflow:hidden;padding:2px 3px 2px 3px;vertical-align:middle;background-color:#e6b8af;text-align:center;" data-sheets-value="{" 1":3,"3":-8}">-8</td><td style="border-top:1px solid #000000;border-right:1px solid #000000;border-bottom:1px solid #000000;overflow:hidden;padding:2px 3px 2px 3px;vertical-align:middle;background-color:#e6b8af;text-align:center;" data-sheets-value="{" 1":3,"3":-7}">-7</td><td style="border-top:1px solid #000000;border-right:1px solid #000000;border-bottom:1px solid #000000;overflow:hidden;padding:2px 3px 2px 3px;vertical-align:middle;background-color:#e6b8af;text-align:center;" data-sheets-value="{" 1":3,"3":-6}">-6</td><td style="border-top:1px solid #000000;border-right:1px solid #000000;border-bottom:1px solid #000000;overflow:hidden;padding:2px 3px 2px 3px;vertical-align:middle;background-color:#e6b8af;text-align:center;" data-sheets-value="{" 1":3,"3":-5}">-5</td><td style="border-top:1px solid #000000;border-right:1px solid #000000;border-bottom:1px solid #000000;overflow:hidden;padding:2px 3px 2px 3px;vertical-align:middle;background-color:#e6b8af;text-align:center;" data-sheets-value="{" 1":3,"3":-4}">-4</td><td style="border-top:1px solid #000000;border-right:1px solid #000000;border-bottom:1px solid #000000;overflow:hidden;padding:2px 3px 2px 3px;vertical-align:middle;background-color:#e6b8af;text-align:center;" data-sheets-value="{" 1":3,"3":-3}">-3</td><td style="border-top:1px solid #000000;border-right:1px solid #000000;border-bottom:1px solid #000000;overflow:hidden;padding:2px 3px 2px 3px;vertical-align:middle;background-color:#e6b8af;text-align:center;" data-sheets-value="{" 1":3,"3":-2}">-2</td><td style="border-top:1px solid #000000;border-right:1px solid #000000;border-bottom:1px solid #000000;overflow:hidden;padding:2px 3px 2px 3px;vertical-align:middle;background-color:#e6b8af;text-align:center;" data-sheets-value="{" 1":3,"3":-1}">-1</td><td style="border-top:1px solid #000000;border-right:1px solid #000000;border-bottom:1px solid #000000;overflow:hidden;padding:2px 3px 2px 3px;vertical-align:middle;font-size:11pt;font-weight:bold;text-align:center;" data-sheets-value="{" 1":2,"2":"sağdan\nsola"}">sa&#x11F;dan<br>sola</td></tr><tr style="height:43px;"><td style="border-right:1px solid #000000;border-bottom:1px solid #000000;border-left:1px solid #000000;overflow:hidden;padding:2px 3px 2px 3px;vertical-align:middle;font-size:11pt;font-weight:bold;text-align:center;" data-sheets-value="{" 1":2,"2":"soldan\nsağa"}">soldan<br>sa&#x11F;a</td><td style="border-right:1px solid #000000;border-bottom:1px solid #000000;overflow:hidden;padding:2px 3px 2px 3px;vertical-align:middle;background-color:#a4c2f4;text-align:center;" data-sheets-value="{" 1":3,"3":0}">0</td><td style="border-right:1px solid #000000;border-bottom:1px solid #000000;overflow:hidden;padding:2px 3px 2px 3px;vertical-align:middle;background-color:#a4c2f4;text-align:center;" data-sheets-value="{" 1":3,"3":1}">1</td><td style="border-right:1px solid #000000;border-bottom:1px solid #000000;overflow:hidden;padding:2px 3px 2px 3px;vertical-align:middle;background-color:#a4c2f4;text-align:center;" data-sheets-value="{" 1":3,"3":2}">2</td><td style="border-right:1px solid #000000;border-bottom:1px solid #000000;overflow:hidden;padding:2px 3px 2px 3px;vertical-align:middle;background-color:#a4c2f4;text-align:center;" data-sheets-value="{" 1":3,"3":3}">3</td><td style="border-right:1px solid #000000;border-bottom:1px solid #000000;overflow:hidden;padding:2px 3px 2px 3px;vertical-align:middle;background-color:#a4c2f4;text-align:center;" data-sheets-value="{" 1":3,"3":4}">4</td><td style="border-right:1px solid #000000;border-bottom:1px solid #000000;overflow:hidden;padding:2px 3px 2px 3px;vertical-align:middle;background-color:#a4c2f4;text-align:center;" data-sheets-value="{" 1":3,"3":5}">5</td><td style="border-right:1px solid #000000;border-bottom:1px solid #000000;overflow:hidden;padding:2px 3px 2px 3px;vertical-align:middle;background-color:#a4c2f4;text-align:center;" data-sheets-value="{" 1":3,"3":6}">6</td><td style="border-right:1px solid #000000;border-bottom:1px solid #000000;overflow:hidden;padding:2px 3px 2px 3px;vertical-align:middle;background-color:#a4c2f4;text-align:center;" data-sheets-value="{" 1":3,"3":7}">7</td><td style="border-right:1px solid #000000;border-bottom:1px solid #000000;overflow:hidden;padding:2px 3px 2px 3px;vertical-align:middle;background-color:#a4c2f4;text-align:center;" data-sheets-value="{" 1":3,"3":8}">8</td><td style="border-right:1px solid #000000;border-bottom:1px solid #000000;overflow:hidden;padding:2px 3px 2px 3px;vertical-align:middle;background-color:#a4c2f4;text-align:center;" data-sheets-value="{" 1":3,"3":9}">9</td><td style="border-right:1px solid #000000;border-bottom:1px solid #000000;overflow:hidden;padding:2px 3px 2px 3px;vertical-align:middle;background-color:#a4c2f4;text-align:center;" data-sheets-value="{" 1":3,"3":10}">10</td><td style="border-right:1px solid #000000;border-bottom:1px solid #000000;overflow:hidden;padding:2px 3px 2px 3px;vertical-align:middle;background-color:#a4c2f4;text-align:center;" data-sheets-value="{" 1":3,"3":11}">11</td><td style="border-right:1px solid #000000;border-bottom:1px solid #000000;overflow:hidden;padding:2px 3px 2px 3px;vertical-align:middle;background-color:#a4c2f4;text-align:center;" data-sheets-value="{" 1":3,"3":12}">12</td><td style="border-right:1px solid #000000;border-bottom:1px solid #000000;overflow:hidden;padding:2px 3px 2px 3px;vertical-align:middle;background-color:#a4c2f4;text-align:center;" data-sheets-value="{" 1":3,"3":13}">13</td><td style="border-right:1px solid #000000;border-bottom:1px solid #000000;overflow:hidden;padding:2px 3px 2px 3px;vertical-align:middle;background-color:#a4c2f4;text-align:center;" data-sheets-value="{" 1":3,"3":14}">14</td><td style="border-right:1px solid #000000;border-bottom:1px solid #000000;overflow:hidden;padding:2px 3px 2px 3px;vertical-align:middle;background-color:#a4c2f4;text-align:center;" data-sheets-value="{" 1":3,"3":15}">15</td><td style="border-right:1px solid #000000;border-bottom:1px solid #000000;overflow:hidden;padding:2px 3px 2px 3px;vertical-align:middle;"></td></tr><tr style="height:43px;"><td style="border-right:1px solid #000000;border-bottom:1px solid #000000;border-left:1px solid #000000;overflow:hidden;padding:2px 3px 2px 3px;vertical-align:middle;"></td><td style="border-right:1px solid #000000;border-bottom:1px solid #000000;overflow:hidden;padding:2px 3px 2px 3px;vertical-align:middle;background-color:#b6d7a8;text-align:center;" data-sheets-value="{" 1":2,"2":"i"}">i</td><td style="border-right:1px solid #000000;border-bottom:1px solid #000000;overflow:hidden;padding:2px 3px 2px 3px;vertical-align:middle;background-color:#b6d7a8;text-align:center;" data-sheets-value="{" 1":2,"2":"z"}">z</td><td style="border-right:1px solid #000000;border-bottom:1px solid #000000;overflow:hidden;padding:2px 3px 2px 3px;vertical-align:middle;background-color:#b6d7a8;text-align:center;" data-sheets-value="{" 1":2,"2":"l"}">l</td><td style="border-right:1px solid #000000;border-bottom:1px solid #000000;overflow:hidden;padding:2px 3px 2px 3px;vertical-align:middle;background-color:#b6d7a8;text-align:center;" data-sheets-value="{" 1":2,"2":"e"}">e</td><td style="border-right:1px solid #000000;border-bottom:1px solid #000000;overflow:hidden;padding:2px 3px 2px 3px;vertical-align:middle;background-color:#b6d7a8;"></td><td style="border-right:1px solid #000000;border-bottom:1px solid #000000;overflow:hidden;padding:2px 3px 2px 3px;vertical-align:middle;background-color:#b6d7a8;text-align:center;" data-sheets-value="{" 1":2,"2":"ö"}">&#xF6;</td><td style="border-right:1px solid #000000;border-bottom:1px solid #000000;overflow:hidden;padding:2px 3px 2px 3px;vertical-align:middle;background-color:#b6d7a8;text-align:center;" data-sheets-value="{" 1":2,"2":"ğ"}">&#x11F;</td><td style="border-right:1px solid #000000;border-bottom:1px solid #000000;overflow:hidden;padding:2px 3px 2px 3px;vertical-align:middle;background-color:#b6d7a8;text-align:center;" data-sheets-value="{" 1":2,"2":"r"}">r</td><td style="border-right:1px solid #000000;border-bottom:1px solid #000000;overflow:hidden;padding:2px 3px 2px 3px;vertical-align:middle;background-color:#b6d7a8;text-align:center;" data-sheets-value="{" 1":2,"2":"e"}">e</td><td style="border-right:1px solid #000000;border-bottom:1px solid #000000;overflow:hidden;padding:2px 3px 2px 3px;vertical-align:middle;background-color:#b6d7a8;text-align:center;" data-sheets-value="{" 1":2,"2":"n"}">n</td><td style="border-right:1px solid #000000;border-bottom:1px solid #000000;overflow:hidden;padding:2px 3px 2px 3px;vertical-align:middle;background-color:#b6d7a8;"></td><td style="border-right:1px solid #000000;border-bottom:1px solid #000000;overflow:hidden;padding:2px 3px 2px 3px;vertical-align:middle;background-color:#b6d7a8;text-align:center;" data-sheets-value="{" 1":2,"2":"k"}">k</td><td style="border-right:1px solid #000000;border-bottom:1px solid #000000;overflow:hidden;padding:2px 3px 2px 3px;vertical-align:middle;background-color:#b6d7a8;text-align:center;" data-sheets-value="{" 1":2,"2":"o"}">o</td><td style="border-right:1px solid #000000;border-bottom:1px solid #000000;overflow:hidden;padding:2px 3px 2px 3px;vertical-align:middle;background-color:#b6d7a8;text-align:center;" data-sheets-value="{" 1":2,"2":"d"}">d</td><td style="border-right:1px solid #000000;border-bottom:1px solid #000000;overflow:hidden;padding:2px 3px 2px 3px;vertical-align:middle;background-color:#b6d7a8;text-align:center;" data-sheets-value="{" 1":2,"2":"l"}">l</td><td style="border-right:1px solid #000000;border-bottom:1px solid #000000;overflow:hidden;padding:2px 3px 2px 3px;vertical-align:middle;background-color:#b6d7a8;text-align:center;" data-sheets-value="{" 1":2,"2":"a"}">a</td><td style="border-right:1px solid #000000;border-bottom:1px solid #000000;overflow:hidden;padding:2px 3px 2px 3px;vertical-align:middle;"></td></tr></tbody></table>
<!--kg-card-end: html-->
<p>G&#xF6;rd&#xFC;&#x11F;&#xFC;n&#xFC;z gibi <code>z</code> harfinin index numaras&#x131; soldan <code>1</code> ve sa&#x11F;dan <code>-15</code>&apos; tir. Her iki index numaras&#x131; da bize ayn&#x131; de&#x11F;eri verir. Index numaralar&#x131; de&#x11F;i&#x15F;kenin ad&#x131;n&#x131;n yan&#x131;nda k&#xF6;&#x15F;eli parantez i&#xE7;inde belirtilir. A&#x15F;a&#x11F;&#x131;daki &#xF6;rneklere bakal&#x131;m:</p>
<pre><code class="language-python">print(name[1])
print(name[-15])</code></pre><p>bu iki sat&#x131;r&#x131;n &#xE7;&#x131;kt&#x131;s&#x131;;</p><pre><code class="language-python">z
z</code></pre><p>Yani her ikisi de birbirine e&#x15F;it. O zaman &#x15F;&#xF6;yle diyebiliriz:</p><pre><code class="language-python">name[1] == name[-15]</code></pre>
<!--kg-card-begin: html-->
<h4>String Uzunlu&#x11F;u</h4>
<!--kg-card-end: html-->
<p>Bir string&apos; in uzunlu&#x11F;unu bulmak i&#xE7;in <code>len</code> fonksiyonunu kullan&#x131;r&#x131;z.</p>
<pre><code class="language-python">print(len(&apos;Test Automation&apos;))</code></pre><pre><code class="language-python">15</code></pre>
<!--kg-card-begin: html-->
<h4>Slicing (Dilimleme)</h4>
<!--kg-card-end: html-->
<p>Index&apos; lerin yard&#x131;m&#x131;yla bir string&apos; in istedi&#x11F;imiz b&#xF6;l&#xFC;m&#xFC;n&#xFC; dilimleyip alabiliriz. Buna <code>slicing</code> denir.</p>
<pre><code class="language-python">my_film = &apos;Lord of The Rings&apos;
print(my_film[0:4])
</code></pre><pre><code class="language-py">Lord
</code></pre><p>Yukar&#x131;da <code>my_film[0:4]</code> ifadesini kulland&#x131;k. Bu 0 ile 4&apos; &#xFC;nc&#xFC; index aras&#x131;ndaki karakterleri al&#x131;r. Burada s&#x131;f&#x131;r dahildir 4 hari&#xE7;tir. Yani <code>s&#x131;f&#x131;rdan ba&#x15F;la 4&apos;e kadar git 4 hari&#xE7;</code>demektir.</p>

<!--kg-card-begin: html-->
<h4>Concatenation (Birle&#x15F;tirme)</h4>
<!--kg-card-end: html-->
<p>&#x130;ki veya daha fazla string ifadesini <code>+</code> operat&#xF6;r&#xFC; ile birle&#x15F;tirerek tek bir string haline getirebiliriz.</p>
<pre><code class="language-py">name = &apos;Ahmet&apos;
surname = &apos;G&#xFC;&#xE7;l&#xFC;&apos;
full_name = name + &apos; &apos; + surname
print(full_name)
</code></pre><pre><code class="language-python">Ahmet G&#xFC;&#xE7;l&#xFC;</code></pre>
<!--kg-card-begin: html-->
<h4>Case Conversion (Harf D&#xF6;n&#xFC;&#x15F;t&#xFC;rme)</h4>
<!--kg-card-end: html-->
<p><code>upper()</code> metodu t&#xFC;m karakterleri b&#xFC;y&#xFC;k harfe, <code>lower()</code> metodu ise k&#xFC;&#xE7;&#xFC;k harfe d&#xF6;n&#xFC;&#x15F;t&#xFC;r&#xFC;r.</p>
<pre><code class="language-py">buyuk_harf = &apos;Izle Ogren Kodla&apos;.upper()
kucuk_harf = &apos;Izle Ogren Kodla&apos;.lower()
print(buyuk_harf)
print(kucuk_harf)
</code></pre><pre><code class="language-py">IZLE OGREN KODLA
izle ogren kodla
</code></pre><p>String&apos; lerle daha bir&#xE7;ok metod kullanabiliriz. Biz burada sadece en &#xE7;ok kullan&#x131;lanlar&#x131;n&#x131; g&#xF6;stermeye &#xE7;al&#x131;&#x15F;t&#x131;k. String ifadesini incelemek isterseniz <a href="https://docs.python.org/3/library/stdtypes.html?ref=izleogrenkodla.dev#text-sequence-type-str">Python dok&#xFC;manlar&#x131;n&#x131; </a>inceleyebilirsiniz.</p>
<!--kg-card-begin: html-->
<h3 id="programlama-python-rehber-operators">4.4 Operat&#xF6;rler (Operators</h3>
<!--kg-card-end: html-->

<!--kg-card-begin: html-->
<h4>Assignment (Atama) Operat&#xF6;r&#xFC;</h4>
<!--kg-card-end: html-->
<p><code>=</code> i&#x15F;areti bir&#xE7;ok programlama dilinde oldu&#x11F;u gibi Python i&#xE7;in de atama operat&#xF6;r&#xFC; olarak kullan&#x131;l&#x131;r. &#xD6;rne&#x11F;in:</p>
<pre><code class="language-py">benim_yasim = 19</code></pre><p>Bu bir atamada&#x131;r. <code>benim_yasim</code> de&#x11F;i&#x15F;kenine <code>19</code> de&#x11F;erini atar.</p>

<!--kg-card-begin: html-->
<h4>Arithmetic (Hesaplama) Operat&#xF6;rleri</h4>
<!--kg-card-end: html-->
<p>Bunlar temel matematiksel i&#x15F;lemleri yapabilece&#x11F;imiz operat&#xF6;rlerdir.</p><ul><li>&#x201C;+&#x201D;: Toplam</li><li>&#x201C;-&#x201C;: &#xC7;&#x131;karma</li><li>&#x201C;/&#x201D;: B&#xF6;lme</li><li>&#x201C;//&#x201D;: Tam say&#x131; b&#xF6;lme (virg&#xFC;lden sonras&#x131;n&#x131; a&#x15F;a&#x11F;&#x131;ya yuvarlar)</li><li>&#x201C;*&#x201D;: &#xC7;arpma</li><li>&#x201C;%&#x201D;: Kalan (bu mod operat&#xF6;r&#xFC; diye de bilinir.)</li></ul><pre><code class="language-py">print(3 + 6)
print(8 - 1)
print(7 / 2)
print(7 // 2)
print(3 * 6)
print(7 % 2) # 7 ikiye b&#xF6;l&#xFC;n&#xFC;rse geriye 1 kal&#x131;r. (2 * 3) + 1
</code></pre><pre><code class="language-python">9
7
3.5
3
18
1</code></pre>
<!--kg-card-begin: html-->
<h4>Comparison (Kar&#x15F;&#x131;la&#x15F;t&#x131;rma) Operat&#xF6;rlei</h4>
<!--kg-card-end: html-->
<p>Bu operat&#xF6;rler iki de&#x11F;eri kar&#x15F;&#x131;la&#x15F;t&#x131;rmak i&#xE7;in kullan&#x131;l&#x131;r.</p><ul><li>&#x201C;==&#x201D; : E&#x15F;ittir. (Bildi&#x11F;imiz e&#x15F;ittir iki tane e&#x15F;ittir ile yap&#x131;l&#x131;r.)</li><li>&#x201C;!=&#x201D; : E&#x15F; de&#x11F;ildir.</li><li>&#x201C;&lt;&quot; : K&#xFC;&#xE7;&#xFC;kt&#xFC;r.</li><li>&#x201C;&lt;=&quot;: K&#xFC;&#xE7;&#xFC;k e&#x15F;ittir.</li><li>&#x201C;&gt;&#x201D; : B&#xFC;y&#xFC;kt&#xFC;r.</li><li>&#x201C;&gt;=&#x201D; : B&#xFC;y&#xFC;k e&#x15F;ittir.</li></ul><pre><code class="language-python">print(6 &gt; 3)
print(5 != 5)
print(2 &lt;= 7)
print(&apos;aaa&apos; == &apos;aaa&apos;)</code></pre><pre><code class="language-python">True
False
True
True</code></pre>
<!--kg-card-begin: html-->
<h4>Logic (Mant&#x131;k) Operat&#xF6;rleri</h4>
<!--kg-card-end: html-->
<p>Bu operat&#xF6;rler <code>boolean logic</code>(do&#x11F;ru-yanl&#x131;&#x15F; mant&#x131;&#x11F;&#x131;) i&#x15F;lemleri yapmak i&#xE7;in kullan&#x131;l&#x131;r. </p><p><strong>Boolean Logic</strong>:</p><ul><li>&quot;and&quot; : &#x130;ki ifade de do&#x11F;ru ise do&#x11F;rudur aksi takdirde yanl&#x131;&#x15F;t&#x131;r.</li><li>&quot;or&quot; : &#x130;ki ifade de yanl&#x131;&#x15F;sa yanl&#x131;&#x15F;t&#x131;r aksi takdirde do&#x11F;rudur.</li><li>&quot;not&quot; : Do&#x11F;ru ise yanl&#x131;&#x15F;, yanl&#x131;&#x15F; ise do&#x11F;rudur.</li></ul><pre><code class="language-python">print(6 &gt; 3 and &apos;a&apos; == &apos;a&apos;)
print(3 &gt; 6 and &apos;a&apos; == &apos;a&apos;)
print(3 &gt; 6 or &apos;a&apos; == &apos;a&apos;)
print(3 &gt; 6 or &apos;a&apos; != &apos;a&apos;)
print(not(3 &gt; 6))
</code></pre><pre><code class="language-python">True
False
True
False
True
</code></pre><p>Operat&#xF6;rlerin de&#x11F;i&#x15F;ik &#xF6;ncelik s&#x131;ralar&#x131; vard&#x131;r. A&#x15F;a&#x11F;&#x131;daki tablo en &#xE7;ok kullan&#x131;lan operat&#xF6;r ve s&#x131;ralamalar&#x131;n&#x131; g&#xF6;stermektedir.</p>
<table>
<thead>
<tr>
<th style="text-align:left">No</th>
<th style="text-align:left">Operat&#xF6;r</th>
<th style="text-align:left">A&#xE7;&#x131;klama</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left">1.</td>
<td style="text-align:left">()</td>
<td style="text-align:left">Paranteze al&#x131;nm&#x131;&#x15F; ifadeler</td>
</tr>
<tr>
<td style="text-align:left">2.</td>
<td style="text-align:left">*,/,//,%</td>
<td style="text-align:left">S&#x131;ras&#x131;yla &#xE7;arpma, b&#xF6;lme, kalans&#x131;z b&#xF6;lme, kalan</td>
</tr>
<tr>
<td style="text-align:left">3.</td>
<td style="text-align:left">+, -</td>
<td style="text-align:left">S&#x131;ras&#x131;yla toplama ve &#xE7;&#x131;karma</td>
</tr>
<tr>
<td style="text-align:left">4.</td>
<td style="text-align:left">in, not in, is, is not, <br>&lt;, &lt;=, &gt;, &gt;=, =!, ==</td>
<td style="text-align:left">Kar&#x15F;&#x131;la&#x15F;t&#x131;rma ve aidiyetlik</td>
</tr>
<tr>
<td style="text-align:left">5.</td>
<td style="text-align:left">not x</td>
<td style="text-align:left">Boolean NOT</td>
</tr>
<tr>
<td style="text-align:left">6.</td>
<td style="text-align:left">and</td>
<td style="text-align:left">Boolean AND</td>
</tr>
<tr>
<td style="text-align:left">7.</td>
<td style="text-align:left">or</td>
<td style="text-align:left">Boolean OR</td>
</tr>
</tbody>
</table>

<!--kg-card-begin: html-->
<h3 id="programlama-python-rehber-user-inputs">4.5 Kullan&#x131;c&#x131;dan Girdi Almak (User Inputs)</h3>
<!--kg-card-end: html-->
<p>Kullan&#x131;c&#x131;dan bir girdi iste&#x11F;i yapmak i&#xE7;in <code>input()</code> fonksiyonu kullan&#x131;l&#x131;r. Bu fonksiyon &#xE7;al&#x131;&#x15F;t&#x131;&#x11F;&#x131;nda program komut sat&#x131;r&#x131;nda kullan&#x131;c&#x131;n&#x131;n bir giri&#x15F; yapmas&#x131; i&#xE7;in bekler. Bu esnada <code>input()</code> fonksiyonu i&#xE7;inde kulland&#x131;&#x11F;&#x131;m&#x131;z string ifade kullan&#x131;c&#x131;ya g&#xF6;sterilir.</p>
<pre><code class="language-python">sehir = input(&apos;L&#xFC;tfen ya&#x15F;ad&#x131;&#x11F;&#x131;n&#x131;z &#x15F;ehri giriniz: &apos;)</code></pre><pre><code class="language-sh">L&#xFC;tfen ya&#x15F;ad&#x131;&#x11F;&#x131;n&#x131;z &#x15F;ehri giriniz: &#x130;stanbul</code></pre><pre><code class="language-python">print(sehir)</code></pre><pre><code class="language-sh">&#x130;stanbul</code></pre><p>Burada hat&#x131;rlaman&#x131;z gereken nokta kullan&#x131;c&#x131;dan al&#x131;nan de&#x11F;er her zaman string tipindedir. Yani metinsel tip. Kullan&#x131;c&#x131; say&#x131; bile girmi&#x15F; olsa girdi&#x11F;i de&#x11F;erin tipi string&apos; dir.</p>
<pre><code class="language-python">year = input(&apos;L&#xFC;tfen do&#x11F;um y&#x131;l&#x131;n&#x131;z&#x131; giriniz: &apos;) #Kullan&#x131;c&#x131; 2000 yazm&#x131;&#x15F; olsun.
print(year)
print(type(year))</code></pre><pre><code class="language-python">2000
&lt;class &apos;str&apos;&gt;</code></pre>
<!--kg-card-begin: html-->
<h3 id="programlama-python-rehber-type-conversion">4.6 Tip D&#xF6;n&#xFC;&#x15F;&#xFC;mleri (Type Conversion)</h3>
<!--kg-card-end: html-->
<p>Bazen kullan&#x131;c&#x131; taraf&#x131;ndan sunulan ya da ba&#x15F;ka kaynaklardan al&#x131;nan verinin tipi yapaca&#x11F;&#x131;m&#x131;z i&#x15F;lemler i&#xE7;in uygun olmayabilir. Bir &#xF6;nceki &#xF6;rnekte g&#xF6;rd&#xFC;&#x11F;&#xFC;m&#xFC;z gibi kullan&#x131;c&#x131; do&#x11F;um y&#x131;l&#x131;n&#x131; normalde y&#x131;l olarak girer ama input fonksiyonu bunu her zaman string data tipinde tutar.  &#xD6;rne&#x11F;in kullan&#x131;c&#x131; <code>2001</code> girer ama bu input fonksiyonu nedeniyle<code> &quot;2001&quot;</code> &#x15F;eklinde tutulur. Bu durumda <code>string</code> tipinden <code>int</code> tipine d&#xF6;n&#xFC;&#x15F;t&#xFC;rme yapmam&#x131;z gerekebilir.</p>
<p>Python&apos; da iki ana tip d&#xF6;n&#xFC;&#x15F;&#xFC;m &#xE7;e&#x15F;idi vard&#x131;r.</p>
<ul>
<li>Explicit Conversion (A&#xE7;&#x131;k D&#xF6;n&#xFC;&#x15F;&#xFC;m)</li>
<li>Implicit Conversion (Kapal&#x131; D&#xF6;n&#xFC;&#x15F;&#xFC;m)</li>
</ul>

<!--kg-card-begin: html-->
<h4>Explicit Type Conversion</h4>
<!--kg-card-end: html-->
<p>Bu d&#xF6;n&#xFC;&#x15F;&#xFC;mde bilerek ve isteyerek de&#x11F;i&#x15F;kenin tipini biz de&#x11F;i&#x15F;tiririz. Veriyi bir tipten di&#x11F;erine d&#xF6;n&#xFC;&#x15F;t&#xFC;r&#xFC;r&#xFC;z. Bu tip d&#xF6;n&#xFC;&#x15F;&#xFC;mler i&#xE7;in Python&apos; da &#xF6;nceden tan&#x131;mlanm&#x131;&#x15F; fonksiyonlar bulunur.</p>
<ul>
<li>str()</li>
<li>int()</li>
<li>float()</li>
<li>...</li>
</ul>
<p>Baz&#x131; kaynaklarda bu tip d&#xF6;n&#xFC;&#x15F;&#xFC;m terimini <code>type casting</code> olarak da g&#xF6;rebilirsiniz. Bu tip d&#xF6;n&#xFC;&#x15F;&#xFC;m sadece iki tip birbirine uyumlu ise yap&#x131;labilir.</p>
<p>Gelin bu d&#xF6;n&#xFC;&#x15F;&#xFC;m&#xFC; bir &#xF6;rnekle inceleyelim. A&#x15F;a&#x11F;&#x131;da iki ayr&#x131; de&#x11F;i&#x15F;ken (variable) olu&#x15F;turup ayn&#x131; say&#x131;y&#x131; i&#xE7;inde tutal&#x131;m. Ancak ilki <code>integer</code> olsun ikincisi <code>string</code></p>
<pre><code class="language-python">benim_sayim1 = 11
benim_sayim2 = &apos;11&apos;</code></pre><p>Bunlar&#x131; ekrana yazd&#x131;r&#x131;rsak ayn&#x131; sonucu verir.</p><pre><code class="language-python">11
11</code></pre><p>G&#xF6;r&#xFC;n&#xFC;&#x15F;te bu iki de&#x11F;erde ayn&#x131; gibi g&#xF6;r&#xFC;n&#xFC;yor. Ama bunlar&#x131;n tipini kontrol edersek:</p><pre><code class="language-python">print(type(benim_sayim1))
print(type(benim_sayim2)) </code></pre><pre><code class="language-python">&lt;class &apos;int&apos;&gt;
&lt;class &apos;str&apos;&gt;</code></pre><p>G&#xF6;rd&#xFC;&#x11F;&#xFC;n&#xFC;z gibi ilk de&#x11F;i&#x15F;ken <code>integer</code>, ikincisi ise <code>string</code> tipinde. Tip d&#xF6;n&#xFC;&#x15F;&#xFC;m&#xFC; yapmadan &#xF6;nce bir i&#x15F;lem daha yapal&#x131;m ve neden tip d&#xF6;n&#xFC;&#x15F;&#xFC;m&#xFC;ne ihtiyac&#x131;m&#x131;z oldu&#x11F;unu daha iyi anlayal&#x131;m. yukar&#x131;daki iki de&#x11F;i&#x15F;kenle devam edelim ve tip d&#xF6;n&#xFC;&#x15F;&#xFC;m&#xFC; yapmadan bunlar&#x131; toplamaya &#xE7;al&#x131;&#x15F;al&#x131;m.</p>
<pre><code class="language-py">toplam_sayim = benim_sayim1 + benim_sayim2</code></pre><p>Bu i&#x15F;lemden sonra</p><pre><code class="language-sh">Traceback (most recent call last):
  File &quot;&lt;stdin&gt;&quot;, line 1, in &lt;module&gt;
TypeError: unsupported operand type(s) for +: &apos;int&apos; and &apos;str&apos;</code></pre><p>Python bizim bir <code>string</code> ile bir <code>integer</code> de&#x11F;i&#x15F;keni toplamam&#x131;za izin vermedi ve tip hatas&#x131; verdi. Bu hatay&#x131; engellemek i&#xE7;in <code>string</code> olan de&#x11F;i&#x15F;keni <code>integer</code> tipine <code>Explicit Conversion</code> kullanarak d&#xF6;n&#xFC;&#x15F;t&#xFC;r&#xFC;yoruz. Bu d&#xF6;n&#xFC;&#x15F;&#xFC;m i&#xE7;in ihtiyac&#x131;m&#x131;z olan fonksiyon <code>int()</code>.</p>
<pre><code class="language-python">benim_sayim2 = int(benim_sayim2)
</code></pre><pre><code class="language-python">print(type(benim_sayim2))
</code></pre><pre><code class="language-python">&lt;class &apos;int&apos;&gt;
</code></pre><p>D&#xF6;n&#xFC;&#x15F;&#xFC;mden sonra art&#x131;k toplama i&#x15F;lemini yapabiliriz.</p><pre><code class="language-python">toplam_sayim = benim_sayim1 + benim_sayim2
print(toplam_sayim)
</code></pre><pre><code class="language-python">22</code></pre>
<!--kg-card-begin: html-->
<h4>Implicit Type Conversion</h4>
<!--kg-card-end: html-->
<p>Bu d&#xF6;n&#xFC;&#x15F;&#xFC;m otomatik bir s&#xFC;re&#xE7;tir ve kullan&#x131;c&#x131; m&#xFC;dahalesi gerektirmez. Bu d&#xF6;n&#xFC;&#x15F;&#xFC;m belirli tip gruplar&#x131; ile s&#x131;n&#x131;rl&#x131;d&#x131;r. &#xD6;rne&#x11F;in say&#x131;sal (numeric) gruplar gibi. &#xD6;rneklerle inceleyelim.</p>
<pre><code class="language-python">ilk_notum = 8
ikinci_notum = 7.5

toplam_notum = ilk_notum + ikinci_notum

print(toplam_notum)
print(type(toplam_notum))</code></pre><p>&#x130;lk de&#x11F;i&#x15F;kenin tipi <code>integer</code> ve de&#x11F;eri 8. &#x130;kinci de&#x11F;i&#x15F;ken ise ondal&#x131;k say&#x131; ve tipi <code>float</code>. Yukar&#x131;daki kodu &#xE7;al&#x131;&#x15F;t&#x131;rd&#x131;&#x11F;&#x131;m&#x131;zda sonucun da ondal&#x131;k say&#x131; oldu&#x11F;unu ve tipinin <code>float</code> oldu&#x11F;unu g&#xF6;r&#xFC;r&#xFC;z.</p>
<pre><code class="language-python">15.5
&lt;class &apos;float&apos;&gt;
</code></pre><p>Python otomatik olarak sonucun tipini <code>float</code> yapt&#x131;. &#xC7;&#xFC;nk&#xFC; bu tip <code>integer</code> tipinden daha hassas ve data kayb&#x131;n&#x131; &#xF6;nlemek i&#xE7;in bunu uygulad&#x131;. Biz Python&apos;a tip d&#xF6;n&#xFC;&#x15F;t&#xFC;rmesini s&#xF6;ylemedik. &#x130;&#x15F;te bu d&#xF6;n&#xFC;&#x15F;&#xFC;me <code>Implicit Conversion</code> yani kapal&#x131; d&#xF6;n&#xFC;&#x15F;&#xFC;m denir.</p>

<!--kg-card-begin: html-->
<h4>Data Kayb&#x131;na Dikkat!</h4>
<!--kg-card-end: html-->
<p>Bir &#xF6;nceki &#xF6;rne&#x11F;e d&#xF6;nelim ve Python yerine d&#xF6;n&#xFC;&#x15F;&#xFC;m&#xFC; biz <code>Explicit Conversion</code> ile yapal&#x131;m. A&#x15F;a&#x11F;&#x131;da int+float i&#x15F;lemini <code>int</code>&apos; e &#xE7;eviriyoruz.</p>
<pre><code class="language-py">toplam_notum = int(ilk_notum + ikinci_notum)
print(toplam_notum)
print(type(toplam_notum))</code></pre><pre><code class="language-py">15
&lt;class &apos;int&apos;&gt;</code></pre><p>G&#xF6;rd&#xFC;&#x11F;&#xFC;n&#xFC;z gibi verinin ondal&#x131;k k&#x131;sm&#x131;n&#x131; kaybettik. Sonu&#xE7; <strong>15.5</strong> olmas&#x131; gerekirken <strong>15</strong> oldu. Bu nedenle bu konu tip d&#xF6;n&#xFC;&#x15F;&#xFC;m&#xFC; yaparken mutlaka g&#xF6;z &#xF6;n&#xFC;nde bulundurulmal&#x131;d&#x131;r. E&#x11F;er ger&#xE7;ekten niyetiniz bu de&#x11F;ilse her zaman daha hassas olan data tipini tercih edin. &#xD6;rne&#x11F;in yukar&#x131;da <code>int</code> yerine <code>float()</code> kullanmak gibi.</p>

<!--kg-card-begin: html-->
<h3 id="programlama-python-rehber-py-files">4.7 Python Dosyalar&#x131;</h3>
<!--kg-card-end: html-->
<p>&#x15E;u ana kadar bir iki sat&#x131;r kod &#xF6;rnekleri kulland&#x131;k ve Python REPL (komut sat&#x131;r&#x131;) bunun i&#xE7;in yeterli olmu&#x15F;tur. Ancak ger&#xE7;ek uygulamalarda bu pratik bir y&#xF6;ntem de&#x11F;il. Bu nedenle daha &#xF6;nce kod edit&#xF6;r&#xFC; b&#xF6;l&#xFC;m&#xFC;nde bahsetti&#x11F;i&#xF6;miz gibi <code>.py</code> uzant&#x131;l&#x131; Python dosyalar&#x131;n&#x131; kullanaca&#x11F;&#x131;z.</p>
<p>Tekrar edelim, kod edit&#xF6;r&#xFC; olarak istedi&#x11F;iniz bir edit&#xF6;r kullanabilirsiniz. Bizim bu rehberdeki se&#xE7;imimiz <code>VS Code</code>.</p>
<p>Daha &#xF6;nce <code>python_rehberi</code> isimli bir klas&#xF6;r olu&#x15F;turmu&#x15F; ve onu VS Code ile s&#xE7;m&#x131;&#x15F;t&#x131;k. &#x15E;imdi VS Code edit&#xF6;r&#xFC; tekrar a&#xE7;al&#x131;m ve <code>tam_ismi_yaz.py</code> isimli bir dosya olu&#x15F;tural&#x131;m.</p>
<p>Ard&#x131;ndan a&#x15F;a&#x11F;&#x131;daki kodu dosyam&#x131;za kopyalay&#x131;p yap&#x131;&#x15F;t&#x131;ral&#x131;m.</p><pre><code class="language-py">first_name = input(&quot;L&#xFC;tfen ad&#x131;n&#x131;z&#x131; giriniz: &quot;)
last_name = input(&quot;L&#xFC;tfen soyad&#x131;n&#x131;z&#x131; giriniz: &quot;)
tam_isim = &quot;Your ful name is: &quot; + first_name + &quot; &quot; + last_name
print(tam_isim)
buyuk_harf_isim = tam_isim.upper()
print(buyuk_harf_isim)</code></pre><p>Siz kodunuzu yazd&#x131;k&#xE7;a VS Code  edit&#xF6;r&#xFC;n&#xFC;n <code>intelliSense</code>&#xF6;zelli&#x11F;i size otomatik tamamlama yapacakt&#x131;r.</p><figure class="kg-card kg-image-card"><img src="https://izleogrenkodla.dev/content/images/2022/10/Screen-Shot-2022-10-16-at-19.57.14.png" class="kg-image" alt="Python Ba&#x15F; Ucu Rehberi" loading="lazy" width="1241" height="706" srcset="https://izleogrenkodla.dev/content/images/size/w600/2022/10/Screen-Shot-2022-10-16-at-19.57.14.png 600w, https://izleogrenkodla.dev/content/images/size/w1000/2022/10/Screen-Shot-2022-10-16-at-19.57.14.png 1000w, https://izleogrenkodla.dev/content/images/2022/10/Screen-Shot-2022-10-16-at-19.57.14.png 1241w" sizes="(min-width: 720px) 720px"></figure><p>Kodunuzu kaydedin ve ard&#x131;ndan sa&#x11F; &#xFC;st k&#xF6;&#x15F;ede bulunan sa&#x11F;a yat&#x131;k &#xFC;&#xE7;gen &#x15F;eklindeki <code>Run Python File</code>  tu&#x15F;una bas&#x131;n</p>
<figure class="kg-card kg-image-card"><img src="https://izleogrenkodla.dev/content/images/2022/10/Screen-Shot-2022-10-16-at-20.07.03.png" class="kg-image" alt="Python Ba&#x15F; Ucu Rehberi" loading="lazy" width="2000" height="562" srcset="https://izleogrenkodla.dev/content/images/size/w600/2022/10/Screen-Shot-2022-10-16-at-20.07.03.png 600w, https://izleogrenkodla.dev/content/images/size/w1000/2022/10/Screen-Shot-2022-10-16-at-20.07.03.png 1000w, https://izleogrenkodla.dev/content/images/size/w1600/2022/10/Screen-Shot-2022-10-16-at-20.07.03.png 1600w, https://izleogrenkodla.dev/content/images/2022/10/Screen-Shot-2022-10-16-at-20.07.03.png 2272w" sizes="(min-width: 720px) 720px"></figure><p>Siz kodunuzu &#xE7;al&#x131;&#x15F;t&#x131;r&#x131;r &#xE7;al&#x131;&#x15F;t&#x131;rmaz VS Code kodunuzu kaydedecek ve komut sat&#x131;r&#x131;n&#x131; a&#xE7;arak orada &#xE7;al&#x131;&#x15F;t&#x131;racakt&#x131;r. </p><figure class="kg-card kg-image-card"><img src="https://izleogrenkodla.dev/content/images/2022/10/Screen-Shot-2022-10-16-at-20.11.22.png" class="kg-image" alt="Python Ba&#x15F; Ucu Rehberi" loading="lazy" width="1818" height="534" srcset="https://izleogrenkodla.dev/content/images/size/w600/2022/10/Screen-Shot-2022-10-16-at-20.11.22.png 600w, https://izleogrenkodla.dev/content/images/size/w1000/2022/10/Screen-Shot-2022-10-16-at-20.11.22.png 1000w, https://izleogrenkodla.dev/content/images/size/w1600/2022/10/Screen-Shot-2022-10-16-at-20.11.22.png 1600w, https://izleogrenkodla.dev/content/images/2022/10/Screen-Shot-2022-10-16-at-20.11.22.png 1818w" sizes="(min-width: 720px) 720px"></figure><p></p>
<!--kg-card-begin: html-->
<h2 id="programlama-python-rehber-conditionals">5. KO&#x15E;ULLAR<a alt="ba&#x15F;a d&#xF6;n" href="#programlama-python-rehber-contents" style="text-decoration: none; margin-left:5px">&#x2303;</a></h2>
<!--kg-card-end: html-->
<p>Ko&#x15F;ul yap&#x131;lar&#x131; yaz&#x131;l&#x131;m ak&#x131;&#x15F; kontrol&#xFC;n&#xFC;n en &#xF6;nemli &#xF6;zelli&#x11F;idir. &#xC7;&#xFC;nk&#xFC; belirli kodlar ancak belirli ko&#x15F;ullar alt&#x131;nda &#xE7;al&#x131;&#x15F;t&#x131;r&#x131;lmal&#x131;d&#x131;r. Pek &#xE7;ok dilde oldu&#x11F;u gibi en s&#x131;k kullan&#x131;lan ko&#x15F;ul yap&#x131;lar&#x131; Python&apos;da <code>if-else</code> bloklar&#x131;d&#x131;r.</p>

<!--kg-card-begin: html-->
<h3 id="programlama-python-rehber-if-statement">5.1 if Statement (if &#x130;fadesi)</h3>
<!--kg-card-end: html-->
<p>&#xD6;nce tek bir <code>if</code> ifadesini inceleyelim. <code>if</code> e&#x11F;er, ise gibi anlamlara gelmektedir. Biz uygulamam&#x131;za aksini s&#xF6;ylemedik&#xE7;e kodumuz <strong>soldan-sa&#x11F;a</strong> ve <strong>yukar&#x131;dan-a&#x15F;a&#x11F;&#x131;ya</strong> akar. Bu ak&#x131;&#x15F; esnas&#x131;nda kodun belirli bir b&#xF6;l&#xFC;m&#xFC;n&#xFC;n sadece belirli bir ko&#x15F;ul ya da ko&#x15F;ullar alt&#x131;nda &#xE7;al&#x131;&#x15F;mas&#x131;n&#x131; <code>if</code> ile sa&#x11F;lar&#x131;z. <code>if</code> yap&#x131;s&#x131; a&#x15F;a&#x11F;&#x131;da g&#xF6;sterilmi&#x15F;tir.</p>
<pre><code class="language-py">if ko&#x15F;ul_ifadesi:
    &#xE7;al&#x131;&#x15F;t&#x131;r&#x131;lacak kod</code></pre><p>ko&#x15F;ul ifadesinden sonra gelen <code>:</code> i&#x15F;areti bunun bir kod blo&#x11F;u oldu&#x11F;unu g&#xF6;sterir ve takip eden sat&#x131;rlar <code>indentation</code> sat&#x131;r-ba&#x15F;&#x131; ile ba&#x15F;lar. Bu sat&#x131;r ba&#x15F;&#x131; ile ba&#x15F;layan t&#xFC;m sat&#x131;rlar <code>if</code> ifadesine aittir. <code>if</code> ifadesinin ak&#x131;&#x15F; diagram&#x131; a&#x15F;a&#x11F;&#x131;daki gibidir.</p>
<figure class="kg-card kg-image-card"><img src="https://izleogrenkodla.dev/content/images/2022/10/if.jpg" class="kg-image" alt="Python Ba&#x15F; Ucu Rehberi" loading="lazy" width="471" height="495"></figure><p>Hemen bir &#xF6;rnek yazal&#x131;m. D&#xFC;&#x15F;&#xFC;n&#xFC;n ki bir sineman&#x131;n ya&#x15F;a g&#xF6;re film g&#xF6;sterim politikas&#x131; olsun. Bu politikaya g&#xF6;re ya&#x15F;&#x131; 16 ve &#xFC;st&#xFC;nde olanlar t&#xFC;m filmlere girebilsin.</p>
<!--kg-card-begin: html-->
<pre><code class="language-python line-numbers">yasiniz = 14
if yasiniz &gt;= 16:
    print(&quot;T&#xFC;m filmlere girebilirsiniz.&quot;)
print(&quot;Kodun geri kalan&#x131;&quot;)</code></pre>
<!--kg-card-end: html-->
<p>Bu program&#x131; &#xE7;al&#x131;&#x15F;t&#x131;rd&#x131;&#x11F;&#x131;n&#x131;zda:</p><pre><code class="language-sh">Kodun geri kalan&#x131;</code></pre><p>&#xC7;&#xFC;nk&#xFC; <code>yasiniz</code> de&#x11F;i&#x15F;keni 14 ve bu de&#x11F;er 16 dan k&#xFC;&#xE7;&#xFC;k. Yani if ifadesi bize <code>False</code> (yanl&#x131;&#x15F;) d&#xF6;nd&#xFC;r&#xFC;r. Bu nedenle <code>if</code> ifadesi i&#xE7;indeki blok &#xE7;al&#x131;&#x15F;t&#x131;r&#x131;lmaz. <strong>&quot;T&#xFC;m filmlere girebilirsiniz&quot;</strong> &#xE7;&#x131;kt&#x131;s&#x131;n&#x131; g&#xF6;rmeyiz. &#x15E;imdi kodu de&#x11F;i&#x15F;tirelim ve ya&#x15F;&#x131; <strong>18</strong> yapal&#x131;m.</p>

<!--kg-card-begin: html-->
<pre><code class="language-python line-numbers">yasiniz = 18
if yasiniz &gt;= 16:
    print(&quot;T&#xFC;m filmlere girebilirsiniz.&quot;)
print(&quot;Kodun geri kalan&#x131;&quot;)</code></pre>
<!--kg-card-end: html-->
<p>&#x130;&#x15F;te &#x15F;imdi if blo&#x11F;u i&#xE7;indeki kod &#xE7;al&#x131;&#x15F;&#x131;r ve kod sonucu a&#x15F;a&#x11F;&#x131;daki gibi olur:</p><pre><code class="language-sh">T&#xFC;m filmlere girebilirsiniz.
Kodun geri kalan&#x131;</code></pre>
<!--kg-card-begin: html-->
<h3 id="programlama-python-rehber-if-else">5.2 if - else</h3>
<!--kg-card-end: html-->
<p>Bir &#xF6;nceki <code>if</code> &#xF6;rne&#x11F;imizde k&#xFC;&#xE7;&#xFC;k sinema program&#x131;m&#x131;z sadece verilen ko&#x15F;ul do&#x11F;ru oldu&#x11F;unda &#xE7;al&#x131;&#x15F;&#x131;yordu. Fakat verilen ko&#x15F;ul yanl&#x131;&#x15F; oldu&#x11F;u zaman da program&#x131;m&#x131;z bir &#x15F;ey yapmas&#x131; gerekiyorsa o zaman bunu nas&#x131;l yapaca&#x11F;&#x131;z? Bunun i&#xE7;in Python <code>else</code> (aksi takdirde, de&#x11F;ilse) ifadesine sahiptir. <code>if</code> ifadesi yanl&#x131;&#x15F; oldu&#x11F;u zaman <code>else</code> ifadesi i&#xE7;indeki kod &#xE7;al&#x131;&#x15F;&#x131;r.<code>if \- else</code> yap&#x131;s&#x131; a&#x15F;a&#x11F;&#x131;da g&#xF6;sterilmi&#x15F;tir.</p>
<pre><code class="language-py">if ko&#x15F;ul_ifadesi:
    if ko&#x15F;ulu do&#x11F;ru ise &#xE7;al&#x131;&#x15F;&#x131;r.
else:
    if ko&#x15F;lu yanl&#x131;&#x15F; ise &#xE7;al&#x131;&#x15F;&#x131;r.</code></pre><p><code>if - else</code> ifadesinin ak&#x131;&#x15F; diagram&#x131; a&#x15F;a&#x11F;&#x131;daki gibidir.</p>
<figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://izleogrenkodla.dev/content/images/2022/11/if-else.png" class="kg-image" alt="Python Ba&#x15F; Ucu Rehberi" loading="lazy" width="1293" height="1416" srcset="https://izleogrenkodla.dev/content/images/size/w600/2022/11/if-else.png 600w, https://izleogrenkodla.dev/content/images/size/w1000/2022/11/if-else.png 1000w, https://izleogrenkodla.dev/content/images/2022/11/if-else.png 1293w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">if - else ak&#x131;&#x15F; diagram&#x131;</span></figcaption></figure><p>&#x15E;imdi sinema program&#x131;m&#x131;z&#x131; else ekleyerek biraz daha geli&#x15F;tirelim. Yine g&#xF6;sterim politikas&#x131;na g&#xF6;re program&#x131;m&#x131;z, kullan&#x131;c&#x131;n&#x131;n ya&#x15F;&#x131; 16 ve &#xFC;st&#xFC; de&#x11F;ilse, <code>&#xDC;zg&#xFC;n&#xFC;m PEGI 16+ filmlere girmezsiniz</code> yazd&#x131;rs&#x131;n.</p>

<!--kg-card-begin: html-->
<pre><code class="language-python line-numbers">yasiniz = 14
if yasiniz &gt;= 16:
    print(&quot;T&#xFC;m filmlere girebilirsiniz.&quot;)
else:
    print(&quot;&#xDC;zg&#xFC;n&#xFC;m PEGI 16+ filmlere giremezsiniz&quot;)
print(&quot;Kodun geri kalan&#x131;&quot;)</code></pre>
<!--kg-card-end: html-->
<p>Bu kodu &#xE7;al&#x131;&#x15F;t&#x131;rd&#x131;&#x11F;&#x131;m&#x131;zda a&#x15F;a&#x11F;&#x131;daki &#xE7;&#x131;kt&#x131;y&#x131; al&#x131;r&#x131;z:</p>
<pre><code class="language-sh">&#xDC;zg&#xFC;n&#xFC;m PEGI 16+ filmlere giremezsiniz
Kodun geri kalan&#x131;</code></pre><p><code>yasiniz</code> de&#x11F;i&#x15F;keninin de&#x11F;erini 14&apos; ten 16&apos; ya al&#x131;rsan&#x131;z, ilk sat&#x131;rdaki &#xE7;&#x131;kt&#x131;n&#x131;n <code>T&#xFC;m filmlere girebilirsiniz</code> &#x15F;eklinde de&#x11F;i&#x15F;ti&#x11F;ini g&#xF6;r&#xFC;rs&#xFC;n&#xFC;z.</p>

<!--kg-card-begin: html-->
<h3 id="programlama-python-rehber-elif">5.3 elif ifadesi</h3>
<!--kg-card-end: html-->
<p><code>elif</code> <strong>else if</strong> ifadesinin k&#x131;salt&#x131;lm&#x131;&#x15F; &#x15F;ekilde yaz&#x131;lm&#x131;&#x15F; halidir. Program&#x131;m&#x131;zda birden fazla ko&#x15F;ulu kontrol etmemizi sa&#x11F;lar.</p>
<p>E&#x11F;er ilk <code>if</code> ifadesindeki ko&#x15F;ul yanl&#x131;&#x15F; ise bir sonraki elif ifadesine bak&#x131;l&#x131;r. E&#x11F;er o da yanl&#x131;&#x15F; ise bir sonrakine...</p>
<p>E&#x11F;er t&#xFC;m ko&#x15F;ullar yanl&#x131;&#x15F; ise <code>else</code> ifadesi i&#xE7;,indeki ko&#x15F;ul &#xE7;al&#x131;&#x15F;&#x131;r.</p>
<p>Yani t&#xFC;m bu if, elif, else bloklar&#x131;nda ko&#x15F;ulu sa&#x11F;layan ilki ve yaln&#x131;zca bir tanesi &#xE7;al&#x131;&#x15F;t&#x131;r&#x131;l&#x131;r.</p>
<p>Bir ko&#x15F;ul blo&#x11F;u birden fazla <strong>elif</strong> ifadesine sahip olabilir ancak kullan&#x131;l&#x131;rsa sadece bir tane <strong>else</strong> ifadesi olabilir. <code>if \- elif \- else </code> yap&#x131;s&#x131; a&#x15F;a&#x11F;&#x131;da g&#xF6;sterilmi&#x15F;tir.</p>
<pre><code class="language-py">if ko&#x15F;ul_ifadesi:
    if ko&#x15F;ulu do&#x11F;ru ise &#xE7;al&#x131;&#x15F;&#x131;r.
elif:
    if ifadesi do&#x11F;ru de&#x11F;il ise bu elif kontrol edilir.
elif:
    Bir &#xF6;nceki elif do&#x11F;ru de&#x11F;ilse bu kontrol edilir.
else:
    T&#xFC;m &#xF6;nceki ko&#x15F;ullar yanl&#x131;&#x15F; ise &#xE7;al&#x131;&#x15F;&#x131;r.</code></pre><p>&#x15E;imdi sinema uygulamam&#x131;za geri d&#xF6;nelim ve daha da geli&#x15F;tirelim. Kullan&#x131;c&#x131;dan ya&#x15F;&#x131;n&#x131; alal&#x131;m, bunu bir de&#x11F;i&#x15F;kende tutal&#x131;m. Ya&#x15F;a g&#xF6;re program&#x131;m&#x131;z a&#x15F;a&#x11F;&#x131;daki esaslarda &#xE7;al&#x131;&#x15F;s&#x131;n.</p>
<ul>
<li>Kullan&#x131;c&#x131; 6 ya&#x15F;&#x131;ndan k&#xFC;&#xE7;&#xFC;k ise hi&#xE7;bir filme giremesin.</li>
<li>6 ya&#x15F; ve &#xFC;zeri ile 11 ya&#x15F; dahil olanlar sadece PEGI 6+ filmlere girebilsin.</li>
<li>12 ya&#x15F; dahil &#xFC;zeri ve 16 ya&#x15F;&#x131;ndan k&#xFC;&#xE7;&#xFC;k olanlar PEGI12+ filmlere girebilsin.</li>
<li>16 ya&#x15F; ve &#xFC;zeri olan kullan&#x131;c&#x131;lar t&#xFC;m filmlere girebilsin.</li>
</ul>

<!--kg-card-begin: html-->
<pre><code class="language-python line-numbers">yasiniz = int(input(&quot;L&#xFC;tfen ya&#x15F;&#x131;n&#x131;z&#x131; giriniz: &quot;))
if yasiniz &lt; 6:
    print(&quot;Sinemaya giremezsiniz&quot;)
elif yasiniz &lt; 12:
    print(&quot;PEGI 6+ filmlere girebilirsiniz.&quot;)
elif yasiniz &lt; 16:
    print(&quot;PEGI 12+ filmlere girebilirsiniz&quot;)
else:
    print(&quot;T&#xFC;m filmlere girebilirsiniz&quot;)
print(&quot;Kodun geri kalan&#x131;&quot;)</code></pre>
<!--kg-card-end: html-->

<!--kg-card-begin: html-->
<h2 id="programlama-python-rehber-loops">6. D&#xD6;NG&#xDC;LER (LOOPS)<a alt="ba&#x15F;a d&#xF6;n" href="#programlama-python-rehber-contents" style="text-decoration: none; margin-left:5px">&#x2303;</a></h2>
<!--kg-card-end: html-->

<!--kg-card-begin: html-->
<h3 id="programlama-python-rehber-forloop">6.1 for D&#xF6;ng&#xFC;s&#xFC;</h3>
<!--kg-card-end: html-->
<p>For d&#xF6;ng&#xFC;s&#xFC;, Python&apos;da kod bloklar&#x131;n&#x131; tekrarlamak i&#xE7;in kullan&#x131;lan yineleme y&#xF6;ntemlerinden biridir. A&#x15F;a&#x11F;&#x131;da <code>for</code> d&#xF6;ng&#xFC;s&#xFC;n&#xFC;n yap&#x131;s&#x131; verilmi&#x15F;tir.</p>
<pre><code class="language-python">for gecerli_deger in degerler_listesi:
    for_icindeki_kod_blogu</code></pre><p>Yukar&#x131;daki <code>gecerli_deger</code>, bu d&#xF6;ng&#xFC; esnas&#x131;nda kullan&#x131;lan ge&#xE7;ici de&#x11F;i&#x15F;kendir. D&#xF6;ng&#xFC; boyunca <code>degerler_listesi</code> i&#xE7;indeki her bir eleman bu ge&#xE7;ici de&#x11F;i&#x15F;ken i&#xE7;inde depolan&#x131;r. <code>string</code>, <code>tuple</code> ve <code>list</code> gibi yap&#x131;lar her bir eleman&#x131; i&#xE7;in yinelenebilir (iterative) yap&#x131;lard&#x131;r. Bu gibi yap&#x131;larda <code>for</code> kullan&#x131;labilir. <code>string</code> yap&#x131;s&#x131;ndan bahsetmi&#x15F;tik. Di&#x11F;er yap&#x131;lardan da s&#x131;ras&#x131; geldik&#xE7;e bahsedece&#x11F;iz.</p>

<!--kg-card-begin: html-->
<h4>string i&#xE7;inde for d&#xF6;ng&#xFC;s&#xFC;</h4>
<!--kg-card-end: html-->
<p>Bir <code>string</code> yap&#x131;s&#x131;n&#x131;n karakterleri i&#xE7;inde <code>for</code> yap&#x131;s&#x131;n&#x131; kullanarak d&#xF6;ng&#xFC; yapabiliriz. Daha &#xF6;nce g&#xF6;rd&#xFC;&#x11F;&#xFC;m&#xFC;z gibi string <strong>index</strong> kullanan bir yap&#x131; idi. Bu nedenle string karakterleri iterative (yinelenebilir) yap&#x131;dad&#x131;r. A&#x15F;a&#x11F;&#x131;daki &#xF6;rne&#x11F;e bakal&#x131;m.</p>
<pre><code class="language-python">ulke = &apos;T&#xFC;rkiye&apos;
for harf in ulke:
    print(harf)</code></pre><p>Bu kodun &#xE7;&#x131;kt&#x131;s&#x131;:</p><pre><code class="language-sh">T
&#xFC;
r
k
i
y
e</code></pre>
<!--kg-card-begin: html-->
<h4>range() Fonksiyonu</h4>
<!--kg-card-end: html-->
<p>E&#x11F;er belirli bir aral&#x131;kta d&#xF6;ng&#xFC; yapmak istiyorsan&#x131;z <code>range()</code> fonksiyonu bu ama&#xE7; i&#xE7;in kullan&#x131;labilir. Belirli bir aral&#x131;kta say&#x131;lar&#x131; listeleyebilirsiniz. &#xD6;rne&#x11F;in 1&apos; den 10&apos; a kadar say&#x131;lar&#x131; listelemek istiyorsan&#x131;z a&#x15F;a&#x11F;&#x131;daki kodu kullanabilirsiniz:</p>
<pre><code class="language-python">for sayi in range (1,11):
    print (&apos;gecerli_sayi&apos;, sayi)</code></pre><p>Bu kodu &#xE7;al&#x131;&#x15F;t&#x131;rd&#x131;&#x11F;&#x131;n&#x131;zda a&#x15F;a&#x11F;&#x131;daki &#xE7;&#x131;kt&#x131;y&#x131; g&#xF6;r&#xFC;rs&#xFC;n&#xFC;z.</p><pre><code class="language-python">gecerli_sayi 1
gecerli_sayi 2
gecerli_sayi 3
gecerli_sayi 4
gecerli_sayi 5
gecerli_sayi 6
gecerli_sayi 7
gecerli_sayi 8
gecerli_sayi 9
gecerli_sayi 10</code></pre><p>G&#xF6;rd&#xFC;&#x11F;&#xFC;b&#xFC;z gibi <code>range()</code> fonksiyonu iki de&#x11F;er al&#x131;yor 1 ve 11. Birinci de&#x11F;eri <strong>ba&#x15F;la</strong>, ikinci de&#x11F;eri <strong>dur</strong> gibi d&#xFC;&#x15F;&#xFC;nebilirsiniz. Yani Python 1 den ba&#x15F;lar ve 11&apos;e gelince durur. 11 dahil olmaz.</p>

<!--kg-card-begin: html-->
<h4>break &#x130;fadesi</h4>
<!--kg-card-end: html-->
<p><code>break</code> k&#x131;rmak, ara vermek gibi anlamlara gelir. Bu ifade ile d&#xF6;ng&#xFC;y&#xFC; tamamlanmadan sonland&#x131;rabiliriz. A&#x15F;a&#x11F;&#x131;da bir &#xF6;rnek verelim:</p>
<pre><code class="language-python">for i in range (1,11):
    if i == 7:
        break
    print (&apos;number&apos;, i)
</code></pre><p>Bu kodu &#xE7;al&#x131;&#x15F;t&#x131;rd&#x131;&#x11F;&#x131;n&#x131;zda &#xE7;&#x131;kt&#x131; a&#x15F;a&#x11F;&#x131;daki gibi olur:</p><pre><code class="language-python">number 1
number 2
number 3
number 4
number 5
number 6</code></pre><p>Yukar&#x131;daki kod blo&#x11F;unda normal <code>for</code> ile ba&#x15F;l&#x131;yoruz. <code>i</code> de&#x11F;i&#x15F;keni 1&apos; den ba&#x15F;layarak 10 dahil 10&apos;a kadar artarak gidecek &#x15F;ekilde <code>range()</code> fonksiyonu kullan&#x131;lm&#x131;&#x15F;. Her d&#xF6;ng&#x11F;&#xFC;de <code>i</code> +1 artar. for i&#xE7;inde bir <code>if</code> ko&#x15F;ulu var ve i&apos;nin de&#x11F;erinin 7&apos;e e&#x15F;it olup olmad&#x131;&#x11F;&#x131;n&#x131; kontrol ediyor. e&#x11F;er i&apos; nin de&#x11F;eri 7&apos; ye e&#x15F;it ise d&#xF6;ng&#xFC; <code>break</code> ile bitiriliyor. dolay&#x131;s&#x131;yla 7 ve &#xFC;st&#xFC; rakamlar hi&#xE7;bir zaman yazd&#x131;r&#x131;lm&#x131;yor.</p>
<p>A&#x15F;a&#x11F;&#x131;da <strong>break</strong> i&#xE7;in bir &#xF6;rnek daha verelim.</p><pre><code class="language-python">country = &apos;Bel&#xE7;ika&apos;
for h in country:
    if h == &apos;&#xE7;&apos;:
        break
    print(&apos;Ge&#xE7;erli harf :&apos;, h)</code></pre><p>Yukar&#x131;daki &#xF6;rnekte, yine <code>for</code> i&#xE7;inde bir <code>if</code> var. Bu if ko&#x15F;ulu sa&#x11F;land&#x131;&#x11F;&#x131;nda yani <code>h</code> de&#x11F;i&#x15F;keni <code>&#xE7;</code> harfine e&#x15F;it oldu&#x11F;unda d&#xF6;ng&#xFC; k&#x131;r&#x131;l&#x131;yor. Bu nedenle <code>&#xE7;</code> harfi ve sonraki harfler yazd&#x131;r&#x131;lm&#x131;yor.</p>
<p>Bu kodun &#xE7;&#x131;kt&#x131;s&#x131;:</p>
<pre><code class="language-python">Ge&#xE7;erli harf: B
Ge&#xE7;erli harf: e
Ge&#xE7;erli harf: l</code></pre>
<!--kg-card-begin: html-->
<h4>continue ifadesi</h4>
<!--kg-card-end: html-->
<p>D&#xF6;ng&#xFC;ler i&#xE7;inde kullan&#x131;lan bir di&#x11F;er ifade de <code>continue</code> ifadesidir. Bu ifade t&#xFC;m d&#xF6;ng&#xFC;y&#xFC; k&#x131;rmaz ancak o anda yinelenen de&#x11F;eri es ge&#xE7;mek i&#xE7;in kullan&#x131;labilir. A&#x15F;a&#x11F;&#x131;da bir &#xF6;rne&#x11F;i inceleyelim:</p>
<pre><code class="language-python">ulke = &#x2018;Hollanda&#x2019;
for harf in ulke:
    if harf == &apos;a&apos;:
        continue
    print(&apos;Ge&#xE7;erli harf:&apos;, harf )</code></pre><p>Bu kodu &#xE7;al&#x131;&#x15F;t&#x131;rd&#x131;&#x11F;&#x131;m&#x131;zda &#xE7;&#x131;kt&#x131;s&#x131; a&#x15F;a&#x11F;&#x131;daki gibi olur.</p><pre><code class="language-python">Ge&#xE7;erli harf: H
Ge&#xE7;erli harf: o
Ge&#xE7;erli harf: l
Ge&#xE7;erli harf: l
Ge&#xE7;erli harf: n
Ge&#xE7;erli harf: d</code></pre><p>&apos;a&apos; harfleri yazd&#x131;r&#x131;lmaz. &#xC7;&#xFC;nk&#xFC; yinelenen <code>harf</code> de&#x11F;i&#x15F;keni &apos;a&apos; harfine e&#x15F;it oldu&#x11F;unda <code>continue</code> ifadesi ile d&#xF6;ng&#xFC;n&#xFC;n o anki de&#x11F;eri es ge&#xE7;ilir ve bir sonraki de&#x11F;ere devam edilir. Bu nedenle <code>print(&apos;Ge&#xE7;erli harf:&apos;, harf )</code> kod sat&#x131;r&#x131; harf de&#x11F;i&#x15F;keni &apos;a&apos; ya e&#x15F;it oldu&#x11F;unda &#xE7;al&#x131;&#x15F;maz.</p>

<!--kg-card-begin: html-->
<h3 id="programlama-python-rehber-whileloop">6.1 while D&#xF6;ng&#xFC;s&#xFC;</h3>
<!--kg-card-end: html-->
<p>Python da kulla&#x131;lan bir ba&#x15F;ka yineleme yap&#x131;s&#x131; <code>while</code> d&#xF6;ng&#xFC;s&#xFC;d&#xFC;r. <code>while</code> d&#xF6;ng&#xFC;s&#xFC; do&#x11F;ru bir ko&#x15F;ul ile ba&#x15F;lar ve verilen ko&#x15F;ul yanl&#x131;&#x15F; olana kadar kod blo&#x11F;unu yineler.</p>

<!--kg-card-begin: html-->
<pre><code class="language-python line-numbers">while expression:
  statement(s)
</code></pre>
<!--kg-card-end: html-->
<p>Buradaki ifade blo&#x11F;u (statement) tek bir ifade olabilece&#x11F;i gibi, ifadeler blo&#x11F;u da olabilir. <code>while</code> ifadesinin hemen yan&#x131;ndaki <strong>expression</strong> ifadesi do&#x11F;ru oldu&#x11F;u s&#xFC;rece d&#xF6;ng&#xFC; &#xE7;al&#x131;&#x15F;&#x131;r. Yanl&#x131;&#x15F; oldu&#x11F;u anda d&#xF6;ng&#xFC;den &#xE7;&#x131;k&#x131;l&#x131;r.</p>
<figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://izleogrenkodla.dev/content/images/2023/10/while_loop.png" class="kg-image" alt="Python Ba&#x15F; Ucu Rehberi" loading="lazy" width="820" height="953" srcset="https://izleogrenkodla.dev/content/images/size/w600/2023/10/while_loop.png 600w, https://izleogrenkodla.dev/content/images/2023/10/while_loop.png 820w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">while d&#xF6;ng&#xFC; &#x15F;emas&#x131;</span></figcaption></figure><p>Bir &#xF6;rnek vermek gerekirse:</p>
<!--kg-card-begin: html-->
<pre><code class="language-python line-numbers">i=1
while i<=5: print("merhaba izleogrenkodla") i="i+1" < code></=5:></code></pre>
<!--kg-card-end: html-->
<p>Yukar&#x131;daki kod blo&#x11F;unda ko&#x15F;ulumuz <code>i</code> de&#x11F;i&#x15F;keninin 5 ten k&#xFC;&#xE7;&#xFC;k ya da 5&apos;e e&#x15F;it olmas&#x131;. Bu ko&#x15F;ul do&#x11F;ru oldu&#x11F;u s&#xFC;rece ekrana <strong>Merhaba izleogrenkodla</strong> yazd&#x131;r&#x131;lacakt&#x131;r. Ancak kod blo&#x11F;u i&#xE7;inde her bir tekrarda <code>i</code> nin de&#x11F;erini +1 art&#x131;r&#x131;yoruz. Bu nedenle <code>i</code> nin de&#x11F;eri 6&apos;ya ula&#x15F;&#x131;nca d&#xF6;ng&#xFC;den &#xE7;&#x131;k&#x131;lacakt&#x131;r.</p>
<p>Yukar&#x131;daki kodun &#xE7;&#x131;kt&#x131;s&#x131;:</p>
<!--kg-card-begin: html-->
<pre><code class="language-bash">Merhaba izleogrenkodla
Merhaba izleogrenkodla
Merhaba izleogrenkodla
Merhaba izleogrenkodla
Merhaba izleogrenkodla
</code></pre>
<!--kg-card-end: html-->

<!--kg-card-begin: html-->
<h4>Sonsuz d&#xF6;ng&#xFC;</h4>
<!--kg-card-end: html-->
<p>Sonsuz d&#xF6;ng&#xFC;, ko&#x15F;ul ifadesinin her zaman do&#x11F;ru olmas&#x131;, hi&#xE7;bir zaman yanl&#x131;&#x15F; olmamas&#x131; durumunda olu&#x15F;ur. Bu durumda kod d&#xF6;ng&#xFC;den asla &#xE7;&#x131;kamaz.<br>
A&#x15F;a&#x11F;&#x131;da bir &#xF6;rnek verilmi&#x15F;tir ama bu &#x15F;ekildeki sonsuz d&#xF6;ng&#xFC;leri <strong>bilgisayar&#x131;&#x131;n&#x131;zda &#xE7;lal&#x131;&#x15F;t&#x131;rman&#x131;z</strong> tavsiye edilmez.</p>

<!--kg-card-begin: html-->
<pre><code class="language-css line-numbers">while true:
  print(&quot;Durdur beni, durdurabilirsen!&quot;)
</code></pre>
<!--kg-card-end: html-->
<p>Bu kod &#xE7;al&#x131;&#x15F;t&#x131;&#x11F;&#x131;nda ekrana s&#xFC;rekli print edilen ifadeyi yazd&#x131;r&#x131;r ta ki siz onu durdurana kadar. E&#x11F;er kodu python da &#xE7;al&#x131;&#x15F;t&#x131;rd&#x131; iseniz <code>CTRL+C</code> ile &#xE7;al&#x131;&#x15F;may&#x131; durdurabilirsiniz.</p>

<!--kg-card-begin: html-->
<h4>else ifadesi</h4>
<!--kg-card-end: html-->
<p><code>while</code> d&#xF6;ng&#xFC;s&#xFC; i&#xE7;inde <code>else</code> ifadesi kullan&#x131;l&#x131;rsa, bu ifade ko&#x15F;ul yanl&#x131;&#x15F; oldu&#x11F;unda &#xE7;al&#x131;&#x15F;&#x131;r.</p>
<p>&#xD6;rne&#x11F;in:</p>

<!--kg-card-begin: html-->
<pre><code class="language-python line-numbers">i = 1
while i<=5: print("python harika!") i+="1" else: print("bye, python!") < code></=5:></code></pre>
<!--kg-card-end: html-->
<p>Bu kodu &#xE7;al&#x131;&#x15F;t&#x131;rd&#x131;&#x11F;&#x131;m&#x131;zda sonu&#xE7;:</p>

<!--kg-card-begin: html-->
<pre><code class="language-bash">Python harika!
Python harika!
Python harika!
Python harika!
Python harika!
Bye, Python!
</code></pre>
<!--kg-card-end: html-->

<!--kg-card-begin: html-->
<h4>break ifadesi</h4>
<!--kg-card-end: html-->
<p>Bu ifade ile d&#xF6;ng&#xFC;y&#xFC; istedi&#x11F;imiz anda sonland&#x131;rabiliriz. A&#x15F;a&#x11F;&#x131;daki &#xF6;rne&#x11F;i inceleyelim:</p>

<!--kg-card-begin: html-->
<pre><code class="language-python line-numbers">i = 1
while i<=5: print("python harika!") if i="=" 3: break i+="1" < code></=5:></code></pre>
<!--kg-card-end: html-->
<p>Kodumuz <code>i</code> de&#x11F;i&#x15F;keni 3&apos;e ula&#x15F;t&#x131;&#x11F;&#x131;nda d&#xF6;ng&#xFC;den &#xE7;&#x131;karve a&#x15F;a&#x11F;&#x131;daki sonucu verir. Yani ekrana 5 kere <strong>Python harika!</strong> yazmaz.</p>

<!--kg-card-begin: html-->
<pre><code class="language-bash">Python harika!
Python harika!
Python harika!
</code></pre>
<!--kg-card-end: html-->

<!--kg-card-begin: html-->
<h4>continue ifadesi</h4>
<!--kg-card-end: html-->
<p>Bu ifade ile d&#xF6;ng&#xFC; i&#xE7;indeki o anki tekrar&#x131; es ge&#xE7;ebiliriz ve bir sonraki ile devam ederiz.</p>

<!--kg-card-begin: html-->
<pre><code class="language-python line-numbers">i = 0
while i<=5: i+="1" if i="=" 3: continue print(i, "hey python!") < code></=5:></code></pre>
<!--kg-card-end: html-->
<p>Ve &#xE7;&#x131;kt&#x131;:</p>

<!--kg-card-begin: html-->
<pre><code class="language-bash">1 Hey Python!
2 Hey Python!
4 Hey Python!
5 Hey Python!
6 Hey Python!
</code></pre>
<!--kg-card-end: html-->
<p>G&#xF6;r&#xFC;ld&#xFC;&#x11F;&#xFC; gibi say&#x131;lar 3 hari&#xE7; 1&apos;den 6&apos;ya kadar yazd&#x131;r&#x131;ld&#x131;. &#xC7;&#xFC;nk&#xFC; d&#xF6;ng&#xFC; esnas&#x131;nda <code>i</code> de&#x11F;i&#x15F;keninin de&#x11F;eri 3 oldu&#x11F;unda <code>continue</code> ifadesi ile o anki tekrar&#x131; es ge&#xE7;tik.</p>

<!--kg-card-begin: html-->
<h2 id="programlama-python-rehber-data-yapilari">7. DATA YAPILARI<a alt="ba&#x15F;a d&#xF6;n" href="#programlama-python-rehber-contents" style="text-decoration: none; margin-left:5px">&#x2303;</a></h2>
<!--kg-card-end: html-->
<p>Python data yap&#x131;lar&#x131;na <code>Python Collections (Kolleksiyon)</code> da diyebiliriz. Python da temel olarak 4 adet <code>collections</code> bulunur.</p>
<ul>
<li><strong>Diziler (Lists):</strong> Nesnelerin index no ile eri&#x15F;ilebildi&#x11F;i, <code>mutable</code> yani de&#x11F;i&#x15F;tirilebilen s&#x131;ral&#x131; nesneler toplulu&#x11F;udur. Di&#x11F;er baz&#x131; programlama dillerindeki <code>Arrays</code> lere benzerler.</li>
<li><strong>Tuples (Demetler):</strong> Ayn&#x131; Diziler gibidirler anca demetler <code>immutable</code> yani de&#x11F;i&#x15F;tirilemezdir.</li>
<li><strong>Sets:</strong> Diziler ve Demetlerden farkl&#x131; olarak s&#x131;ral&#x131; olmalar&#x131; (ordered) garanti eidlmez ya da m&#xFC;mk&#xFC;n de&#x11F;ildir. Setler <code>mutable</code> yani de&#x11F;i&#x15F;tirilebilirdir ancak inex yoktur.</li>
<li><strong>S&#xF6;zl&#xFC;kler (Dictionaries):</strong> S&#x131;ral&#x131; olmayan/olamayan, <code>mutable</code> ve index bulunmayan data yap&#x131;s&#x131;d&#x131;r.</li>
</ul>

<!--kg-card-begin: html-->
<h3 id="programlama-python-rehber-lists">7.1 Diziler (Lists)</h3>
<!--kg-card-end: html-->
<p>Diziler bir veya birden fazla nesne i&#xE7;erebilir ve nesneler ayn&#x131; ya da farkl&#x131; veri tipinde olabilir. Diziler k&#xF6;&#x15F;eli parantez ile g&#xF6;sterilir ve nesneler birbirinden virg&#xFC;l ile ayr&#x131;l&#x131;r.</p>
<p>&#xD6;rnekler inceleyelim:</p>

<!--kg-card-begin: html-->
<h5>Sadece string i&#xE7;eren bir dizi</h5>
<!--kg-card-end: html-->

<!--kg-card-begin: html-->
<pre><code class="language-python line-numbers">countries= [&apos;Belgium&apos;, &apos;Indonesia&apos;, &apos;Turkey&apos;, &apos;Netherland&apos;, &apos;Japan&apos;]
print(countries)
</code></pre>
<!--kg-card-end: html-->
<p>Bu kodun &#xE7;&#x131;kt&#x131;s&#x131;:</p>

<!--kg-card-begin: html-->
<pre><code class="language-bash">[&apos;Belgium&apos;, &apos;Indonesia&apos;, &apos;Turkey&apos;, &apos;Netherland&apos;, &apos;Japan&apos;]
</code></pre>
<!--kg-card-end: html-->

<!--kg-card-begin: html-->
<h5>Sadece say&#x131;sal de&#x11F;erler i&#xE7;eren bir dizi</h5>
<!--kg-card-end: html-->

<!--kg-card-begin: html-->
<pre><code class="language-python line-numbers">dogum_yillari= [1985,1986,1988,1989,1999]
print(dogum_yillari)
</code></pre>
<!--kg-card-end: html-->
<p>ve &#xE7;&#x131;kt&#x131;s&#x131;:</p>
<!--kg-card-begin: html-->
<pre><code class="language-python line-numbers">[1985, 1986, 1988, 1989, 1999]
</code></pre>
<!--kg-card-end: html-->

<!--kg-card-begin: html-->
<h5>Kar&#x131;&#x15F;&#x131;k veri tipleri i&#xE7;eren bir dizi</h5>
<!--kg-card-end: html-->

<!--kg-card-begin: html-->
<pre><code class="language-python line-numbers">aday = [28, &apos;tall&apos;, 1.75, &apos;programmer&apos;, True]
print(aday)
</code></pre>
<!--kg-card-end: html-->

<!--kg-card-begin: html-->
<pre><code class="language-bash">[28, &apos;tall&apos;, 1.75, &apos;programmer&apos;, True]
</code></pre>
<!--kg-card-end: html-->
<p>Yukar&#x131;daki dizide 4 farkl&#x131; veri tipini g&#xF6;r&#xFC;yoruz: integer (28), string (&#x2018;tall&#x2019; &amp; &#x2018;programmer&#x2019;), float (1.75) and True (Boolean)</p>

<!--kg-card-begin: html-->
<h4>Dizi i&#xE7;indeki nesnelere index ile eri&#x15F;im</h4>
<!--kg-card-end: html-->
<p>Daha &#xF6;nce <code>string</code> veri tipinde g&#xF6;rd&#xFC;&#x11F;&#xFC;m&#xFC;z gibi dizilerin her bir nesnesine index de&#x11F;eri ile ula&#x15F;&#x131;labilir. Index de&#x11F;eri soldan sa&#x11F;a <code>0</code> dan, sa&#x11F;dan sola ise <code>-1</code> den ba&#x15F;lar.</p>
<p>Yukar&#x131;da vermi&#x15F; oldu&#x11F;umuz &#xFC;lkeler dizisini ele alal&#x131;m.</p><figure class="kg-card kg-image-card"><img src="https://izleogrenkodla.dev/content/images/2023/10/dizi_index.png" class="kg-image" alt="Python Ba&#x15F; Ucu Rehberi" loading="lazy"></figure><p>Index kullan&#x131;m&#x131;na bir &#xF6;rnek verecek olursak:</p>

<!--kg-card-begin: html-->
<pre><code class="language-python line-numbers">countries= [&apos;Belgium&apos;, &apos;Indonesia&apos;, &apos;Turkey&apos;, &apos;Netherland&apos;, &apos;Japan&apos;]
print(&apos;I am from&apos;, countries[2], &apos;and I live in&apos;, countries[0])
</code></pre>
<!--kg-card-end: html-->
<p>Index&apos;ler k&#xF6;&#x15F;eli parantez ile kullan&#x131;l&#x131;r. Burada <code>countries</code> dizisinin &#xF6;nce 3. nesnesine (index [2]) daha sonra ise 1. nesnesine (index [0]) ula&#x15F;&#x131;yoruz.</p>
<p>Yukar&#x131;daki kodu &#xE7;al&#x131;&#x15F;t&#x131;rd&#x131;&#x11F;&#x131;m&#x131;zda &#xE7;&#x131;kt&#x131;:</p>
<!--kg-card-begin: html-->
<pre><code class="language*-bash">I am from Turkey and I live in Belgium
</code></pre>
<!--kg-card-end: html-->

<!--kg-card-begin: html-->
<h4>Negatif index</h4>
<!--kg-card-end: html-->
<p>Dizi i&#xE7;indeki nesnelere negatif index ile de ula&#x15F;abiliriz. Dizinin son nesnesinin index no&apos;su <code>-1</code> dir. Sa&#x11F;dan sola do&#x11F;ru -1, -2, ... &#x15F;eklinde devam eder.</p>
<figure class="kg-card kg-image-card"><img src="https://izleogrenkodla.dev/content/images/2023/10/negative_index.png" class="kg-image" alt="Python Ba&#x15F; Ucu Rehberi" loading="lazy"></figure><p>&#xD6;rne&#x11F;in yukar&#x131;daki ilk &#xF6;rne&#x11F;imizi negatif index ile verecek olursak:</p>

<!--kg-card-begin: html-->
<pre><code class="language-python line-numbers">countries= [&apos;Belgium&apos;, &apos;Indonesia&apos;, &apos;Turkey&apos;, &apos;Netherland&apos;, &apos;Japan&apos;]
print(&apos;I am from&apos;, countries[-3], &apos;and I live in&apos;, countries[-5])
</code></pre>
<!--kg-card-end: html-->
<p>bu kodun &#xE7;&#x131;kt&#x131;s&#x131;  yine ayn&#x131; olacakt&#x131;r.</p>

<!--kg-card-begin: html-->
<pre><code class="language*-bash">I am from Turkey and I live in Belgium
</code></pre>
<!--kg-card-end: html-->

<!--kg-card-begin: html-->
<h4>Slice lists</h4>
<!--kg-card-end: html-->
<p><code>slice</code> dilimleme anlam&#x131;na gelir. Bu method ile lists &apos;lerin istedi&#x11F;imiz kadar aral&#x131;kta nesnesine ula&#x15F;abiliriz. <code>slice</code> sonucu da yine bir list&apos; dir. Bu konu en iyi &#xF6;rneklerle anla&#x15F;&#x131;laca&#x11F;&#x131; i&#xE7;in hemen birka&#xE7;&#x131;n&#x131; inceleyelim.</p>
<ul>
<li><strong>Belirli bir aral&#x131;kta <code>slice</code> yaparak ba&#x15F;lang&#x131;&#xE7; ve biti&#x15F; index&apos;lerini belirtebiliriz.</strong></li>
</ul>

<!--kg-card-begin: html-->
<pre><code class="language-python line-numbers">countries= [&apos;Belgium&apos;, &apos;Indonesia&apos;, &apos;Turkey&apos;, &apos;Netherland&apos;, &apos;Japan&apos;]
print(countries[1:3])
</code></pre>
<!--kg-card-end: html-->
<p>Burada  <code>[1:3]</code> index [1] den ba&#x15F;la ve index [3] de dur (3 dahil de&#x11F;il) demektir. Bu kodun &#xE7;&#x131;kt&#x131;s&#x131;:</p>

<!--kg-card-begin: html-->
<pre><code class="language-bash">[&apos;Indonesia&apos;, &apos;Turkey&apos;]
</code></pre>
<!--kg-card-end: html-->
<ul>
<li><strong>Belirli bir index&apos;ten ba&#x15F;lay&#x131;p son elemana kadar (son eleman dahil) <code>slice</code> i&#x15F;lemi.</strong></li>
</ul>

<!--kg-card-begin: html-->
<pre><code class="language-python line-numbers">countries= [&apos;Belgium&apos;, &apos;Indonesia&apos;, &apos;Turkey&apos;, &apos;Netherland&apos;, &apos;Japan&apos;]
print(countries[3:])
</code></pre>
<!--kg-card-end: html-->
<p>Bu <code>slice</code> fonksiyonu ile [3] nolu index den ba&#x15F;lay&#x131;p (Netherland) son nesne dahil se&#xE7;mi&#x15F; oluyoruz. Kodun &#xE7;&#x131;kt&#x131;s&#x131;:</p>

<!--kg-card-begin: html-->
<pre><code class="language-bash">[&apos;Netherland&apos;, &apos;Japan&apos;]
</code></pre>
<!--kg-card-end: html-->
<ul>
<li><strong>&#x130;lk nesneden ba&#x15F;lay&#x131;p belirli bir index no&apos; ya  kadar  <code>slice</code>.</strong></li>
</ul>

<!--kg-card-begin: html-->
<pre><code class="language-python line-numbers">countries= [&apos;Belgium&apos;, &apos;Indonesia&apos;, &apos;Turkey&apos;, &apos;Netherland&apos;, &apos;Japan&apos;]
print(countries[:3])
</code></pre>
<!--kg-card-end: html-->
<p>ve sonu&#xE7;:</p>
<!--kg-card-begin: html-->
<pre><code class="language-bash">[&apos;Belgium&apos;, &apos;Indonesia&apos;, &apos;Turkey&apos;]
</code></pre>
<!--kg-card-end: html-->
<p><code>slice</code> method&apos; u i&#xE7;inde negatif index de kullanabiliriz.</p>

<!--kg-card-begin: html-->
<pre><code class="language-python line-numbers">countries= [&apos;Belgium&apos;, &apos;Indonesia&apos;, &apos;Turkey&apos;, &apos;Netherland&apos;, &apos;Japan&apos;]
print(countries[-4:-1])
</code></pre>
<!--kg-card-end: html-->
<p>Bu i&#x15F;lemin sonucu:</p>
<!--kg-card-begin: html-->
<pre><code class="language-bash">[&apos;Indonesia&apos;, &apos;Turkey&apos;, &apos;Netherland&apos;]
</code></pre>
<!--kg-card-end: html-->
<p>Yukar&#x131;daki &#xF6;rnekte [-4] nolu index&apos;ten ba&#x15F;lad&#x131;k ve [-1] nolu index&apos; e  kadar  ([-1] dahil de&#x11F;il) <code>slice</code> etmi&#x15F; olduk.</p>
<p>Sadece tek &#xE7;ift nokta  <code>:</code> kullanmak default (varsay&#x131;lan) aral&#x131;k demektir. Ya da ba&#x15F;ka bir deyi&#x15F;le ilk ve son eleman dahil t&#xFC;m aral&#x131;k demektir. Yani t&#xFC;m list&apos; i se&#xE7;mi&#x15F; oluruz ve <code>slice</code> yapmam&#x131;&#x15F; oluruz.</p>

<!--kg-card-begin: html-->
<pre><code class="language-python line-numbers">countries= [&apos;Belgium&apos;, &apos;Indonesia&apos;, &apos;Turkey&apos;, &apos;Netherland&apos;, &apos;Japan&apos;]
print(countries[:])
</code></pre>
<!--kg-card-end: html-->

<!--kg-card-begin: html-->
<pre><code class="language-bash">[&apos;Belgium&apos;, &apos;Indonesia&apos;, &apos;Turkey&apos;, &apos;Netherland&apos;, &apos;Japan&apos;]
</code></pre>
<!--kg-card-end: html-->
<ul>
<li><strong>Slice i&#x15F;lemine step eklemek</strong></li>
</ul>
<p><code>slice</code> method&apos; una ikinci bir &#xE7;ift nokta <code>::</code> eklemek  <code>step</code>(ad&#x131;m) anlam&#x131;na gelir. Yani;</p>
<ul>
<li>[1:4:1] 1 nolu index&apos; ten 4 nolu  index&apos; e kadar her bir ad&#x131;m (1 step) giderek nesne se&#xE7;</li>
<li>[1:4:2] 1 nolu index&apos; ten 4 nolu  index&apos; e kadar her ikinci nesneyi (2 steps) se&#xE7;</li>
<li>[1:4:] 1 nolu index&apos; ten 4 nolu  index&apos; e kadar default (yine 1 step) giderek nesne se&#xE7; gibi. A&#x15F;a&#x11F;&#x131;daki &#xF6;rnekleri inceleyelim.</li>
</ul>

<!--kg-card-begin: html-->
<pre><code class="language-python line-numbers">countries= [&apos;Belgium&apos;, &apos;Indonesia&apos;, &apos;Turkey&apos;, &apos;Netherland&apos;, &apos;Japan&apos;]
index1Basla_Index4Dur_1Step = countries[1:4:1]
index1Basla_Index4Dur_DafaultStep = countries[1:4:]
index1Basla_Index4Dur_2Steps = countries[1:4:2]

print(index1Basla_Index4Dur_1Step)
print(index1Basla_Index4Dur_DafaultStep)
print(index1Basla_Index4Dur_2Steps)
</code></pre>
<!--kg-card-end: html-->
<p>ve bu kodun &#xE7;&#x131;kt&#x131;s&#x131;:</p>
<!--kg-card-begin: html-->
<pre><code class="language-bash">[&apos;Indonesia&apos;, &apos;Turkey&apos;, &apos;Netherland&apos;]
[&apos;Indonesia&apos;, &apos;Turkey&apos;, &apos;Netherland&apos;]
[&apos;Indonesia&apos;, &apos;Netherland&apos;]
</code></pre>
<!--kg-card-end: html-->
<p>g&#xF6;rd&#xFC;&#x11F;&#xFC;n&#xFC;z gibi <code>step</code> 2 kulland&#x131;&#x11F;&#x131;m&#x131;z zaman Python 1&apos; inci indexdeki de&#x11F;er olan <code>Indonesia</code> y&#x131; ald&#x131;, 2 ad&#x131;m gitti&#xF6; <code>Turkey</code>i es ge&#xE7;ti ve 3&apos; &#xFC;nc&#xFC; index olan <code>Nederland</code> &#x131; ald&#x131;.</p>
<p>E&#x11F;er bir list&apos; in elemanlar&#x131;n&#x131; tersine &#xE7;evirebiliriz. A&#x15F;a&#x11F;&#x131;daki &#xF6;rne&#x11F;i inceleyelim:</p>

<!--kg-card-begin: html-->
<pre><code class="language-python line-numbers">countries= [&apos;Belgium&apos;, &apos;Indonesia&apos;, &apos;Turkey&apos;, &apos;Netherland&apos;, &apos;Japan&apos;]
print(countries[::-1])
</code></pre>
<!--kg-card-end: html-->
<p>Buradaki [::-1] ifadesine bakal&#x131;m. &#x130;lk &#xE7;ift nokta art&#x131;k noktabildi&#x11F;iniz gibi range (aral&#x131;k). Yani ilk elemandan ba&#x15F;la, son elemana kadar al demek ki bu da t&#xFC;m list demek. &#x130;kinci &#xE7;ift nokta ise belirtti&#x11F;imiz gibi step (ad&#x131;m). -1 demek sondan ba&#x15F;layarak bir ad&#x131;m gel demek.</p>
<p>bu kodun &#xE7;&#x131;kt&#x131;s&#x131; ise:</p>
<!--kg-card-begin: html-->
<pre><code class="language-bash">[&apos;Japan&apos;, &apos;Netherland&apos;, &apos;Turkey&apos;, &apos;Indonesia&apos;, &apos;Belgium&apos;]
</code></pre>
<!--kg-card-end: html-->
]]></content:encoded></item><item><title><![CDATA[Yeni Başlayanlar İçin Bilgi Teknolojileri]]></title><description><![CDATA[<p>Bu seri IT kariyerinin ilk basama&#x11F;&#x131;n&#x131; olu&#x15F;turuyor. Temel konular&#x131; sil ba&#x15F;tan anlatan ve Bilgi Teknolojileri konusunda iyi bir anlay&#x131;&#x15F; kazand&#x131;rmay&#x131; hedefleyen kurs, her b&#xF6;l&#xFC;mde farkl&#x131; bir konuya odaklan&#x131;yor. </p><p>IT</p>]]></description><link>https://izleogrenkodla.dev/yeni-baslayanlar-icin-bilgi-teknolojileri/</link><guid isPermaLink="false">633b4037664b710001ec558c</guid><category><![CDATA[Kurslar]]></category><dc:creator><![CDATA[izle-öğren-kodla]]></dc:creator><pubDate>Mon, 03 Oct 2022 21:06:29 GMT</pubDate><media:content url="https://izleogrenkodla.dev/content/images/2022/10/Screen-Shot-2022-10-03-at-23.08.39.png" medium="image"/><content:encoded><![CDATA[<img src="https://izleogrenkodla.dev/content/images/2022/10/Screen-Shot-2022-10-03-at-23.08.39.png" alt="Yeni Ba&#x15F;layanlar &#x130;&#xE7;in Bilgi Teknolojileri"><p>Bu seri IT kariyerinin ilk basama&#x11F;&#x131;n&#x131; olu&#x15F;turuyor. Temel konular&#x131; sil ba&#x15F;tan anlatan ve Bilgi Teknolojileri konusunda iyi bir anlay&#x131;&#x15F; kazand&#x131;rmay&#x131; hedefleyen kurs, her b&#xF6;l&#xFC;mde farkl&#x131; bir konuya odaklan&#x131;yor. </p><p>IT alan&#x131;nda herhangi bir altyap&#x131;s&#x131; olmayanlar kadar daha &#xF6;nce bu alanda bilgisi olanlar i&#xE7;in de ilgi &#xE7;ekici konular oldu&#x11F;una inan&#x131;yoruz.</p>
<!--kg-card-begin: html-->
<h2 id="kurslar-bilgi-teknolojileri-tanitim">Kurs Tan&#x131;t&#x131;m</h2>
<!--kg-card-end: html-->
<figure class="kg-card kg-embed-card kg-card-hascaption"><iframe width="200" height="113" src="https://www.youtube.com/embed/KskiD_QRdHo?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen title="Bilgi Teknolojileri -Tan&#x131;t&#x131;m"></iframe><figcaption><p><span style="white-space: pre-wrap;">Bilgi Teknolojileri - Kurs Tan&#x131;t&#x131;m</span></p></figcaption></figure><p></p>
<!--kg-card-begin: html-->
<h2 id="kurslar-bilgi-teknolojileri-bilgisayar-tarihi">1. Bilgisayar ve Hesaplaman&#x131;n Tarihi</h2>
<!--kg-card-end: html-->
<figure class="kg-card kg-embed-card kg-card-hascaption"><iframe width="200" height="113" src="https://www.youtube.com/embed/NmeFiuHOHT0?start=55&amp;feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen title="Bilgi Teknolojileri #1 - Bilgisayar ve Hesaplaman&#x131;n Tarihi"></iframe><figcaption><p><span style="white-space: pre-wrap;">Bilgi Teknolojileri #1 - Bilgisayar ve Hesaplaman&#x131;n Tarihi</span></p></figcaption></figure><p></p>
<!--kg-card-begin: html-->
<h2 id="kurslar-bilgi-teknolojileri-boolean-logic">2. Boolean Logic (Do&#x11F;ru - Yanl&#x131;&#x15F; Mant&#x131;&#x11F;&#x131;)</h2>
<!--kg-card-end: html-->
<figure class="kg-card kg-embed-card kg-card-hascaption"><iframe width="200" height="113" src="https://www.youtube.com/embed/ekN-3Ej4YuA?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen title="Bilgi Teknolojileri #2 - Boolean Logic (Do&#x11F;ru - Yanl&#x131;&#x15F; Mant&#x131;&#x11F;&#x131;)"></iframe><figcaption><p><span style="white-space: pre-wrap;">Boolean Logic</span></p></figcaption></figure><p></p>
<!--kg-card-begin: html-->
<h2 id="kurslar-bilgi-teknolojileri-binary">3. Binary (&#x130;kilik Sayma Sistemi)</h2>
<!--kg-card-end: html-->
<figure class="kg-card kg-embed-card kg-card-hascaption"><iframe width="200" height="113" src="https://www.youtube.com/embed/VqKqfGpMitg?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen title="Bilgi Teknolojileri #3 - Binary System"></iframe><figcaption><p><span style="white-space: pre-wrap;">Binary System</span></p></figcaption></figure><p></p>
<!--kg-card-begin: html-->
<h2 id="kurslar-bilgi-teknolojileri-donanim">4. Bilgisayar Bile&#x15F;enleri - Donan&#x131;m</h2>
<!--kg-card-end: html-->
<figure class="kg-card kg-embed-card kg-card-hascaption"><iframe width="200" height="113" src="https://www.youtube.com/embed/guawZM32AfQ?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen title="Bilgi Teknolojileri #4 - Donan&#x131;m (Hardware)"></iframe><figcaption><p><span style="white-space: pre-wrap;">Donan&#x131;m (Hardware)</span></p></figcaption></figure>
<!--kg-card-begin: html-->
<h2 id="kurslar-bilgi-teknolojileri-bilgisayar-ag1">5. Bilgisayar A&#x11F;lar&#x131; 1</h2>
<!--kg-card-end: html-->
<figure class="kg-card kg-embed-card kg-card-hascaption"><iframe width="200" height="113" src="https://www.youtube.com/embed/F4nu1G5-tLA?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen title="Bilgi Teknolojileri #5 - Bilgisayar A&#x11F;lar&#x131; Genel Tan&#x131;t&#x131;m"></iframe><figcaption><p><span style="white-space: pre-wrap;">Bilgisayar Aglar&#x131; Genel Tan&#x131;t&#x131;m</span></p></figcaption></figure>
<!--kg-card-begin: html-->
<h2 id="kurslar-bilgi-teknolojileri-bilgisayar-ag">6. Bilgisayar A&#x11F;lar&#x131; 2 - Internet Nas&#x131;l &#xC7;al&#x131;&#x15F;&#x131;r?</h2>
<!--kg-card-end: html-->
]]></content:encoded></item><item><title><![CDATA[Birçok Bilinmeyen Nasıl Yapılır? (Yakında)]]></title><description><![CDATA[<!--kg-card-begin: markdown--><ul>
<li>Virtual Box nas&#x131;l jurulur, network ayarlar&#x131; nas&#x131;l yap&#x131;l&#x131;r?</li>
<li>Node.js belli bir s&#xFC;r&#xFC;m ya da birden &#xE7;ok s&#xFC;r&#xFC;m nas&#x131;l kurulur?</li>
<li>Caddy Server nas&#x131;l kurulur, web sitesi nginx ile</li></ul>]]></description><link>https://izleogrenkodla.dev/nasil-yapilir/</link><guid isPermaLink="false">6330d8d8664b710001ec4fb6</guid><category><![CDATA[Nasıl yapılır?]]></category><dc:creator><![CDATA[izle-öğren-kodla]]></dc:creator><pubDate>Sun, 25 Sep 2022 22:43:32 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><ul>
<li>Virtual Box nas&#x131;l jurulur, network ayarlar&#x131; nas&#x131;l yap&#x131;l&#x131;r?</li>
<li>Node.js belli bir s&#xFC;r&#xFC;m ya da birden &#xE7;ok s&#xFC;r&#xFC;m nas&#x131;l kurulur?</li>
<li>Caddy Server nas&#x131;l kurulur, web sitesi nginx ile nas&#x131;l deploy edilir?</li>
<li>Bir ubuntu server s&#x131;f&#x131;rdan nas&#x131;l kurulur?</li>
<li>Proxy nas&#x131;l yap&#x131;l&#x131;r?</li>
</ul>
<p>gibi daha onlarca nas&#x131;l yap&#x131;l&#x131;r yak&#x131;nda burada.</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[QA Engineer Yol Haritası (Yakında)]]></title><description><![CDATA[<p>S&#x131;f&#x131;rdan QA Automation Engineer nas&#x131;l olunur? Herbir ad&#x131;m&#x131; ve yol haritas&#x131;n&#x131; a&#xE7;&#x131;klayan yaz&#x131;m&#x131;z yak&#x131;nda burada.</p>]]></description><link>https://izleogrenkodla.dev/qa-engineer-yol-haritasi/</link><guid isPermaLink="false">6317e442664b710001ec31be</guid><category><![CDATA[Yol Haritası]]></category><dc:creator><![CDATA[izle-öğren-kodla]]></dc:creator><pubDate>Sun, 25 Sep 2022 22:37:15 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1518349619113-03114f06ac3a?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDN8fHNvZnR3YXJlJTIwdGVzdGluZ3xlbnwwfHx8fDE2NjI1MTAyNzU&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1518349619113-03114f06ac3a?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDN8fHNvZnR3YXJlJTIwdGVzdGluZ3xlbnwwfHx8fDE2NjI1MTAyNzU&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000" alt="QA Engineer Yol Haritas&#x131; (Yak&#x131;nda)"><p>S&#x131;f&#x131;rdan QA Automation Engineer nas&#x131;l olunur? Herbir ad&#x131;m&#x131; ve yol haritas&#x131;n&#x131; a&#xE7;&#x131;klayan yaz&#x131;m&#x131;z yak&#x131;nda burada.</p>]]></content:encoded></item><item><title><![CDATA[Backend Developer Yol Haritası]]></title><description><![CDATA[<p>IT kariyerinize Backend Developer olarak devam etmeye karar verdiniz. &#xC7;ok iyi bir se&#xE7;im ama ba&#x15F;tan s&#xF6;yleyeyeyim bu yolu se&#xE7;ti&#x11F;inize g&#xF6;re m&#xFC;cadeleyi seviyorsunuz demektir.<br>
Bu se&#xE7;imde size rehber olabilecek bu yol haritas ile yakla&</p>]]></description><link>https://izleogrenkodla.dev/backend-developer-roadmap/</link><guid isPermaLink="false">6328cbb2664b710001ec49e9</guid><category><![CDATA[Yol Haritası]]></category><dc:creator><![CDATA[izle-öğren-kodla]]></dc:creator><pubDate>Sat, 24 Sep 2022 22:14:03 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1491485326079-8713ae1e00a9?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDQ5fHxiYWNrfGVufDB8fHx8MTY2NDAxMjkwNQ&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1491485326079-8713ae1e00a9?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDQ5fHxiYWNrfGVufDB8fHx8MTY2NDAxMjkwNQ&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000" alt="Backend Developer Yol Haritas&#x131;"><p>IT kariyerinize Backend Developer olarak devam etmeye karar verdiniz. &#xC7;ok iyi bir se&#xE7;im ama ba&#x15F;tan s&#xF6;yleyeyeyim bu yolu se&#xE7;ti&#x11F;inize g&#xF6;re m&#xFC;cadeleyi seviyorsunuz demektir.<br>
Bu se&#xE7;imde size rehber olabilecek bu yol haritas ile yakla&#x15F;&#x131;k bir y&#x131;l s&#xFC;rede yeni ba&#x15F;layan (Junior) seviyesinde Backend Developer olarak gerekli bilgi ve becerileri kazanabilirsiniz.</p>
<p>Yol haritas&#x131; sizi temel bir bir noktaya kadar getirir.  Olmazsa olmaz teknolojileri mant&#x131;kl&#x131; bir s&#x131;ra ile g&#xF6;sterir. O noktadan sonra hangi y&#xF6;nde uzmanla&#x15F;mak istedi&#x11F;inize siz karar vermelisiniz. &#xC7;&#xFC;nk&#xFC; bu yol kendi i&#xE7;inde dahi alt kategorilere ayr&#x131;labilir; &#xF6;rne&#x11F;in &#xF6;&#x11F;renilen dile ba&#x11F;l&#x131; olarak <code>Javascript</code> ya da <code>Python</code> Backend Developer gibi.<br>
Ancak motivasyonunuzu y&#xFC;ksek tutarak ve sab&#x131;rla ilerledi&#x11F;inizde yakla&#x15F;&#x131;k bir y&#x131;l i&#xE7;inde bir Backend Developer olarak i&#x15F; bulabilece&#x11F;inize inan&#x131;yorum.</p>
<p> Yol haritas&#x131; s&#x131;ras&#x131; ve tavsiye edilen teknolojiler bu yaz&#x131;n&#x131;n yaz&#x131;ld&#x131;&#x11F;&#x131; 2022 Eyl&#xFC;l ay&#x131; itibariyle haz&#x131;rland&#x131;. A&#x15F;a&#x11F;&#x131;da belirtilen s&#x131;ra ve konular se&#xE7;ilirken Stackoverflow anketleri ba&#x15F;ta olmak &#xFC;zere Linkedin gibi &#xFC;nl&#xFC; i&#x15F; arama platformlar&#x131;n&#x131;n i&#x15F; tan&#x131;mlar&#x131;nda (Job Description) en &#xE7;ok istenen yeteneklere de odaklan&#x131;ld&#x131;. &#xD6;&#x11F;renmeye tabiki istedi&#x11F;iniz teknolojiden ba&#x15F;layabilirsiniz ama yeni ba&#x15F;layan biri iseniz s&#x131;ray&#x131; takip etmenizi tavsiye ederim.<br></p>
<!--kg-card-begin: html-->
<ul>
    <li><a style="color:dimgray;" href="#backend-roadmap-temeller">Temel Bilgi Sistemleri...</a></li>
    <li><a style="color:dimgray;" href="#backend-roadmap-web">&#xD6;nce Web&apos; i &#xD6;&#x11F;renin</a></li>
    <li><a style="color:dimgray;" href="#backend-roadmap-biraz-frontend">Biraz Frontend, HTML ve CSS</a></li>
    <li><a style="color:dimgray;" href="#backend-roadmap-git">&#x130;lk Andan &#x130;tibaren Versiyon Kontrol - Git &#xD6;&#x11F;renin</a></li>
    <li><a style="color:dimgray;" href="#backend-roadmap-pratik">&#x130;lerlemeden &#xD6;nce Biraz Pratik</a></li>
    <li><a style="color:dimgray;" href="#backend-roadmap-algoritma">Programlama ve Algoritmalara Giri&#x15F;</a></li>
    <li><a style="color:dimgray;" href="#backend-roadmap-os">&#x130;&#x15F;letim Sistemi ve Bile&#x15F;enleri</a></li>
    <li><a style="color:dimgray;" href="#backend-roadmap-language">Bir Dil Se&#xE7;in ama Hangisi?</a></li>
    <li><a style="color:dimgray;" href="#backend-roadmap-test">Hatay&#x131; En aza &#x130;ndirin - Test &#xD6;&#x11F;renin</a></li>
    <li><a style="color:dimgray;" href="#backend-roadmap-database">Data ve Database</a></li>
	<li><a style="color:dimgray;" href="#backend-roadmap-api">API</a></li>
    <li><a style="color:dimgray;" href="#backend-roadmap-container">Sanalla&#x15F;t&#x131;rma (Virtualization) ve Container</a></li>
    <li><a style="color:dimgray;" href="#backend-roadmap-framework">Bir Framework Se&#xE7;in</a></li>
    <li><a style="color:dimgray;" href="#backend-roadmap-auth">G&#xFC;venlik ve Yetkilendirme</a></li>
    <li><a style="color:dimgray;" href="#backend-roadmap-design">Yap&#x131;lar ve Dizayn Paternleri</a></li>
    <li><a style="color:dimgray;" href="#backend-roadmap-devops">DevOps Teknolojileri</a></li>
</ul>
<!--kg-card-end: html-->
<p></p>
<!--kg-card-begin: html-->
<h2 id="backend-roadmap-temeller">1. Temel Bilgi Sistemleri...</h2>
<!--kg-card-end: html-->
<p>Temel bilgi sistemleri altyap&#x131;s&#x131; (Computer Science) olmadan herhangi bir IT kariyer yolu olmaz. Herg&#xFC;n kullanaca&#x11F;&#x131;n&#x131;z bilgisayar ve bilgisayar teknolojilerinin nas&#x131;l &#xE7;al&#x131;&#x15F;t&#x131;&#x11F;&#x131;, ilk halledilmesi gereken husustur.</p>
<p>Genel olarak; bilgisayar bile&#x15F;enleri nedir, API nedir ne i&#x15F;e yarar, yazd&#x131;&#x11F;&#x131;m&#x131;z kod bilgisayar taraf&#x131;ndan nas&#x131;l i&#x15F;lenir, data ve data yap&#x131;lar&#x131; nedir, bilgisayar a&#x11F;lar&#x131; (network) nas&#x131;l &#xE7;al&#x131;&#x15F;&#x131;r ve fonksiyon ne demektir gibi temel konular bu alan i&#xE7;indedir.</p>
<p>Baz&#x131;lar&#x131; bu konular&#x131; &#xF6;&#x11F;renmenin zaman kayb&#x131; oldu&#x11F;unu d&#xFC;&#x15F;&#xFC;n&#xFC;r ve do&#x11F;rudan bir programlama dilini &#xF6;&#x11F;renekrek ba&#x15F;lamaya &#xE7;al&#x131;&#x15F;&#x131;r. Ancak burada harcayaca&#x11F;&#x131;n&#x131;z birka&#xE7; hafta zaman kayb&#x131; de&#x11F;ildir. Bu k&#x131;sm&#x131; halletti&#x11F;inizde ilerleyen b&#xF6;l&#xFC;mlerdeki teknik konular&#x131; anlaman&#x131;zda nas&#x131;l sizi h&#x131;zland&#x131;rd&#x131;&#x11F;&#x131;n&#x131; g&#xF6;r&#xFC;nce ni&#xE7;in gerekli oldu&#x11F;unu daha iyi anlayacaks&#x131;n&#x131;z.</p>
<p>Elbette bu k&#x131;s&#x131;m i&#x15F;in ABC&apos;si ve siz temeller konusunda yeterli bilgiye sahip oldu&#x11F;unuzu d&#xFC;&#x15F;&#xFC;n&#xFC;yorsan&#x131;z buray&#x131; es ge&#xE7;ip bir sonraki ad&#x131;ma ilerleyin ancak ger&#xE7;ekten yeni ba&#x15F;layan biri iseniz IzleOgreKodla Youtube kanal&#x131;nda yay&#x131;nlad&#x131;&#x11F;&#x131;m&#x131;z <a href="https://www.youtube.com/watch?v=KskiD_QRdHo&amp;list=PLRqVzqVY32MvpnGhnEEOFE2EGX-0o-voP&amp;index=1&amp;ref=izleogrenkodla.dev">Yeni Ba&#x15F;layanlar i&#xE7;in Bilgi Teknolojileri kursuna</a> ve Harvard &#xDC;niversitesinin <a href="https://learning.edx.org/course/course-v1:HarvardX+CS50+X/home?ref=izleogrenkodla.dev">CS50 kursuna</a> bir g&#xF6;z atabilirsiniz.</p>
<p></p>
<!--kg-card-begin: html-->
<h2 id="backend-roadmap-web">2. &#xD6;nce Web&apos;i &#xD6;&#x11F;renin</h2>
<!--kg-card-end: html-->
<figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://images.unsplash.com/photo-1545987796-3d00cd599225?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDQ3fHx3ZWJ8ZW58MHx8fHwxNjYzMDE3NjA1&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000" class="kg-image" alt="Backend Developer Yol Haritas&#x131;" loading="lazy"><figcaption><span style="white-space: pre-wrap;">Photo by </span><a href="https://unsplash.com/@alinnnaaaa?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit"><span style="white-space: pre-wrap;">Alina Grubnyak</span></a><span style="white-space: pre-wrap;"> / </span><a href="https://unsplash.com/?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit"><span style="white-space: pre-wrap;">Unsplash</span></a></figcaption></figure><p>Ba&#x15F;ar&#x131;l&#x131; bir Backend developer olmak i&#xE7;in ona servis geli&#x15F;tirece&#x11F;iniz ortam&#x131; yani <code>web</code> &apos;i ve onun nas&#x131;l &#xE7;al&#x131;&#x15F;t&#x131;&#x11F;&#x131;n&#x131; anlamak zorundas&#x131;n&#x131;z. <strong>HTTP</strong>, <strong>DNS</strong>, <strong>Cookie</strong> gibi kavramlar size yabanc&#x131; olmamal&#x131;d&#x131;r. Web aplikasyonlar&#x131; g&#xF6;r&#xFC;nt&#xFC;ledi&#x11F;imiz <strong>browser</strong> nas&#x131;l &#xE7;al&#x131;&#x15F;&#x131;r, bir web sitesini nas&#x131;l g&#xF6;r&#xFC;nt&#xFC;ler gibi sorular cevab&#x131;n&#x131; bulmu&#x15F; olmal&#x131;d&#x131;r. Bu nedenle yeni ba&#x15F;layanlar i&#xE7;in <a href="https://www.freecodecamp.org/news/how-the-web-works-a-primer-for-newcomers-to-web-development-or-anyone-really-b4584e63585c/?ref=izleogrenkodla.dev">web nas&#x131;l &#xE7;al&#x131;&#x15F;&#x131;r</a> &#xF6;&#x11F;renilmelidir.</p><p></p>
<!--kg-card-begin: html-->
<h2 id="backend-roadmap-biraz-frontend">3. Biraz Frontend, HTML ve CSS</h2>
<!--kg-card-end: html-->
<figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://images.unsplash.com/photo-1583339793403-3d9b001b6008?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDQ2fHxDU1N8ZW58MHx8fHwxNjYzMDE3ODM0&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000" class="kg-image" alt="Backend Developer Yol Haritas&#x131;" loading="lazy"><figcaption><span style="white-space: pre-wrap;">Photo by </span><a href="https://unsplash.com/@valerysysoev?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit"><span style="white-space: pre-wrap;">Valery Sysoev</span></a><span style="white-space: pre-wrap;"> / </span><a href="https://unsplash.com/?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit"><span style="white-space: pre-wrap;">Unsplash</span></a></figcaption></figure><p>&#xC7;ok sa&#x11F;lam bir backend servisi olu&#x15F;turmak istiyorsunuz ya da &#xE7;ok <code>cool</code> bir API geli&#x15F;tirmek i&#xE7;in can at&#x131;yorsunuz. O zaman Frontend&apos;in nas&#x131;l &#xE7;al&#x131;&#x15F;t&#x131;&#x11F;&#x131;n&#x131; &#xF6;&#x11F;renmek bu i&#x15F;in anahtar&#x131;. Frontend&apos;i anlamal&#x131;s&#x131;n&#x131;z ki onun ihtiya&#xE7;lar&#x131; nedir ve nas&#x131;l en iyi &#x15F;ekilde kar&#x15F;&#x131;lan&#x131;r sorusunu cevaplayabilesiniz. &#x130;&#x15F;e HTML ce CSS &#xF6;&#x11F;renerek ba&#x15F;layabilirsiniz.</p>
<p>HTML ve CSS ba&#x15F;lang&#x131;&#xE7; i&#xE7;in <a href="https://www.youtube.com/watch?v=hu-q2zYwEYs&amp;ref=izleogrenkodla.dev">net ninja HTML &amp; CSS kursu</a> iyi bir alternatif.</p><h2 id></h2>
<!--kg-card-begin: html-->
<h2 id="backend-roadmap-git">4. &#x130;lk Andan &#x130;tibaren Versiyon Kontrol - Git &#xD6;&#x11F;renin</h2>
<!--kg-card-end: html-->
<figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://images.unsplash.com/photo-1556075798-4825dfaaf498?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDJ8fGdpdHxlbnwwfHx8fDE2NjMwMTgwOTY&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000" class="kg-image" alt="Backend Developer Yol Haritas&#x131;" loading="lazy"><figcaption><span style="white-space: pre-wrap;">Photo by </span><a href="https://unsplash.com/@yancymin?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit"><span style="white-space: pre-wrap;">Yancy Min</span></a><span style="white-space: pre-wrap;"> / </span><a href="https://unsplash.com/?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit"><span style="white-space: pre-wrap;">Unsplash</span></a></figcaption></figure><p>IT kariyer yollar&#x131;ndan herhangi birini d&#xFC;&#x15F;&#xFC;n&#xFC;n ki <code>Git</code> versiyon kontrol sistemi ana konulardan biri olmas&#x131;n. Evet git &#xF6;&#x11F;renmek opsiyonel de&#x11F;il gereklilik. Git a&#xE7;&#x131;k kaynak, da&#x11F;&#x131;t&#x131;k versiyon kontrol sistemidir ve bug&#xFC;n yaz&#x131;l&#x131;m d&#xFC;nyas&#x131;nda de-facto standart haline gelmi&#x15F;tir.</p><p>Git kodunuzun tarih&#xE7;esini tutabilece&#x11F;iniz, kodunuzu yedekleyebilece&#x11F;iniz, tak&#x131;m halinde &#xE7;al&#x131;&#x15F;&#x131;rken &#xE7;ak&#x131;&#x15F;malar&#x131; ve tutars&#x131;zl&#x131;klar&#x131; &#xF6;nleyebilece&#x11F;iniz, istenmeyen de&#x11F;i&#x15F;ikleri engelleyip de&#x11F;i&#x15F;ik bran&#x15F;larda &#xE7;al&#x131;&#x15F;abilece&#x11F;iniz muazzam bir versiyon kontrol sistemidir.</p><p>Git ile beraber &#xE7;al&#x131;&#x15F;malar&#x131;n&#x131;z&#x131; saklayaca&#x11F;&#x131;n&#x131;z <code>repo</code> (bir nevi yaz&#x131;l&#x131;m deposu) kontrol sistemlerinden birini de &#xF6;&#x11F;renmek ak&#x131;ll&#x131;ca olur. En yayg&#x131;n olan <code>GitHub</code> ile ba&#x15F;layabilirsiniz ama <code>GitLab</code> ve <code>BitBucket</code> da alternatifler aras&#x131;nda. <a href="https://www.youtube.com/watch?v=SWYqp7iY_Tc&amp;ref=izleogrenkodla.dev">Burdan</a> ba&#x15F;layabilirsiniz.</p><p></p>
<!--kg-card-begin: html-->
<h2 id="backend-roadmap-pratik">5. &#x130;lerlemeden &#xD6;nce Biraz Pratik</h2>
<!--kg-card-end: html-->
<figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://images.unsplash.com/photo-1504805572947-34fad45aed93?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDIyfHxwb3J0Zm9saW98ZW58MHx8fHwxNjYzMDc1ODk1&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000" class="kg-image" alt="Backend Developer Yol Haritas&#x131;" loading="lazy"><figcaption><span style="white-space: pre-wrap;">Photo by </span><a href="https://unsplash.com/@clarktibbs?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit"><span style="white-space: pre-wrap;">Clark Tibbs</span></a><span style="white-space: pre-wrap;"> / </span><a href="https://unsplash.com/?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit"><span style="white-space: pre-wrap;">Unsplash</span></a></figcaption></figure><p>Yaparak &#xF6;&#x11F;renmek hemen herkes i&#xE7;in en iyi &#xF6;&#x11F;renme y&#xF6;ntemlerinden biridir. &#xC7;&#xFC;nk&#xFC; kendimiz yaparken s&#x131;k&#xE7;a problemlerle kar&#x15F;&#x131;la&#x15F;&#x131;r&#x131;z, problemleri &#xE7;&#xF6;zerken &#xF6;&#x11F;reniriz, problem &#xE7;&#xF6;zmek i&#xE7;in de pratik laz&#x131;m yani pozitif bir d&#xF6;ng&#xFC;.</p>
<p>Bu nedenle &#xF6;&#x11F;renme yolunda daha ba&#x15F;tan kendi portfoly&#xF6;m&#xFC;z&#xFC; olu&#x15F;turmak hem bol pratik hem de &#xF6;&#x11F;renme i&#xE7;in iyi bir se&#xE7;enek. Bu nedenle GitHub hesab&#x131;n&#x131;za birka&#xE7; proje kelemeye ba&#x15F;lay&#x131;n.</p>
<p>Sadece HTML ve CSS bilgisi ile bile g&#xF6;rsel olarak g&#xFC;zel projeler yapabilirsiniz. t&#x131;pk&#x131; <a href="https://www.youtube.com/watch?v=OY5ISdymgiY&amp;ref=izleogrenkodla.dev">buradaki</a> gibi.</p>
<h2 id="-1"></h2>
<!--kg-card-begin: html-->
<h2 id="backend-roadmap-algoritma">6. Programlama ve Algoritmalara Giri&#x15F;</h2>
<!--kg-card-end: html-->
<p>Art&#x131;k bir an &#xF6;nce bir programlama diline ba&#x15F;lamak istiyorsunuz. Bir dile karar vermeden ve ona ba&#x15F;lamadan &#xF6;nce genel programlama terimleri ve algoritma temellerini &#xF6;&#x11F;renmek yapbozdaki eksik par&#xE7;ay&#x131; tamamlar. Dilerseniz bu ad&#x131;mla bir sonraki ad&#x131;m&#x131; birle&#x15F;tirebilirsiniz. Ancak variables, types, loops, data structure, conditionals, functions, iterations, recursive . . .  gibi terimlerin sizin i&#xE7;in yabanc&#x131; olmad&#x131;&#x11F;&#x131;ndan emin olun. <a href="https://www.youtube.com/watch?v=zOjov-2OZ0E&amp;ref=izleogrenkodla.dev">Programlama giri&#x15F;</a> i&#xE7;in bu kursu takip edebilirsiniz.</p><h2 id="-2"></h2>
<!--kg-card-begin: html-->
<h2 id="backend-roadmap-os">7. &#x130;&#x15F;letim Sistemi ve Bile&#x15F;enleri</h2>
<!--kg-card-end: html-->
<figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://images.unsplash.com/photo-1588382472578-8d8b337b277a?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDcwfHxDUFV8ZW58MHx8fHwxNjY0MDE3ODE3&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000" class="kg-image" alt="Backend Developer Yol Haritas&#x131;" loading="lazy" width="5934" height="3956" srcset="https://images.unsplash.com/photo-1588382472578-8d8b337b277a?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDcwfHxDUFV8ZW58MHx8fHwxNjY0MDE3ODE3&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=600 600w, https://images.unsplash.com/photo-1588382472578-8d8b337b277a?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDcwfHxDUFV8ZW58MHx8fHwxNjY0MDE3ODE3&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=1000 1000w, https://images.unsplash.com/photo-1588382472578-8d8b337b277a?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDcwfHxDUFV8ZW58MHx8fHwxNjY0MDE3ODE3&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=1600 1600w, https://images.unsplash.com/photo-1588382472578-8d8b337b277a?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDcwfHxDUFV8ZW58MHx8fHwxNjY0MDE3ODE3&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2400 2400w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Photo by </span><a href="https://unsplash.com/@lime517?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit"><span style="white-space: pre-wrap;">Joseph Greve</span></a><span style="white-space: pre-wrap;"> / </span><a href="https://unsplash.com/?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit"><span style="white-space: pre-wrap;">Unsplash</span></a></figcaption></figure><p>Bu ad&#x131;m buralarda ba&#x15F;lar ama burda bitmez. T&#xFC;m yolculu&#x11F;unuz boyunca &#xFC;st&#xFC;ne ekleyerek gidecek ve &#xF6;&#x11F;reneceksiniz. Bu nedenle sonraki ad&#x131;mlar&#x131; &#xF6;&#x11F;renirken de bu ad&#x131;m devam edecek. Bir Backend developer s&#xFC;rekli olarak geli&#x15F;tirdi&#x11F;i servisin &#xFC;st&#xFC;nde &#xE7;al&#x131;&#x15F;t&#x131;&#x11F;&#x131; i&#x15F;letim sistemi (Operating System - OS) ile etkile&#x15F;ime ge&#xE7;er. Dahas&#x131; Backend servisleri do&#x11F;rudan bir sunumcuda &#xE7;al&#x131;&#x15F;t&#x131;&#x11F;&#x131; i&#xE7;in sunumcunun nas&#x131;l &#xE7;al&#x131;&#x15F;t&#x131;&#x11F;&#x131; anla&#x15F;&#x131;lmal&#x131;d&#x131;r. Temel olarak iki i&#x15F;letim sistemi &#xF6;ne &#xE7;&#x131;k&#x131;yor. Linux ve Windows. &#xD6;ncelikle Linux&apos;tan ba&#x15F;lamak do&#x11F;ru bir karar olur. Neden sorusunun cevab&#x131; uzun oldu&#x11F;u i&#xE7;in <a href="https://izleogrenkodla.dev/neden-linux">buraya</a> bakabilirsiniz.</p><p>Bu ad&#x131;m&#x131;n par&#xE7;as&#x131; olabilecek konular&#x131; orijinal ad&#x131;na sa&#x11F;d&#x131;k kalarak s&#x131;ralamak gerekirse;</p>
<ul>
<li>Genel olarak i&#x15F;letim sistemleri nas&#x131;l &#xE7;al&#x131;&#x15F;&#x131;r?</li>
<li><a href="https://izleogrenkodla.dev/en-cok-kullanilan-terminal-komutlari/">Temel Terminal Komutlar&#x131;</a></li>
<li>Process Management (&#x130;&#x15F;lem Y&#xF6;netimi)</li>
<li>Threads and Concurrency (&#x130;&#x15F; Par&#xE7;ac&#x131;&#x11F;&#x131; ve E&#x15F;zamanl&#x131;l&#x131;k)</li>
<li>Memory Management (Bellek Y&#xF6;netimi)</li>
<li>I/O Nanagement (Girdi-&#xC7;&#x131;kt&#x131; Y&#xF6;netimi)</li>
<li>Networking (Bilgisayar A&#x11F;lar&#x131;)</li>
</ul>
<p>gibi konular olabilir.</p>
<h2 id="-3"></h2>
<!--kg-card-begin: html-->
<h2 id="backend-roadmap-language">8. Bir Dil Se&#xE7;in ama Hangisi?</h2>
<!--kg-card-end: html-->
<figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://images.unsplash.com/photo-1592609931095-54a2168ae893?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDN8fGphdmFzY3JpcHR8ZW58MHx8fHwxNjYzMDg0OTQ2&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000" class="kg-image" alt="Backend Developer Yol Haritas&#x131;" loading="lazy"><figcaption><span style="white-space: pre-wrap;">Photo by </span><a href="https://unsplash.com/@gamell?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit"><span style="white-space: pre-wrap;">Joan Gamell</span></a><span style="white-space: pre-wrap;"> / </span><a href="https://unsplash.com/?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit"><span style="white-space: pre-wrap;">Unsplash</span></a></figcaption></figure><p>Art&#x131;k bir dil se&#xE7;me ve &#xF6;&#x11F;renme zaman&#x131;, hangisi olmal&#x131; sorusu tek bir cevab&#x131; olan bir soru de&#x11F;il. E&#x11F;er Stackoverflow 2022 anketlerine bakarsak en&#xE7;ok tercih edilen dillerin aras&#x131;nda;</p>
<ul>
<li>Javascript</li>
<li>Python</li>
<li>Typescript (Javascript&apos;in S&#xFC;per Karde&#x15F;i &#x1F600;)</li>
<li>Java</li>
<li>C#</li>
</ul>
<p>oldu&#x11F;unu g&#xF6;r&#xFC;yoruz.</p>
<figure class="kg-card kg-image-card"><img src="https://izleogrenkodla.dev/content/images/2022/09/Screen-Shot-2022-09-24-at-13.41.22.png" class="kg-image" alt="Backend Developer Yol Haritas&#x131;" loading="lazy" width="1213" height="789" srcset="https://izleogrenkodla.dev/content/images/size/w600/2022/09/Screen-Shot-2022-09-24-at-13.41.22.png 600w, https://izleogrenkodla.dev/content/images/size/w1000/2022/09/Screen-Shot-2022-09-24-at-13.41.22.png 1000w, https://izleogrenkodla.dev/content/images/2022/09/Screen-Shot-2022-09-24-at-13.41.22.png 1213w" sizes="(min-width: 720px) 720px"></figure><h3 id="javascript">Javascript</h3><p>3&apos;&#xFC;nc&#xFC; ad&#x131;mda belirtti&#x11F;imiz gibi Backend Developer olmak i&#xE7;in Frontend,i ve ihtiya&#xE7;lar&#x131;n&#x131; anlamak zorundas&#x131;bn&#x131;z. Frrontend&apos;in ihtiya&#xE7;lar&#x131;n&#x131; anlamak i&#xE7;in de <code>HTML</code> ve <code>CSS</code> &apos;in yan&#x131;nda <code>Javascript</code> &apos;i de &#xF6;&#x11F;renmek zorundas&#x131;n&#x131;z. Javascript uzman&#x131; olmasan&#x131;z da belli bir seviyeye kadar bilmelisiniz. Bu nedenle bu dilden ba&#x15F;lamak zaman kazand&#x131;rabilir.</p>
<p>Ayr&#x131;ca di&#x11F;er dillere nazaran <code>Javascript</code> t&#x131;pk&#x131; <code>Python</code> gibi &#xF6;&#x11F;renme e&#x11F;risi kolay bil dildir. En az&#x131;ndan ba&#x15F;lang&#x131;&#xE7; ve orta seviyeler i&#xE7;in.</p>
<p>Javascript&apos; i &#xF6;&#x11F;renmek i&#xE7;in ba&#x15F;ka iyi bir nedeniniz daha var. Javascript FrontEnd geli&#x15F;tirmede kullan&#x131;ld&#x131;&#x11F;&#x131; gibi Node.js programlama dili sayesinde Backend geli&#x15F;tirmede de kullan&#x131;l&#x131;r. Modern Javascript&apos;e <a href="https://www.youtube.com/watch?v=iWOYAxlnaww&amp;list=PL4cUxeGkcC9haFPT7J25Q9GRB_ZkFrQAc&amp;ref=izleogrenkodla.dev">buradan</a> bir ba&#x15F;lang&#x131;&#xE7; yapabilirsiniz. E&#x11F;er yolunuza Javascript ile devam edecekseniz eninde sonunda <code>Typescript</code>&apos; te &#xF6;&#x11F;renmek durumunda kalacaks&#x131;n&#x131;z. &#x130;&#x15F;in g&#xFC;zel taraf&#x131; asl&#x131;nda Typescript yeni bir de&#x11F;il Javascript&apos; in ta kendisidir. Javascript&apos;in bilinen eksiklerini gidermek i&#xE7;in olu&#x15F;turulmu&#x15F;, i&#xE7;erisine g&#xFC;venli kod tipleri (type safe) eklenmi&#x15F; ve daha iyi geli&#x15F;tirme deneyimi sunan bir proglamlama dilidir.</p>
<h3 id="python">Python</h3><p><code>Python</code> dili Stackoverflow anketinde en &#xE7;ok tercih edilen 2&apos;nci dil olmay&#x131; hakediyor. &#xD6;&#x11F;renme e&#x11F;risi en kolay olan dil olarak bilinir ve bir&#xE7;ok bilgi teknoloji okulu programlamaya <code>Python</code> ile ba&#x15F;lar.</p>
<p>Kolay ve anla&#x15F;&#x131;l&#x131;r bir yaz&#x131;m dili olmas&#x131; yan&#x131;nda olduk&#xE7;a yayg&#x131;n k&#xFC;t&#xFC;phanelere sahip olan Python ile bug&#xFC;n Data Science (Veri Bilimi)&apos; tan web servis geli&#x15F;tirmeye kadar hemen her alanda geli&#x15F;tirme yap&#x131;lmaktad&#x131;r. Python&apos; a ba&#x15F;lamak i&#xE7;in iyi bir <a href="https://www.youtube.com/watch?v=b093aqAZiPU&amp;ref=izleogrenkodla.dev">kaynak</a></p>
<h3 id="java-ve-c">Java ve C#</h3><p>Java ve C# Nesne tabanl&#x131; programlard&#x131;r ve &#xF6;&#x11F;renme e&#x11F;rileri ilk iki dile nazaran biraz daha zordur. Ancak her ikisi de &#xE7;ok g&#xFC;&#xE7;l&#xFC; dillerdir ve sekt&#xF6;red en &#xE7;ok tercih edilen diller aras&#x131;ndad&#x131;r. &#xD6;zellikle <code>Java</code> bir kere yaz her yerde &#xE7;al&#x131;&#x15F;t&#x131;r slogan&#x131; ve kendi kod motoru <code>JVM</code> ile kahve makinalar&#x131;ndan jenerat&#xF6;rlere, sens&#xF6;rlerden web sunumculara kadar hemen her yerde ve her platformda &#xE7;al&#x131;&#x15F;&#x131;r. Bu nedenlede en yayg&#x131;n dillerden biridir.</p>
<h2 id="-4"></h2>
<!--kg-card-begin: html-->
<h2 id="backend-roadmap-test">9. Hatay&#x131; En aza &#x130;ndirin - Test &#xD6;&#x11F;renin</h2>
<!--kg-card-end: html-->
<figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://images.unsplash.com/photo-1616703897065-146cc4561478?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDIxfHxTb2Z0d2FyZSUyMHRlc3R8ZW58MHx8fHwxNjYzMDkzMTUy&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000" class="kg-image" alt="Backend Developer Yol Haritas&#x131;" loading="lazy"><figcaption><span style="white-space: pre-wrap;">Photo by </span><a href="https://unsplash.com/ja/@orangetiephotography?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit"><span style="white-space: pre-wrap;">Joshua Lawrence</span></a><span style="white-space: pre-wrap;"> / </span><a href="https://unsplash.com/?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit"><span style="white-space: pre-wrap;">Unsplash</span></a></figcaption></figure><p>Kodunuzu yazmaya ba&#x15F;lad&#x131;&#x11F;&#x131;n&#x131;z ilk andan itibaren Test yazmay&#x131; &#xF6;&#x11F;renmeli ve kodunuzu test etmelisiniz. Yaz&#x131;l&#x131;m testi ile ilgili olarak Unit test, Integration Test ve Functional Test gibi kavramlar&#x131; bilmeli ve a&#x15F;a&#x11F;&#x131;da belirtilen test ara&#xE7;lar&#x131; ile bunlar&#x131; nas&#x131;l yazaca&#x11F;&#x131;n&#x131;z&#x131; &#xF6;&#x11F;renmelisiniz.</p><p>Bir&#xE7;ok test arac&#x131; olsa da ba&#x15F;lang&#x131;&#xE7; olarak <code>mocha</code> veya <code>Jest</code> test k&#xFC;t&#xFC;phaneleri iyi bir se&#xE7;im olabilir. Bunula birlikte test deneyiminizi bir ad&#x131;m daha ileri ta&#x15F;&#x131;mak ve entegrasyon ve komponent testleri i&#xE7;in <code>Cypress</code> veya <code>Playwright</code> frameworklerinden birini se&#xE7;ip &#xF6;&#x11F;renebilirsiniz.</p><p>Bu ad&#x131;ma mutlaka zaman ay&#x131;rd&#x131;&#x11F;&#x131;n&#x131;zdan emin olun ve Test Driven Development olarak bilinen Test g&#xFC;d&#xFC;ml&#xFC; geli&#x15F;tirmeyi mutlaka &#xF6;&#x11F;renin. Se&#xE7;ti&#x11F;iniz dile uygun bir kurs se&#xE7;ip ba&#x15F;layabilirsiniz. Javascript dili i&#xE7;in <a href="https://www.youtube.com/watch?v=r9HdJ8P6GQI&amp;ref=izleogrenkodla.dev">buradan</a> ba&#x15F;layabilir ve &#xF6;&#x11F;rendik&#xE7;e &#xFC;st&#xFC;ne ekleyebilirsiniz.</p><h2 id="-5"></h2>
<!--kg-card-begin: html-->
<h2 id="backend-roadmap-database">10. Data ve Database</h2>
<!--kg-card-end: html-->
<figure class="kg-card kg-image-card"><img src="https://images.unsplash.com/photo-1633412802994-5c058f151b66?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDJ8fHNxbHxlbnwwfHx8fDE2NjMwODg2MTI&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000" class="kg-image" alt="Backend Developer Yol Haritas&#x131;" loading="lazy"></figure><p>Geli&#x15F;tirdi&#x11F;iniz Backend servisinizi mutlaka bir veritaban&#x131;na (database) ba&#x11F;layacaks&#x131;n&#x131;z. Bu nedenle <code>data</code> ve <code>database</code> konular&#x131; yol haritam&#x131;z&#x131;n bir ba&#x15F;ka &#xF6;nemli ad&#x131;m&#x131;. Bu b&#xF6;l&#xFC;mde iki temel database tipini, ne i&#x15F;e yarad&#x131;klar&#x131;n&#x131;, farkl&#x131;l&#x131;klar&#x131;n&#x131; &#xF6;&#x11F;renmelisiniz.</p>
<p>&#x130;lk database tipimiz ili&#x15F;kisel veritabanlar&#x131; (relational databases). Bu database&apos; ler <code>SQL</code> denen sordulama dilini kullan&#x131;rlar. Se&#xE7;enek &#xE7;ok fazla. Yine sekt&#xF6;rde &#xE7;ok yayg&#x131;n olan <a href="https://www.youtube.com/watch?v=7S_tz1z_5bA&amp;ref=izleogrenkodla.dev">MySQL</a> ya da <a href="https://www.youtube.com/watch?v=qw--VYLpxG4&amp;t=13167s&amp;ref=izleogrenkodla.dev">PostgreSQL</a> den ba&#x15F;layabilirsiniz.</p>
<p>Di&#x11F;er &#xF6;nemli database tipi ise dok&#xFC;man tipi NoSQL ya da dok&#xFC;man (document) tipi database&apos; ler. Burda da se&#xE7;enekler &#xE7;ok fazla olmakla birlikte en yayg&#x131;n olan <a href="https://www.youtube.com/watch?v=ExcRbA7fy_A&amp;list=PL4cUxeGkcC9h77dJ-QJlwGlZlTd4ecZOA&amp;ref=izleogrenkodla.dev">MongoDB</a> ile ba&#x15F;lamak iyi bir ba&#x15F;lang&#x131;&#xE7; olacakt&#x131;r.</p>
<h2 id="-6"></h2>
<!--kg-card-begin: html-->
<h2 id="backend-roadmap-api">11. API</h2>
<!--kg-card-end: html-->
<figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://images.unsplash.com/photo-1613135491269-790db18957e7?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDN8fDIwMHxlbnwwfHx8fDE2NjQwNDkxNTE&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000" class="kg-image" alt="Backend Developer Yol Haritas&#x131;" loading="lazy" width="6543" height="4362" srcset="https://images.unsplash.com/photo-1613135491269-790db18957e7?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDN8fDIwMHxlbnwwfHx8fDE2NjQwNDkxNTE&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=600 600w, https://images.unsplash.com/photo-1613135491269-790db18957e7?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDN8fDIwMHxlbnwwfHx8fDE2NjQwNDkxNTE&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=1000 1000w, https://images.unsplash.com/photo-1613135491269-790db18957e7?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDN8fDIwMHxlbnwwfHx8fDE2NjQwNDkxNTE&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=1600 1600w, https://images.unsplash.com/photo-1613135491269-790db18957e7?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDN8fDIwMHxlbnwwfHx8fDE2NjQwNDkxNTE&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2400 2400w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Photo by </span><a href="https://unsplash.com/@tengyart?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit"><span style="white-space: pre-wrap;">Tengyart</span></a><span style="white-space: pre-wrap;"> / </span><a href="https://unsplash.com/?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit"><span style="white-space: pre-wrap;">Unsplash</span></a></figcaption></figure><p>Kendisi &#xE7;ok k&#x131;sa ama i&#xE7;eri&#x11F;i &#xE7;ok uzun bir ba&#x15F;l&#x131;k. Bug&#xFC;n&#xFC;n geli&#x15F;tirme ortam&#x131; geli&#x15F;mi&#x15F; <code>API</code> servisleri &#xFC;zerinde &#x15F;ekilleniyor. &#xD6;nce API nedir konusunda iyi bir anlay&#x131;&#x15F;a sahip olmal&#x131; sonra da <code>REST</code>, <code>gRPC</code> ve <code>JSON APIs</code>gibi tiplerini &#xF6;&#x11F;renmelisiniz. Ayr&#x131;ca iyi bir API nas&#x131;l dizayn edilir ve API g&#xFC;venli&#x11F;i de anla&#x15F;&#x131;lmas&#x131; gereken konular aras&#x131;nda. Bu nedenle <code>Open API</code> gibi standartlar&#x131; da &#xF6;&#x11F;renmelisiniz. API konusuna ba&#x15F;lamak i&#xE7;in g&#xFC;zel bir e&#x11F;itme <a href="https://www.youtube.com/watch?v=GZvSYJDk-us&amp;t=2658s&amp;ref=izleogrenkodla.dev">buradan</a> bakabilirsiniz.</p>
<h2 id="-7"></h2>
<!--kg-card-begin: html-->
<h2 id="backend-roadmap-container">12. Sanalla&#x15F;t&#x131;rma (Virtualization) ve Container</h2>
<!--kg-card-end: html-->
<p>Bir backend developer olarak belki de hi&#xE7;bir zaman ger&#xE7;ek bir fiziksel makinede servis bar&#x131;nd&#x131;rmayacaks&#x131;n&#x131;z. B&#xFC;t&#xFC;k ihtimalle servisleriniz bulut &#xFC;st&#xFC;nde bir sanal makinedE mesela aws bulut ortam&#x131;nda bir <code>EC2</code> sanal makinesinde ya da container da buluncak. Bu nedenle virtualization ve container en iyi dostunuz olacak.</p>
<p>Sanalla&#x15F;t&#x131;rma ile ilgili temelleri &#xF6;&#x11F;renmek i&#xE7;in kendi sanal makinenizi olu&#x15F;turup kullanabilirsiniz. Bunun i&#xE7;in en iyi y&#xF6;ntemlerden biri <a href="https://www.virtualbox.org/?ref=izleogrenkodla.dev">Virtual Box</a></p>
<p><code>Container</code> i&#xE7;in ise en yayg&#x131;n kullan&#x131;lan <a href="https://www.youtube.com/watch?v=3c-iBn73dDE&amp;t=4877s&amp;ref=izleogrenkodla.dev">docker</a> ba&#x15F;lamak i&#xE7;in en uygun se&#xE7;enek.</p>
<h2 id="-8"></h2>
<!--kg-card-begin: html-->
<h2 id="backend-roadmap-framework">13. Bir Framework Se&#xE7;in</h2>
<!--kg-card-end: html-->
<p>Bir framework (yaz&#x131;l&#x131;m k&#xFC;t&#xFC;phanesi/&#xE7;er&#xE7;evesi) kullanmadan da komple bir baceknd servis ya da API geli&#x15F;tirebilirsiniz. Ancak frameworkler bir &#xE7;ok geli&#x15F;tirme i&#x15F;ini h&#x131;zland&#x131;rmak, tekrar eden kod tiplerini &#xF6;nlemek ve uygun bir taslak sunmak i&#xE7;in olu&#x15F;turulmu&#x15F;lard&#x131;r. K&#x131;sacas&#x131; tekerle&#x11F;i yeniden icat etmeye gerek yok. Bir &#xE7;ok mod&#xFC;l zaten geli&#x15F;tirilmi&#x15F;, denenmi&#x15F; ve kullan&#x131;ma haz&#x131;r. Peki ama hangi framework?</p>
<p>Hangi framework&#xFC; se&#xE7;ece&#x11F;iniz hangi dili se&#xE7;ti&#x11F;iniz ile yak&#x131;ndan ilgili. Ya da baz&#x131; framework&apos; ler Frontend&apos; te kullan&#x131;lan framework&apos; e g&#xF6;re de &#x15F;ekillenir.</p>
<p>E&#x11F;er <code>Javascript</code>se&#xE7;mi&#x15F; iseniz yine se&#xE7;enek &#xE7;ok fazla. &#xD6;ne &#xE7;&#x131;kanlar olarak;</p>
<ul>
<li>Bir <code>Node.js</code> framework&apos; &#xFC; olan <code>Express</code>. Komple bir Backend API geli&#x15F;tirmek i&#xE7;in <a href="https://www.youtube.com/watch?v=Oe421EPjeBE&amp;ref=izleogrenkodla.dev">buraya</a> bakabilirsiniz.</li>
<li>Backend servisi ve Microservice&apos; ler i&#xE7;in bir ba&#x15F;ka Node.js framework&apos;&#xFC; olan <a href="https://nestjs.com/?ref=izleogrenkodla.dev">NestJS</a></li>
<li>React bir framework kullan&#x131;l&#x131;yor ise <code>NextJS</code> iyi bir se&#xE7;im olabilir.</li>
<li>Frontend Vue ise <code>Nuxt</code> tercih olabilir.</li>
<li>E&#x11F;er statik kod olu&#x15F;turma gereklilik ise (Static Site Generation) <a href="https://www.youtube.com/watch?v=Qms4k6y7OgI&amp;ref=izleogrenkodla.dev">Gatsby</a> tart&#x131;&#x15F;mas&#x131;z en iyilerden biri</li>
</ul>
<p>Dil olarak <code>Python</code>se&#xE7;mi&#x15F; iseniz birinci &#xF6;ncelikli olarak <a href="https://www.youtube.com/watch?v=PtQiiknWUcI&amp;t=4s&amp;ref=izleogrenkodla.dev">Dajngo</a> ikinci &#xF6;ncelikli olarak <a href="https://www.youtube.com/watch?v=Qr4QMBUPxWo&amp;t=172s&amp;ref=izleogrenkodla.dev">Flask</a> tercihleriniz aras&#x131;nda olmal&#x131;.</p>
<p>E&#x11F;er se&#xE7;ene&#x11F;iniz <code>Java</code>ise &#x15F;u an sekt&#xF6;rde en &#xE7;ok kullan&#x131;lan <a href="https://www.youtube.com/watch?v=9SGDpanrc8U&amp;t=1s&amp;ref=izleogrenkodla.dev">Spring Boot</a>&apos; u &#xF6;&#x11F;renmeniz faydal&#x131; olur.</p>
<p></p>
<!--kg-card-begin: html-->
<h2 id="backend-roadmap-auth">14. G&#xFC;venlik ve Yetkilendirme</h2>
<!--kg-card-end: html-->
<figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://images.unsplash.com/photo-1599959464432-458179a13352?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDEyfHxsb2NrfGVufDB8fHx8MTY2NDA0ODk1OA&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000" class="kg-image" alt="Backend Developer Yol Haritas&#x131;" loading="lazy" width="3668" height="2633" srcset="https://images.unsplash.com/photo-1599959464432-458179a13352?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDEyfHxsb2NrfGVufDB8fHx8MTY2NDA0ODk1OA&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=600 600w, https://images.unsplash.com/photo-1599959464432-458179a13352?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDEyfHxsb2NrfGVufDB8fHx8MTY2NDA0ODk1OA&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=1000 1000w, https://images.unsplash.com/photo-1599959464432-458179a13352?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDEyfHxsb2NrfGVufDB8fHx8MTY2NDA0ODk1OA&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=1600 1600w, https://images.unsplash.com/photo-1599959464432-458179a13352?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDEyfHxsb2NrfGVufDB8fHx8MTY2NDA0ODk1OA&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2400 2400w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Photo by </span><a href="https://unsplash.com/@parsoakhorsand?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit"><span style="white-space: pre-wrap;">Parsoa Khorsand</span></a><span style="white-space: pre-wrap;"> / </span><a href="https://unsplash.com/?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit"><span style="white-space: pre-wrap;">Unsplash</span></a></figcaption></figure><p>Bir backend developer olarak en fazla me&#x15F;gul olaca&#x11F;&#x131;n&#x131;z konu g&#xFC;venlik olacakt&#x131;r. G&#xFC;venlik sa&#x11F;lamak zorunda oldu&#x11F;unuz bir gereksinim oldu&#x11F;u i&#xE7;in yeterli vakit ay&#x131;rd&#x131;&#x11F;&#x131;n&#x131;zdan ve temelleri &#xF6;&#x11F;rendi&#x11F;inizden emin olun.</p>
<p>&#x130;&#x15F;e Web g&#xFC;venli&#x11F;inden ba&#x15F;layabilirsiniz.</p>
<ul>
<li>HTTPS, SSL, TLS, SSH nedir?</li>
<li>CORS nedir?</li>
<li>OWASP G&#xFC;venlik Pratikleri</li>
</ul>
<p>S&#xFC;rekli kullanaca&#x11F;&#x131;n&#x131;z i&#xE7;in <code>HASH</code> ve HASHING nedir konusunu listenize ekleyin.</p>
<p>Yetkilendirme g&#xFC;venlik konusunun &#xF6;nemli bir par&#xE7;as&#x131;. A&#x15F;ina olman&#x131;z gereken yetkilendirme (Authentication) bi&#xE7;imleri aras&#x131;nda;</p>
<ul>
<li>OAuth</li>
<li>JWT</li>
<li>SAML</li>
<li>OpenID</li>
<li>Cookie Based Auth</li>
</ul>
<p>gibi konular bulunuyor.</p>
<h2 id="-9"></h2>
<!--kg-card-begin: html-->
<h2 id="backend-roadmap-design">15. Mimari Yap&#x131;lar ve Dizayn Paternleri</h2>
<!--kg-card-end: html-->
<figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://images.unsplash.com/photo-1646617747563-4f080bddf282?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDM3fHxEaWFncmFtfGVufDB8fHx8MTY2NDA0OTcxNA&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000" class="kg-image" alt="Backend Developer Yol Haritas&#x131;" loading="lazy" width="5568" height="3712" srcset="https://images.unsplash.com/photo-1646617747563-4f080bddf282?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDM3fHxEaWFncmFtfGVufDB8fHx8MTY2NDA0OTcxNA&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=600 600w, https://images.unsplash.com/photo-1646617747563-4f080bddf282?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDM3fHxEaWFncmFtfGVufDB8fHx8MTY2NDA0OTcxNA&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=1000 1000w, https://images.unsplash.com/photo-1646617747563-4f080bddf282?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDM3fHxEaWFncmFtfGVufDB8fHx8MTY2NDA0OTcxNA&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=1600 1600w, https://images.unsplash.com/photo-1646617747563-4f080bddf282?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDM3fHxEaWFncmFtfGVufDB8fHx8MTY2NDA0OTcxNA&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2400 2400w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Photo by </span><a href="https://unsplash.com/@kellysikkema?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit"><span style="white-space: pre-wrap;">Kelly Sikkema</span></a><span style="white-space: pre-wrap;"> / </span><a href="https://unsplash.com/?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit"><span style="white-space: pre-wrap;">Unsplash</span></a></figcaption></figure><p>Backend geli&#x15F;tirme &#xE7;e&#x15F;itli dizayn paternleri &#xFC;st&#xFC;nde ve &#xE7;e&#x15F;itli geli&#x15F;tirme prensipleri ile yap&#x131;l&#x131;r. Bu paternleri anlad&#x131;&#x11F;&#x131;n&#x131;zda ilaride par&#xE7;as&#x131; oldu&#x11F;unuz bir projenin nas&#x131;l &#x15F;ekillendi&#x11F;ini, ne &#xFC;st&#xFC;ne bina edildi&#x11F;ini ve mimarisini de anlars&#x131;n&#x131;z.</p><p>Bir&#xE7;ok &#xE7;e&#x15F;idi olmak ile beraber genel olarak &#xFC;&#xE7; ana mimari yap&#x131;dan bahsedebiliriz;</p><ul>
<li>Monolit&apos; ler</li>
<li>Mikroservisler (Microservices)</li>
<li>Sunumcusuz Yap&#x131;lar (Serverless)</li>
</ul>
<p>Dizayn Paternleri ve Geli&#x15F;tirme Prensipleri de yine &#xE7;ok &#xE7;e&#x15F;itli olmakla beraber &#x15F;u be&#x15F; ba&#x15F;l&#x131;&#x11F;&#x131; &#xF6;&#x11F;renmeye ba&#x15F;lamak i&#x15F;inizi kolayla&#x15F;t&#x131;racakt&#x131;r;</p><ul>
<li>Test Driven Development (Test G&#xFC;d&#xFC;ml&#xFC; Geli&#x15F;tirme)</li>
<li>Domain Driven Design (Alan G&#xFC;d&#xFC;ml&#xFC; Dizayn)</li>
<li>SOLID</li>
<li>KISS</li>
<li>DRY</li>
</ul>
<h2 id="-10"></h2>
<!--kg-card-begin: html-->
<h2 id="backend-roadmap-devops">16. DevOps Teknolojileri</h2>
<!--kg-card-end: html-->
<p>Twitter, Netflix, Facebook  ya da Google gibi devler 1 dakikadan az s&#xFC;rede yeni versiyonu yay&#x131;mlayabiliyorlar. Bu inan&#x131;lmaz bir h&#x131;z. Bu s&#xFC;rekli geli&#x15F;tirme ve s&#xFC;rekli yeni versiyon yay&#x131;mlama (Continuous Integration &amp; Continuous<strong> </strong>Delivery - CI/CD) DevOps ile m&#xFC;mk&#xFC;n oluyor. Development ve Operation birle&#x15F;imi olan DevOps, 2022 y&#x131;l&#x131;nda bir backend developerin bilmesi gereken beceriler aras&#x131;nda. </p><p>&#xD6;ne CI/CD ara&#xE7;lar&#x131;n&#x131; yazacak olursak;</p>
<ul>
<li>Jenkins</li>
<li>GitHub Actions</li>
<li>Circle CI</li>
<li>Gitlab CI</li>
</ul>
<p>DevOps i&#xE7;inde g&#xF6;zlemleme ve takip etme de (Monitoring and Logs Management) &#xF6;nemli bir aland&#x131;r. Bir backend developer olarak geli&#x15F;tirdi&#x11F;iniz servislerin durumunu s&#x131;k&#xE7;a g&#xF6;zlemlemek isteyeceksiniz;</p>
<ul>
<li>Prometheus</li>
<li>Grafana</li>
<li>Datadog</li>
</ul>
<p>burada devereye giriyor.</p>
<p>Sevisinizi yay&#x131;mlamak ya da y&#xF6;nlendirmek i&#xE7;in ise web sunumcular ya da y&#xF6;nlendirme (proxy) ara&#xE7;lar&#x131; kullanacaks&#x131;n&#x131;z. En yayg&#x131;n olan&#x131; <code>nginx</code> ve &#xF6;&#x11F;renme e&#x11F;risi en kolay olan&#x131; <code>caddy</code> ile i&#x15F;e ba&#x15F;layabilirsiniz.</p>
<h2 id="yaz%C4%B1n%C4%B1n-sonu-ama-yolun-de%C4%9Fil">Yaz&#x131;n&#x131;n Sonu ama Yolun de&#x11F;il...</h2><p>&#xD6;ncelikle yaz&#x131;y&#x131; sab&#x131;rla buraya kadar okudu iseniz kendinizi tebrik etmelisiniz. Evet yol haritas&#x131; yaz&#x131;m&#x131;z sona erdi ama sizin yolculu&#x11F;unuz daha yeni ba&#x15F;l&#x131;yor.</p><p>Backend Developer olmak ve IT sekt&#xF6;r&#xFC;ne bu kariyer ad&#x131;m&#x131; ile ba&#x15F;lamak 2022 y&#x131;l&#x131;nda kendiniz i&#xE7;in yapaca&#x11F;&#x131;n&#x131;z en iyi kararlardan biri olabilir.</p><p>Sab&#x131;rla ve g&#xFC;&#xE7;l&#xFC; bir motivasyonla devam edin.</p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[Frontend Developer Yol Haritası]]></title><description><![CDATA[Frontend Developer Roadmap,
Frontend Yol Haritası,
Frontend Roadmap
Web Developer Yol Haritası,
Web Developer roadmap]]></description><link>https://izleogrenkodla.dev/frontend-developer-roadmap/</link><guid isPermaLink="false">631f7778664b710001ec3c7d</guid><category><![CDATA[Yol Haritası]]></category><dc:creator><![CDATA[izle-öğren-kodla]]></dc:creator><pubDate>Mon, 12 Sep 2022 21:30:31 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1471958680802-1345a694ba6d?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDN8fHJvYWRtYXB8ZW58MHx8fHwxNjYzMDEzOTY1&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><img src="https://images.unsplash.com/photo-1471958680802-1345a694ba6d?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDN8fHJvYWRtYXB8ZW58MHx8fHwxNjYzMDEzOTY1&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000" alt="Frontend Developer Yol Haritas&#x131;"><p>IT kariyerinize Frontend Developer olarak ba&#x15F;lamak m&#x131; istiyorsunuz? &#x130;&#x15F;te size tam kapsaml&#x131; yol haritas&#x131; &#xF6;yle ki bitirdi&#x11F;inizde i&#x15F;e ba&#x15F;vurular&#x131; yapmaya haz&#x131;r hissedebilece&#x11F;iniz bir klavuz.</p>
<!--kg-card-end: markdown--><p>Bu yaz&#x131; bir y&#x131;ldan az bir s&#xFC;rede yeni ba&#x15F;layan seviyesinde (Junior) nas&#x131;l Frontend Developer olunur, ne gibi bir yetenek seti gereklidir ve hangi s&#x131;rayla &#xF6;&#x11F;renilmelidir sorular&#x131;na cevap vermek amac&#x131;yla haz&#x131;rland&#x131;. </p><!--kg-card-begin: markdown--><p>Bu rehberin tek do&#x11F;ru oldu&#x11F;unu ya da mutlaka bu rehberi takip etmeniz gerekti&#x11F;ini iddia etmiyorum ancak motivasyonunuzu y&#xFC;ksek tutarak ve sab&#x131;rla ilerledi&#x11F;inizde yakla&#x15F;&#x131;k bir y&#x131;l i&#xE7;inde bir Frontend Developer olarak i&#x15F; bulabilece&#x11F;inize inan&#x131;yorum.</p>
<!--kg-card-end: markdown--><p> Yol haritas&#x131; s&#x131;ras&#x131; ve tavsiye edilen teknolojiler bu yaz&#x131;n&#x131;n yaz&#x131;ld&#x131;&#x11F;&#x131; 2022 Eyl&#xFC;l ay&#x131; itibariyle haz&#x131;rland&#x131;. A&#x15F;a&#x11F;&#x131;da belirtilen s&#x131;ra ve konular se&#xE7;ilirken Stackoverflow anketleri ba&#x15F;ta olmak &#xFC;zere Linkedin gibi &#xFC;nl&#xFC; i&#x15F; arama platformlar&#x131;n&#x131;n i&#x15F; tan&#x131;mlar&#x131;nda (Job Description) en &#xE7;ok istenen yeteneklere de odaklan&#x131;ld&#x131;. &#xD6;&#x11F;renmeye tabiki istedi&#x11F;iniz teknolojiden ba&#x15F;layabilirsiniz ama yeni ba&#x15F;layan biri iseniz s&#x131;ray&#x131; takip etmenizi tavsiye ederim.<br></p><!--kg-card-begin: html--><ul>
    <li><a style="color:dimgray;" href="#frontend-roadmap-temeller">Temel Bilgi Sistemleri...</a></li>
    <li><a style="color:dimgray;" href="#frontend-roadmap-web">Frontend&apos; ten &#xF6;nce Web&apos; i &#xD6;&#x11F;renin</a></li>
    <li><a style="color:dimgray;" href="#frontend-roadmap-html-css">Web&apos;in Yap&#x131; Ta&#x15F;lar&#x131;, HTML ve CSS</a></li>
    <li><a style="color:dimgray;" href="#frontend-roadmap-git">&#x130;lk Andan &#x130;tibaren Versiyon Kontrol - Git &#xD6;&#x11F;renin</a></li>
    <li><a style="color:dimgray;" href="#frontend-roadmap-pratik-html">&#x130;lerlemeden &#xD6;nce Biraz Pratik</a></li>
    <li><a style="color:dimgray;" href="#frontend-roadmap-algoritma">Programlama ve Algoritmalara Giri&#x15F;</a></li>
    <li><a style="color:dimgray;" href="#frontend-roadmap-js">&#x130;nteraktif Sayfalar Zaman&#x131; - Javascript &#xD6;&#x11F;renin</a></li>
    <li><a style="color:dimgray;" href="#frontend-roadmap-testing">Hatay&#x131; En aza &#x130;ndirin - Test &#xD6;&#x11F;renin</a></li>
    <li><a style="color:dimgray;" href="#frontend-roadmap-nodejs">Paket Y&#xF6;neticileri ve Server side - Node.js Zaman&#x131;</a></li>
	<li><a style="color:dimgray;" href="#frontend-roadmap-backend">Backend&apos; i Anlamak, API</a></li>
    <li><a style="color:dimgray;" href="#frontend-roadmap-pratik-js">Pratik ve pratik</a></li>
    <li><a style="color:dimgray;" href="#frontend-roadmap-security">Siber G&#xFC;venlik mi? Elbette</a></li>
    <li><a style="color:dimgray;" href="#frontend-roadmap-framework">Bir Framework Se&#xE7;me Zaman&#x131;</a></li>
    <li><a style="color:dimgray;" href="#frontend-roadmap-style-further">Stil &#x130;&#x15F;ini Bir Ad&#x131;m &#x130;leri Ta&#x15F;&#x131;y&#x131;n</a></li>
    <li><a style="color:dimgray;" href="#frontend-roadmap-typescript">Daha g&#xFC;venli kod tipleri - Typescript</a></li>
    <li><a style="color:dimgray;" href="#frontend-roadmap-graphql">Optimize edilmi&#x15F; ve geli&#x15F;mi&#x15F; API Sorgular&#x131; - GraphQL</a></li>
</ul><!--kg-card-end: html--><p></p><!--kg-card-begin: html--><h2 id="frontend-roadmap-temeller">1. Temel Bilgi Sistemleri...</h2><!--kg-card-end: html--><!--kg-card-begin: markdown--><p>Temel bilgi sistemleri altyap&#x131;s&#x131; (Computer Science) olmadan Frontend olmaz. Asl&#x131;nda hi&#xE7;bir IT kariyer yolu olmaz. Herg&#xFC;n 6 saatten fazla kullanaca&#x11F;&#x131;n&#x131;z bilgisayar ve bilgisayar teknolojileri nas&#x131;l &#xE7;al&#x131;&#x15F;&#x131;r konusu ilk halledilmesi gereken husustur.</p>
<p>Genel olarak; bilgisayar bile&#x15F;enleri nedir, API nedir ne i&#x15F;e yarar, yazd&#x131;&#x11F;&#x131;m&#x131;z kod bilgisayar taraf&#x131;ndan nas&#x131;l i&#x15F;lenir, data ve data yap&#x131;lar&#x131; nedir, bilgisayar a&#x11F;lar&#x131; (network) nas&#x131;l &#xE7;al&#x131;&#x15F;&#x131;r ve fonksiyon ne demektir gibi temel konular bu alan i&#xE7;indedir.</p>
<p>Baz&#x131;lar&#x131; bu konular&#x131; &#xF6;&#x11F;renmenin zaman kayb&#x131; oldu&#x11F;unu d&#xFC;&#x15F;&#xFC;n&#xFC;r ve do&#x11F;rudan bir programlama dilini &#xF6;&#x11F;renekrek ba&#x15F;lamaya &#xE7;al&#x131;&#x15F;&#x131;r. Ancak burada harcayaca&#x11F;&#x131;n&#x131;z birka&#xE7; hafta zaman kayb&#x131; de&#x11F;ildir. Bu k&#x131;sm&#x131; halletti&#x11F;inizde ilerleyen b&#xF6;l&#xFC;mlerdeki teknik konular&#x131; anlaman&#x131;zda nas&#x131;l sizi h&#x131;zland&#x131;rd&#x131;&#x11F;&#x131;n&#x131; g&#xF6;r&#xFC;nce ni&#xE7;in gerekli oldu&#x11F;unu daha iyi anlayacaks&#x131;n&#x131;z.</p>
<p>Elbette bu k&#x131;s&#x131;m i&#x15F;in ABC&apos;si ve siz temeller konusunda yeterli bilgiye sahip oldu&#x11F;unuzu d&#xFC;&#x15F;&#xFC;n&#xFC;yorsan&#x131;z buray&#x131; es ge&#xE7;ip bir sonraki ad&#x131;ma ilerleyin ancak ger&#xE7;ekten yeni ba&#x15F;layan biri iseniz Harvard &#xDC;niversitesinin <a href="https://learning.edx.org/course/course-v1:HarvardX+CS50+X/home?ref=izleogrenkodla.dev">CS50 kursuna</a> bir g&#xF6;z atabilirsiniz.</p>
<!--kg-card-end: markdown--><p></p><!--kg-card-begin: html--><h2 id="frontend-roadmap-web">2. Frontend&apos; ten &#xF6;nce Web&apos; i &#xD6;&#x11F;renin</h2><!--kg-card-end: html--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://images.unsplash.com/photo-1545987796-3d00cd599225?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDQ3fHx3ZWJ8ZW58MHx8fHwxNjYzMDE3NjA1&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000" class="kg-image" alt="Frontend Developer Yol Haritas&#x131;" loading="lazy" width="3456" height="2304" srcset="https://images.unsplash.com/photo-1545987796-3d00cd599225?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDQ3fHx3ZWJ8ZW58MHx8fHwxNjYzMDE3NjA1&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=600 600w, https://images.unsplash.com/photo-1545987796-3d00cd599225?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDQ3fHx3ZWJ8ZW58MHx8fHwxNjYzMDE3NjA1&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=1000 1000w, https://images.unsplash.com/photo-1545987796-3d00cd599225?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDQ3fHx3ZWJ8ZW58MHx8fHwxNjYzMDE3NjA1&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=1600 1600w, https://images.unsplash.com/photo-1545987796-3d00cd599225?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDQ3fHx3ZWJ8ZW58MHx8fHwxNjYzMDE3NjA1&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2400 2400w" sizes="(min-width: 720px) 720px"><figcaption>Photo by <a href="https://unsplash.com/@alinnnaaaa?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit">Alina Grubnyak</a> / <a href="https://unsplash.com/?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit">Unsplash</a></figcaption></figure><!--kg-card-begin: markdown--><p>Ba&#x15F;ar&#x131;l&#x131; bir Frontend developer olmak i&#xE7;in geli&#x15F;tirme yapaca&#x11F;&#x131;n&#x131;z ortam&#x131;n yani <code>web</code> &apos;in nas&#x131;l &#xE7;al&#x131;&#x15F;t&#x131;&#x11F;&#x131;n&#x131; anlamak olmazsa olmazd&#x131;r. <strong>HTTP</strong>, <strong>DNS</strong>, <strong>Cookie</strong> gibi kavramlar size yabanc&#x131; olmamal&#x131;d&#x131;r. Web aplikasyonlar&#x131; g&#xF6;r&#xFC;nt&#xFC;ledi&#x11F;imiz <strong>browser</strong> nas&#x131;l &#xE7;al&#x131;&#x15F;&#x131;r, bir web sitesini nas&#x131;l g&#xF6;r&#xFC;nt&#xFC;ler gibi sorular cevab&#x131;n&#x131; bulmu&#x15F; olmal&#x131;d&#x131;r. Bu nedenle yeni ba&#x15F;layanlar i&#xE7;in <a href="https://www.freecodecamp.org/news/how-the-web-works-a-primer-for-newcomers-to-web-development-or-anyone-really-b4584e63585c/?ref=izleogrenkodla.dev">web nas&#x131;l &#xE7;al&#x131;&#x15F;&#x131;r</a> &#xF6;&#x11F;renilmelidir.</p>
<!--kg-card-end: markdown--><p></p><!--kg-card-begin: html--><h2 id="frontend-roadmap-html-css">3. Web&apos;in Yap&#x131; Ta&#x15F;lar&#x131;, HTML ve CSS</h2><!--kg-card-end: html--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://images.unsplash.com/photo-1583339793403-3d9b001b6008?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDQ2fHxDU1N8ZW58MHx8fHwxNjYzMDE3ODM0&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000" class="kg-image" alt="Frontend Developer Yol Haritas&#x131;" loading="lazy" width="3309" height="2206" srcset="https://images.unsplash.com/photo-1583339793403-3d9b001b6008?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDQ2fHxDU1N8ZW58MHx8fHwxNjYzMDE3ODM0&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=600 600w, https://images.unsplash.com/photo-1583339793403-3d9b001b6008?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDQ2fHxDU1N8ZW58MHx8fHwxNjYzMDE3ODM0&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=1000 1000w, https://images.unsplash.com/photo-1583339793403-3d9b001b6008?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDQ2fHxDU1N8ZW58MHx8fHwxNjYzMDE3ODM0&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=1600 1600w, https://images.unsplash.com/photo-1583339793403-3d9b001b6008?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDQ2fHxDU1N8ZW58MHx8fHwxNjYzMDE3ODM0&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2400 2400w" sizes="(min-width: 720px) 720px"><figcaption>Photo by <a href="https://unsplash.com/@valerysysoev?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit">Valery Sysoev</a> / <a href="https://unsplash.com/?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit">Unsplash</a></figcaption></figure><!--kg-card-begin: markdown--><p>Bir web aplikasyonu bir insana benzetirsek, HTML onun iskeletidir. Her&#x15F;ey HTML ile ba&#x15F;lar.</p>
<p>Daha sonra ona iyi bir g&#xF6;r&#xFC;nt&#xFC; vermek istersiniz. &#x130;&#x15F;te insan&#x131;n derisi, sa&#xE7;&#x131; g&#xF6;z rengi yani d&#x131;&#x15F; g&#xF6;r&#xFC;n&#xFC;&#x15F;&#xFC; ne ise bir web sayfas&#x131; i&#xE7;in de CSS odur. CSS ile HTML elemanlar&#x131; stil kazan&#x131;r. K&#x131;sacas&#x131; bir web aplikasyonu <code>cool</code> yapmak istiyorsan&#x131;z CSS&apos; e ihtiyac&#x131;n&#x131;z var.</p>
<p>HTML ve CSS ba&#x15F;lang&#x131;&#xE7; i&#xE7;in <a href="https://www.youtube.com/watch?v=hu-q2zYwEYs&amp;ref=izleogrenkodla.dev">net ninja HTML &amp; CSS kursu</a> iyi bir alternatif.</p>
<!--kg-card-end: markdown--><p></p><!--kg-card-begin: html--><h2 id="frontend-roadmap-git">4. &#x130;lk Andan &#x130;tibaren Versiyon Kontrol - Git &#xD6;&#x11F;renin</h2><!--kg-card-end: html--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://images.unsplash.com/photo-1556075798-4825dfaaf498?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDJ8fGdpdHxlbnwwfHx8fDE2NjMwMTgwOTY&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000" class="kg-image" alt="Frontend Developer Yol Haritas&#x131;" loading="lazy" width="5000" height="3313" srcset="https://images.unsplash.com/photo-1556075798-4825dfaaf498?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDJ8fGdpdHxlbnwwfHx8fDE2NjMwMTgwOTY&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=600 600w, https://images.unsplash.com/photo-1556075798-4825dfaaf498?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDJ8fGdpdHxlbnwwfHx8fDE2NjMwMTgwOTY&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=1000 1000w, https://images.unsplash.com/photo-1556075798-4825dfaaf498?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDJ8fGdpdHxlbnwwfHx8fDE2NjMwMTgwOTY&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=1600 1600w, https://images.unsplash.com/photo-1556075798-4825dfaaf498?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDJ8fGdpdHxlbnwwfHx8fDE2NjMwMTgwOTY&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2400 2400w" sizes="(min-width: 720px) 720px"><figcaption>Photo by <a href="https://unsplash.com/@yancymin?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit">Yancy Min</a> / <a href="https://unsplash.com/?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit">Unsplash</a></figcaption></figure><!--kg-card-begin: markdown--><p>IT kariyer yollar&#x131;ndan herhangi birini d&#xFC;&#x15F;&#xFC;n&#xFC;n ki <code>Git</code> versiyon kontrol sistemi ana konulardan biri olmas&#x131;n. Evet git &#xF6;&#x11F;renmek opsiyonel de&#x11F;il gereklilik. Git a&#xE7;&#x131;k kaynak, da&#x11F;&#x131;t&#x131;k versiyon kontrol sistemidir ve bug&#xFC;n yaz&#x131;l&#x131;m d&#xFC;nyas&#x131;nda de-facto standart haline gelmi&#x15F;tir.</p>
<p>Git kodunuzun tarih&#xE7;esini tutabilece&#x11F;iniz, kodunuzu yedekleyebilece&#x11F;iniz, tak&#x131;m halinde &#xE7;al&#x131;&#x15F;&#x131;rken &#xE7;ak&#x131;&#x15F;malar&#x131; ve tutars&#x131;zl&#x131;klar&#x131; &#xF6;nleyebilece&#x11F;iniz, istenmeyen de&#x11F;i&#x15F;ikleri engelleyip de&#x11F;i&#x15F;ik bran&#x15F;larda &#xE7;al&#x131;&#x15F;abilece&#x11F;iniz muazzam bir versiyon kontrol sistemidir.</p>
<p>Git ile beraber &#xE7;al&#x131;&#x15F;malar&#x131;n&#x131;z&#x131; saklayaca&#x11F;&#x131;n&#x131;z <code>repo</code> (bir nevi yaz&#x131;l&#x131;m deposu) kontrol sistemlerinden birini de &#xF6;&#x11F;renmek ak&#x131;ll&#x131;ca olur. En yayg&#x131;n olan <code>GitHub</code> ile ba&#x15F;layabilirsiniz ama <code>GitLab</code> ve <code>BitBucket</code> da alternatifler aras&#x131;nda. <a href="https://www.youtube.com/watch?v=SWYqp7iY_Tc&amp;ref=izleogrenkodla.dev">Burdan</a> ba&#x15F;layabilirsiniz.</p>
<!--kg-card-end: markdown--><p></p><!--kg-card-begin: html--><h2 id="frontend-roadmap-pratik-html">5. &#x130;lerlemeden &#xD6;nce Biraz Pratik</h2><!--kg-card-end: html--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://images.unsplash.com/photo-1504805572947-34fad45aed93?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDIyfHxwb3J0Zm9saW98ZW58MHx8fHwxNjYzMDc1ODk1&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000" class="kg-image" alt="Frontend Developer Yol Haritas&#x131;" loading="lazy" width="2607" height="1738" srcset="https://images.unsplash.com/photo-1504805572947-34fad45aed93?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDIyfHxwb3J0Zm9saW98ZW58MHx8fHwxNjYzMDc1ODk1&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=600 600w, https://images.unsplash.com/photo-1504805572947-34fad45aed93?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDIyfHxwb3J0Zm9saW98ZW58MHx8fHwxNjYzMDc1ODk1&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=1000 1000w, https://images.unsplash.com/photo-1504805572947-34fad45aed93?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDIyfHxwb3J0Zm9saW98ZW58MHx8fHwxNjYzMDc1ODk1&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=1600 1600w, https://images.unsplash.com/photo-1504805572947-34fad45aed93?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDIyfHxwb3J0Zm9saW98ZW58MHx8fHwxNjYzMDc1ODk1&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2400 2400w" sizes="(min-width: 720px) 720px"><figcaption>Photo by <a href="https://unsplash.com/@clarktibbs?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit">Clark Tibbs</a> / <a href="https://unsplash.com/?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit">Unsplash</a></figcaption></figure><!--kg-card-begin: markdown--><p>HTML, CSS ve git &#xF6;&#x11F;renildi&#x11F;ine g&#xF6;re GitHub hesab&#x131;m&#x131;za birka&#xE7; proje eklemek hem &#xF6;&#x11F;rendi&#x11F;imiz becerileri uygulama &#x15F;ans&#x131; verir hem de portfoly&#xF6;m&#xFC;z&#xFC; zenginle&#x15F;tirir.</p>
<p>&#xD6;&#x11F;renilen bilgileri elde tutmak ve onlar&#x131; kendimize mal etmenin ilk anahtar&#x131; bol pratiktir. Bu pratik ad&#x131;m&#x131; CV&apos;mizi zenginle&#x15F;tirmek ad&#x131;na da bir f&#x131;rsat olarak kullanabiliriz.</p>
<p>&#xC7;&#xFC;nk&#xFC; bir FrontEnd Developer olarak i&#x15F;e ba&#x15F;vurdu&#x11F;unuzda ilk sorulacak &#x15F;eylerden biri de sizin portfolyonuzdur. Tabiki bunlar&#x131; saklamak i&#xE7;in en g&#xFC;zel yer git repolar&#x131;n&#x131;z. Bir &#xF6;nceki ad&#x131;mda onu &#xF6;&#x11F;renmi&#x15F;tik &#x15F;imdi kullanma zaman&#x131;. Daha yol uzun demeyin &#x15F;imdiden ba&#x15F;layabilirsiniz. Sadece HTML ve CSS bilgisi ile g&#xF6;rsel olarak g&#xFC;zel projeler yapabilirsiniz. t&#x131;pk&#x131; <a href="https://www.youtube.com/watch?v=OY5ISdymgiY&amp;ref=izleogrenkodla.dev">buradaki</a> gibi.</p>
<!--kg-card-end: markdown--><p></p><!--kg-card-begin: html--><h2 id="frontend-roadmap-algoritma">6. Programlama ve Algoritmalara Giri&#x15F;</h2><!--kg-card-end: html--><p>Art&#x131;k bir an &#xF6;nce bir programlama diline ba&#x15F;lamak istiyorsunuz ve elbette FrontEnd i&#xE7;in bu Javascript. Fakat bir dile ba&#x15F;lamadan &#xF6;nce genel programlama terimleri ve algoritma temellerini &#xF6;&#x11F;renmek yapbozdaki eksik par&#xE7;ay&#x131; tamamlar. Dilerseniz bu ad&#x131;mla bir sonraki ad&#x131;m&#x131; birle&#x15F;tirebilirsiniz. Ancak variables, types, loops, data structure, conditionals, functions, iterations, recursive . . . &#xA0;gibi terimlerin sizin i&#xE7;in yabanc&#x131; olmad&#x131;&#x11F;&#x131;ndan emin olun. <a href="https://www.youtube.com/watch?v=zOjov-2OZ0E&amp;ref=izleogrenkodla.dev">Programlama giri&#x15F;</a> i&#xE7;in bu kursu takip edebilirsiniz.<br></p><!--kg-card-begin: html--><h2 id="frontend-roadmap-js">7. &#x130;nteraktif Sayfalar Zaman&#x131; - Javascript &#xD6;&#x11F;renin </h2><!--kg-card-end: html--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://images.unsplash.com/photo-1592609931095-54a2168ae893?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDN8fGphdmFzY3JpcHR8ZW58MHx8fHwxNjYzMDg0OTQ2&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000" class="kg-image" alt="Frontend Developer Yol Haritas&#x131;" loading="lazy" width="9504" height="6336" srcset="https://images.unsplash.com/photo-1592609931095-54a2168ae893?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDN8fGphdmFzY3JpcHR8ZW58MHx8fHwxNjYzMDg0OTQ2&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=600 600w, https://images.unsplash.com/photo-1592609931095-54a2168ae893?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDN8fGphdmFzY3JpcHR8ZW58MHx8fHwxNjYzMDg0OTQ2&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=1000 1000w, https://images.unsplash.com/photo-1592609931095-54a2168ae893?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDN8fGphdmFzY3JpcHR8ZW58MHx8fHwxNjYzMDg0OTQ2&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=1600 1600w, https://images.unsplash.com/photo-1592609931095-54a2168ae893?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDN8fGphdmFzY3JpcHR8ZW58MHx8fHwxNjYzMDg0OTQ2&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2400 2400w" sizes="(min-width: 720px) 720px"><figcaption>Photo by <a href="https://unsplash.com/@gamell?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit">Joan Gamell</a> / <a href="https://unsplash.com/?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit">Unsplash</a></figcaption></figure><p>Web sayfalar&#x131; g&#xFC;c&#xFC;n&#xFC; <strong>Javascript</strong> &#xA0;&apos;ten al&#x131;r. Bir web sitesi d&#xFC;&#x15F;&#xFC;n&#xFC;n ki Javascript i&#xE7;inde olmas&#x131;n. Hat&#x131;rlarsan&#x131;z yukar&#x131;da web aplikasyonu bir insana benzetmi&#x15F;tik. T&#x131;pk&#x131; insan&#x131;n hareket etmesi, y&#xFC;r&#xFC;mesi ya da ko&#x15F;mas&#x131; gibi bir web applikasyonun da kendinden beklenen davran&#x131;&#x15F;lar&#x131; yapmas&#x131; Javascript ile m&#xFC;mk&#xFC;n olur. &#xA0;Bir formun a&#xE7;&#x131;lmas&#x131;, g&#xF6;nderilmesi, a&#xE7;&#x131;lan bir sayfaya data&apos;lar&#x131;n &#xE7;ekilmesi, sayfan&#x131;zda Twitter&apos;dan post eklenmesi ve daha akl&#x131;n&#x131;za gelen t&#xFC;m davran&#x131;&#x15F;lar Javascript ile yaz&#x131;l&#x131;r.</p><!--kg-card-begin: markdown--><p>Javascript&apos; i &#xF6;&#x11F;renmek i&#xE7;in ba&#x15F;ka iyi bir nedeniniz daha var. Javascript FrontEnd geli&#x15F;tirmede kullan&#x131;ld&#x131;&#x11F;&#x131; gibi <code>Node.js</code> programlama dili sayesinde Backend geli&#x15F;tirmede de kullan&#x131;l&#x131;r. Modern Javascript&apos;e <a href="https://www.youtube.com/watch?v=iWOYAxlnaww&amp;list=PL4cUxeGkcC9haFPT7J25Q9GRB_ZkFrQAc&amp;ref=izleogrenkodla.dev">buradan</a> bir ba&#x15F;lang&#x131;&#xE7; yapabilirsiniz.</p>
<!--kg-card-end: markdown--><p></p><!--kg-card-begin: html--><h2 id="frontend-roadmap-testing">8. Hatay&#x131; En aza &#x130;ndirin - Test &#xD6;&#x11F;renin</h2><!--kg-card-end: html--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://images.unsplash.com/photo-1616703897065-146cc4561478?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDIxfHxTb2Z0d2FyZSUyMHRlc3R8ZW58MHx8fHwxNjYzMDkzMTUy&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000" class="kg-image" alt="Frontend Developer Yol Haritas&#x131;" loading="lazy" width="4545" height="5681" srcset="https://images.unsplash.com/photo-1616703897065-146cc4561478?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDIxfHxTb2Z0d2FyZSUyMHRlc3R8ZW58MHx8fHwxNjYzMDkzMTUy&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=600 600w, https://images.unsplash.com/photo-1616703897065-146cc4561478?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDIxfHxTb2Z0d2FyZSUyMHRlc3R8ZW58MHx8fHwxNjYzMDkzMTUy&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=1000 1000w, https://images.unsplash.com/photo-1616703897065-146cc4561478?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDIxfHxTb2Z0d2FyZSUyMHRlc3R8ZW58MHx8fHwxNjYzMDkzMTUy&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=1600 1600w, https://images.unsplash.com/photo-1616703897065-146cc4561478?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDIxfHxTb2Z0d2FyZSUyMHRlc3R8ZW58MHx8fHwxNjYzMDkzMTUy&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2400 2400w" sizes="(min-width: 720px) 720px"><figcaption>Photo by <a href="https://unsplash.com/ja/@orangetiephotography?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit">Joshua Lawrence</a> / <a href="https://unsplash.com/?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit">Unsplash</a></figcaption></figure><!--kg-card-begin: markdown--><p>Bir&#xE7;ok kaynakta yaz&#x131;l&#x131;m testi k&#x131;sm&#x131; yol haritas&#x131;n&#x131;n ba&#x15F;&#x131;nda olmaz. Oysa bu ad&#x131;ma Javascriptle ayn&#x131; numaray&#x131;, <strong>&quot;7&quot;</strong> numaray&#x131; verseydim yanl&#x131;&#x15F; olmazd&#x131;. Kodunuzu yazmaya ba&#x15F;lad&#x131;&#x11F;&#x131;n&#x131;z ilk andan itibaren Test yazmay&#x131; &#xF6;&#x11F;renmeli ve kodunuzu test etmelisiniz. Yaz&#x131;l&#x131;m testi ile ilgili olarak Unit test, Integration Test ve Functional Test gibi kavramlar&#x131; bilmeli ve a&#x15F;a&#x11F;&#x131;da belirtilen test ara&#xE7;lar&#x131; ile bunlar&#x131; nas&#x131;l yazaca&#x11F;&#x131;n&#x131;z&#x131; &#xF6;&#x11F;renmelisiniz.</p>
<p>Bir&#xE7;ok test arac&#x131; olsa da ba&#x15F;lang&#x131;&#xE7; olarak <code>mocha</code> veya <code>Jest</code> test k&#xFC;t&#xFC;phaneleri iyi bir se&#xE7;im olabilir. Bunula birlikte test deneyiminizi bir ad&#x131;m daha ileri ta&#x15F;&#x131;mak ve entegrasyon ve komponent testleri i&#xE7;in <code>Cypress</code> veya <code>Playwright</code> frameworklerinden birini se&#xE7;ip &#xF6;&#x11F;renebilirsiniz.</p>
<p>Bu ad&#x131;ma mutlaka zaman ay&#x131;rd&#x131;&#x11F;&#x131;n&#x131;zdan emin olun ve Test Driven Development olarak bilinen Test g&#xFC;d&#xFC;ml&#xFC; geli&#x15F;tirmeyi mutlaka &#xF6;&#x11F;renin. <a href="https://www.youtube.com/watch?v=r9HdJ8P6GQI&amp;ref=izleogrenkodla.dev">Burdan</a> ba&#x15F;layabilir ve &#xF6;&#x11F;rendik&#xE7;e &#xFC;st&#xFC;ne ekleyebilirsiniz.</p>
<!--kg-card-end: markdown--><p></p><!--kg-card-begin: html--><h2 id="frontend-roadmap-nodejs">9. Paket Y&#xF6;neticileri ve Server side - Node.js Zaman&#x131;</h2><!--kg-card-end: html--><!--kg-card-begin: markdown--><p>Javascripten sonra kendinize yapaca&#x11F;&#x131;n&#x131;z en b&#xFC;y&#xFC;k iyilik Node.Js ve onunla birlikte <code>npm</code> paket y&#xF6;neticisini &#xF6;&#x11F;renmek olacakt&#x131;r. Node.js Javascript ile Backend geli&#x15F;tirmede ve React, Vue Angular gibi frameworkleri build ve bundle (olu&#x15F;tur ve gerekklilikleri ba&#x11F;la) etmede kullan&#x131;l&#x131;r. Ba&#x15F;lang&#x131;&#xE7; i&#xE7;in <a href="https://www.youtube.com/watch?v=zb3Qk8SG5Ms&amp;list=PL4cUxeGkcC9jsz4LDYc6kv3ymONOKxwBU&amp;ref=izleogrenkodla.dev">bir tutam Node.js</a></p>
<!--kg-card-end: markdown--><p></p><!--kg-card-begin: html--><h2 id="frontend-roadmap-backend">10. Backend&apos; i Anlamak, API</h2><!--kg-card-end: html--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://images.unsplash.com/photo-1633412802994-5c058f151b66?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDJ8fHNxbHxlbnwwfHx8fDE2NjMwODg2MTI&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000" class="kg-image" alt="Frontend Developer Yol Haritas&#x131;" loading="lazy" width="5400" height="5400" srcset="https://images.unsplash.com/photo-1633412802994-5c058f151b66?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDJ8fHNxbHxlbnwwfHx8fDE2NjMwODg2MTI&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=600 600w, https://images.unsplash.com/photo-1633412802994-5c058f151b66?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDJ8fHNxbHxlbnwwfHx8fDE2NjMwODg2MTI&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=1000 1000w, https://images.unsplash.com/photo-1633412802994-5c058f151b66?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDJ8fHNxbHxlbnwwfHx8fDE2NjMwODg2MTI&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=1600 1600w, https://images.unsplash.com/photo-1633412802994-5c058f151b66?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDJ8fHNxbHxlbnwwfHx8fDE2NjMwODg2MTI&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2400 2400w" sizes="(min-width: 720px) 720px"><figcaption>Photo by <a href="https://unsplash.com/@sunder_2k25?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit">Sunder Muthukumaran</a> / <a href="https://unsplash.com/?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit">Unsplash</a></figcaption></figure><!--kg-card-begin: markdown--><p>Bunu &#xF6;zellikle ayr&#x131; bir ba&#x15F;l&#x131;k olarak vermek istedim. Bir FrontEnd developer olarak Backend Teknolojilerini tam olarak bilmeseniz bile anlayacak kadar &#xF6;&#x11F;renmelisiniz. Backend ba&#x15F;l&#x131; ba&#x15F;&#x131;na &#xE7;ok geni&#x15F; bir konu oldu&#x11F;u i&#xE7;in iki konu burada &#xF6;n plana &#xE7;&#x131;k&#x131;yor birincisi <a href="https://www.youtube.com/watch?v=GZvSYJDk-us&amp;t=2658s&amp;ref=izleogrenkodla.dev">API</a>, di&#x11F;eri ise Data ve Database. &#x130;l&#x15F;kisel veritaban&#x131; (Relational Database) i&#xE7;in <a href="https://www.youtube.com/watch?v=7S_tz1z_5bA&amp;ref=izleogrenkodla.dev">MySQL</a>, d&#xF6;k&#xFC;man tip (NoSQL) veritaban&#x131; i&#xE7;in ise <a href="https://www.youtube.com/watch?v=ExcRbA7fy_A&amp;list=PL4cUxeGkcC9h77dJ-QJlwGlZlTd4ecZOA&amp;ref=izleogrenkodla.dev">MongoDB</a> iyi bir ba&#x15F;lang&#x131;&#xE7; olacakt&#x131;r.</p>
<!--kg-card-end: markdown--><p></p><!--kg-card-begin: html--><h2 id="frontend-roadmap-pratik-js">11. Pratik ve pratik</h2><!--kg-card-end: html--><!--kg-card-begin: markdown--><p>Yaparak &#xF6;&#x11F;renmek &#xE7;ok etkili bir &#xF6;&#x11F;renme y&#xF6;ntemi. Buraya kadar &#xF6;&#x11F;rendijklerinizi sindirmek ve tekrar etmek i&#xE7;in de en iyi y&#xF6;ntem. Art&#x131;k Javascript ve API kullanmay&#x131; da bildi&#x11F;inize g&#xF6;re birka&#xE7; proje geli&#x15F;tirme ve portfolyonuza ekleme zaman&#x131;. Bu nedenle basitten ba&#x15F;lay&#x131;p daha interaktif sayfalara ve oradan da datan&#x131;n kullan&#x131;ld&#x131;&#x11F;&#x131; uygulamalara uzanan birka&#xE7; proje yapabilirsiniz. Fikir vermesi a&#xE7;&#x131;s&#x131;ndan birka&#xE7; proje:</p>
<ul>
<li>Landing Page</li>
<li>Kullan&#x131;c&#x131; giri&#x15F; formu (Registration Form)</li>
<li>Al&#x131;&#x15F;veri&#x15F; Sepeti</li>
<li>Todo Aplikasyonu (CRUD)</li>
</ul>
<p>Ayr&#x131;ca <a href="https://www.youtube.com/watch?v=dtKciwk_si4&amp;list=PLgBH1CvjOA636I8hnHSyuOnX341XQrBth&amp;ref=izleogrenkodla.dev">buraya</a> da g&#xF6;zatmak isteyebilirsiniz. Bu projeleri yaparken herhangi bir FrontEnd framework (Vue, React ya da Angular gibi) kullanmay&#x131;n. Sadece vanilla Javascript kullan&#x131;n.</p>
<h3 id="vanilla-javascript">vanilla Javascript:</h3>
<p>Bu ifade kodun <strong>sade Javascriptle</strong> kullan&#x131;ld&#x131;&#x11F;&#x131;n&#x131; herhangi bir k&#xFC;t&#xFC;phane ya da &#xE7;er&#xE7;eve (framework) kullan&#x131;lmad&#x131;&#x11F;&#x131;n&#x131; ifade eder.</p>
<!--kg-card-end: markdown--><p></p><!--kg-card-begin: html--><h2 id="frontend-roadmap-security">12. Siber G&#xFC;venlik mi? Elbette</h2><!--kg-card-end: html--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://images.unsplash.com/photo-1614064643392-8dd713152ae9?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDN8fHdlYiUyMHNlY3VyaXR5fGVufDB8fHx8MTY2MzA5MDE1OA&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000" class="kg-image" alt="Frontend Developer Yol Haritas&#x131;" loading="lazy" width="7952" height="5304" srcset="https://images.unsplash.com/photo-1614064643392-8dd713152ae9?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDN8fHdlYiUyMHNlY3VyaXR5fGVufDB8fHx8MTY2MzA5MDE1OA&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=600 600w, https://images.unsplash.com/photo-1614064643392-8dd713152ae9?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDN8fHdlYiUyMHNlY3VyaXR5fGVufDB8fHx8MTY2MzA5MDE1OA&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=1000 1000w, https://images.unsplash.com/photo-1614064643392-8dd713152ae9?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDN8fHdlYiUyMHNlY3VyaXR5fGVufDB8fHx8MTY2MzA5MDE1OA&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=1600 1600w, https://images.unsplash.com/photo-1614064643392-8dd713152ae9?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDN8fHdlYiUyMHNlY3VyaXR5fGVufDB8fHx8MTY2MzA5MDE1OA&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2400 2400w" sizes="(min-width: 720px) 720px"><figcaption>Photo by <a href="https://unsplash.com/@flyd2069?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit">FLY:D</a> / <a href="https://unsplash.com/?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit">Unsplash</a></figcaption></figure><!--kg-card-begin: markdown--><p>Web G&#xFC;venli&#x11F;i ile ilgili temel konular&#x131; bilmek ve bunlar&#x131; uygulamak bir FrontEnd Developer i&#xE7;in istenen &#xF6;zellikler aras&#x131;nda. Sizden cybersecurity uzman&#x131; olman&#x131;z istenmiyor fakat &#x15F;u konularla ilgili fark&#x131;ndal&#x131;k seviyesinde bilgi &#xE7;ok i&#x15F;inize yarar.</p>
<ul>
<li>HTTPS, SSL, TLS, SSH nedir?</li>
<li>CORS nedir?</li>
<li>OWASP G&#xFC;venlik Tavsiyeleri</li>
</ul>
<!--kg-card-end: markdown--><p></p><!--kg-card-begin: html--><h2 id="frontend-roadmap-framework">13. Bir Framework Se&#xE7;me Zaman&#x131;</h2><!--kg-card-end: html--><figure class="kg-card kg-image-card"><img src="https://izleogrenkodla.dev/content/images/2022/09/angular-vue-react.jpeg" class="kg-image" alt="Frontend Developer Yol Haritas&#x131;" loading="lazy" width="1920" height="1143" srcset="https://izleogrenkodla.dev/content/images/size/w600/2022/09/angular-vue-react.jpeg 600w, https://izleogrenkodla.dev/content/images/size/w1000/2022/09/angular-vue-react.jpeg 1000w, https://izleogrenkodla.dev/content/images/size/w1600/2022/09/angular-vue-react.jpeg 1600w, https://izleogrenkodla.dev/content/images/2022/09/angular-vue-react.jpeg 1920w" sizes="(min-width: 720px) 720px"></figure><p></p><p>Vanilla javascript kullanarak komple bir web applikasyon geli&#x15F;tirebilirsiniz. Ancak uygulaman&#x131;z b&#xFC;y&#xFC;d&#xFC;k&#xE7;e kodunuzu s&#xFC;rd&#xFC;rmek, yeni ihtiya&#xE7;lara cevap vermek ve &#xF6;l&#xE7;eklendirmek giderek zorla&#x15F;acak ve &#xE7;ok zaman alacakt&#x131;r. Bu nedenle FrontEnd k&#xFC;t&#xFC;phanelerineya (library) da &#xE7;er&#xE7;evelerine (framework) ihtiya&#xE7; duyacaks&#x131;n&#x131;z.</p><p>Peki ama hangisi? Ba&#x15F;lamak i&#xE7;in se&#xE7;enek &#xE7;ok ve hangisi sorusunun tek bir do&#x11F;ru cevab&#x131; yok. Bu ki&#x15F;iden ki&#x15F;iye, bulundu&#x11F;unuz b&#xF6;lge ve &#xFC;lkeye g&#xF6;re bile de&#x11F;i&#x15F;ebilir. </p><p>Biz yine fikir vermesi a&#xE7;&#x131;s&#x131;ndan Stackoverflow 2022 en pop&#xFC;ler framework&apos; ler anketine ba&#x15F;vurdu&#x11F;umuzda s&#x131;ras&#x131;yla;</p><!--kg-card-begin: markdown--><ul>
<li>React</li>
<li>Angular</li>
<li>Vue</li>
</ul>
<!--kg-card-end: markdown--><p>&#xFC;&#xE7;l&#xFC;s&#xFC;n&#xFC;n ilk s&#x131;ralarda oldu&#x11F;unu g&#xF6;r&#xFC;yoruz. <a href="https://www.youtube.com/watch?v=IYI0em-xT28&amp;ref=izleogrenkodla.dev">Angular</a> IT end&#xFC;stri standartlar&#x131;nda A-Z&apos;ye b&#xFC;t&#xFC;n par&#xE7;alar&#x131; i&#xE7;inde komple bir framework&apos; t&#xFC;r. Yeni ba&#x15F;layanlar i&#xE7;in biraz karma&#x15F;&#x131;k gelebilir ve Typescript (Javascript&apos;in type kontrol eden versiyonu) &#xF6;&#x11F;renmeden ba&#x15F;lamak &#xE7;ok anlaml&#x131; olmayabilir.<br><br><a href="https://www.youtube.com/watch?v=j942wKiXFu8&amp;list=PL4cUxeGkcC9gZD-Tvwfod2gaISzfRiP9d&amp;ref=izleogrenkodla.dev">React</a> markette en &#xE7;ok i&#x15F; ilan&#x131; bulunan ve en pop&#xFC;ler FrontEnd k&#xFC;t&#xFC;phanesidir. Ayn&#x131; zamanda en &#xE7;ok kayna&#x11F;&#x131; bulabilece&#x11F;iniz se&#xE7;enektir.</p><p><a href="https://www.youtube.com/watch?v=qZXt1Aom3Cs&amp;t=2s&amp;ref=izleogrenkodla.dev">Vue</a> ise giderek po&#xFC;lerli&#x11F;i artan ve &#xF6;&#x11F;renilmesi en kolay (tart&#x131;&#x15F;maya a&#xE7;&#x131;k g&#xF6;r&#xFC;&#x15F;&#xFC;m&#xFC;z &#x1F604;) FrontEnd Framework&apos; &#xFC;d&#xFC;r.</p><p></p><!--kg-card-begin: html--><h2 id="frontend-roadmap-style-further">14. Stil &#x130;&#x15F;ini Bir Ad&#x131;m &#x130;leri Ta&#x15F;&#x131;y&#x131;n</h2><!--kg-card-end: html--><!--kg-card-begin: markdown--><p><code>Sass</code> &#x201C;Syntactically Awesome Style Sheets&#x201D; kelimelerinin k&#x131;salt&#x131;lm&#x131;&#x15F;&#x131;d&#x131;r ve dinamik CSS stil dosyalar&#x131; olu&#x15F;turmak i&#xE7;in kullan&#x131;l&#x131;r. FrontEnd Developer olarak bir pozisyonda ba&#x15F;lad&#x131;&#x11F;&#x131;n&#x131;zda bir ihtimal bir CSS Preprocessors ile &#xE7;al&#x131;&#x15F;mak durumunda kalabilirsiniz. <strong>Sass</strong> bu preprocessors&apos; lardan en yayg&#x131;n olan&#x131;. Hemen belirteyim ki modern frameworkler her ge&#xE7;en g&#xFC;n Sass yerine Javascript ile desteklenmi&#x15F; CSS k&#xFC;t&#xFC;phanelerine y&#xF6;nelmekte. Bu nedenle Sass&apos;a a&#x15F;ina olacak kadar &#xF6;&#x11F;renin ve zaman&#x131;n&#x131;z&#x131; daha &#xE7;ok <strong>CSS-First</strong> ve <strong>utility-first</strong> diye tabir edilen CSS frameworklerine ay&#x131;r&#x131;n.</p>
<p><strong>CSS-First</strong> framework i&#xE7;in <a href="https://www.youtube.com/watch?v=-qfEOE4vtxE&amp;ref=izleogrenkodla.dev">Bootsrap</a>,<br>
<strong>utility-first</strong> framework i&#xE7;inse <a href="https://www.youtube.com/watch?v=dFgzHOX84xQ&amp;ref=izleogrenkodla.dev">Tailwind</a> ve Material UI iyi bir ba&#x15F;lang&#x131;&#xE7; olabilir.</p>
<!--kg-card-end: markdown--><p></p><!--kg-card-begin: html--><h2 id="frontend-roadmap-typescript">15. Daha g&#xFC;venli kod tipleri - Typescript</h2><!--kg-card-end: html--><!--kg-card-begin: markdown--><p>Typescript, Javascript&apos;in bilinen eksiklerini gidermek i&#xE7;in olu&#x15F;turulmu&#x15F;, i&#xE7;erisine g&#xFC;venli kod tipleri (type safe) eklenmi&#x15F; ve daha iyi geli&#x15F;tirme deneyimi sunan bir proglamlama dilidir. Asl&#x131;nda g&#xFC;n&#xFC;n sonunda Typescript Javascript&apos; ten ba&#x15F;ka bir &#x15F;ey de&#x11F;ildir. Javascript&apos; i zaten bildi&#x11F;iniz i&#xE7;in <a href="https://www.youtube.com/watch?v=2pZmKW9-I_k&amp;list=PL4cUxeGkcC9gUgr39Q_yD6v-bSyMwKPUI&amp;ref=izleogrenkodla.dev">h&#x131;zl&#x131; bir kursla</a> hemen &#xF6;&#x11F;renmeye ba&#x15F;layabilirsiniz.</p>
<!--kg-card-end: markdown--><p></p><!--kg-card-begin: html--><h2 id="frontend-roadmap-graphql">16. Optimize edilmi&#x15F; ve geli&#x15F;mi&#x15F; API Sorgular&#x131; - GraphQL</h2><!--kg-card-end: html--><p>GraphQL API i&#xE7;in olu&#x15F;turulmu&#x15F; bir sorgu dilidir dersek yanl&#x131;&#x15F; olmaz. REST API aksine spesifik olarak istenen bilgiyi sunumcudan (API server) almak ve spesifik olarak istenen bir bilgiyi de&#x11F;i&#x15F;tirmek, manuple etmek i&#xE7;in kullan&#x131;l&#x131;r. REST API ile k&#x131;yasland&#x131;&#x11F;&#x131;nda daha esnektir ve istenen bilgi &#xE7;ok spesifik olarak belirlenebildi&#x11F;i i&#xE7;in a&#x11F; &#xFC;zerinde daha az y&#xFC;k olu&#x15F;turur. 2022 y&#x131;l&#x131;nda kullan&#x131;m&#x131; giderek artan GraphQL kesinlikle &#xF6;&#x11F;renmeye de&#x11F;er ve &#xF6;&#x11F;renmeye <a href="https://www.youtube.com/watch?v=qux4-yWeZvo&amp;ref=izleogrenkodla.dev">bu h&#x131;zl&#x131; kurs ile</a> ba&#x15F;layabilirsiniz.<br><br></p><!--kg-card-begin: html--><h2 id="frontend-roadmap-son">Yaz&#x131;n&#x131;n Sonu ama Yolun de&#x11F;il...</h2><!--kg-card-end: html--><!--kg-card-begin: markdown--><p>&#xD6;ncelikle yaz&#x131;y&#x131; sab&#x131;rla buraya kadar okudu iseniz kendinizi tebrik etmelisiniz. Evet yol haritas&#x131; yaz&#x131;m&#x131;z sona erdi ama sizin yolculu&#x11F;unuz daha yeni ba&#x15F;l&#x131;yor.</p>
<p>FrontEnd Developer olmak ve IT sekt&#xF6;r&#xFC;ne bu kariyer ad&#x131;m&#x131; ile ba&#x15F;lamak 2022 y&#x131;l&#x131;nda kendiniz i&#xE7;in yapaca&#x11F;&#x131;n&#x131;z en iyi kararlardan biri olabilir.</p>
<p>Sab&#x131;rla ve g&#xFC;&#xE7;l&#xFC; bir motivasyonla devam edin.</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[En Çok Kullanılan Terminal Komutları (Linux / macOS)]]></title><description><![CDATA[<p>Unix temelli i&#x15F;letim sistemlerinde onlarca komut bulunur. Bu yaz&#x131;da g&#xFC;nl&#xFC;k hayatta en &#xE7;ok ihtiya&#xE7; duyaca&#x11F;&#x131;n&#x131;z komutlara de&#x11F;inme&#x11F;e &#xE7;al&#x131;&#x15F;t&#x131;m. Her ne kadar konuyu &#xE7;ok kullan&</p>]]></description><link>https://izleogrenkodla.dev/en-cok-kullanilan-terminal-komutlari/</link><guid isPermaLink="false">63188bab664b710001ec3215</guid><category><![CDATA[Linux]]></category><dc:creator><![CDATA[izle-öğren-kodla]]></dc:creator><pubDate>Sun, 11 Sep 2022 19:24:00 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1629654297299-c8506221ca97?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDF8fGxpbnV4fGVufDB8fHx8MTY2MjUwOTAxNQ&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1629654297299-c8506221ca97?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDF8fGxpbnV4fGVufDB8fHx8MTY2MjUwOTAxNQ&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000" alt="En &#xC7;ok Kullan&#x131;lan Terminal Komutlar&#x131; (Linux / macOS)"><p>Unix temelli i&#x15F;letim sistemlerinde onlarca komut bulunur. Bu yaz&#x131;da g&#xFC;nl&#xFC;k hayatta en &#xE7;ok ihtiya&#xE7; duyaca&#x11F;&#x131;n&#x131;z komutlara de&#x11F;inme&#x11F;e &#xE7;al&#x131;&#x15F;t&#x131;m. Her ne kadar konuyu &#xE7;ok kullan&#x131;lan komutlar olarak indirgesem de takdir edersiniz ki bir yaz&#x131;da komutlar&#x131; t&#xFC;m &#xF6;zellikleri ile anlatmak m&#xFC;mk&#xFC;n de&#x11F;il. Yine de terminal komutlar&#x131;na yeni ba&#x15F;layan ve &#xF6;&#x11F;renenler i&#xE7;in iyi bir rehber olaca&#x11F;&#x131;na inan&#x131;yorum.</p><!--kg-card-begin: html--><ul>
    <li><a style="color:black;" href="#lnx_en_cok_oncelikle">&#xD6;ncelikle, temel birka&#xE7; husus...</a></li>
    <li><a style="color:black;" href="#lnx_en_cok_echo">echo</a></li>
    <li><a style="color:black;" href="#lnx_en_cok_pwd">pwd</a></li>
    <li><a style="color:black;" href="#lnx_en_cok_ls">ls</a></li>
    <li><a style="color:black;" href="#lnx_en_cok_cd">cd</a></li>
    <li><a style="color:black;" href="#lnx_en_cok_mkdir">mkdir</a></li>
    <li><a style="color:black;" href="#lnx_en_cok_touch">touch</a></li>
    <li><a style="color:black;" href="#lnx_en_cok_cat">cat</a></li>
    <li><a style="color:black;" href="#lnx_en_cok_rightarrow"><code style="color:dimgray"> &gt; </code> ve <code style="color:dimgray"> &gt;&gt; </code></a></li>
    <li><a style="color:black;" href="#lnx_en_cok_mv">mv</a></li>
    <li><a style="color:black;" href="#lnx_en_cok_cp">cp</a></li>
    <li><a style="color:black;" href="#lnx_en_cok_rm">rm</a></li>
    <li><a style="color:black;" href="#lnx_en_cok_grep">grep</a></li>
    <li><a style="color:black;" href="#lnx_en_cok_man">man</a></li>
    <li><a style="color:black;" href="#lnx_en_cok_history">history</a></li>
    <li><a href="#lnx_en_cok_birbakista">Bir bak&#x131;&#x15F;ta tablosu</a></li>
</ul><!--kg-card-end: html--><p></p><!--kg-card-begin: html--><h2 id="lnx_en_cok_oncelikle">&#xD6;ncelikle, temel bir ka&#xE7; husus...</h2><!--kg-card-end: html--><p>Devam eden ba&#x15F;l&#x131;klarda a&#xE7;&#x131;klamalar&#x131; ve &#xF6;rnekleri Linux referans alarak yapaca&#x11F;&#x131;m. Ancak burada kullan&#x131;lan terminal komutlar&#x131; hem Linux hem de macOS i&#x15F;letim sistemi i&#xE7;in ge&#xE7;erlidir. Kimi zaman baz&#x131; komutlar&#x131;n kullan&#x131;m&#x131; i&#x15F;letim sistemine g&#xF6;re farkl&#x131;l&#x131;k g&#xF6;sterse de her ikisi de <strong>unix</strong> tabanl&#x131; oldu&#x11F;u i&#xE7;in &#xE7;o&#x11F;u komutun kullan&#x131;m&#x131; ayn&#x131;d&#x131;r. </p><h3 id="ge%C3%A7erli-klas%C3%B6r-working-directory">Ge&#xE7;erli Klas&#xF6;r (Working Directory)</h3><p>Bu kavram i&#xE7;inde bulundu&#x11F;unuz klas&#xF6;r&#xFC; kasteder ve <em>working directory</em> ya da <em>current directory </em>olarak adland&#x131;r&#x131;l&#x131;r. Mesela Windows i&#x15F;letim sisteminde Belgelerim ve onun i&#xE7;inde Resimler klas&#xF6;r&#xFC;ne t&#x131;klarsan&#x131;z sizin <em>working directory</em> niz &quot;Resimlerim&quot; klas&#xF6;r&#xFC; olur. T&#x131;pk&#x131; bunun gibi Linux i&#xE7;inde o anda i&#x15F;lem yapt&#x131;&#x11F;&#x131;n&#x131;z ya da bulundu&#x11F;unuz klas&#xF6;r de bu &#x15F;ekilde adland&#x131;r&#x131;l&#x131;r.</p><h3 id="flags-etiket">Flags (Etiket)</h3><p>Linux&apos;ta bir&#xE7;ok komut ek &#xF6;zellikler ile kullan&#x131;l&#x131;r. Bu &#xF6;zellikler ile o komutun &#xE7;al&#x131;&#x15F;ma &#x15F;ekli zenginle&#x15F;ir ya da de&#x11F;i&#x15F;ir. Komutlara ek &#xF6;zellikler vermek i&#xE7;in <strong>FLAG</strong> kullan&#x131;l&#x131;r (Buradaki anlam&#x131;n&#x131; etiket olarak &#xE7;evirebiliriz). Flag&apos; lar genellikle &#xF6;nlerinde tire (-) i&#x15F;areti ile kullan&#x131;l&#x131;r. Mesela<strong> ls</strong> komutu tek ba&#x15F;&#x131;na kullan&#x131;labildi&#x11F;i gibi <strong>ls -a </strong>&#x15F;eklinde<strong> &quot;a&quot; </strong>flag ile de kullan&#x131;l&#x131;r ve -a flag t&#xFC;m dosyalar&#x131;, gizli dosyalar dahil listeler. Komutlar&#x131; s&#x131;ras&#x131; geldik&#xE7;e a&#xE7;&#x131;klayaca&#x11F;&#x131;m &#x15F;imdilik flag&apos; &#x131;n bir komuta ek &#xF6;zellik kazand&#x131;rd&#x131;&#x11F;&#x131;n&#x131; bilelim yeter.</p><h3 id="wildcards">(*) wildcards</h3><!--kg-card-begin: markdown--><p><strong>&quot;*&quot;</strong> i&#x15F;areti &#xE7;o&#x11F;u zaman komutlarla birlikte kullan&#x131;l&#x131;r. Bu joker bir karakterdir ve bir ya da birden &#xE7;ok karakter yerine kullan&#x131;labilir. &#xD6;rne&#x11F;in <code>*.txt</code> sonu .txt ile biten t&#xFC;m dosyalar&#x131; kasdeder. Sadece <strong>&quot;*&quot;</strong> kullan&#x131;r isek bir klas&#xF6;r alt&#x131;ndaki gizli dosyalar hari&#xE7; t&#xFC;m klas&#xF6;r ve dosyalar&#x131; belirtir.</p>
<!--kg-card-end: markdown--><h3 id="root-path-k%C3%B6k-ana-yol">/ - Root Path (K&#xF6;k-Ana Yol)</h3><p>Windows i&#x15F;letim sisteminde varsay&#x131;lan olarak ana klas&#xF6;r &quot;<strong>C:\&quot; </strong>klas&#xF6;r&#xFC;d&#xFC;r.<strong> </strong>Aksine bir ayar yap&#x131;lmad&#x131;k&#xE7;a bu hep b&#xF6;yledir. Windows dosyalar&#x131; &quot;<strong>C:\Windows</strong>&quot; alt&#x131;nda bulunur. Windows bilgisayar&#x131;n&#x131;za yeni bir s&#xFC;r&#xFC;c&#xFC; eklerseniz muhtemelen ba&#x15F;ka bir harfle mesela &quot;<strong>D:\</strong>&quot; &#xA0;harfi ile g&#xF6;r&#xFC;rs&#xFC;n&#xFC;z.</p><p>Linux&apos;ta ise bu &#x15F;ekilde bir harf sistemi yoktur. Bunun yerine bir root (k&#xF6;k) dizin vard&#x131;r ve di&#x11F;er klas&#xF6;rler de bu dizine g&#xF6;re konumlan&#x131;r. Root dizin <strong>&quot;/&quot;</strong> ile g&#xF6;sterilir. Root dizin alt&#x131;nda &quot;/home&quot;, &quot;/var&quot;, &quot;/bin&quot; gibi dizinler bulunur.</p><h3 id="home-dizini">home (~) dizini</h3><!--kg-card-begin: markdown--><p>Linux i&#x15F;letim sisteminde kullan&#x131;c&#x131; yetkileri ve kullan&#x131;c&#x131; a&#x11F;ac&#x131; geni&#x15F; bir konudur ve hatta ayr&#x131; bir yaz&#x131;n&#x131;n konusu olabilir. Bu nedenle &#x15F;imdilik genel olarak iki t&#xFC;r kullan&#x131;c&#x131; bulunur diyebiliriz. Biri admin di&#x11F;eri kullan&#x131;c&#x131;.</p>
<p>Her kullan&#x131;c&#x131;n&#x131;n varsay&#x131;lan olarak root dizini <code>/home</code> klas&#xF6;r&#xFC; alt&#x131;nda kullan&#x131;c&#x131; ismiyle kendi klas&#xF6;rleri bulunur. <code>/home/&lt;kullan&#x131;c&#x131;Ad&#x131;&gt;</code></p>
<p>&#xD6;rne&#x11F;in linux bilgisayar&#x131;m&#x131;zda biri <strong>izleogrenkodla</strong> di&#x11F;eri <strong>kodman</strong> isminde iki kullan&#x131;c&#x131; olsun diyelim. Bu durumda ilk kullan&#x131;c&#x131; linux komut sat&#x131;r&#x131;n&#x131; a&#xE7;t&#x131;&#x11F;&#x131;nda varsay&#x131;lan olarak <code>/home/izleogrenkodla</code> dizini alt&#x131;nda kendini bulur. Ayn&#x131; &#x15F;ekilde ikinci kullan&#x131;c&#x131; da bilgisayar&#x131; kulland&#x131;&#x11F;&#x131;nda <code>/home/kodman</code> dizini alt&#x131;nda oldu&#x11F;unu g&#xF6;recektir. Her kullan&#x131;c&#x131;n&#x131;n home dizini alt&#x131;ndaki kendi klas&#xF6;r&#xFC;ne okuma ve yazma yetkisi vard&#x131;r.</p>
<p>home klas&#xF6;r&#xFC; tilde karakteri (~) ile g&#xF6;sterilir. Yukar&#x131;daki <strong>izleogrenkodla</strong> kullan&#x131;c&#x131;s&#x131; linux bilgisayar&#x131; kullan&#x131;c&#x131; ad&#x131; ve parolas&#x131; ile a&#xE7;&#x131;p komut sat&#x131;r&#x131;na (terminal) gitti&#x11F;inde a&#x15F;a&#x11F;&#x131;daki gibi bir ekranla kar&#x15F;&#x131;la&#x15F;&#x131;r.</p>
<!--kg-card-end: markdown--><pre><code class="language-sh">myPc:~$</code></pre><h3 id="relative-pathreferans-adres">Relative Path(Referans Adres)</h3><p>S&#xF6;zl&#xFC;k anlam&#x131;na bakt&#x131;&#x11F;&#x131;m&#x131;zda relative yak&#x131;n path ise yol anlam&#x131;nda kullan&#x131;ld&#x131;&#x11F;&#x131;n&#x131; g&#xF6;r&#xFC;r&#xFC;z. Path i&#x15F;letim sisteminde dosya ve klas&#xF6;r&#xFC;n yolu ya da adresi olarak kullan&#x131;l&#x131;r. Relative Path ise i&#xE7;inde bulundu&#x11F;umuz klas&#xF6;re (Working Directory) g&#xF6;re ba&#x15F;ka bir klas&#xF6;r&#xFC; tarif etmek i&#xE7;in kullan&#x131;l&#x131;r. &#xD6;rne&#x11F;in a&#x15F;a&#x11F;&#x131;daki &#x15F;emaya bakal&#x131;m.</p><pre><code class="language-sh">/home/izleogrenkodla/depom

/home/izleogrenkodla/depom/filmler
   |--Avatar.mp4
   |--StarWars.mp4
   
/home/izleogrenkodla/depom/resimler
   |--cicek.jpg
   |--rozet.jpg
</code></pre><!--kg-card-begin: markdown--><p>Depom klas&#xF6;r&#xFC; alt&#x131;nda &quot;filmler&quot; ve &quot;resimler&quot; olmak &#xFC;zere iki tane klas&#xF6;r var. Her klas&#xF6;r&#xFC;n alt&#x131;nda da dosyalar bulunuyor.</p>
<p>Diyelim ki &quot;<strong>filmler</strong>&quot; klas&#xF6;r&#xFC; i&#xE7;indeyiz. bu durumda bulundu&#x11F;umuz klas&#xF6;r&#xFC; <code>/home/izleogrenkodla/depom/filmler</code> &#x15F;eklinde tam yoluyla (absolute path) g&#xF6;sterebilece&#x11F;imiz gibi <code>./</code> &#x15F;eklinde referans ile de g&#xF6;sterebiliriz. Linux&apos;ta <code>.</code> bulunulan klas&#xF6;r ya da <em>working directory</em> &apos;yi belirtir.</p>
<p>Yine filmler klas&#xF6;r&#xFC; i&#xE7;indeyiz. Bu defa bir yerine iki nokta kullan&#x131;r isek yani <code>../</code> &#x15F;eklinde g&#xF6;sterir isek bu da bulunulan klas&#xF6;r&#xFC;n bir &#xFC;st klas&#xF6;r&#xFC;n&#xFC; simgeler. Bu durumda bir &#xFC;st klas&#xF6;r <strong>/depom</strong> klas&#xF6;r&#xFC;d&#xFC;r. Yani filmler klas&#xF6;r&#xFC; i&#xE7;inde <code>../</code> yazmak a&#xE7;&#x131;k olarak <code>/home/izleogrenkodla/depom</code> yazmakla ayn&#x131; &#x15F;eydir. E&#x11F;er<br>
<code>../resimler</code> yazarsan&#x131;z bu da tahmin edebilece&#x11F;iniz gibi <code>/home/izleogrenkodla/depom/resimler</code> ile ayn&#x131; adresi belirtir. &#x130;&#x15F;te bulundu&#x11F;umuz klas&#xF6;re g&#xF6;re ba&#x15F;ka klas&#xF6;rleri bu <code>./</code> ve <code>../</code> &#x15F;eklinde g&#xF6;stermeye Relative Path ya da referans adres g&#xF6;sterimi denir. Bu husus a&#x15F;a&#x11F;&#x131;da &#xF6;rneklerle incelendi&#x11F;inde daha iyi anla&#x15F;&#x131;lacakt&#x131;r.</p>
<!--kg-card-end: markdown--><p></p><!--kg-card-begin: html--><h2 id="lnx_en_cok_echo">echo</h2><!--kg-card-end: html--><!--kg-card-begin: markdown--><p>Bir vadiye gidip ba&#x11F;&#x131;rarak bir &#x15F;ey s&#xF6;ylerseniz, size sesiniz geri d&#xF6;ner ve yank&#x131; yapt&#x131; dersiniz ya da eko yapt&#x131; dersiniz. Zaten ingilizce de <strong>echo</strong> yank&#x131; anlam&#x131;na gelir.</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>Linux komutu olarak da <code>echo</code> benzer &#x15F;ekilde davran&#x131;r ve ekrana bir metin yazd&#x131;rmak i&#xE7;in kullan&#x131;l&#x131;r. <code>echo</code> komutundan sonra bir iki kelime yaz&#x131;p <code>enter</code> tu&#x15F;una basarsan&#x131;z, kelimelerin ekran&#x131;n&#x131;za yazd&#x131;r&#x131;ld&#x131;&#x11F;&#x131;n&#x131; g&#xF6;r&#xFC;rs&#xFC;n&#xFC;z.</p>
<!--kg-card-end: markdown--><pre><code class="language-sh">myPc:~$ echo Merhaba!
Merhaba!</code></pre><!--kg-card-begin: markdown--><p><code>echo</code> komutu genelde bir &#xE7;evresel de&#x11F;i&#x15F;keni (environmental variable) ekrana yazd&#x131;rmak i&#xE7;in kullan&#x131;l&#x131;r. <em>Environmental variable</em> konusuna daha sonra de&#x11F;inece&#x11F;iz.</p>
<p><code>echo</code> komutu ayr&#x131;ca komut sat&#x131;r&#x131; kodlama (bash script) i&#xE7;inde bir ifadeyi yazd&#x131;rmak i&#xE7;in de kullan&#x131;l&#x131;r.</p>
<!--kg-card-end: markdown--><p></p><!--kg-card-begin: html--><h2 id="lnx_en_cok_pwd">pwd</h2><!--kg-card-end: html--><!--kg-card-begin: markdown--><p><code>pwd</code> komutu &quot;print working directory&quot; (yazd&#x131;r ge&#xE7;erli klas&#xF6;r) kelimelerinin ba&#x15F; harflerinden olu&#x15F;mu&#x15F;tur ve o anda bulundu&#x11F;unuz klas&#xF6;r&#xFC;n tam adresini verir.</p>
<!--kg-card-end: markdown--><pre><code class="language-sh">myPc:~$ pwd
/home/izleogrenkodla</code></pre><p></p><!--kg-card-begin: html--><h2 id="lnx_en_cok_ls">ls</h2><!--kg-card-end: html--><!--kg-card-begin: markdown--><p><strong>list</strong> kelimesi liste yada listelemek anlamlar&#x131;na sahiptir. Linux komutu olarak &quot;list&quot; k&#x131;salt&#x131;lm&#x131;&#x15F; hali ile <strong>ls</strong> olarak kullan&#x131;l&#x131;r ve bir klas&#xF6;r i&#xE7;eri&#x11F;ini ekranda listelemek i&#xE7;in kullan&#x131;l&#x131;r.</p>
<!--kg-card-end: markdown--><pre><code class="language-bash">myPc:~$ ls
depom liste.pdf video.mp4  </code></pre><!--kg-card-begin: markdown--><p>Yukar&#x131;da g&#xF6;rd&#xFC;&#x11F;&#xFC;n&#xFC;z gibi home klas&#xF6;r&#xFC;nde (<code>~</code>) biri &quot;.mp4&quot; biri de &quot;.pdf&quot; olmak &#xFC;zere iki dosya ve &quot;depom&quot; ad&#x131;nda da bir klas&#xF6;r&#xFC;m&#xFC;z var.</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p><code>ls</code> komutu ile kullanabilece&#x11F;iniz birka&#xE7; pratik flag bilmek i&#x15F;inizi kolayla&#x15F;t&#x131;r&#x131;r. &#xF6;rne&#x11F;in <code>ls -l</code>, dosya ve klas&#xF6;rleri alt alta s&#x131;ralar ve daha okunakl&#x131;d&#x131;r. Ayr&#x131;ca dosya izin ve boyut bilgileri de g&#xF6;r&#xFC;l&#xFC;r.</p>
<p><code>ls -a</code> gizli dosyalar dahil b&#xFC;t&#xFC;n dosyalar&#x131; listeler.</p>
<p>Flaglar&#x131; birle&#x15F;tirmek de m&#xFC;mk&#xFC;nd&#xFC;r. &#xD6;rne&#x11F;in <code>ls -la</code> hem b&#xFC;t&#xFC;n dosyalar&#x131; listeler hem de tek s&#xFC;tun alt alta listeler.</p>
<!--kg-card-end: markdown--><p></p><!--kg-card-begin: html--><h2 id="lnx_en_cok_cd">cd</h2><!--kg-card-end: html--><!--kg-card-begin: markdown--><p>change directory (de&#x11F;i&#x15F;tir dizin) kelimelerin ba&#x15F; harflerinden olu&#x15F;an <code>cd</code> komutu ad&#x131;ndan da anla&#x15F;&#x131;laca&#x11F;&#x131; gibi bulunulan dizini de&#x11F;i&#x15F;tirir. <code>cd</code> hem relative path (referans adres) hem de absolute path (a&#xE7;&#x131;k adres) ile &#xE7;al&#x131;&#x15F;&#x131;r. Yukar&#x131;daki <code>/depom</code> klas&#xF6;r a&#x11F;ac&#x131;na geri d&#xF6;nelim diyelim ki <code>depom</code> dizini <em>working directory</em> &apos;miz ve resimler dizinine gitmek istiyorsak <code>cd</code> kullan&#x131;r&#x131;z. A&#x15F;a&#x11F;&#x131;da relative path kulland&#x131;k &#xE7;&#xFC;nk&#xFC; direkt resimler yazd&#x131;k. Linux bu durumda ge&#xE7;erli dizinin i&#xE7;inde resimler klas&#xF6;r&#xFC;n&#xFC; arar ve b&#xF6;yle bir dizin varsa dizini de&#x11F;i&#x15F;tirir. Yoksa &quot;b&#xF6;yle bir dosya ya da klas&#xF6;r yok&quot; uyar&#x131; mesaj&#x131; verir.</p>
<!--kg-card-end: markdown--><pre><code class="language-bash">myPc:~/depom$ cd resimler
myPc:~/depom/resimler$</code></pre><!--kg-card-begin: markdown--><p>Bulunulan dizinden bir &#xFC;st dizine &#xE7;&#x131;kmak i&#xE7;in <code>cd ..</code> kullan&#x131;r&#x131;z. Hat&#x131;rlay&#x131;n yukar&#x131;da relative path&apos; den bahsedeerken iki noktan&#x131;n <code>..</code> bir &#xFC;st dizin oldu&#x11F;unu belirtmi&#x15F;tik.</p>
<!--kg-card-end: markdown--><pre><code class="language-sh">myPc:~/depom/resimler$ cd ..
myPc:~/depom$</code></pre><!--kg-card-begin: markdown--><p>&#x130;sterseniz do&#x11F;rudan tam adresi yazarak ba&#x15F;ka bir dizine de gidebilirsiniz.</p>
<!--kg-card-end: markdown--><pre><code class="language-sh">myPc:~/depom$ cd /home/izleogrenkodla/depom/filmler
myPc:~/depom/filmler$</code></pre><p></p><!--kg-card-begin: html--><h2 id="lnx_en_cok_mkdir">mkdir</h2><!--kg-card-end: html--><!--kg-card-begin: markdown--><p>make directory (yap dizin) kelimelerinin ba&#x15F; harflerinden olu&#x15F;an <code>mkdir</code> komutu dizin olu&#x15F;turmak i&#xE7;in kullan&#x131;l&#x131;r. &#xD6;rne&#x11F;in depom dizini alt&#x131;nda <strong>projeler</strong> isimli yeni bir dizin olu&#x15F;turmak istersem <code>mkdir projeler</code> yazmam yeterli.</p>
<!--kg-card-end: markdown--><pre><code class="language-sh">myPc:~/depom$ mkdir projeler </code></pre><!--kg-card-begin: markdown--><p>E&#x11F;er depom dizininde dosya ve klas&#xF6;rleri listelersek <strong>projeler</strong> klas&#xF6;r&#xFC;n&#xFC;n olu&#x15F;turuldu&#x11F;unu g&#xF6;rece&#x11F;iz.</p>
<!--kg-card-end: markdown--><pre><code class="language-sh">myPc:~/depom$ ls -l
drwxrwxr-x 2 izleogrenkodla izleogrenkodla 4096 Sep  9 21:19 filmler
drwxrwxr-x 2 izleogrenkodla izleogrenkodla 4096 Sep  9 21:31 projeler
drwxrwxr-x 2 izleogrenkodla izleogrenkodla 4096 Sep  9 21:11 resimler</code></pre><p></p><!--kg-card-begin: html--><h2 id="lnx_en_cok_touch">touch</h2><!--kg-card-end: html--><!--kg-card-begin: markdown--><p><code>touch</code> komutu yeni bir dosya olu&#x15F;turmak i&#xE7;in kullan&#x131;l&#x131;r. bu komuttan hemen sonra yeni dosyan&#x131;n ismi ne olacaksa o yaz&#x131;l&#x131;r.</p>
<!--kg-card-end: markdown--><pre><code class="language-sh">myPc:~/depom$ touch yenidosya.txt
myPc:~/depom$ ls
filmler projeler resimler yenidosya.txt</code></pre><p></p><!--kg-card-begin: html--><h2 id="lnx_en_cok_cat">cat</h2><!--kg-card-end: html--><!--kg-card-begin: markdown--><p><code>cat</code> bir dosya i&#xE7;eri&#x11F;ini g&#xF6;r&#xFC;nt&#xFC;lemek i&#xE7;in kullan&#x131;l&#x131;r. Yukar&#x131;da yeni olu&#x15F;turdu&#x11F;umuz <code>yenidosya.txt</code> dosyas&#x131;n&#x131; <code>cat</code> ile g&#xF6;r&#xFC;nt&#xFC;lersek bo&#x15F; bir ekran elde ederiz. &#xC7;&#xFC;nk&#xFC; hen&#xFC;z i&#xE7;eri&#x11F;i bo&#x15F; bir dosya. Ancak i&#xE7;i dolu bir dosyada <code>cat</code> komutu i&#xE7;eri&#x11F;i ekranda g&#xF6;sterecektir.</p>
<!--kg-card-end: markdown--><pre><code class="language-sh">myPc:~/depom$ cat siir.txt
Ne i&#xE7;indeyim zaman&#x131;n,

Ne de b&#xFC;sb&#xFC;t&#xFC;n d&#x131;&#x15F;&#x131;nda;

Yekpare, geni&#x15F; bir an&#x131;n

Par&#xE7;alanmaz ak&#x131;&#x15F;&#x131;nda.</code></pre><p></p><!--kg-card-begin: html--><h2 id="lnx_en_cok_rightarrow">&gt; ve &gt;&gt;</h2><!--kg-card-end: html--><!--kg-card-begin: markdown--><p><code>&gt;</code> ve <code>&gt;&gt;</code> bir dosya i&#xE7;eri&#x11F;ini de&#x11F;i&#x15F;tirmek i&#xE7;in kullan&#x131;l&#x131;r. Bu iki i&#x15F;aretten &#xF6;nce bir komut &#xE7;al&#x131;&#x15F;t&#x131;r&#x131;l&#x131;r ve komutun &#xE7;&#x131;kt&#x131;s&#x131; bir dosya i&#xE7;eri&#x11F;ine kaydedilebilir. &#xD6;rne&#x11F;in <code>echo</code> komutu ile bir ifade yazd&#x131;r&#x131;l&#x131;r ve bu ifade bir dosya i&#xE7;erisine kaydedilebilir. <code>&gt;</code> her seferinde dosya i&#xE7;eri&#x11F;ini siler ve ba&#x15F;tan yazar (overwrite). <code>&gt;&gt;</code> i&#x15F;areti ise doya i&#xE7;eri&#x11F;ini korur ve yeni verilen i&#xE7;eri&#x11F;i dosya sonuna ekler (edit).</p>
<!--kg-card-end: markdown--><pre><code class="language-sh">myPc:~/depom$ echo &quot;Nas&#x131;ls&#x131;n?&quot; &gt; yenidosya.txt
myPc:~/depom$ cat yenidosya.txt
Nas&#x131;ls&#x131;n?

myPc:~/depom$ echo &quot;Merhaba D&#xFC;nya!&quot; &gt; yenidosya.txt
myPc:~/depom$ cat yenidosya.txt
Merhaba D&#xFC;nya!</code></pre><!--kg-card-begin: markdown--><p>G&#xF6;rd&#xFC;&#x11F;&#xFC;n&#xFC;z gibi <code>&gt;</code> i&#x15F;areti i&#xE7;eri&#x11F;i her seferinde sildi ve yeniden yazd&#x131;. &#x15E;u anda dosya i&#xE7;eri&#x11F;i <strong>&quot;Merhaba D&#xFC;nya!&quot;</strong> E&#x11F;er bu i&#xE7;eri&#x11F;i tutarak sonuna bir &#x15F;ey eklemek ister isek <code>&gt;&gt;</code> i&#x15F;aretini kullan&#x131;r&#x131;z.</p>
<!--kg-card-end: markdown--><pre><code class="language-sh">myPc:~/depom$ echo &quot;Beni hat&#x131;rla!&quot; &gt;&gt; yenidosya.txt
myPc:~/depom$ cat yenidosya.txt
Merhaba D&#xFC;nya!
Beni hat&#x131;rla!</code></pre><p></p><!--kg-card-begin: html--><h2 id="lnx_en_cok_mv">mv</h2><!--kg-card-end: html--><!--kg-card-begin: markdown--><p>ingilizce move (hareket et, ettir) kelimesinin k&#x131;sa hali olan <code>mv</code> komutu dizin ve dosyalar&#x131; <strong>kaynak</strong> (source) adresten <strong>hedef</strong> (target) adrese hareket ettirmek i&#xE7;in kullan&#x131;l&#x131;r. Kullan&#x131;m&#x131; <code>mv &lt;source&gt; &lt;target&gt;</code> &#x15F;eklindedir. A&#x15F;a&#x11F;&#x131;daki &#xF6;rnekleri inceleyelim.</p>
<!--kg-card-end: markdown--><pre><code class="language-sh"># &#xF6;nce backups ad&#x131;nda yeni dizin olu&#x15F;tur
myPc:~/depom$ mkdir backups
# projeler klas&#xF6;r&#xFC;n&#xFC; backups klas&#xF6;r&#xFC; alt&#x131;na ta&#x15F;&#x131;
myPc:~/depom$ mv projeler /backups/

# yenidosya.txt dosyas&#x131;n&#x131; filmler klas&#xF6;r&#xFC; alt&#x131;na ta&#x15F;&#x131;.
myPc:~/depom$ mv yenidosya.txt filmler/</code></pre><!--kg-card-begin: markdown--><p><code>mv</code> komutunu kes yap&#x131;&#x15F;t&#x131;r gibi d&#xFC;&#x15F;&#xFC;nebilirsiniz. Kaynaktaki dosya ve klas&#xF6;rleri kesip hedefe yap&#x131;&#x15F;t&#x131;r&#x131;r ya da ta&#x15F;&#x131;r. E&#x11F;er ayn&#x131; dizin i&#xE7;inde bir dosyay&#x131; yine ayn&#x131; dizin i&#xE7;inde ba&#x15F;ka bir isimle ta&#x15F;&#x131;rsak, <code>mv</code> komutu varolan dosyay&#x131; keser ve yeni isimle yap&#x131;&#x15F;t&#x131;r&#x131;r. Asl&#x131;nda bu dosyay&#x131; yeniden adland&#x131;r&#x131;r (rename). Yani <code>mv</code> komutunu dosyalar&#x131; yeniden adland&#x131;rmak i&#xE7;in kullanabiliriz.</p>
<!--kg-card-end: markdown--><pre><code class="language-sh"># ge&#xE7;erli klas&#xF6;r&#xFC; filmler klas&#xF6;r&#xFC; olarak de&#x11F;i&#x15F;tir.
myPc:~/depom$ cd filmler

# yenidosya.txt dosyas&#x131; ismini de&#x11F;i&#x15F;tir.
myPc:~/depom/filmler$ mv yenidosya.txt benimdosyam.txt</code></pre><p></p><!--kg-card-begin: html--><h2 id="lnx_en_cok_cp">cp</h2><!--kg-card-end: html--><!--kg-card-begin: markdown--><p><code>cp</code> komutunun kullan&#x131;m&#x131; <code>mv</code> komutuna &#xE7;ok benzer. cp ad&#x131;ndan da anla&#x15F;&#x131;laca&#x11F;&#x131; gibi dizin ve dosyalar&#x131; kaynak adresten hedef adrese kopyalar. <code>cp</code> <strong>kaynak</strong> ve <strong>hedef</strong> olmak &#xFC;zere iki parametre al&#x131;r ve <code>cp [flag] &lt;kaynak hedef&gt;</code> &#x15F;eklinde kullan&#x131;l&#x131;r. Flag&apos; lar daha &#xF6;nce belirtti&#x11F;im gibi de&#x11F;i&#x15F;ik opsiyonlard&#x131;r. &#xD6;rneklerle birka&#xE7; senaryoyu inceleyelim.</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><ul>
<li>Ayn&#x131; dizin i&#xE7;inde bir dosyay&#x131; kopyalamak</li>
</ul>
<!--kg-card-end: markdown--><pre><code class="language-sh"># cicek.jpg dosyas&#x131;n&#x131; kopyala ve ayn&#x131; dizine ba&#x15F;ka isimle yap&#x131;&#x15F;t&#x131;r.
myPc:~/depom/resimler$ cp cicek.jpg cicek_copy.jpg</code></pre><!--kg-card-begin: markdown--><ul>
<li>Dosyay&#x131; ba&#x15F;ka bir dizine kopyalamak</li>
</ul>
<!--kg-card-end: markdown--><pre><code class="language-sh"># Relative path ile dosyay&#x131; filmler dizinine kopyalamak
myPc:~/depom/resimler$ cp cickek.jpg ../filmler

# Absolute path ile dosyay&#x131; kopyalamak
myPc:~/depom$ cp resimler/cickek.jpg /home/izleogrenkodla/depom/backups</code></pre><!--kg-card-begin: markdown--><ul>
<li>Bir dizini ba&#x15F;ka bir dizine kopyalamak</li>
</ul>
<!--kg-card-end: markdown--><pre><code class="language-sh"># filmler klas&#xF6;r&#xFC; ve t&#xFC;m i&#xE7;eri&#x11F;ini kopyala
myPc:~/depom$ cp -R filmler filmler_copy</code></pre><!--kg-card-begin: markdown--><p>Yukar&#x131;daki komut, depom dizini alt&#x131;nda <strong>filmler_copy</strong> adl&#x131; yeni bir dizin olu&#x15F;turur ard&#x131;ndan <strong>filmler</strong> dizini i&#xE7;indeki t&#xFC;m alt dizin ve dosyalar&#x131; <strong>filmler_copy</strong> dizinine kopyalar.<code>-R</code> ya da <code>-r</code> opsiyonu recursive yani i&#xE7; i&#xE7;e t&#xFC;m klas&#xF6;r ve dosyalar demektir.</p>
<!--kg-card-end: markdown--><p></p><!--kg-card-begin: html--><h2 id="lnx_en_cok_rm">rm</h2><!--kg-card-end: html--><!--kg-card-begin: markdown--><p><code>rm</code> ya da remove dizin ve dosyalar&#x131; silmek i&#xE7;in kullan&#x131;l&#x131;r. <strong>UYARI!</strong> tehlikeli bir komuttur ve dikkatli kullan&#x131;lmas&#x131; gerekir. &#xD6;nce depom klas&#xF6;r&#xFC; alt&#x131;nda <strong>beni_sil.txt</strong> isimli bir dosya olu&#x15F;tural&#x131;m. Daha sonra da o dosyay&#x131; silelim.</p>
<!--kg-card-end: markdown--><pre><code class="language-sh">myPc:~/depom$ touch beni_sil.txt
myPc:~/depom$ ls


myPc:~/depom$ rm beni_sil.txt</code></pre><!--kg-card-begin: markdown--><p><code>rm</code> komutu ile <strong>&quot;*&quot;</strong> wildcards&apos; &#x131; (joker karakterler) s&#x131;kl&#x131;kla kullan&#x131;l&#x131;r. &#xD6;rne&#x11F;in depom klas&#xF6;r&#xFC; i&#xE7;inde sonu <strong>.pdf</strong>  ile biten t&#xFC;m dosyalar&#x131; silmek i&#xE7;in a&#x15F;a&#x11F;&#x131;daki komutu kullan&#x131;r&#x131;z.</p>
<!--kg-card-end: markdown--><pre><code class="language-sh">myPc:~/depom$ rm *.pdf</code></pre><!--kg-card-begin: markdown--><p><code>rm</code> komutu dizinleri silmek i&#xE7;in de kullan&#x131;l&#x131;r. Bu durumda <code>-R</code> ya da <code>-r</code> flag&apos; &#x131; kullanmak gerekir.</p>
<!--kg-card-end: markdown--><pre><code class="language-sh"># backups dizinini ve t&#xFC;m i&#xE7;eri&#x11F;ini sil.
myPc:~/depom$ rm -R backups
</code></pre><p></p><!--kg-card-begin: html--><h2 id="lnx_en_cok_grep">grep</h2><!--kg-card-end: html--><!--kg-card-begin: markdown--><p>Bir metin ya da bir komut sonucu i&#xE7;erisinde arama veya filtreleme yapmak i&#xE7;in <code>grep</code> kullan&#x131;l&#x131;r. <code>grep</code> komutundan sonra aranmak isteden ifade belirtilir ve <code>grep</code> e&#x15F;le&#x15F;en t&#xFC;m ifadeleri geri d&#xF6;nd&#xFC;r&#xFC;r.</p>
<!--kg-card-end: markdown--><!--kg-card-begin: html--><pre>
<code class="language-sh"># siir.txt dosyas&#x131; i&#xE7;erisinde &quot;ma&quot; kelimesini arama
myPc:~/depom$ grep ma siir.txt
Ne i&#xE7;indeyim za<b>ma</b>n&#x131;n,
Par&#xE7;alan<b>ma</b>z ak&#x131;&#x15F;&#x131;nda.</code>
</pre><!--kg-card-end: html--><p>Yukar&#x131;da da g&#xF6;r&#xFC;ld&#xFC;&#x11F;&#xFC; gibi ilk sat&#x131;rdaki za<strong>ma</strong>n&#x131;n ve ikinci sat&#x131;rdaki Par&#xE7;alan<strong>ma</strong>z kelimeleri <strong>&quot;ma&quot;</strong> kelimesini bar&#x131;nd&#x131;rd&#x131;&#x11F;&#x131; i&#xE7;in grep komutu ile g&#xF6;r&#xFC;nt&#xFC;lendi.</p><p></p><!--kg-card-begin: html--><h2 id="lnx_en_cok_man">man</h2><!--kg-card-end: html--><!--kg-card-begin: markdown--><p>manual (kullan&#x131;m klavuzu) kelimesine at&#x131;fta bulunan <code>man</code> komutu kendisinden sonra yaz&#x131;lacak komutun nas&#x131;l kullan&#x131;ld&#x131;&#x11F;&#x131;n&#x131; g&#xF6;sterir. Ancak <code>man</code> &#xE7;ok detayl&#x131; ve uzun bir liste verebilir. A&#x15F;a&#x11F;&#x131;da komuttan sonra muhtemel elde edece&#x11F;iniz &#xE7;&#x131;kt&#x131;n&#x131;n ilk birka&#xE7; sat&#x131;r&#x131; verilmi&#x15F;tir.</p>
<!--kg-card-end: markdown--><pre><code class="language-sh">myPc:~/depom$ man ls
LS(1)

NAME
       ls - list directory contents

SYNOPSIS
       ls [OPTION]... [FILE]...

DESCRIPTION
       List information about the FILEs (the current directory by default).  Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.

       Mandatory arguments to long options are mandatory for short options too.

       -a, --all
              do not ignore entries starting with .

       -A, --almost-all
              do not list implied . and ..

       --author
              with -l, print the author of each file

       . . .</code></pre><p></p><!--kg-card-begin: html--><h2 id="lnx_en_cok_history">history</h2><!--kg-card-end: html--><!--kg-card-begin: markdown--><p><code>history</code> daha &#xF6;nce kulland&#x131;&#x11F;&#x131;m&#x131;z komutlar&#x131;n listesini sat&#x131;r numaralar&#x131; ile birlikte verir. Listedeki bir komutu yeniden kullanmak istedi&#x11F;inizde &#xFC;nlem i&#x15F;areti ve sat&#x131;r numaras&#x131;n&#x131; yazman&#x131;z yeterlidir.</p>
<!--kg-card-end: markdown--><pre><code class="language-sh">myPc:~/depom$ history
  640  echo &quot;Beni Hat&#x131;rla&quot; &gt;&gt; yenidosya.txt
  641  cat yenidosya.txt
  642  ls
  643  mv yenidosya.txt resimler/
  644  cd depom
  645  copy -R * backups

myPc:~/depom$ !642
ls
filmler  filmler_copy  resimler  siir_copy.txt  siir.txt</code></pre><p></p><!--kg-card-begin: html--><h2 id="lnx_en_cok_birbakista">Bir bak&#x131;&#x15F;ta tablosu</h2><!--kg-card-end: html--><!--kg-card-begin: markdown--><table>
<thead>
<tr>
<th style="text-align:left">Komut</th>
<th style="text-align:left">A&#xE7;&#x131;klama</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left"><code>echo</code></td>
<td style="text-align:left">ekrana yazd&#x131;r</td>
</tr>
<tr>
<td style="text-align:left"><code>pwd</code></td>
<td style="text-align:left">bulunulan dizini g&#xF6;ster</td>
</tr>
<tr>
<td style="text-align:left"><code>ls</code></td>
<td style="text-align:left">klas&#xF6;r ve dosyalar&#x131; listele</td>
</tr>
<tr>
<td style="text-align:left"><code>cd</code></td>
<td style="text-align:left">bulunulan dizini de&#x11F;i&#x15F;tir</td>
</tr>
<tr>
<td style="text-align:left"><code>mkdir</code></td>
<td style="text-align:left">yeni dizin olu&#x15F;tur</td>
</tr>
<tr>
<td style="text-align:left"><code>touch</code></td>
<td style="text-align:left">yeni bo&#x15F; dosya olu&#x15F;tur</td>
</tr>
<tr>
<td style="text-align:left"><code>cat</code></td>
<td style="text-align:left">dosa i&#xE7;eri&#x11F;ini ekrana yazd&#x131;r</td>
</tr>
<tr>
<td style="text-align:left"><code>&gt;</code> <code>&gt;&gt;</code></td>
<td style="text-align:left">bir komut sonucunu dosyaya yaz yada ekle</td>
</tr>
<tr>
<td style="text-align:left"><code>mv</code></td>
<td style="text-align:left">dizin veya dosyalar&#x131; kaynaktan hedefe ta&#x15F;&#x131;</td>
</tr>
<tr>
<td style="text-align:left"><code>cp</code></td>
<td style="text-align:left">dizin veya dosyalar&#x131; kaynaktan hedefe kopyala</td>
</tr>
<tr>
<td style="text-align:left"><code>rm</code></td>
<td style="text-align:left">dizin veya dosyalar&#x131; sil</td>
</tr>
<tr>
<td style="text-align:left"><code>grep</code></td>
<td style="text-align:left">bir metin i&#xE7;erisnde belirtilen ifadeden e&#x15F;le&#x15F;enleri bul</td>
</tr>
<tr>
<td style="text-align:left"><code>man</code></td>
<td style="text-align:left">bir komut hakk&#x131;nda klavuz bilgi ver</td>
</tr>
<tr>
<td style="text-align:left"><code>history</code></td>
<td style="text-align:left">komut ge&#xE7;mi&#x15F;ini listele</td>
</tr>
</tbody>
</table>
<!--kg-card-end: markdown--><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[Neden Linux?]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>Linux hem bulut hem de geli&#x15F;tirme ortamlar&#x131; i&#xE7;in hi&#xE7; &#x15F;&#xFC;phesiz en pop&#xFC;ler i&#x15F;letim sistemi. Ayr&#x131;ca <a href="https://insights.stackoverflow.com/survey?ref=izleogrenkodla.dev">StackOverflow</a> anketlerinde de ard arda s&#xFC;rekli en &#xE7;ok tercih edilen platform &#xFC;navan&#x131;na da sahip. Peki</p>]]></description><link>https://izleogrenkodla.dev/neden-linux/</link><guid isPermaLink="false">6317c50e664b710001ec307a</guid><category><![CDATA[Linux]]></category><dc:creator><![CDATA[izle-öğren-kodla]]></dc:creator><pubDate>Wed, 07 Sep 2022 00:17:59 GMT</pubDate><media:content url="https://izleogrenkodla.dev/content/images/2022/09/background-gf24fc482f_640.jpg" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><img src="https://izleogrenkodla.dev/content/images/2022/09/background-gf24fc482f_640.jpg" alt="Neden Linux?"><p>Linux hem bulut hem de geli&#x15F;tirme ortamlar&#x131; i&#xE7;in hi&#xE7; &#x15F;&#xFC;phesiz en pop&#xFC;ler i&#x15F;letim sistemi. Ayr&#x131;ca <a href="https://insights.stackoverflow.com/survey?ref=izleogrenkodla.dev">StackOverflow</a> anketlerinde de ard arda s&#xFC;rekli en &#xE7;ok tercih edilen platform &#xFC;navan&#x131;na da sahip. Peki Linux&apos;u bu kadar pop&#xFC;ler yapan nedir?</p>
<!--kg-card-end: markdown--><h3 id="a%C3%A7%C4%B1k-kaynak-open-source">A&#xE7;&#x131;k Kaynak (Open source)</h3><p>&#xD6;ncelikle Linux a&#xE7;&#x131;k kaynak i&#x15F;letim sistemidir. Yani hemen hemen &#xE7;o&#x11F;u da&#x11F;&#x131;t&#x131;m &#xFC;cretsizdir. Bu nedenle istedi&#x11F;iniz da&#x11F;&#x131;t&#x131;m&#x131; indirip kurabilir ve deneyebilirsiniz. G&#xFC;ncel Linux da&#x11F;&#x131;t&#x131;mlar&#x131;n&#x131; ve pop&#xFC;lerlik s&#x131;ralamas&#x131;n&#x131; <a href="https://distrowatch.com/?ref=izleogrenkodla.dev">distrowatch&apos;tan</a> takip edebilirsiniz. Masa&#xFC;st&#xFC;nde benim ki&#x15F;isel tercihim <a href="https://ubuntu.com/download/desktop?ref=izleogrenkodla.dev">Ubuntu</a>, fakat bu tamamen tercih meselesi. </p><h3 id="daha-fazla-g%C3%BCvenlik-ve-daha-fazla-mahremiyet">Daha Fazla G&#xFC;venlik ve Daha Fazla Mahremiyet</h3><p>Linux a&#xE7;&#x131;k kaynak olmas&#x131; ve &#xE7;ekirdek kodunun y&#xFC;zler hatta binlerce ki&#x15F;i taraf&#x131;ndan incelenmesi nedeniyle di&#x11F;er i&#x15F;letim sistemlerine nazaran daha az a&#xE7;&#x131;k i&#xE7;erir. Genellikle Linux i&#xE7;in bir antivir&#xFC;s program&#x131;na ihtiya&#xE7; duymazs&#x131;n&#x131;z tabiki gerekli g&#xFC;venlik &#xF6;nlemleri her i&#x15F;letim sisteminde oldu&#x11F;u gibi Linux i&#xE7;in de al&#x131;nmal&#x131;d&#x131;r. <br><br>Linux i&#x15F;letim sisteminde siz istemedi&#x11F;iniz s&#xFC;rece sizin bilgilerinizi toplayan ve hemen her hareketinizi depolayan programlar bulunmaz dolay&#x131;s&#x131;yla mahremiyet daha &#xF6;n plandad&#x131;r.</p><h3 id="onlarca-bedava-ara%C3%A7yaz%C4%B1l%C4%B1m">Onlarca bedava ara&#xE7;/yaz&#x131;l&#x131;m</h3><p>Gerek masa&#xFC;st&#xFC; s&#xFC;r&#xFC;mleri ve gerekse sunucu s&#xFC;r&#xFC;mleri olsun, Linux kurdu&#x11F;unuz anda onlarca yaz&#x131;l&#x131;ma bedava sahip olursunuz. Office yaz&#x131;l&#x131;m&#x131; i&#xE7;in para ya da video editor i&#xE7;in para &#xF6;demezsiniz. </p><h3 id="linux-her-yerde">Linux her yerde</h3><p>Evet Linux yap&#x131;s&#x131; gere&#x11F;i hemen her ortamda ve donan&#x131;mda &#xE7;al&#x131;&#x15F;&#x131;r. Bu nedenle en k&#xFC;&#xE7;&#xFC;k cihazdan s&#xFC;per bilgisayarlara Linux&apos;u g&#xF6;rebilirsiniz. Bu evinizdeki bir modem olabildi&#x11F;i gibi ak&#x131;ll&#x131; TV nizdeki i&#x15F;letim sistemi ya da yeni araban&#x131;z&#x131;n y&#xF6;netim sistemi olabilir. </p><h3 id="daha-az-donan%C4%B1m-daha-%C3%A7ok-performans">Daha az donan&#x131;m daha &#xE7;ok performans</h3><!--kg-card-begin: markdown--><p>Linux Windows i&#x15F;letim sistemi ile k&#x131;yasland&#x131;&#x11F;&#x131;nda daha az donan&#x131;m gereksinimi ister. Elbette de&#x11F;i&#x15F;ik Linux da&#x11F;&#x131;t&#x131;mlar&#x131; ve de&#x11F;i&#x15F;ik masa&#xFC;st&#xFC; s&#xFC;r&#xFC;mleri donan&#x131;m de&#x11F;i&#x15F;iklikleri g&#xF6;sterir. Ancak Windows ile k&#x131;yasland&#x131;&#x11F;&#x131;nda bu ihtiya&#xE7; &#xE7;ok daha azd&#x131;r. Hemen her yeni &#xE7;&#x131;kan Windows s&#xFC;r&#xFC;m&#xFC; sizden son donan&#x131;m gereksinimlerini istese de &#xE7;ok eski bilgisayarlar&#x131;n&#x131;za bile uygun bir Linux da&#x11F;&#x131;t&#x131;m&#x131; bulup kurabilirsiniz.</p>
<!--kg-card-end: markdown--><h3 id="sunucular-server-i%C3%A7in-vazge%C3%A7ilmez-se%C3%A7enek">Sunucular (Server) i&#xE7;in vazge&#xE7;ilmez se&#xE7;enek</h3><p>Linux ki&#x15F;isel masa&#xFC;st&#xFC; kullan&#x131;m&#x131; i&#xE7;in geni&#x15F; bir yelpazede se&#xE7;enek sunmakla birlikte sunumcular i&#xE7;in de bir numaral&#x131; tercih edilen i&#x15F;letim sistemidir. Bug&#xFC;n gerek yerel ortamlarda (on-premise) ve gerekse bulut ortamlar&#x131;nda &#xE7;o&#x11F;u sunumcu Linux ile &#xE7;al&#x131;&#x15F;maktad&#x131;r. Ayr&#x131;ca en &#xE7;ok tercih edilen <a href="https://docs.nginx.com/?ref=izleogrenkodla.dev">nginx</a>, <a href="https://httpd.apache.org/?ref=izleogrenkodla.dev">Apache</a> ve <a href="https://caddyserver.com/?ref=izleogrenkodla.dev">caddy</a> gibi web sunumcu yaz&#x131;l&#x131;mlar&#x131; da Linux i&#xE7;ine do&#x11F;mu&#x15F;tur ve Linux ile &#xE7;al&#x131;&#x15F;&#x131;r.</p><p>En&#xE7;ok tercih edilen sunumcu da&#x11F;&#x131;t&#x131;mlar&#x131;n&#x131;n ba&#x15F;&#x131;nda <a href="https://ubuntu.com/download/server?ref=izleogrenkodla.dev">ubuntu</a> ve <a href="https://www.centos.org/?ref=izleogrenkodla.dev">centos</a> gelmektedir. Ancak masa&#xFC;st&#xFC;nde oldu&#x11F;u gibi sunumcu s&#xFC;r&#xFC;mlerinde de bir&#xE7;ok iyi alternatif mevcuttur.</p><h3 id="geli%C5%9Ftirme-development-ortam%C4%B1n%C4%B1n-kalbi">Geli&#x15F;tirme (Development) Ortam&#x131;n&#x131;n Kalbi</h3><p>DevOps ara&#xE7;lar&#x131;n&#x131;n &#xE7;o&#x11F;u Linux i&#x15F;letim sistemi gerektirir ya da &#xE7;o&#x11F;u yeni ara&#xE7; &#xF6;nce Linux i&#xE7;in geli&#x15F;tirilir ve gerekirse ard&#x131;ndan Windows s&#xFC;r&#xFC;m&#xFC; &#xE7;&#x131;kar&#x131;l&#x131;r.<br><br>Bug&#xFC;n s&#x131;k&#xE7;a kullan&#x131;lan container platformu olan <a href="https://www.docker.com/?ref=izleogrenkodla.dev">docker</a>, Linux i&#xE7;inde do&#x11F;mu&#x15F;tur ve sonradan Windows&apos;u desteklemi&#x15F;tir.<br><br>Otomasyon arac&#x131; olan Ansible sadece Linux &#xFC;zerine y&#xF6;netim arac&#x131; olarak kurulabilir. <a href="https://www.ansible.com/?ref=izleogrenkodla.dev">Ansible</a> Windows makineleri uzaktan kontrol etse bile ana y&#xF6;netim terminali Linux olmak zorundad&#x131;r.<br><br>Container y&#xF6;netim arac&#x131; olan <a href="https://kubernetes.io/?ref=izleogrenkodla.dev">Kubernetes</a> sadece Linux platformlar&#x131;nda &#xE7;al&#x131;&#x15F;&#x131;r. Bug&#xFC;n modern geli&#x15F;tirme mimarileri ve mikro servisler tamamen Kubernetes ve benzeri container orkestrasyon sistemleri &#xFC;zerine kuruludur.</p><p></p>]]></content:encoded></item><item><title><![CDATA[IT Kariyerine Nereden Başlamalıyım?]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p><em>&quot;IT kariyerine nereden ba&#x15F;lamal&#x131;y&#x131;m?&quot;</em> bu alanda bir kariyer yapmak isteyenlerin mutemelen ilk sordu&#x11F;u sorudur. Bu konuda bir nebze yard&#x131;mc&#x131; olabilmek ve alternatif bir rehber olu&#x15F;turmak maksad&#x131;yla <code>Yol Haritam</code> isimli bir sayfa haz&#x131;</p>]]></description><link>https://izleogrenkodla.dev/it-nereden-baslamaliyim/</link><guid isPermaLink="false">634b0ae8664b710001ec60de</guid><category><![CDATA[Yol Haritası]]></category><dc:creator><![CDATA[izle-öğren-kodla]]></dc:creator><pubDate>Thu, 01 Sep 2022 19:43:00 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1518644730709-0835105d9daa?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDE5fHxxdWVzdGlvbnxlbnwwfHx8fDE2NjU4NjI1MDY&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><img src="https://images.unsplash.com/photo-1518644730709-0835105d9daa?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDE5fHxxdWVzdGlvbnxlbnwwfHx8fDE2NjU4NjI1MDY&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000" alt="IT Kariyerine Nereden Ba&#x15F;lamal&#x131;y&#x131;m?"><p><em>&quot;IT kariyerine nereden ba&#x15F;lamal&#x131;y&#x131;m?&quot;</em> bu alanda bir kariyer yapmak isteyenlerin mutemelen ilk sordu&#x11F;u sorudur. Bu konuda bir nebze yard&#x131;mc&#x131; olabilmek ve alternatif bir rehber olu&#x15F;turmak maksad&#x131;yla <code>Yol Haritam</code> isimli bir sayfa haz&#x131;rlad&#x131;k.</p>
<p>Sayfaya <a href="https://izleogrenkodla.dev/yol-haritam/">buradan</a> ula&#x15F;abilirsiniz.</p>
<!--kg-card-end: markdown-->]]></content:encoded></item></channel></rss>