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