[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:tr:backend\u002Fgo-concurrency":4,"config":253},null,{"field_key":5,"field_name":6,"seniority":7,"topic_key":8,"topic_name":9,"spec_key":7,"spec_name":7,"locale":10,"cell_total":11,"field_total":12,"seniorities":13,"topics":17,"specs":148,"samples":168},"backend","Backend","","go-concurrency","Go Concurrency","tr",75,3300,[14,15,16],"junior","mid","senior",[18,21,24,27,30,33,36,39,42,45,48,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":19,"name":20,"count":11},"api-design","API Tasarımı",{"key":22,"name":23,"count":11},"caching","Caching",{"key":25,"name":26,"count":11},"concurrency","Eşzamanlılık",{"key":28,"name":29,"count":11},"csharp-concurrency-async","Csharp Concurrency Async",{"key":31,"name":32,"count":11},"csharp-exceptions","Csharp Exceptions",{"key":34,"name":35,"count":11},"csharp-generics-interfaces","Csharp Generics Interfaces",{"key":37,"name":38,"count":11},"csharp-memory-performance","Csharp Memory Performance",{"key":40,"name":41,"count":11},"csharp-stdlib-http","Csharp Stdlib Http",{"key":43,"name":44,"count":11},"csharp-testing-tooling","Csharp Testing Tooling",{"key":46,"name":47,"count":11},"databases-sql","Veritabanı \u002F SQL",{"key":8,"name":9,"count":11},{"key":50,"name":51,"count":11},"go-errors","Go Errors",{"key":53,"name":54,"count":11},"go-interfaces-generics","Go Interfaces Generics",{"key":56,"name":57,"count":11},"go-memory-performance","Go Memory Performance",{"key":59,"name":60,"count":11},"go-stdlib-http","Go Stdlib Http",{"key":62,"name":63,"count":11},"go-testing-tooling","Go Testing Tooling",{"key":65,"name":66,"count":11},"java-concurrency","Java Concurrency",{"key":68,"name":69,"count":11},"java-exceptions","Java Exceptions",{"key":71,"name":72,"count":11},"java-generics-interfaces","Java Generics Interfaces",{"key":74,"name":75,"count":11},"java-memory-jvm","Java Memory Jvm",{"key":77,"name":78,"count":11},"java-stdlib-http","Java Stdlib Http",{"key":80,"name":81,"count":11},"java-testing-tooling","Java Testing Tooling",{"key":83,"name":84,"count":11},"messaging-queues","Mesajlaşma \u002F Kuyruklar",{"key":86,"name":87,"count":11},"networking-http","Ağ \u002F HTTP",{"key":89,"name":90,"count":11},"nodejs-error-handling","Nodejs Error Handling",{"key":92,"name":93,"count":11},"nodejs-event-loop-async","Nodejs Event Loop Async",{"key":95,"name":96,"count":11},"nodejs-memory-performance","Nodejs Memory Performance",{"key":98,"name":99,"count":11},"nodejs-modules-streams","Nodejs Modules Streams",{"key":101,"name":102,"count":11},"nodejs-stdlib-http","Nodejs Stdlib Http",{"key":104,"name":105,"count":11},"nodejs-testing-tooling","Nodejs Testing Tooling",{"key":107,"name":108,"count":11},"php-concurrency-async","Php Concurrency Async",{"key":110,"name":111,"count":11},"php-exceptions","Php Exceptions",{"key":113,"name":114,"count":11},"php-generics-interfaces","Php Generics Interfaces",{"key":116,"name":117,"count":11},"php-memory-performance","Php Memory Performance",{"key":119,"name":120,"count":11},"php-stdlib-http","Php Stdlib Http",{"key":122,"name":123,"count":11},"php-testing-tooling","Php Testing Tooling",{"key":125,"name":126,"count":11},"python-concurrency-async","Python Concurrency Async",{"key":128,"name":129,"count":11},"python-errors-context","Python Errors Context",{"key":131,"name":132,"count":11},"python-memory-performance","Python Memory Performance",{"key":134,"name":135,"count":11},"python-stdlib-http","Python Stdlib Http",{"key":137,"name":138,"count":11},"python-testing-tooling","Python Testing Tooling",{"key":140,"name":141,"count":11},"python-typing-oop","Python Typing Oop",{"key":143,"name":144,"count":11},"security","Güvenlik",{"key":146,"name":147,"count":11},"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,200,214,227,240],{"id":170,"topic":9,"difficulty":171,"body":172,"options":173,"correct_key":181,"explanation":186},"019f5b0c-5ae3-7db0-bfea-ce55208abef3",1,"```go\nfunc main() {\n\tgo fmt.Println(\"hello from goroutine\")\n}\n```\nBu program çalıştığında ne olur?",[174,177,180,183],{"key":175,"text":176},"a","main bitmeden önce her zaman \"hello from goroutine\" yazdırılır",{"key":178,"text":179},"b","Goroutine bitene kadar sonsuza kadar bloklanır",{"key":181,"text":182},"c","main, goroutine çalışmadan dönebilir; bu yüzden yazdırma hiç gerçekleşmeyebilir",{"key":184,"text":185},"d","Derleyici, sonucu kullanılmayan bir çağrıda `go` kullanımını reddeder","`main`, diğer goroutine'leri beklemez. `main` döndüğünde process hemen sonlanır; bu yüzden hemen önce başlatılan bir goroutine hiç schedule edilmeyebilir. Örtük bir join yoktur ve dönüş değeri kullanılmasa da `go fmt.Println(...)` derlenir.",{"id":188,"topic":9,"difficulty":171,"body":189,"options":190,"correct_key":178,"explanation":199},"019f5b0c-5aff-7937-8f7e-181adb8a7d06","Go'da unbuffered channel ile buffered channel arasındaki temel semantik fark nedir?",[191,193,195,197],{"key":175,"text":192},"Unbuffered channel'lar yalnızca pointer taşıyabilir, buffered channel'lar her tipi taşıyabilir",{"key":178,"text":194},"Unbuffered gönderme, bir alıcı hazır olana kadar bloklanır; buffered gönderme yalnızca dolunca bloklanır",{"key":181,"text":196},"Buffered channel'lar gönderme veya almada asla bloklanmaz",{"key":184,"text":198},"Unbuffered channel'lar `select` gerektirir, buffered channel'lar gerektirmez","Unbuffered channel'ın kapasitesi yoktur, bu yüzden gönderme doğrudan eşleşen bir almayla senkronize olur. Buffered channel ise gönderme bloklanmadan önce sabit sayıda değerin kanalda beklemesine izin vererek gönderici ve alıcının zamanlamasını o kapasiteye kadar ayrıştırır.",{"id":201,"topic":9,"difficulty":202,"body":203,"options":204,"correct_key":175,"explanation":213},"019f5b0c-5b00-7e0c-b002-ded79252bae5",2,"```go\nch := make(chan int)\nclose(ch)\nv, ok := \u003C-ch\nfmt.Println(v, ok)\n```\nBu ne yazdırır?",[205,207,209,211],{"key":175,"text":206},"0 false",{"key":178,"text":208},"Kanal kapalı olduğu için panic olur",{"key":181,"text":210},"0 true",{"key":184,"text":212},"Gönderici olmadığı için sonsuza kadar bloklanır","Kapalı bir kanaldan alma işlemi asla bloklanmaz ve asla panic olmaz. Element tipinin zero value'sunu (int için 0) hemen döner ve `ok` değeri false olur; bu, kanalın kapalı ve boşaltılmış olduğunu gösterir.",{"id":215,"topic":9,"difficulty":202,"body":216,"options":217,"correct_key":178,"explanation":226},"019f5b0c-5b01-7a5b-a274-82cd9ddc8db3","```go\nch := make(chan int, 2)\nclose(ch)\nch \u003C- 1\n```\nBu kod çalıştığında ne olur?",[218,220,222,224],{"key":175,"text":219},"Kanal kapalı olduğu için 1 değeri sessizce atılır",{"key":178,"text":221},"\"send on closed channel\" hatasıyla panic olur",{"key":181,"text":223},"Buffer'da yer olduğu için başarılı olur",{"key":184,"text":225},"Bir alıcı bekleyerek sonsuza kadar bloklanır","Kapalı bir kanala gönderme, kalan buffer kapasitesinden bağımsız olarak her zaman panic ile sonuçlanır. Buffer alanı yalnızca açık kanallar için önemlidir; `close` çağrıldıktan sonra herhangi bir gönderme, runtime'ın hemen bildirdiği bir programlama hatasıdır.",{"id":228,"topic":9,"difficulty":202,"body":229,"options":230,"correct_key":184,"explanation":239},"019f5b0c-5b02-7647-9c5d-5ea86573fb67","```go\nvar ch chan int\n\u003C-ch\n```\nİkinci satırdaki alma işleminin davranışı nedir?",[231,233,235,237],{"key":175,"text":232},"`ch`, `make` ile hiç initialize edilmediği için panic olur",{"key":178,"text":234},"Kapalı bir kanal gibi zero value'yu hemen döner",{"key":181,"text":236},"Nil kanalı açıklayan bir error değeri döner",{"key":184,"text":238},"Nil kanal asla hazır olmadığı için sonsuza kadar bloklanır","`ch`, nil bir kanaldır (deklare edilmiş ama hiç `make` edilmemiş). Nil kanal üzerindeki işlemler panic olmak ya da hemen dönmek yerine kalıcı olarak bloklanır — bu, herhangi bir hata mesajı vermeden asılı kalan goroutine'lerin yaygın bir sebebidir.",{"id":241,"topic":9,"difficulty":202,"body":242,"options":243,"correct_key":181,"explanation":252},"019f5b0c-5b03-776a-9c1b-c119475b2f52","```go\nch := make(chan int, 3)\nch \u003C- 1\nch \u003C- 2\nch \u003C- 3\nclose(ch)\nfor v := range ch {\n\tfmt.Println(v)\n}\n```\nBu ne yazdırır?",[244,246,248,250],{"key":175,"text":245},"Yalnızca 1, sonra kanal kapalı olduğu için loop panic olur",{"key":178,"text":247},"1 2 3, sonra sonsuza kadar 0 yazdırarak döner",{"key":181,"text":249},"1 2 3, ve kanal boşalınca loop biter",{"key":184,"text":251},"Hiçbir şey, çünkü kapalı bir kanal üzerinde range yapılamaz","Bir kanal üzerinde `range`, kanal hem kapanana hem de boşalana kadar değer alır, sonra loop normal şekilde biter — panic yok, fazladan zero value yok. Buffer, `close`'dan önce zaten 1, 2, 3'ü tuttuğu için loop üçünü de teslim eder ve durur.",{"fields":254,"seniorities":424,"interview_shapes":425,"locales":430,"oauth":432,"question_count":435,"coach_enabled":436,"jd_match_enabled":436},[255,266,286,303,327,340,359,378,398,405,411,418],{"key":5,"name_tr":6,"name_en":6,"sort":171,"specializations":256},[257,260,261,262,263,264,265],{"key":258,"name":259,"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":267,"name_tr":268,"name_en":268,"sort":202,"specializations":269},"frontend","Frontend",[270,271,274,277,280,283],{"key":258,"name":259,"field":267},{"key":272,"name":273,"field":267},"javascript","JavaScript",{"key":275,"name":276,"field":267},"typescript","TypeScript",{"key":278,"name":279,"field":267},"react","React",{"key":281,"name":282,"field":267},"vue","Vue",{"key":284,"name":285,"field":267},"angular","Angular",{"key":287,"name_tr":288,"name_en":288,"sort":289,"specializations":290},"fullstack","Fullstack",3,[291,292,293,294,295,296,297,298,299,300,301,302],{"key":258,"name":259,"field":287},{"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":272,"name":273,"field":267},{"key":275,"name":276,"field":267},{"key":278,"name":279,"field":267},{"key":281,"name":282,"field":267},{"key":284,"name":285,"field":267},{"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":258,"name":259,"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":258,"name":259,"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":258,"name":259,"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":258,"name":259,"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":258,"name":259,"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":258,"name":259,"field":399},{"key":406,"name_tr":407,"name_en":407,"sort":408,"specializations":409},"data-engineer","Data Engineer",10,[410],{"key":258,"name":259,"field":406},{"key":412,"name_tr":413,"name_en":414,"sort":415,"specializations":416},"game-dev","Oyun Geliştirme","Game Development",11,[417],{"key":258,"name":259,"field":412},{"key":419,"name_tr":420,"name_en":420,"sort":421,"specializations":422},"ml-engineer","ML Engineer",12,[423],{"key":258,"name":259,"field":419},[14,15,16],{"junior":426,"mid":428,"senior":429},{"questions":427,"median_sec":3},20,{"questions":427,"median_sec":3},{"questions":427,"median_sec":3},[10,431],"en",[433,434],"google","github",21750,true]