[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:en:backend\u002Fgo-errors":4,"config":248},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-errors","Go Errors","en",75,3300,[14,15,16],"junior","mid","senior",[18,21,24,27,30,33,36,39,42,45,48,51,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 Design",{"key":22,"name":23,"count":11},"caching","Caching",{"key":25,"name":26,"count":11},"concurrency","Concurrency",{"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","Databases \u002F SQL",{"key":49,"name":50,"count":11},"go-concurrency","Go Concurrency",{"key":8,"name":9,"count":11},{"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","Messaging \u002F Queues",{"key":86,"name":87,"count":11},"networking-http","Networking \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","Security",{"key":146,"name":147,"count":11},"testing","Testing",[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,213,226,236],{"id":170,"topic":9,"difficulty":171,"body":172,"options":173,"correct_key":178,"explanation":186},"019f5b0c-5b23-70c7-94a3-56aa16568a07",1,"In Go, what is the `error` type?",[174,177,180,183],{"key":175,"text":176},"a","A built-in exception class thrown automatically by the runtime",{"key":178,"text":179},"b","An interface with one method: Error() string",{"key":181,"text":182},"c","A struct with Code and Message fields defined in package errors",{"key":184,"text":185},"d","A reserved keyword used only inside panic statements","error is defined as `type error interface { Error() string }`. Any type implementing that method satisfies the interface. Go has no built-in exception mechanism for ordinary error handling; errors are ordinary values.",{"id":188,"topic":9,"difficulty":171,"body":189,"options":190,"correct_key":175,"explanation":199},"019f5b0c-5b24-7080-b3be-297ae5ce1836","```go\nn, err := strconv.Atoi(\"abc\")\nfmt.Println(n * 2)\nif err != nil {\n    fmt.Println(\"error:\", err)\n}\n```\nWhat does this program print?",[191,193,195,197],{"key":175,"text":192},"\"0\", then an error message",{"key":178,"text":194},"The program crashes before printing anything",{"key":181,"text":196},"It fails to compile",{"key":184,"text":198},"Nothing is printed at all","strconv.Atoi returns (0, err) on failure, so n is 0. n*2 prints 0 without panicking, and the error check afterward prints the error too. Using n before checking err isn't a compile error or a crash here — it's a logic bug because n is meaningless once err != nil.",{"id":201,"topic":9,"difficulty":171,"body":202,"options":203,"correct_key":184,"explanation":212},"019f5b0c-5b24-7c98-9d26-6e33c66fef12","What's the key practical difference between `errors.New(\"msg\")` and `fmt.Errorf(\"msg\")`?",[204,206,208,210],{"key":175,"text":205},"errors.New is deprecated and shouldn't be used anymore",{"key":178,"text":207},"fmt.Errorf can only be called from inside package fmt",{"key":181,"text":209},"errors.New allocates on the heap while fmt.Errorf never does",{"key":184,"text":211},"fmt.Errorf supports %w wrapping; errors.New does not","fmt.Errorf formats like Printf; passing it %w with an error argument sets that error as the wrapped target so errors.Is\u002Ferrors.As can find it later. errors.New just produces a fixed string with no formatting or wrapping ability.",{"id":214,"topic":9,"difficulty":215,"body":216,"options":217,"correct_key":178,"explanation":225},"019f5b0c-5b26-7470-be49-78f9bbdf3ec9",2,"```go\nvar ErrNotFound = errors.New(\"not found\")\n\nfunc find() error {\n    return fmt.Errorf(\"lookup failed: %v\", ErrNotFound)\n}\n\nfunc main() {\n    fmt.Println(errors.Is(find(), ErrNotFound))\n}\n```\nWhat does this print?",[218,220,222,223],{"key":175,"text":219},"true",{"key":178,"text":221},"false",{"key":181,"text":196},{"key":184,"text":224},"\"not found\"","%v only formats ErrNotFound's text into the new error's message; it does not set an Unwrap chain — only %w does that. Since the returned error has no wrapped target, errors.Is can't find ErrNotFound anywhere in its chain and returns false.",{"id":227,"topic":9,"difficulty":215,"body":228,"options":229,"correct_key":175,"explanation":235},"019f5b0c-5b27-749c-86be-4e9e163dc134","```go\nvar ErrClosed = errors.New(\"connection closed\")\n\nfunc send() error {\n    return fmt.Errorf(\"send failed: %w\", ErrClosed)\n}\n\nfunc main() {\n    fmt.Println(errors.Is(send(), ErrClosed))\n}\n```\nWhat does this print?",[230,231,232,233],{"key":175,"text":219},{"key":178,"text":221},{"key":181,"text":196},{"key":184,"text":234},"\"connection closed\"","%w sets send()'s returned error to wrap ErrClosed, so errors.Is walks the chain, finds ErrClosed, and returns true.",{"id":237,"topic":9,"difficulty":215,"body":238,"options":239,"correct_key":181,"explanation":247},"019f5b0c-5b27-7e39-82ad-6fc85be37488","```go\ntype ValidationError struct {\n    Field string\n}\n\nfunc (e *ValidationError) Error() string {\n    return \"invalid field: \" + e.Field\n}\n\nfunc validate() error {\n    return fmt.Errorf(\"request rejected: %w\", &ValidationError{Field: \"email\"})\n}\n\nfunc main() {\n    var ve *ValidationError\n    if errors.As(validate(), &ve) {\n        fmt.Println(ve.Field)\n    }\n}\n```\nWhat does this print?",[240,241,243,245],{"key":175,"text":196},{"key":178,"text":242},"Nothing is printed",{"key":181,"text":244},"\"email\"",{"key":184,"text":246},"\"invalid field: email\"","errors.As walks the chain, finds the *ValidationError, and assigns it to ve. ve.Field is then just the struct field \"email\", not the full Error() string.",{"fields":249,"seniorities":419,"interview_shapes":420,"locales":425,"oauth":427,"question_count":430,"coach_enabled":431,"jd_match_enabled":431},[250,261,281,298,322,335,354,373,393,400,406,413],{"key":5,"name_tr":6,"name_en":6,"sort":171,"specializations":251},[252,255,256,257,258,259,260],{"key":253,"name":254,"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":262,"name_tr":263,"name_en":263,"sort":215,"specializations":264},"frontend","Frontend",[265,266,269,272,275,278],{"key":253,"name":254,"field":262},{"key":267,"name":268,"field":262},"javascript","JavaScript",{"key":270,"name":271,"field":262},"typescript","TypeScript",{"key":273,"name":274,"field":262},"react","React",{"key":276,"name":277,"field":262},"vue","Vue",{"key":279,"name":280,"field":262},"angular","Angular",{"key":282,"name_tr":283,"name_en":283,"sort":284,"specializations":285},"fullstack","Fullstack",3,[286,287,288,289,290,291,292,293,294,295,296,297],{"key":253,"name":254,"field":282},{"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":268,"field":262},{"key":270,"name":271,"field":262},{"key":273,"name":274,"field":262},{"key":276,"name":277,"field":262},{"key":279,"name":280,"field":262},{"key":299,"name_tr":300,"name_en":300,"sort":301,"specializations":302},"devops-cloud","DevOps \u002F Cloud",4,[303,304,307,310,313,316,319],{"key":253,"name":254,"field":299},{"key":305,"name":306,"field":299},"aws","AWS",{"key":308,"name":309,"field":299},"gcp","GCP",{"key":311,"name":312,"field":299},"azure","Azure",{"key":314,"name":315,"field":299},"kubernetes","Kubernetes",{"key":317,"name":318,"field":299},"terraform","Terraform",{"key":320,"name":321,"field":299},"linux","Linux",{"key":323,"name_tr":324,"name_en":324,"sort":325,"specializations":326},"ai-engineer","AI Engineer",5,[327,328,329,332],{"key":253,"name":254,"field":323},{"key":166,"name":167,"field":323},{"key":330,"name":331,"field":323},"llm-rag","LLM\u002FRAG",{"key":333,"name":334,"field":323},"mlops","MLOps",{"key":336,"name_tr":337,"name_en":338,"sort":339,"specializations":340},"database","Veritabanı","Database",6,[341,342,345,348,351],{"key":253,"name":254,"field":336},{"key":343,"name":344,"field":336},"postgresql","PostgreSQL",{"key":346,"name":347,"field":336},"mysql","MySQL",{"key":349,"name":350,"field":336},"mongodb","MongoDB",{"key":352,"name":353,"field":336},"redis","Redis",{"key":355,"name_tr":356,"name_en":357,"sort":358,"specializations":359},"mobile","Mobil","Mobile",7,[360,361,364,367,370],{"key":253,"name":254,"field":355},{"key":362,"name":363,"field":355},"ios-swift","iOS (Swift)",{"key":365,"name":366,"field":355},"android-kotlin","Android (Kotlin)",{"key":368,"name":369,"field":355},"flutter","Flutter",{"key":371,"name":372,"field":355},"react-native","React Native",{"key":143,"name_tr":374,"name_en":144,"sort":375,"specializations":376},"Güvenlik",8,[377,378,381,384,387,390],{"key":253,"name":254,"field":143},{"key":379,"name":380,"field":143},"appsec","AppSec",{"key":382,"name":383,"field":143},"offensive-pentest","Offensive \u002F Pentest",{"key":385,"name":386,"field":143},"cloud-security","Cloud Security",{"key":388,"name":389,"field":143},"devsecops","DevSecOps",{"key":391,"name":392,"field":143},"blue-team-incident","Blue Team \u002F Incident",{"key":394,"name_tr":395,"name_en":396,"sort":397,"specializations":398},"qa-test-automation","QA \u002F Test Otomasyonu","QA \u002F Test Automation",9,[399],{"key":253,"name":254,"field":394},{"key":401,"name_tr":402,"name_en":402,"sort":403,"specializations":404},"data-engineer","Data Engineer",10,[405],{"key":253,"name":254,"field":401},{"key":407,"name_tr":408,"name_en":409,"sort":410,"specializations":411},"game-dev","Oyun Geliştirme","Game Development",11,[412],{"key":253,"name":254,"field":407},{"key":414,"name_tr":415,"name_en":415,"sort":416,"specializations":417},"ml-engineer","ML Engineer",12,[418],{"key":253,"name":254,"field":414},[14,15,16],{"junior":421,"mid":423,"senior":424},{"questions":422,"median_sec":3},20,{"questions":422,"median_sec":3},{"questions":422,"median_sec":3},[426,10],"tr",[428,429],"google","github",21750,true]