{"id":31749,"date":"2025-10-13T15:31:20","date_gmt":"2025-10-13T12:31:20","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/djangonaut-ilk-pr-temel-adimlar-ve-baslangic-haftalari\/"},"modified":"2025-10-13T15:31:20","modified_gmt":"2025-10-13T12:31:20","slug":"djangonaut-ilk-pr-temel-adimlar-ve-baslangic-haftalari","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/djangonaut-ilk-pr-temel-adimlar-ve-baslangic-haftalari\/","title":{"rendered":"Djangonaut \u0130lk PR: Temel Ad\u0131mlar ve Ba\u015flang\u0131\u00e7 Haftalar\u0131"},"content":{"rendered":"<p>A\u00e7\u0131k kaynak d\u00fcnyas\u0131na ad\u0131m atmak isteyen bir yaz\u0131l\u0131mc\u0131 m\u0131s\u0131n\u0131z? \u0130lk katk\u0131n\u0131z\u0131 yaparken kar\u015f\u0131la\u015ft\u0131\u011f\u0131n\u0131z belirsizlikler ve teknik zorluklar sizi y\u0131ld\u0131rmas\u0131n. Bu makalede, Djangonaut program\u0131 kapsam\u0131nda ilk Pull Request&#8217;inizi (PR) nas\u0131l haz\u0131rlayaca\u011f\u0131n\u0131z\u0131, geli\u015ftirme ortam\u0131n\u0131z\u0131 nas\u0131l kuraca\u011f\u0131n\u0131z\u0131 ve 9.29 &#8211; 10.10 tarihleri aras\u0131ndaki ba\u015flang\u0131\u00e7 haftalar\u0131nda hangi ad\u0131mlar\u0131 izlemeniz gerekti\u011fini ayr\u0131nt\u0131l\u0131 bir \u015fekilde inceleyece\u011fiz. Bu rehber, hem yeni ba\u015flayanlar hem de bilgilerini tazelemek isteyen deneyimli geli\u015ftiriciler i\u00e7in de\u011ferli bilgiler sunuyor.<\/p>\n<p>Bir\u00e7ok yaz\u0131l\u0131mc\u0131 i\u00e7in a\u00e7\u0131k kaynak projelere katk\u0131da bulunmak, kariyerlerinde yeni kap\u0131lar a\u00e7an, teknik becerilerini geli\u015ftiren ve k\u00fcresel bir toplulu\u011fun par\u00e7as\u0131 olma f\u0131rsat\u0131 sunan heyecan verici bir ad\u0131md\u0131r. Ancak, bu d\u00fcnyaya ilk kez ad\u0131m atanlar genellikle nereden ba\u015flayacaklar\u0131n\u0131, hangi projeye katk\u0131 sa\u011flayacaklar\u0131n\u0131 veya ilk Pull Request&#8217;i (PR) nas\u0131l olu\u015fturacaklar\u0131n\u0131 bilemezler. Bu belirsizlik, pek \u00e7ok yetenekli geli\u015ftiriciyi potansiyel katk\u0131lar\u0131ndan al\u0131koyabilir. Oysa a\u00e7\u0131k kaynak, sadece kod yazmakla ilgili de\u011fildir; ayn\u0131 zamanda i\u015f birli\u011fi yapma, sorun \u00e7\u00f6zme ve geri bildirim alma becerilerini de geli\u015ftirir.<\/p>\n<p>A\u00e7\u0131k kaynak ekosistemi, modern yaz\u0131l\u0131m geli\u015ftirmenin temel ta\u015flar\u0131ndan biridir. G\u00fcn\u00fcm\u00fczde kulland\u0131\u011f\u0131m\u0131z bir\u00e7ok ara\u00e7, k\u00fct\u00fcphane ve i\u015fletim sistemi, g\u00f6n\u00fcll\u00fclerin ortak \u00e7abalar\u0131yla hayat bulmu\u015ftur. Bu projelerde yer almak, sadece kendi bilginizi art\u0131rmakla kalmaz, ayn\u0131 zamanda ba\u015fkalar\u0131n\u0131n da projelerinizden veya katk\u0131lar\u0131n\u0131zdan faydalanmas\u0131n\u0131 sa\u011flar. Dolay\u0131s\u0131yla, bu s\u00fcre\u00e7, kar\u015f\u0131l\u0131kl\u0131 bir \u00f6\u011frenme ve geli\u015fim d\u00f6ng\u00fcs\u00fc sunar. \u00d6zellikle Python ve Django gibi pop\u00fcler teknolojilerle ilgilenenler i\u00e7in, Djangonaut gibi programlar, bu engelleri a\u015fmak ve ilk ad\u0131m\u0131 g\u00fcvenle atmak i\u00e7in e\u015fsiz bir f\u0131rsat sunar. Bu programlar, mentorluk deste\u011fi ve yap\u0131land\u0131r\u0131lm\u0131\u015f bir \u00f6\u011frenme s\u00fcreciyle, yeni ba\u015flayanlar\u0131n a\u00e7\u0131k kaynak d\u00fcnyas\u0131na sorunsuz bir ge\u00e7i\u015f yapmas\u0131n\u0131 sa\u011flar. Sonu\u00e7 olarak, a\u00e7\u0131k kaynak katk\u0131lar\u0131, sadece teknik bir beceri seti de\u011fil, ayn\u0131 zamanda ileti\u015fim, tak\u0131m \u00e7al\u0131\u015fmas\u0131 ve problem \u00e7\u00f6zme yeteneklerini de peki\u015ftirir.<\/p>\n<p>\u0130lk PR&#8217;\u0131n\u0131z\u0131 g\u00f6ndermek, bu b\u00fcy\u00fck ekosistemin bir par\u00e7as\u0131 oldu\u011funuzu ilan etmek gibidir. Bu, projenin kod taban\u0131n\u0131 ilk kez de\u011fi\u015ftirme yetene\u011fine sahip oldu\u011funuzu g\u00f6sterir ve yaz\u0131l\u0131m m\u00fchendisli\u011fi yolculu\u011funuzda \u00f6nemli bir mihenk ta\u015f\u0131d\u0131r. Bir geli\u015ftirici olarak kendinize olan g\u00fcveninizi art\u0131r\u0131r ve gelecekteki daha b\u00fcy\u00fck katk\u0131lar i\u00e7in zemin haz\u0131rlar. Bu y\u00fczden, ilk katk\u0131n\u0131z\u0131 do\u011fru ve etkili bir \u015fekilde yapmak, bu yolculu\u011fun en kritik a\u015famalar\u0131ndan biridir. Bu makalede, Djangonaut program\u0131n\u0131n ilk haftalar\u0131nda bu s\u00fcreci nas\u0131l y\u00f6netece\u011finizi ve ba\u015far\u0131yla ilk PR&#8217;\u0131n\u0131z\u0131 nas\u0131l olu\u015fturaca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m inceleyece\u011fiz. Unutmay\u0131n, her b\u00fcy\u00fck yaz\u0131l\u0131mc\u0131, bir zamanlar basit bir hatay\u0131 d\u00fczelterek veya k\u00fc\u00e7\u00fck bir \u00f6zellik ekleyerek ba\u015flam\u0131\u015ft\u0131r. \u015eimdi s\u0131ra sizde!<\/p>\n<h2>Djangonaut Program\u0131 Nedir ve \u0130lk PR Neden Bu Kadar Kritiktir?<\/h2>\n<p>Djangonaut program\u0131, Django toplulu\u011funa yeni kat\u0131l\u0131mc\u0131lar\u0131 entegre etmek ve onlar\u0131 a\u00e7\u0131k kaynak katk\u0131lar\u0131 konusunda e\u011fitmek i\u00e7in tasarlanm\u0131\u015f, mentor destekli bir giri\u015fimdir. \u00d6zellikle Django&#8217;ya yeni ba\u015flayan veya a\u00e7\u0131k kaynak projelerine daha \u00f6nce hi\u00e7 katk\u0131da bulunmam\u0131\u015f geli\u015ftiricilere odaklan\u0131r. Bu program, kat\u0131l\u0131mc\u0131lara hem teknik bilgi birikimi kazand\u0131r\u0131r hem de toplulukla etkile\u015fim kurma ve geri bildirim alma becerilerini geli\u015ftirme f\u0131rsat\u0131 sunar. Program\u0131n temel amac\u0131, kat\u0131l\u0131mc\u0131lar\u0131n ilk ba\u015far\u0131l\u0131 Pull Request&#8217;lerini (PR) g\u00f6ndermelerini sa\u011flamakt\u0131r, \u00e7\u00fcnk\u00fc bu ilk ad\u0131m, a\u00e7\u0131k kaynak yolculu\u011funda b\u00fcy\u00fck bir motivasyon kayna\u011f\u0131d\u0131r.<\/p>\n<p>Peki, ilk PR neden bu kadar kritik? \u0130lk PR, sadece teknik bir ba\u015far\u0131 de\u011fil, ayn\u0131 zamanda psikolojik bir zaferdir. Bir yaz\u0131l\u0131mc\u0131 i\u00e7in, bir projenin kod taban\u0131na ilk kez kendi kodunu eklemek, &#8220;yapabilirim&#8221; hissini g\u00fc\u00e7lendirir. Bu, geli\u015ftiricinin kendi yeteneklerine olan inanc\u0131n\u0131 peki\u015ftirir ve onu daha karma\u015f\u0131k sorunlara meydan okumaya te\u015fvik eder. Ayr\u0131ca, ilk PR genellikle &#8220;good first issue&#8221; etiketli, nispeten daha kolay bir g\u00f6revi i\u00e7erir. Bu t\u00fcr g\u00f6revler, yeni ba\u015flayanlar\u0131n projenin kod taban\u0131na a\u015fina olmalar\u0131na, versiyon kontrol sistemleri (Git) ve GitHub i\u015f ak\u0131\u015f\u0131n\u0131 anlamalar\u0131na yard\u0131mc\u0131 olur. Mentorlar bu s\u00fcre\u00e7te rehberlik ederek, do\u011fru ad\u0131mlar\u0131n at\u0131lmas\u0131n\u0131 sa\u011flar ve olas\u0131 hatalar\u0131 en aza indirir.<\/p>\n<p>Djangonaut program\u0131n\u0131n ilk haftalar\u0131 (9.29 &#8211; 10.10), bu kritik ilk ad\u0131m\u0131 atmaya odaklan\u0131r. Bu d\u00f6nemde kat\u0131l\u0131mc\u0131lar, Django projesinin temel yap\u0131s\u0131n\u0131 \u00f6\u011frenir, geli\u015ftirme ortamlar\u0131n\u0131 kurar ve potansiyel ilk PR konular\u0131n\u0131 ke\u015ffederler. Program\u0131n mentorlar\u0131, bu s\u00fcre\u00e7te birebir destek sa\u011flayarak, kat\u0131l\u0131mc\u0131lar\u0131n kar\u015f\u0131la\u015ft\u0131\u011f\u0131 her t\u00fcrl\u00fc teknik veya kavramsal zorlu\u011fun \u00fcstesinden gelmelerine yard\u0131mc\u0131 olur. Bu yap\u0131land\u0131r\u0131lm\u0131\u015f destek, yeni ba\u015flayanlar\u0131n a\u00e7\u0131k kaynak katk\u0131 s\u00fcrecine daha g\u00fcvenle yakla\u015fmalar\u0131n\u0131 ve ilk PR deneyimlerini olumlu bir \u015fekilde tamamlamalar\u0131n\u0131 sa\u011flar. K\u0131sacas\u0131, Djangonaut program\u0131 ve ilk PR, bir yaz\u0131l\u0131mc\u0131n\u0131n a\u00e7\u0131k kaynak d\u00fcnyas\u0131ndaki yolculu\u011funun ba\u015flang\u0131\u00e7 noktas\u0131d\u0131r ve bu yolculukta at\u0131lan ilk ba\u015far\u0131l\u0131 ad\u0131m, gelecekteki bir\u00e7ok katk\u0131n\u0131n temelini olu\u015fturur.<\/p>\n<h2>Hafta 1: Ortam\u0131 Kurulum ve \u0130lk Ke\u015fifler Nas\u0131l Yap\u0131l\u0131r? (9.29 &#8211; 10.03)<\/h2>\n<p>Djangonaut program\u0131n\u0131n ilk haftas\u0131 (29 Eyl\u00fcl &#8211; 3 Ekim), a\u00e7\u0131k kaynak katk\u0131 yolculu\u011funuzun temelini atmakla ge\u00e7er. Bu s\u00fcre zarf\u0131nda, \u00f6ncelikli hedefiniz geli\u015ftirme ortam\u0131n\u0131z\u0131 do\u011fru bir \u015fekilde kurmak ve Django projesiyle ilk etkile\u015fimlerinizi ger\u00e7ekle\u015ftirmektir. Bu ad\u0131mlar, ilerleyen s\u00fcre\u00e7lerde sorunsuz bir deneyim ya\u015faman\u0131z i\u00e7in hayati \u00f6neme sahiptir. \u0130lk olarak, Git ve GitHub&#8217;\u0131 sisteminize kurmal\u0131s\u0131n\u0131z. Bu ara\u00e7lar, versiyon kontrol\u00fc ve a\u00e7\u0131k kaynak projelerine katk\u0131da bulunmak i\u00e7in vazge\u00e7ilmezdir.<\/p>\n<p>Git kurulumunu tamamlad\u0131ktan sonra, bir GitHub hesab\u0131 olu\u015fturman\u0131z ve temel Git komutlar\u0131na a\u015fina olman\u0131z gerekmektedir. Ard\u0131ndan, hedefledi\u011finiz Django projesini yerel bilgisayar\u0131n\u0131za klonlamal\u0131s\u0131n\u0131z. Bu genellikle resmi Django deposu veya Djangonaut program\u0131n\u0131n belirledi\u011fi \u00f6zel bir depo olabilir. Klonlama i\u015flemi, projenin t\u00fcm kod taban\u0131n\u0131 bilgisayar\u0131n\u0131za indirmenizi sa\u011flar. A\u015fa\u011f\u0131daki gibi bir komut kullanabilirsiniz:<\/p>\n<pre><code>\ngit clone https:\/\/github.com\/django\/django.git\n<\/pre>\n<p><\/code><\/p>\n<p>Proje klonland\u0131ktan sonra, Python tabanl\u0131 projelerde yayg\u0131n olarak kullan\u0131lan sanal bir ortam (virtual environment) olu\u015fturmak kritik bir ad\u0131md\u0131r. Sanal ortamlar, projenizin ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 sisteminizin genel Python kurulumundan izole etmenizi sa\u011flar. Bu, farkl\u0131 projeler aras\u0131nda ba\u011f\u0131ml\u0131l\u0131k \u00e7ak\u0131\u015fmalar\u0131n\u0131 \u00f6nler ve projenizin daha tutarl\u0131 bir \u015fekilde \u00e7al\u0131\u015fmas\u0131n\u0131 garanti eder. Virtual environment olu\u015fturma ve etkinle\u015ftirme ad\u0131mlar\u0131 \u015funlard\u0131r:<\/p>\n<pre><code>\npython3 -m venv venv\nsource venv\/bin\/activate  # Linux\/macOS\nvenv\\Scripts\\activate     # Windows\n<\/pre>\n<p><\/code><\/p>\n<p>Sanal ortam\u0131 etkinle\u015ftirdikten sonra, projenin gerektirdi\u011fi ba\u011f\u0131ml\u0131l\u0131klar\u0131 (Django dahil) y\u00fcklemeniz gerekir. Bu genellikle <code>requirements.txt<\/code> dosyas\u0131 \u00fczerinden yap\u0131l\u0131r:<\/p>\n<pre><code>\npip install -r requirements.txt\n<\/pre>\n<p><\/code><\/p>\n<p>Bu temel kurulum ad\u0131mlar\u0131n\u0131n ard\u0131ndan, projenin kod taban\u0131n\u0131 ke\u015ffetmeye ba\u015flayabilirsiniz. Genellikle \"good first issue\" (ba\u015flang\u0131\u00e7 i\u00e7in iyi konu) etiketli sorunlara odaklanman\u0131z \u00f6nerilir. Bu t\u00fcr sorunlar, genellikle k\u00fc\u00e7\u00fck hatalar\u0131 d\u00fczeltmeyi, dok\u00fcmantasyonu g\u00fcncellemeyi veya basit bir \u00f6zellik eklemeyi i\u00e7erir. Bu sayede projenin mimarisini ve katk\u0131 k\u0131lavuzlar\u0131n\u0131 daha iyi anlayabilirsiniz. Projenin <code>CONTRIBUTING.md<\/code> dosyas\u0131n\u0131 okumak, katk\u0131 s\u00fcre\u00e7leri hakk\u0131nda de\u011ferli bilgiler sunacakt\u0131r. \u0130lk hafta, bu ke\u015fif ve kurulum s\u00fcrecine odaklanarak, a\u00e7\u0131k kaynak yolculu\u011funuz i\u00e7in sa\u011flam bir temel olu\u015fturman\u0131z\u0131 sa\u011flar. Unutmay\u0131n, bu ilk ad\u0131mlar sab\u0131r ve dikkat gerektirir; ancak ba\u015far\u0131l\u0131 bir \u015fekilde tamamland\u0131\u011f\u0131nda, sizi ikinci haftaya g\u00fc\u00e7l\u00fc bir ba\u015flang\u0131\u00e7 yapmaya haz\u0131rlar.<\/p>\n<h2>Hafta 2: \u0130lk Pull Request (PR) Haz\u0131rl\u0131\u011f\u0131 ve G\u00f6nderimi Ad\u0131m Ad\u0131m (10.04 - 10.10)<\/h2>\n<p>Djangonaut program\u0131n\u0131n ikinci haftas\u0131 (4 Ekim - 10 Ekim), ilk Pull Request'inizi (PR) somutla\u015ft\u0131rma ve a\u00e7\u0131k kaynak d\u00fcnyas\u0131na ilk katk\u0131n\u0131z\u0131 yapma zaman\u0131d\u0131r. Bu s\u00fcre\u00e7, titiz ad\u0131mlar gerektirir ve mentorunuzun rehberli\u011fi, bu a\u015famada \u00e7ok de\u011ferlidir. \u0130lk olarak, \u00fczerinde \u00e7al\u0131\u015faca\u011f\u0131n\u0131z bir \"issue\" (sorun) se\u00e7melisiniz. Genellikle \"good first issue\" etiketli, nispeten basit bir g\u00f6revi se\u00e7mek, s\u00fcreci daha y\u00f6netilebilir k\u0131lar. Sorunu dikkatlice okuyun, anlamad\u0131\u011f\u0131n\u0131z noktalar\u0131 mentorunuza veya projenin toplulu\u011funa sorun.<\/p>\n<p>Sorunu anlad\u0131ktan sonra, ana depodan (main\/master branch) kendi \u00e7al\u0131\u015fma dal\u0131n\u0131z\u0131 (feature branch) olu\u015fturmal\u0131s\u0131n\u0131z. Bu, yapt\u0131\u011f\u0131n\u0131z de\u011fi\u015fikliklerin ana kod taban\u0131n\u0131 etkilemeden izole bir \u015fekilde geli\u015ftirilmesini sa\u011flar. Dal olu\u015fturma komutu \u015f\u00f6yledir:<\/p>\n<pre><code>\ngit checkout main\ngit pull origin main\ngit checkout -b my-first-pr-branch-name\n<\/pre>\n<p><\/code><\/p>\n<p>Art\u0131k bu yeni dal \u00fczerinde kod de\u011fi\u015fikliklerinizi yapmaya ba\u015flayabilirsiniz. Bu, bir hata d\u00fczeltmesi, dok\u00fcmantasyon g\u00fcncellemesi veya k\u00fc\u00e7\u00fck bir \u00f6zellik eklemesi olabilir. De\u011fi\u015fiklikleri yaparken projenin kodlama standartlar\u0131na (\u00f6rne\u011fin, PEP 8 kurallar\u0131na) uymaya \u00f6zen g\u00f6sterin. Kodunuzun temiz ve okunabilir olmas\u0131, PR'\u0131n\u0131z\u0131n daha h\u0131zl\u0131 incelenmesine yard\u0131mc\u0131 olacakt\u0131r. De\u011fi\u015fiklikler bitti\u011finde, yapt\u0131\u011f\u0131n\u0131z eklemelerin ve d\u00fczeltmelerin do\u011fru \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olmak i\u00e7in ilgili testleri \u00e7al\u0131\u015ft\u0131rmal\u0131s\u0131n\u0131z. Hatta m\u00fcmk\u00fcnse yeni testler yazarak yapt\u0131\u011f\u0131n\u0131z de\u011fi\u015fikli\u011fin gelecekte de do\u011fru \u00e7al\u0131\u015fmas\u0131n\u0131 garantileyin.<\/p>\n<pre><code>\n# \u00d6rne\u011fin, Django testlerini \u00e7al\u0131\u015ft\u0131rmak i\u00e7in\npython manage.py test my_app\n<\/pre>\n<p><\/code><\/p>\n<p>Testler ba\u015far\u0131l\u0131 olduktan sonra, de\u011fi\u015fikliklerinizi haz\u0131rlay\u0131n ve bir commit mesaj\u0131 ile kaydedin. Commit mesaj\u0131n\u0131z\u0131n a\u00e7\u0131klay\u0131c\u0131 ve anla\u015f\u0131l\u0131r olmas\u0131 \u00f6nemlidir. Ne yapt\u0131\u011f\u0131n\u0131z\u0131, neden yapt\u0131\u011f\u0131n\u0131z\u0131 ve hangi sorunu \u00e7\u00f6zd\u00fc\u011f\u00fcn\u00fcz\u00fc a\u00e7\u0131k\u00e7a belirtmelisiniz:<\/p>\n<pre><code>\ngit add .\ngit commit -m \"Fix: Added missing documentation for X feature (resolves #1234)\"\n<\/pre>\n<p><\/code><\/p>\n<p>Son olarak, bu de\u011fi\u015fiklikleri kendi GitHub deponuza (fork'unuzun ilgili dal\u0131na) itin ve oradan ana depoya bir Pull Request a\u00e7\u0131n. PR a\u00e7\u0131klaman\u0131zda, \u00e7\u00f6zd\u00fc\u011f\u00fcn\u00fcz sorunu, yapt\u0131\u011f\u0131n\u0131z de\u011fi\u015fiklikleri ve neden bu \u015fekilde bir \u00e7\u00f6z\u00fcm se\u00e7ti\u011finizi detayl\u0131ca anlat\u0131n. Gerekirse ekran g\u00f6r\u00fcnt\u00fcleri veya kod \u00f6rnekleri ekleyin. Mentorunuz ve di\u011fer proje bak\u0131mc\u0131lar\u0131, PR'\u0131n\u0131z\u0131 inceleyecek ve geri bildirim sa\u011flayacakt\u0131r. Bu geri bildirimleri dikkate alarak de\u011fi\u015fiklikler yapmaya ve PR'\u0131n\u0131z\u0131 iyile\u015ftirmeye haz\u0131r olun. Bu interaktif s\u00fcre\u00e7, \u00f6\u011frenmenin en de\u011ferli yollar\u0131ndan biridir ve a\u00e7\u0131k kaynak toplulu\u011funun kalbinde yer al\u0131r.<\/p>\n<div class=\"tip-box\">\n  Uzman \u0130pucu: \u0130lk PR'\u0131n\u0131zda, projenin mevcut testlerini \u00e7al\u0131\u015ft\u0131rmay\u0131 ve m\u00fcmk\u00fcnse kendi testlerinizi yazmay\u0131 ihmal etmeyin. Testler, kodunuzun g\u00fcvenilirli\u011fini kan\u0131tlaman\u0131n en iyi yoludur ve PR'\u0131n\u0131z\u0131n kabul edilme \u015fans\u0131n\u0131 art\u0131r\u0131r.\n<\/div>\n<h2>Etkili Bir Pull Request \u0130\u00e7in \u0130pu\u00e7lar\u0131 ve En \u0130yi Uygulamalar Nelerdir?<\/h2>\n<p>Etkili bir Pull Request (PR) g\u00f6ndermek, sadece kod yazmakla kalmay\u0131p, ayn\u0131 zamanda projenin bak\u0131mc\u0131lar\u0131yla ve di\u011fer geli\u015ftiricilerle sorunsuz bir ileti\u015fim s\u00fcreci y\u00fcr\u00fctmeyi de gerektirir. PR'\u0131n\u0131z\u0131n kabul edilme olas\u0131l\u0131\u011f\u0131n\u0131 art\u0131rmak ve daha verimli bir inceleme s\u00fcreci sa\u011flamak i\u00e7in baz\u0131 en iyi uygulamalar mevcuttur. \u00d6ncelikle, <strong>temiz ve okunabilir kod<\/strong> yazmaya \u00f6zen g\u00f6sterin. Python projelerinde bu, PEP 8 stil rehberine uygun kod yazmak anlam\u0131na gelir. \u0130simlendirme kurallar\u0131na uymak, yeterli yorumlar eklemek ve karma\u015f\u0131k mant\u0131klar\u0131 basitle\u015ftirmek, kodunuzun anla\u015f\u0131labilirli\u011fini art\u0131racakt\u0131r. Unutmay\u0131n, kodunuzu sadece bilgisayarlar de\u011fil, insanlar da okuyacakt\u0131r.<\/p>\n<p>\u0130kincisi, <strong>test kapsam\u0131n\u0131 ciddiye al\u0131n<\/strong>. Yapt\u0131\u011f\u0131n\u0131z her de\u011fi\u015fikli\u011fin, ilgili testler taraf\u0131ndan kapsand\u0131\u011f\u0131ndan emin olun. E\u011fer mevcut testler yapt\u0131\u011f\u0131n\u0131z de\u011fi\u015fikli\u011fi kapsam\u0131yorsa, yeni testler ekleyin. Testler, kodunuzun beklendi\u011fi gibi \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 kan\u0131tlaman\u0131n yan\u0131 s\u0131ra, gelecekteki de\u011fi\u015fikliklerin mevcut i\u015flevselli\u011fi bozmas\u0131n\u0131 \u00f6nler. Projelerin bir\u00e7o\u011fu, PR'lar\u0131n kabul edilmesi i\u00e7in belirli bir test kapsam\u0131 y\u00fczdesi ister. Bu nedenle, testler \u00fczerinde \u00e7al\u0131\u015fmak, sadece kodunuzu g\u00fcvence alt\u0131na almakla kalmaz, ayn\u0131 zamanda PR'\u0131n\u0131z\u0131n incelenme s\u00fcresini de k\u0131salt\u0131r.<\/p>\n<p>\u00dc\u00e7\u00fcnc\u00fcs\u00fc, <strong>etkili ileti\u015fim kurun<\/strong>. PR a\u00e7\u0131klaman\u0131z, yapt\u0131\u011f\u0131n\u0131z de\u011fi\u015fiklikleri, \u00e7\u00f6zd\u00fc\u011f\u00fcn\u00fcz sorunu ve bu \u00e7\u00f6z\u00fcm\u00fcn neden bu \u015fekilde tasarland\u0131\u011f\u0131n\u0131 a\u00e7\u0131k\u00e7a belirtmelidir. PR'\u0131n\u0131z\u0131 a\u00e7t\u0131\u011f\u0131n\u0131zda, projenin issue takip sistemindeki ilgili sorunu (issue) referans vermeyi unutmay\u0131n (\u00f6rn: \"Fixes #123\" veya \"Resolves #456\"). Bu, bak\u0131mc\u0131lar\u0131n ba\u011flam\u0131 kolayca anlamas\u0131na yard\u0131mc\u0131 olur. Geri bildirim ald\u0131\u011f\u0131n\u0131zda, a\u00e7\u0131k fikirli olun ve yap\u0131c\u0131 ele\u015ftirilere yan\u0131t verin. Tart\u0131\u015fmal\u0131 noktalar varsa, neden kendi \u00e7\u00f6z\u00fcm\u00fcn\u00fcz\u00fc se\u00e7ti\u011finizi mant\u0131kl\u0131 bir \u015fekilde a\u00e7\u0131klay\u0131n. Nezaket ve profesyonellik, a\u00e7\u0131k kaynak topluluklar\u0131nda her zaman takdir edilir.<\/p>\n<p>Son olarak, <strong>PR'\u0131n\u0131z\u0131 k\u00fc\u00e7\u00fck tutun<\/strong>. Tek bir PR'da birden fazla sorunu \u00e7\u00f6zmeye \u00e7al\u0131\u015fmak yerine, her bir PR'\u0131 tek bir amaca odaklarsan\u0131z, inceleme s\u00fcreci \u00e7ok daha kolay olacakt\u0131r. K\u00fc\u00e7\u00fck ve odaklanm\u0131\u015f PR'lar, bak\u0131mc\u0131lar\u0131n de\u011fi\u015fiklikleri daha h\u0131zl\u0131 anlamas\u0131na ve incelemesine olanak tan\u0131r. E\u011fer b\u00fcy\u00fck bir \u00f6zellik \u00fczerinde \u00e7al\u0131\u015f\u0131yorsan\u0131z, bunu mant\u0131ksal olarak k\u00fc\u00e7\u00fck par\u00e7alara b\u00f6lerek birden fazla PR \u015feklinde g\u00f6ndermeyi d\u00fc\u015f\u00fcnebilirsiniz. Bu ipu\u00e7lar\u0131, Djangonaut program\u0131 ve \u00f6tesindeki a\u00e7\u0131k kaynak yolculu\u011funuzda size rehberlik edecek ve daha ba\u015far\u0131l\u0131 katk\u0131larda bulunman\u0131z\u0131 sa\u011flayacakt\u0131r.<\/p>\n<h2>Mobil Uyumlu Geli\u015ftirme: PR S\u00fcrecinde Dikkat Edilmesi Gerekenler<\/h2>\n<p>Her ne kadar Djangonaut program\u0131 ve Django a\u011f\u0131rl\u0131kl\u0131 olarak arka u\u00e7 (backend) geli\u015ftirmeye odaklansa da, g\u00fcn\u00fcm\u00fcz web uygulamalar\u0131nda mobil uyumluluk, kullan\u0131c\u0131 deneyiminin vazge\u00e7ilmez bir par\u00e7as\u0131d\u0131r. Django projeleri genellikle y\u00f6netim panelleri veya \u00f6zel \u015fablonlar arac\u0131l\u0131\u011f\u0131yla kullan\u0131c\u0131 aray\u00fczleri sunabilir. Dolay\u0131s\u0131yla, bir Pull Request (PR) g\u00f6nderirken, yapt\u0131\u011f\u0131n\u0131z de\u011fi\u015fikliklerin potansiyel olarak etkileyebilece\u011fi frontend bile\u015fenlerinin mobil uyumlulu\u011funu da g\u00f6z \u00f6n\u00fcnde bulundurmak, genel bir geli\u015ftirici olarak profesyonelli\u011finizi yans\u0131t\u0131r ve projenin kalitesine katk\u0131da bulunur.<\/p>\n<p>Mobil uyumlu bir yakla\u015f\u0131m benimsemek, projenin kullan\u0131c\u0131 aray\u00fcz\u00fc (UI) veya \u015fablonlar\u0131yla ilgili bir PR haz\u0131rlarken \u00f6zellikle \u00f6nemlidir. Frontend de\u011fi\u015fiklikleri yaparken, duyarl\u0131 tasar\u0131m ilkelerini (responsive design principles) uygulamak gereklidir. Bu, farkl\u0131 ekran boyutlar\u0131na ve cihazlara (cep telefonlar\u0131, tabletler, masa\u00fcst\u00fc bilgisayarlar) uyum sa\u011flayabilen kullan\u0131c\u0131 aray\u00fczleri olu\u015fturmak anlam\u0131na gelir. CSS Media Query'ler, bu uyumlulu\u011fu sa\u011flaman\u0131n temel yollar\u0131ndan biridir. \u00d6rne\u011fin, bir liste veya tablo yap\u0131s\u0131n\u0131 mobil ekranda daha d\u00fczenli g\u00f6stermek i\u00e7in a\u015fa\u011f\u0131daki gibi bir CSS kodu kullanabilirsiniz:<\/p>\n<pre><code class=\"language-css\">\n\/* Genel stil *\/\n.container {\n    width: 90%;\n    margin: 0 auto;\n    padding: 20px;\n}\n\n\/* K\u00fc\u00e7\u00fck ekranlar i\u00e7in (mobil cihazlar) *\/\n@media screen and (max-width: 768px) {\n    .container {\n        width: 100%;\n        padding: 10px;\n    }\n    .my-table {\n        display: block;\n        width: 100%;\n        overflow-x: auto; \/* Yatay kayd\u0131rma \u00e7ubu\u011fu *\/\n        -webkit-overflow-scrolling: touch;\n    }\n    .my-table thead, .my-table tbody, .my-table th, .my-table td, .my-table tr {\n        display: block; \/* Her h\u00fccreyi blok element yap *\/\n    }\n    .my-table th, .my-table td {\n        border-bottom: 1px solid #ddd;\n        text-align: left;\n        padding: 8px;\n        position: relative;\n        padding-left: 50%; \/* Etiket i\u00e7in yer a\u00e7 *\/\n    }\n    .my-table td::before {\n        content: attr(data-label); \/* data-label \u00f6zelli\u011finden etiketi al *\/\n        position: absolute;\n        left: 6px;\n        width: 45%;\n        padding-right: 10px;\n        white-space: nowrap;\n        text-align: left;\n        font-weight: bold;\n    }\n}\n\n\/* Orta ekranlar i\u00e7in (tabletler) *\/\n@media screen and (min-width: 769px) and (max-width: 1024px) {\n    .container {\n        width: 95%;\n    }\n}\n<\/pre>\n<p><\/code><\/p>\n<p>Yukar\u0131daki \u00f6rnekte, <code>.my-table<\/code> s\u0131n\u0131f\u0131na sahip bir tablonun mobil cihazlarda nas\u0131l daha okunabilir hale getirildi\u011fi g\u00f6sterilmi\u015ftir. Her s\u00fctunun bir blok element gibi davranmas\u0131 ve ba\u015fl\u0131klar\u0131n <code>data-label<\/code> \u00f6zniteli\u011fi arac\u0131l\u0131\u011f\u0131yla h\u00fccre i\u00e7inde g\u00f6sterilmesi, k\u00fc\u00e7\u00fck ekranlarda yatay kayd\u0131rmaya gerek kalmadan tablonun verimli bir \u015fekilde g\u00f6r\u00fcnt\u00fclenmesini sa\u011flar. Bu t\u00fcr detaylar, kullan\u0131c\u0131 deneyimini \u00f6nemli \u00f6l\u00e7\u00fcde iyile\u015ftirir.<\/p>\n<p>Bir PR'da frontend de\u011fi\u015fiklikleri yaparken, taray\u0131c\u0131 uyumlulu\u011funu (cross-browser compatibility) ve eri\u015filebilirli\u011fi (accessibility) de g\u00f6z \u00f6n\u00fcnde bulundurmal\u0131s\u0131n\u0131z. Farkl\u0131 taray\u0131c\u0131larda (Chrome, Firefox, Safari, Edge) ve farkl\u0131 cihazlarda (iOS, Android) de\u011fi\u015fikliklerinizi test etmek \u00f6nemlidir. Klavye navigasyonu, ekran okuyucu uyumlulu\u011fu gibi eri\u015filebilirlik standartlar\u0131na uymak, uygulaman\u0131z\u0131n daha geni\u015f bir kullan\u0131c\u0131 kitlesi taraf\u0131ndan kullan\u0131lmas\u0131n\u0131 sa\u011flar. Bu sayede, g\u00f6nderdi\u011finiz PR sadece fonksiyonel olmakla kalmaz, ayn\u0131 zamanda kullan\u0131c\u0131 dostu ve kapsay\u0131c\u0131 bir deneyim sunar. Mobil uyumlu geli\u015ftirmeye dikkat etmek, modern web geli\u015ftiricili\u011finin temel bir becerisidir ve a\u00e7\u0131k kaynak katk\u0131lar\u0131n\u0131z\u0131n de\u011ferini art\u0131r\u0131r.<\/p>\n<h2>Ger\u00e7ek D\u00fcnya Senaryosu: Djangonaut Deneyimleri ve Kazan\u0131mlar\u0131<\/h2>\n<p>Djangonaut program\u0131, kat\u0131l\u0131mc\u0131lar\u0131n ger\u00e7ek d\u00fcnya a\u00e7\u0131k kaynak deneyimi kazanmalar\u0131 i\u00e7in m\u00fckemmel bir platform sunar. Bu programda yer alan bir geli\u015ftiricinin deneyimini ele alal\u0131m: Ay\u015fe, temel Python bilgisi olan ancak a\u00e7\u0131k kaynak d\u00fcnyas\u0131na hi\u00e7 katk\u0131da bulunmam\u0131\u015f hevesli bir yaz\u0131l\u0131mc\u0131yd\u0131. Djangonaut program\u0131na kat\u0131ld\u0131ktan sonra, ilk haftas\u0131nda mentorunun y\u00f6nlendirmesiyle Django projesinin ana deposunu klonlad\u0131, sanal ortam\u0131n\u0131 kurdu ve projenin dok\u00fcmantasyonunu incelemeye ba\u015flad\u0131. Bu s\u00fcre\u00e7te, projenin genel yap\u0131s\u0131n\u0131 ve katk\u0131 k\u0131lavuzlar\u0131n\u0131 \u00f6\u011frenmekle kalmad\u0131, ayn\u0131 zamanda Django'nun y\u00f6netim paneli gibi temel bile\u015fenleriyle de tan\u0131\u015ft\u0131.<\/p>\n<p>\u0130kinci haftas\u0131nda, Ay\u015fe, GitHub'daki \"good first issue\" etiketli sorunlar\u0131 ara\u015ft\u0131r\u0131rken, Django'nun <code>admin<\/code> panelindeki bir modelin yard\u0131m metninde k\u00fc\u00e7\u00fck bir yaz\u0131m hatas\u0131 oldu\u011funu fark etti. Bu, ilk PR'\u0131 i\u00e7in ideal bir f\u0131rsatt\u0131. Hemen yeni bir dal (branch) olu\u015fturdu, ilgili dosyay\u0131 buldu ve yaz\u0131m hatas\u0131n\u0131 d\u00fczeltti. De\u011fi\u015fikli\u011fin sadece dok\u00fcmantasyonla ilgili olmas\u0131, test yazma karma\u015fas\u0131ndan onu ilk etapta kurtard\u0131 ancak yine de projenin genel testlerini \u00e7al\u0131\u015ft\u0131rmay\u0131 ve kendi de\u011fi\u015fikli\u011finin mevcut i\u015flevselli\u011fi etkilemedi\u011finden emin olmay\u0131 ihmal etmedi. Bir commit mesaj\u0131 yazd\u0131 ve ard\u0131ndan bir Pull Request olu\u015fturarak a\u00e7\u0131klamas\u0131n\u0131 detayland\u0131rd\u0131.<\/p>\n<p>Ay\u015fe'nin PR'\u0131, projenin bak\u0131mc\u0131lar\u0131ndan birinin incelemesine tak\u0131ld\u0131. Bak\u0131mc\u0131, k\u00fc\u00e7\u00fck bir formatlama \u00f6nerisinde bulundu ve Ay\u015fe bu geri bildirimi h\u0131zla uygulayarak PR'\u0131n\u0131 g\u00fcncelledi. Bu etkile\u015fim, Ay\u015fe'ye geri bildirimi nas\u0131l y\u00f6netece\u011fini ve a\u00e7\u0131k kaynak s\u00fcre\u00e7lerinde ileti\u015fimin \u00f6nemini \u00f6\u011fretti. Sonunda, Ay\u015fe'nin ilk PR'\u0131 ba\u015far\u0131l\u0131 bir \u015fekilde birle\u015ftirildi (merged). Bu deneyim, Ay\u015fe i\u00e7in sadece bir kod de\u011fi\u015fikli\u011fi yapmaktan \u00e7ok daha fazlas\u0131yd\u0131. \u00d6zg\u00fcvenini art\u0131rd\u0131, Git ve GitHub i\u015f ak\u0131\u015f\u0131n\u0131 ger\u00e7ek bir senaryoda uygulamas\u0131n\u0131 sa\u011flad\u0131 ve Django toplulu\u011funun bir par\u00e7as\u0131 olma hissini tatt\u0131rd\u0131.<\/p>\n<p>Djangonaut program\u0131na kat\u0131lanlar, Ay\u015fe gibi bir\u00e7ok kazan\u0131m elde ederler:<\/p>\n<table border=\"1\">\n<thead>\n<tr>\n<th>Kazan\u0131m Alan\u0131<\/th>\n<th>Detaylar<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Teknik Beceriler<\/strong><\/td>\n<td>Git, GitHub, versiyon kontrol, Django kod taban\u0131 hakk\u0131nda derinlemesine bilgi, test yazma pratikleri.<\/td>\n<\/tr>\n<tr>\n<td><strong>Topluluk Etkile\u015fimi<\/strong><\/td>\n<td>Mentorluk deste\u011fi, di\u011fer geli\u015ftiricilerle ileti\u015fim, geri bildirim k\u00fclt\u00fcr\u00fc, a\u011f kurma f\u0131rsatlar\u0131.<\/td>\n<\/tr>\n<tr>\n<td><strong>Problem \u00c7\u00f6zme<\/strong><\/td>\n<td>Ger\u00e7ek sorunlar\u0131 tan\u0131mlama, analiz etme ve \u00e7\u00f6z\u00fcm \u00fcretme becerisi.<\/td>\n<\/tr>\n<tr>\n<td><strong>\u00d6zge\u00e7mi\u015f Katk\u0131s\u0131<\/strong><\/td>\n<td>A\u00e7\u0131k kaynak katk\u0131lar\u0131, i\u015f ba\u015fvurular\u0131nda \u00f6nemli bir referans ve profesyonel geli\u015fim g\u00f6stergesi.<\/td>\n<\/tr>\n<tr>\n<td><strong>Motivasyon ve \u00d6zg\u00fcven<\/strong><\/td>\n<td>\u0130lk ba\u015far\u0131l\u0131 katk\u0131 ile gelen \"ba\u015farma hissi\", gelecekteki projelere kat\u0131lma iste\u011fi.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Bu ger\u00e7ek d\u00fcnya senaryolar\u0131 ve kazan\u0131mlar, Djangonaut program\u0131n\u0131n sadece kodlama becerilerini de\u011fil, ayn\u0131 zamanda bir geli\u015ftiricinin genel profesyonel yolculu\u011funu nas\u0131l zenginle\u015ftirdi\u011fini a\u00e7\u0131k\u00e7a g\u00f6stermektedir. \u0130lk PR, bu yolculu\u011fun sadece ba\u015flang\u0131c\u0131d\u0131r.<\/p>\n<h2>Sonu\u00e7: A\u00e7\u0131k Kaynak Yolculu\u011funuzda Sonraki Ad\u0131mlar Neler Olmal\u0131?<\/h2>\n<p>Djangonaut program\u0131 kapsam\u0131nda ilk Pull Request'inizi ba\u015far\u0131yla g\u00f6ndermek, a\u00e7\u0131k kaynak d\u00fcnyas\u0131na att\u0131\u011f\u0131n\u0131z ilk ve en \u00f6nemli ad\u0131md\u0131r. Bu s\u00fcre\u00e7te hem teknik becerilerinizi geli\u015ftirdiniz hem de a\u00e7\u0131k kaynak toplulu\u011fuyla etkile\u015fim kurma deneyimi kazand\u0131n\u0131z. Art\u0131k Git, GitHub, Python ve Django'nun temel i\u015f ak\u0131\u015flar\u0131na hakimsiniz. Bu, sadece bir ba\u015flang\u0131\u00e7t\u0131r ve \u00f6n\u00fcn\u00fczde ke\u015ffedilecek bir\u00e7ok yeni f\u0131rsat bulunmaktad\u0131r.<\/p>\n<p>\u0130lk PR'\u0131n\u0131z\u0131n kabul edilmesiyle gelen motivasyonla, a\u00e7\u0131k kaynak yolculu\u011funuza devam etmelisiniz. Bir sonraki ad\u0131m, daha karma\u015f\u0131k \"issue\"lara y\u00f6nelmek olabilir. \u00d6rne\u011fin, k\u00fc\u00e7\u00fck bir \u00f6zellik eklemek, performans iyile\u015ftirmeleri yapmak veya daha derinlemesine bir hata ay\u0131klama s\u00fcrecine dahil olmak gibi. Unutmay\u0131n, her katk\u0131, sizi daha iyi bir yaz\u0131l\u0131mc\u0131 yapar. Ayr\u0131ca, projenin di\u011fer kat\u0131l\u0131mc\u0131lar\u0131yla ileti\u015fimi s\u00fcrd\u00fcrmek, projenin Slack veya Discord kanallar\u0131na kat\u0131larak aktif olmak, yeni projeler ve fikirler hakk\u0131nda bilgi edinmenizi sa\u011flar. Bu, sizin i\u00e7in yeni \u00f6\u011frenme ve i\u015f birli\u011fi kap\u0131lar\u0131 a\u00e7acakt\u0131r.<\/p>\n<p>Djangonaut program\u0131 sona erdi\u011finde bile, mentorlar\u0131n\u0131zla ileti\u015fimi s\u00fcrd\u00fcrmeye \u00e7al\u0131\u015f\u0131n. Onlar\u0131n deneyimleri ve tavsiyeleri, kariyerinizde size yol g\u00f6sterebilir. A\u00e7\u0131k kaynak, s\u00fcrekli \u00f6\u011frenme ve adaptasyon gerektiren dinamik bir aland\u0131r. Yeni teknolojileri takip etmek, kodlama standartlar\u0131n\u0131 \u00f6\u011frenmek ve farkl\u0131 projeleri incelemek, sizi daha yetkin bir geli\u015ftirici yapacakt\u0131r. \u00d6zetle, ilk PR'\u0131n\u0131z bir maratonun ba\u015flang\u0131\u00e7 \u00e7izgisidir. Sab\u0131r, azim ve s\u00fcrekli \u00f6\u011frenme ile bu yolculukta ba\u015far\u0131l\u0131 olabilir ve yaz\u0131l\u0131m d\u00fcnyas\u0131na kal\u0131c\u0131 katk\u0131larda bulunabilirsiniz. A\u00e7\u0131k kaynak toplulu\u011fu sizi kollar\u0131n\u0131 a\u00e7arak bekliyor!<\/p>\n<h3>S\u0131k\u00e7a Sorulan Sorular (SSS)<\/h3>\n<p>A\u00e7\u0131k kaynak projelerine ilk kez katk\u0131da bulunurken akla tak\u0131lan baz\u0131 yayg\u0131n sorular ve yan\u0131tlar\u0131 a\u015fa\u011f\u0131dad\u0131r:<\/p>\n<ul>\n<li>\n        <strong>S: \u0130lk PR'\u0131m ne kadar karma\u015f\u0131k olmal\u0131?<\/strong><br \/>\n        <strong>C:<\/strong> \u0130lk PR'\u0131n\u0131z i\u00e7in \"good first issue\" etiketli, genellikle dok\u00fcmantasyon d\u00fczeltmeleri, k\u00fc\u00e7\u00fck yaz\u0131m hatalar\u0131 veya basit bir hata d\u00fczeltmesi gibi nispeten kolay g\u00f6revleri se\u00e7meniz \u00f6nerilir. Bu, projenin i\u015f ak\u0131\u015f\u0131na ve katk\u0131 s\u00fcre\u00e7lerine a\u015fina olman\u0131z\u0131 sa\u011flar.\n    <\/li>\n<li>\n        <strong>S: Djangonaut mentorlar\u0131 ne kadar yard\u0131mc\u0131 olur?<\/strong><br \/>\n        <strong>C:<\/strong> Mentorlar, Djangonaut program\u0131n\u0131n temel direkleridir. Her ad\u0131mda size rehberlik eder, sorular\u0131n\u0131z\u0131 yan\u0131tlar, kodunuzu inceler ve geri bildirim sa\u011flar. Onlarla aktif ileti\u015fim kurmak, \u00f6\u011frenme s\u00fcrecinizi h\u0131zland\u0131r\u0131r ve ba\u015far\u0131l\u0131 bir ilk PR i\u00e7in kritik \u00f6neme sahiptir.\n    <\/li>\n<li>\n        <strong>S: A\u00e7\u0131k kaynak projelerine katk\u0131da bulunmak i\u00e7in kodlama bilgim yeterli mi?<\/strong><br \/>\n        <strong>C:<\/strong> Temel Python ve Git bilgisi, Django'nun temel kavramlar\u0131na a\u015final\u0131k genellikle yeterlidir. Djangonaut gibi programlar, bu bilgileri pratik deneyimle peki\u015ftirmeniz i\u00e7in tasarlanm\u0131\u015ft\u0131r. \u00d6nemli olan \u00f6\u011frenmeye a\u00e7\u0131k olmak ve yard\u0131m istemekten \u00e7ekinmemektir.\n    <\/li>\n<li>\n        <strong>S: Hangi ara\u00e7lar\u0131 kullanmal\u0131y\u0131m?<\/strong><br \/>\n        <strong>C:<\/strong> Bir kod d\u00fczenleyici (VS Code, PyCharm), Git (versiyon kontrol\u00fc i\u00e7in), GitHub (PR g\u00f6ndermek ve depoyu y\u00f6netmek i\u00e7in) ve sanal ortam y\u00f6neticileri (venv, virtualenv) temel ara\u00e7lard\u0131r. Ayr\u0131ca projenin kendi testlerini ve lint ara\u00e7lar\u0131n\u0131 da kullanmal\u0131s\u0131n\u0131z.\n    <\/li>\n<li>\n        <strong>S: Tak\u0131ld\u0131\u011f\u0131mda ne yapmal\u0131y\u0131m?<\/strong><br \/>\n        <strong>C:<\/strong> \u00d6ncelikle projenin dok\u00fcmantasyonunu ve katk\u0131 k\u0131lavuzlar\u0131n\u0131 dikkatlice inceleyin. E\u011fer hala \u00e7\u00f6z\u00fcm bulam\u0131yorsan\u0131z, mentorunuza dan\u0131\u015f\u0131n veya projenin Slack\/Discord kanallar\u0131nda ya da GitHub tart\u0131\u015fmalar\u0131nda yard\u0131m isteyin. A\u00e7\u0131k kaynak topluluklar\u0131 genellikle \u00e7ok yard\u0131mseverdir.\n    <\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"A\u00e7\u0131k kaynak d\u00fcnyas\u0131na ad\u0131m atmak isteyen bir yaz\u0131l\u0131mc\u0131 m\u0131s\u0131n\u0131z? \u0130lk katk\u0131n\u0131z\u0131 yaparken kar\u015f\u0131la\u015ft\u0131\u011f\u0131n\u0131z belirsizlikler ve teknik zorluklar sizi&hellip;","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1],"tags":[],"class_list":{"0":"post-31749","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Djangonaut \u0130lk PR: Temel Ad\u0131mlar ve Ba\u015flang\u0131\u00e7 Haftalar\u0131<\/title>\n<meta name=\"description\" content=\"A\u00e7\u0131k kaynak d\u00fcnyas\u0131na ad\u0131m atmak isteyen bir yaz\u0131l\u0131mc\u0131 m\u0131s\u0131n\u0131z? \u0130lk katk\u0131n\u0131z\u0131 yaparken kar\u015f\u0131la\u015ft\u0131\u011f\u0131n\u0131z belirsizlikler ve teknik zorluklar sizi y\u0131ld\u0131rmas\u0131n. Bu makalede, Djangonaut program\u0131 kapsam\u0131nda ilk Pull Request&#039;inizi (PR) nas\u0131l haz\u0131rlayaca\u011f\u0131n\u0131z\u0131, geli\u015ftirme ortam\u0131n\u0131z\u0131 nas\u0131l kuraca\u011f\u0131n\u0131z\u0131 ve 9.29 - 10.10 tarihleri aras\u0131ndaki ba\u015flang\u0131\u00e7 haftalar\u0131nda hangi ad\u0131mlar\u0131 izlemeniz gerekti\u011fini ayr\u0131nt\u0131l\u0131 bir \u015fekilde inceleyece\u011fiz. Bu rehber, hem yeni ba\u015flayanlar hem de bilgilerini tazelemek isteyen deneyimli geli\u015ftiriciler i\u00e7in de\u011ferli bilgiler sunuyor.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/djangonaut-ilk-pr-temel-adimlar-ve-baslangic-haftalari\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Djangonaut \u0130lk PR: Temel Ad\u0131mlar ve Ba\u015flang\u0131\u00e7 Haftalar\u0131\" \/>\n<meta property=\"og:description\" content=\"A\u00e7\u0131k kaynak d\u00fcnyas\u0131na ad\u0131m atmak isteyen bir yaz\u0131l\u0131mc\u0131 m\u0131s\u0131n\u0131z? \u0130lk katk\u0131n\u0131z\u0131 yaparken kar\u015f\u0131la\u015ft\u0131\u011f\u0131n\u0131z belirsizlikler ve teknik zorluklar sizi y\u0131ld\u0131rmas\u0131n. Bu makalede, Djangonaut program\u0131 kapsam\u0131nda ilk Pull Request&#039;inizi (PR) nas\u0131l haz\u0131rlayaca\u011f\u0131n\u0131z\u0131, geli\u015ftirme ortam\u0131n\u0131z\u0131 nas\u0131l kuraca\u011f\u0131n\u0131z\u0131 ve 9.29 - 10.10 tarihleri aras\u0131ndaki ba\u015flang\u0131\u00e7 haftalar\u0131nda hangi ad\u0131mlar\u0131 izlemeniz gerekti\u011fini ayr\u0131nt\u0131l\u0131 bir \u015fekilde inceleyece\u011fiz. Bu rehber, hem yeni ba\u015flayanlar hem de bilgilerini tazelemek isteyen deneyimli geli\u015ftiriciler i\u00e7in de\u011ferli bilgiler sunuyor.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/djangonaut-ilk-pr-temel-adimlar-ve-baslangic-haftalari\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-13T12:31:20+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"20 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/djangonaut-ilk-pr-temel-adimlar-ve-baslangic-haftalari\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/djangonaut-ilk-pr-temel-adimlar-ve-baslangic-haftalari\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Djangonaut \u0130lk PR: Temel Ad\u0131mlar ve Ba\u015flang\u0131\u00e7 Haftalar\u0131\",\"datePublished\":\"2025-10-13T12:31:20+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/djangonaut-ilk-pr-temel-adimlar-ve-baslangic-haftalari\/\"},\"wordCount\":3916,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/djangonaut-ilk-pr-temel-adimlar-ve-baslangic-haftalari\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/djangonaut-ilk-pr-temel-adimlar-ve-baslangic-haftalari\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/djangonaut-ilk-pr-temel-adimlar-ve-baslangic-haftalari\/\",\"name\":\"Djangonaut \u0130lk PR: Temel Ad\u0131mlar ve Ba\u015flang\u0131\u00e7 Haftalar\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-10-13T12:31:20+00:00\",\"description\":\"A\u00e7\u0131k kaynak d\u00fcnyas\u0131na ad\u0131m atmak isteyen bir yaz\u0131l\u0131mc\u0131 m\u0131s\u0131n\u0131z? \u0130lk katk\u0131n\u0131z\u0131 yaparken kar\u015f\u0131la\u015ft\u0131\u011f\u0131n\u0131z belirsizlikler ve teknik zorluklar sizi y\u0131ld\u0131rmas\u0131n. Bu makalede, Djangonaut program\u0131 kapsam\u0131nda ilk Pull Request'inizi (PR) nas\u0131l haz\u0131rlayaca\u011f\u0131n\u0131z\u0131, geli\u015ftirme ortam\u0131n\u0131z\u0131 nas\u0131l kuraca\u011f\u0131n\u0131z\u0131 ve 9.29 - 10.10 tarihleri aras\u0131ndaki ba\u015flang\u0131\u00e7 haftalar\u0131nda hangi ad\u0131mlar\u0131 izlemeniz gerekti\u011fini ayr\u0131nt\u0131l\u0131 bir \u015fekilde inceleyece\u011fiz. Bu rehber, hem yeni ba\u015flayanlar hem de bilgilerini tazelemek isteyen deneyimli geli\u015ftiriciler i\u00e7in de\u011ferli bilgiler sunuyor.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/djangonaut-ilk-pr-temel-adimlar-ve-baslangic-haftalari\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/djangonaut-ilk-pr-temel-adimlar-ve-baslangic-haftalari\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/djangonaut-ilk-pr-temel-adimlar-ve-baslangic-haftalari\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Djangonaut \u0130lk PR: Temel Ad\u0131mlar ve Ba\u015flang\u0131\u00e7 Haftalar\u0131\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Djangonaut \u0130lk PR: Temel Ad\u0131mlar ve Ba\u015flang\u0131\u00e7 Haftalar\u0131","description":"A\u00e7\u0131k kaynak d\u00fcnyas\u0131na ad\u0131m atmak isteyen bir yaz\u0131l\u0131mc\u0131 m\u0131s\u0131n\u0131z? \u0130lk katk\u0131n\u0131z\u0131 yaparken kar\u015f\u0131la\u015ft\u0131\u011f\u0131n\u0131z belirsizlikler ve teknik zorluklar sizi y\u0131ld\u0131rmas\u0131n. Bu makalede, Djangonaut program\u0131 kapsam\u0131nda ilk Pull Request'inizi (PR) nas\u0131l haz\u0131rlayaca\u011f\u0131n\u0131z\u0131, geli\u015ftirme ortam\u0131n\u0131z\u0131 nas\u0131l kuraca\u011f\u0131n\u0131z\u0131 ve 9.29 - 10.10 tarihleri aras\u0131ndaki ba\u015flang\u0131\u00e7 haftalar\u0131nda hangi ad\u0131mlar\u0131 izlemeniz gerekti\u011fini ayr\u0131nt\u0131l\u0131 bir \u015fekilde inceleyece\u011fiz. Bu rehber, hem yeni ba\u015flayanlar hem de bilgilerini tazelemek isteyen deneyimli geli\u015ftiriciler i\u00e7in de\u011ferli bilgiler sunuyor.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/djangonaut-ilk-pr-temel-adimlar-ve-baslangic-haftalari\/","og_locale":"tr_TR","og_type":"article","og_title":"Djangonaut \u0130lk PR: Temel Ad\u0131mlar ve Ba\u015flang\u0131\u00e7 Haftalar\u0131","og_description":"A\u00e7\u0131k kaynak d\u00fcnyas\u0131na ad\u0131m atmak isteyen bir yaz\u0131l\u0131mc\u0131 m\u0131s\u0131n\u0131z? \u0130lk katk\u0131n\u0131z\u0131 yaparken kar\u015f\u0131la\u015ft\u0131\u011f\u0131n\u0131z belirsizlikler ve teknik zorluklar sizi y\u0131ld\u0131rmas\u0131n. Bu makalede, Djangonaut program\u0131 kapsam\u0131nda ilk Pull Request'inizi (PR) nas\u0131l haz\u0131rlayaca\u011f\u0131n\u0131z\u0131, geli\u015ftirme ortam\u0131n\u0131z\u0131 nas\u0131l kuraca\u011f\u0131n\u0131z\u0131 ve 9.29 - 10.10 tarihleri aras\u0131ndaki ba\u015flang\u0131\u00e7 haftalar\u0131nda hangi ad\u0131mlar\u0131 izlemeniz gerekti\u011fini ayr\u0131nt\u0131l\u0131 bir \u015fekilde inceleyece\u011fiz. Bu rehber, hem yeni ba\u015flayanlar hem de bilgilerini tazelemek isteyen deneyimli geli\u015ftiriciler i\u00e7in de\u011ferli bilgiler sunuyor.","og_url":"https:\/\/fatihsoysal.com\/blog\/djangonaut-ilk-pr-temel-adimlar-ve-baslangic-haftalari\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-10-13T12:31:20+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"20 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/djangonaut-ilk-pr-temel-adimlar-ve-baslangic-haftalari\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/djangonaut-ilk-pr-temel-adimlar-ve-baslangic-haftalari\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Djangonaut \u0130lk PR: Temel Ad\u0131mlar ve Ba\u015flang\u0131\u00e7 Haftalar\u0131","datePublished":"2025-10-13T12:31:20+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/djangonaut-ilk-pr-temel-adimlar-ve-baslangic-haftalari\/"},"wordCount":3916,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/djangonaut-ilk-pr-temel-adimlar-ve-baslangic-haftalari\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/djangonaut-ilk-pr-temel-adimlar-ve-baslangic-haftalari\/","url":"https:\/\/fatihsoysal.com\/blog\/djangonaut-ilk-pr-temel-adimlar-ve-baslangic-haftalari\/","name":"Djangonaut \u0130lk PR: Temel Ad\u0131mlar ve Ba\u015flang\u0131\u00e7 Haftalar\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-10-13T12:31:20+00:00","description":"A\u00e7\u0131k kaynak d\u00fcnyas\u0131na ad\u0131m atmak isteyen bir yaz\u0131l\u0131mc\u0131 m\u0131s\u0131n\u0131z? \u0130lk katk\u0131n\u0131z\u0131 yaparken kar\u015f\u0131la\u015ft\u0131\u011f\u0131n\u0131z belirsizlikler ve teknik zorluklar sizi y\u0131ld\u0131rmas\u0131n. Bu makalede, Djangonaut program\u0131 kapsam\u0131nda ilk Pull Request'inizi (PR) nas\u0131l haz\u0131rlayaca\u011f\u0131n\u0131z\u0131, geli\u015ftirme ortam\u0131n\u0131z\u0131 nas\u0131l kuraca\u011f\u0131n\u0131z\u0131 ve 9.29 - 10.10 tarihleri aras\u0131ndaki ba\u015flang\u0131\u00e7 haftalar\u0131nda hangi ad\u0131mlar\u0131 izlemeniz gerekti\u011fini ayr\u0131nt\u0131l\u0131 bir \u015fekilde inceleyece\u011fiz. Bu rehber, hem yeni ba\u015flayanlar hem de bilgilerini tazelemek isteyen deneyimli geli\u015ftiriciler i\u00e7in de\u011ferli bilgiler sunuyor.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/djangonaut-ilk-pr-temel-adimlar-ve-baslangic-haftalari\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/djangonaut-ilk-pr-temel-adimlar-ve-baslangic-haftalari\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/djangonaut-ilk-pr-temel-adimlar-ve-baslangic-haftalari\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Djangonaut \u0130lk PR: Temel Ad\u0131mlar ve Ba\u015flang\u0131\u00e7 Haftalar\u0131"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/31749","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=31749"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/31749\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=31749"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=31749"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=31749"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}