[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:tr:backend":4,"config":254},null,{"field_key":5,"field_name":6,"seniority":7,"topic_key":7,"topic_name":7,"spec_key":7,"spec_name":7,"locale":8,"cell_total":9,"field_total":9,"seniorities":10,"topics":14,"specs":148,"samples":168},"backend","Backend","","tr",3300,[11,12,13],"junior","mid","senior",[15,19,22,25,28,31,34,37,40,43,46,49,52,55,58,61,64,67,70,73,76,79,82,85,88,91,94,97,100,103,106,109,112,115,118,121,124,127,130,133,136,139,142,145],{"key":16,"name":17,"count":18},"api-design","API Tasarımı",75,{"key":20,"name":21,"count":18},"caching","Caching",{"key":23,"name":24,"count":18},"concurrency","Eşzamanlılık",{"key":26,"name":27,"count":18},"csharp-concurrency-async","Csharp Concurrency Async",{"key":29,"name":30,"count":18},"csharp-exceptions","Csharp Exceptions",{"key":32,"name":33,"count":18},"csharp-generics-interfaces","Csharp Generics Interfaces",{"key":35,"name":36,"count":18},"csharp-memory-performance","Csharp Memory Performance",{"key":38,"name":39,"count":18},"csharp-stdlib-http","Csharp Stdlib Http",{"key":41,"name":42,"count":18},"csharp-testing-tooling","Csharp Testing Tooling",{"key":44,"name":45,"count":18},"databases-sql","Veritabanı \u002F SQL",{"key":47,"name":48,"count":18},"go-concurrency","Go Concurrency",{"key":50,"name":51,"count":18},"go-errors","Go Errors",{"key":53,"name":54,"count":18},"go-interfaces-generics","Go Interfaces Generics",{"key":56,"name":57,"count":18},"go-memory-performance","Go Memory Performance",{"key":59,"name":60,"count":18},"go-stdlib-http","Go Stdlib Http",{"key":62,"name":63,"count":18},"go-testing-tooling","Go Testing Tooling",{"key":65,"name":66,"count":18},"java-concurrency","Java Concurrency",{"key":68,"name":69,"count":18},"java-exceptions","Java Exceptions",{"key":71,"name":72,"count":18},"java-generics-interfaces","Java Generics Interfaces",{"key":74,"name":75,"count":18},"java-memory-jvm","Java Memory Jvm",{"key":77,"name":78,"count":18},"java-stdlib-http","Java Stdlib Http",{"key":80,"name":81,"count":18},"java-testing-tooling","Java Testing Tooling",{"key":83,"name":84,"count":18},"messaging-queues","Mesajlaşma \u002F Kuyruklar",{"key":86,"name":87,"count":18},"networking-http","Ağ \u002F HTTP",{"key":89,"name":90,"count":18},"nodejs-error-handling","Nodejs Error Handling",{"key":92,"name":93,"count":18},"nodejs-event-loop-async","Nodejs Event Loop Async",{"key":95,"name":96,"count":18},"nodejs-memory-performance","Nodejs Memory Performance",{"key":98,"name":99,"count":18},"nodejs-modules-streams","Nodejs Modules Streams",{"key":101,"name":102,"count":18},"nodejs-stdlib-http","Nodejs Stdlib Http",{"key":104,"name":105,"count":18},"nodejs-testing-tooling","Nodejs Testing Tooling",{"key":107,"name":108,"count":18},"php-concurrency-async","Php Concurrency Async",{"key":110,"name":111,"count":18},"php-exceptions","Php Exceptions",{"key":113,"name":114,"count":18},"php-generics-interfaces","Php Generics Interfaces",{"key":116,"name":117,"count":18},"php-memory-performance","Php Memory Performance",{"key":119,"name":120,"count":18},"php-stdlib-http","Php Stdlib Http",{"key":122,"name":123,"count":18},"php-testing-tooling","Php Testing Tooling",{"key":125,"name":126,"count":18},"python-concurrency-async","Python Concurrency Async",{"key":128,"name":129,"count":18},"python-errors-context","Python Errors Context",{"key":131,"name":132,"count":18},"python-memory-performance","Python Memory Performance",{"key":134,"name":135,"count":18},"python-stdlib-http","Python Stdlib Http",{"key":137,"name":138,"count":18},"python-testing-tooling","Python Testing Tooling",{"key":140,"name":141,"count":18},"python-typing-oop","Python Typing Oop",{"key":143,"name":144,"count":18},"security","Güvenlik",{"key":146,"name":147,"count":18},"testing","Test",[149,153,156,159,162,165],{"key":150,"name":151,"count":152},"csharp","C#\u002F.NET",450,{"key":154,"name":155,"count":152},"go","Go",{"key":157,"name":158,"count":152},"java","Java",{"key":160,"name":161,"count":152},"nodejs","Node.js",{"key":163,"name":164,"count":152},"php","PHP",{"key":166,"name":167,"count":152},"python","Python",[169,187,201,214,227,241],{"id":170,"topic":17,"difficulty":171,"body":172,"options":173,"correct_key":178,"explanation":186},"019f56bb-b31e-77ff-8f93-8b568ff56f76",1,"HTTP'de GET, *safe* metod olarak sınıflandırılır. Bu ne anlama gelir?",[174,177,180,183],{"key":175,"text":176},"a","İstek, browser tarafından otomatik olarak şifrelenir; onu safe yapan da budur",{"key":178,"text":179},"b","Sadece veri okumak içindir; sunucu state'ini değiştirmesi beklenmez",{"key":181,"text":182},"c","Sunucu, isteğin asla hata döndürmeyeceğini garanti eder",{"key":184,"text":185},"d","Sadece authentication gerektirmeyen endpoint'lere gönderilebilir","Safe, istemcinin herhangi bir state değişikliği talep etmemesi demektir — bu sayede GET'ler rahatça cache'lenir, prefetch edilir ve retry edilir. \"Safe\" güvenlikle değil semantikle ilgilidir (a): şifreleme metoddan değil HTTPS'ten gelir.",{"id":188,"topic":17,"difficulty":189,"body":190,"options":191,"correct_key":181,"explanation":200},"019f56bb-b324-7af3-81dc-b6c1b3f549a2",2,"Hangi HTTP metodu idempotent DEĞİLDİR?",[192,194,196,198],{"key":175,"text":193},"GET",{"key":178,"text":195},"DELETE",{"key":181,"text":197},"POST",{"key":184,"text":199},"PUT","Idempotent, aynı isteğin tekrarlanmasının sunucuyu bir kez gönderilmişle aynı state'te bırakması demektir. POST tipik olarak her çağrıda yeni bir resource yaratır; tekrar etkiyi çoğaltır. DELETE, tekrar 404 dönse bile idempotent kalır — resource iki durumda da silinmiştir.",{"id":202,"topic":17,"difficulty":171,"body":203,"options":204,"correct_key":181,"explanation":213},"019f56bb-b325-7da5-8e61-53fbf5a50425","Bir POST isteği yeni bir resource'u başarıyla oluşturuyor. Bunu en isabetli anlatan status code hangisidir?",[205,207,209,211],{"key":175,"text":206},"200 OK",{"key":178,"text":208},"204 No Content",{"key":181,"text":210},"201 Created",{"key":184,"text":212},"202 Accepted","201 Created, yeni bir resource'un artık var olduğunu söyler; genellikle ona işaret eden bir Location header ile döner. 200 genel bir başarıdır, 204 body'siz başarıdır; 202 (d) ise isteğin yalnızca sonra işlenmek üzere kuyruğa alındığını belirtir — oluşturma henüz gerçekleşmemiş olabilir.",{"id":215,"topic":17,"difficulty":189,"body":216,"options":217,"correct_key":178,"explanation":226},"019f56bb-b326-7a53-97e1-b839433ee2ca","401 Unauthorized ile 403 Forbidden arasındaki fark nedir?",[218,220,222,224],{"key":175,"text":219},"401 kullanıcının o resource için yetkisi olmadığını, 403 istekte geçerli kimlik bilgisi bulunmadığını belirtir",{"key":178,"text":221},"401 kimlik bilgisi eksik\u002Fgeçersiz demektir; 403 kimliği doğrulanmış kullanıcının yetkisi yok demektir",{"key":181,"text":223},"Birbirlerinin yerine kullanılabilirler; seçim ekip tercihine kalmıştır",{"key":184,"text":225},"401 sadece süresi dolmuş session'lar, 403 sadece banlanmış hesaplar içindir","401 \"kim olduğunu kanıtla\" der (authentication problemi); 403 ise \"kim olduğunu biliyorum ama bunu yapamazsın\" der (authorization problemi). (a) şıkkı bunu tam tersinden anlatır — en klasik karıştırma budur.",{"id":228,"topic":17,"difficulty":229,"body":230,"options":231,"correct_key":175,"explanation":240},"019f56bb-b327-74ec-85da-533f10fc0c08",3,"Aynı DELETE isteği iki kez gönderiliyor:\n```http\nDELETE \u002Forders\u002F42   ->  204 No Content\nDELETE \u002Forders\u002F42   ->  404 Not Found\n```\nİki çağrı farklı status code döndürüyor. DELETE'in idempotency'si ihlal edilmiş midir?",[232,234,236,238],{"key":175,"text":233},"Hayır — idempotency sunucu state'iyle ilgilidir; iki çağrıdan sonra da sipariş eşit derecede silinmiştir",{"key":178,"text":235},"Evet — idempotent bir metod her tekrarda aynı status code'u döndürmek zorundadır; yalnızca aynı son state'e ulaşmak yetmez",{"key":181,"text":237},"Evet — istemci retry'ı bırakana kadar sunucu 204 döndürmeye devam etmeliydi",{"key":184,"text":239},"Hayır — çünkü DELETE zaten hiçbir zaman idempotent bir metod olmadı","Idempotency, isteğin tekrarının sunucuyu aynı state'te bırakacağını vadeder; response'un birebir aynı olacağını değil. İki çağrıdan sonra da sipariş yoktur; 404 sadece artık var olmadığını raporlar. Aynı status code beklemek (b), tanımın en sık yanlış okunma biçimidir.",{"id":242,"topic":17,"difficulty":171,"body":243,"options":244,"correct_key":184,"explanation":253},"019f56bb-b328-721f-9c1d-c2d5d2c42def","PUT ile PATCH arasındaki fark nedir?",[245,247,249,251],{"key":175,"text":246},"PUT kısmi değişiklik uygular; PATCH resource'un tamamını değiştirir",{"key":178,"text":248},"PUT sadece resource oluşturabilir; PATCH sadece günceller",{"key":181,"text":250},"Aynı davranırlar; PATCH, PUT'un daha yeni adıdır",{"key":184,"text":252},"PUT resource'un tamamını yenisiyle değiştirir; PATCH kısmi değişiklik uygular","PUT, resource'un tam halini gönderir ve sunucu resource'u onunla değiştirir — bu PUT'u aynı zamanda idempotent yapar. PATCH ise yalnızca uygulanacak değişiklikleri gönderir. (a) şıkkı aynı bilginin tersten anlatımıdır ve ikisi arasındaki en yaygın karışıklıktır.",{"fields":255,"seniorities":424,"interview_shapes":425,"locales":430,"oauth":432,"question_count":435,"coach_enabled":436,"jd_match_enabled":436},[256,267,287,303,327,340,359,378,398,405,411,418],{"key":5,"name_tr":6,"name_en":6,"sort":171,"specializations":257},[258,261,262,263,264,265,266],{"key":259,"name":260,"field":5},"general","Genel",{"key":154,"name":155,"field":5},{"key":166,"name":167,"field":5},{"key":157,"name":158,"field":5},{"key":150,"name":151,"field":5},{"key":160,"name":161,"field":5},{"key":163,"name":164,"field":5},{"key":268,"name_tr":269,"name_en":269,"sort":189,"specializations":270},"frontend","Frontend",[271,272,275,278,281,284],{"key":259,"name":260,"field":268},{"key":273,"name":274,"field":268},"javascript","JavaScript",{"key":276,"name":277,"field":268},"typescript","TypeScript",{"key":279,"name":280,"field":268},"react","React",{"key":282,"name":283,"field":268},"vue","Vue",{"key":285,"name":286,"field":268},"angular","Angular",{"key":288,"name_tr":289,"name_en":289,"sort":229,"specializations":290},"fullstack","Fullstack",[291,292,293,294,295,296,297,298,299,300,301,302],{"key":259,"name":260,"field":288},{"key":154,"name":155,"field":5},{"key":166,"name":167,"field":5},{"key":157,"name":158,"field":5},{"key":150,"name":151,"field":5},{"key":160,"name":161,"field":5},{"key":163,"name":164,"field":5},{"key":273,"name":274,"field":268},{"key":276,"name":277,"field":268},{"key":279,"name":280,"field":268},{"key":282,"name":283,"field":268},{"key":285,"name":286,"field":268},{"key":304,"name_tr":305,"name_en":305,"sort":306,"specializations":307},"devops-cloud","DevOps \u002F Cloud",4,[308,309,312,315,318,321,324],{"key":259,"name":260,"field":304},{"key":310,"name":311,"field":304},"aws","AWS",{"key":313,"name":314,"field":304},"gcp","GCP",{"key":316,"name":317,"field":304},"azure","Azure",{"key":319,"name":320,"field":304},"kubernetes","Kubernetes",{"key":322,"name":323,"field":304},"terraform","Terraform",{"key":325,"name":326,"field":304},"linux","Linux",{"key":328,"name_tr":329,"name_en":329,"sort":330,"specializations":331},"ai-engineer","AI Engineer",5,[332,333,334,337],{"key":259,"name":260,"field":328},{"key":166,"name":167,"field":328},{"key":335,"name":336,"field":328},"llm-rag","LLM\u002FRAG",{"key":338,"name":339,"field":328},"mlops","MLOps",{"key":341,"name_tr":342,"name_en":343,"sort":344,"specializations":345},"database","Veritabanı","Database",6,[346,347,350,353,356],{"key":259,"name":260,"field":341},{"key":348,"name":349,"field":341},"postgresql","PostgreSQL",{"key":351,"name":352,"field":341},"mysql","MySQL",{"key":354,"name":355,"field":341},"mongodb","MongoDB",{"key":357,"name":358,"field":341},"redis","Redis",{"key":360,"name_tr":361,"name_en":362,"sort":363,"specializations":364},"mobile","Mobil","Mobile",7,[365,366,369,372,375],{"key":259,"name":260,"field":360},{"key":367,"name":368,"field":360},"ios-swift","iOS (Swift)",{"key":370,"name":371,"field":360},"android-kotlin","Android (Kotlin)",{"key":373,"name":374,"field":360},"flutter","Flutter",{"key":376,"name":377,"field":360},"react-native","React Native",{"key":143,"name_tr":144,"name_en":379,"sort":380,"specializations":381},"Security",8,[382,383,386,389,392,395],{"key":259,"name":260,"field":143},{"key":384,"name":385,"field":143},"appsec","AppSec",{"key":387,"name":388,"field":143},"offensive-pentest","Offensive \u002F Pentest",{"key":390,"name":391,"field":143},"cloud-security","Cloud Security",{"key":393,"name":394,"field":143},"devsecops","DevSecOps",{"key":396,"name":397,"field":143},"blue-team-incident","Blue Team \u002F Incident",{"key":399,"name_tr":400,"name_en":401,"sort":402,"specializations":403},"qa-test-automation","QA \u002F Test Otomasyonu","QA \u002F Test Automation",9,[404],{"key":259,"name":260,"field":399},{"key":406,"name_tr":407,"name_en":407,"sort":408,"specializations":409},"data-engineer","Data Engineer",10,[410],{"key":259,"name":260,"field":406},{"key":412,"name_tr":413,"name_en":414,"sort":415,"specializations":416},"game-dev","Oyun Geliştirme","Game Development",11,[417],{"key":259,"name":260,"field":412},{"key":419,"name_tr":420,"name_en":420,"sort":421,"specializations":422},"ml-engineer","ML Engineer",12,[423],{"key":259,"name":260,"field":419},[11,12,13],{"junior":426,"mid":428,"senior":429},{"questions":427,"median_sec":3},20,{"questions":427,"median_sec":3},{"questions":427,"median_sec":3},[8,431],"en",[433,434],"google","github",21750,true]