[{"data":1,"prerenderedAt":2579},["ShallowReactive",2],{"navigation_docs":3,"-phong-van-english-interview-vocabulary":420,"-phong-van-english-interview-vocabulary-surround":2574},[4,153],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":26},"Phỏng vấn .NET","i-lucide-briefcase","\u002Fphong-van","1.phong-van",[10,27,66,111,128],{"title":11,"icon":12,"path":13,"stem":14,"children":15,"page":26},"Tổng quan","i-lucide-compass","\u002Fphong-van\u002Ftong-quan","1.phong-van\u002F1.tong-quan",[16,21],{"title":17,"path":18,"stem":19,"icon":20},"Thị trường HCM","\u002Fphong-van\u002Ftong-quan\u002Fthi-truong","1.phong-van\u002F1.tong-quan\u002F1.thi-truong","i-lucide-trending-up",{"title":22,"path":23,"stem":24,"icon":25},"Lộ trình 7 ngày","\u002Fphong-van\u002Ftong-quan\u002Flo-trinh","1.phong-van\u002F1.tong-quan\u002F2.lo-trinh","i-lucide-calendar-days",false,{"title":22,"icon":25,"path":28,"stem":29,"children":30,"page":26},"\u002Fphong-van\u002Flo-trinh","1.phong-van\u002F2.lo-trinh",[31,36,41,46,51,56,61],{"title":32,"path":33,"stem":34,"icon":35},"Ngày 1 — C# cơ bản","\u002Fphong-van\u002Flo-trinh\u002Fngay-1-csharp-co-ban","1.phong-van\u002F2.lo-trinh\u002F1.ngay-1-csharp-co-ban","i-lucide-1",{"title":37,"path":38,"stem":39,"icon":40},"Ngày 2 — OOP và SOLID","\u002Fphong-van\u002Flo-trinh\u002Fngay-2-oop-solid","1.phong-van\u002F2.lo-trinh\u002F2.ngay-2-oop-solid","i-lucide-2",{"title":42,"path":43,"stem":44,"icon":45},"Ngày 3 — C# nâng cao","\u002Fphong-van\u002Flo-trinh\u002Fngay-3-csharp-nang-cao","1.phong-van\u002F2.lo-trinh\u002F3.ngay-3-csharp-nang-cao","i-lucide-3",{"title":47,"path":48,"stem":49,"icon":50},"Ngày 4 — Database và SQL","\u002Fphong-van\u002Flo-trinh\u002Fngay-4-database-sql","1.phong-van\u002F2.lo-trinh\u002F4.ngay-4-database-sql","i-lucide-4",{"title":52,"path":53,"stem":54,"icon":55},"Ngày 5 — ASP.NET Core và EF Core","\u002Fphong-van\u002Flo-trinh\u002Fngay-5-aspnet-efcore","1.phong-van\u002F2.lo-trinh\u002F5.ngay-5-aspnet-efcore","i-lucide-5",{"title":57,"path":58,"stem":59,"icon":60},"Ngày 6 — DSA coding","\u002Fphong-van\u002Flo-trinh\u002Fngay-6-dsa","1.phong-van\u002F2.lo-trinh\u002F6.ngay-6-dsa","i-lucide-6",{"title":62,"path":63,"stem":64,"icon":65},"Ngày 7 — Mock và HR","\u002Fphong-van\u002Flo-trinh\u002Fngay-7-mock-interview","1.phong-van\u002F2.lo-trinh\u002F7.ngay-7-mock-interview","i-lucide-7",{"title":67,"icon":68,"path":69,"stem":70,"children":71,"page":26},"Ngân hàng câu hỏi","i-lucide-database","\u002Fphong-van\u002Fngan-hang-cau-hoi","1.phong-van\u002F3.ngan-hang-cau-hoi",[72,77,82,87,92,97,102,107],{"title":73,"path":74,"stem":75,"icon":76},"C# (60+ câu)","\u002Fphong-van\u002Fngan-hang-cau-hoi\u002Fcsharp","1.phong-van\u002F3.ngan-hang-cau-hoi\u002F1.csharp","i-lucide-hash",{"title":78,"path":79,"stem":80,"icon":81},"OOP và SOLID (40+)","\u002Fphong-van\u002Fngan-hang-cau-hoi\u002Foop","1.phong-van\u002F3.ngan-hang-cau-hoi\u002F2.oop","i-lucide-shapes",{"title":83,"path":84,"stem":85,"icon":86},"SQL (40+)","\u002Fphong-van\u002Fngan-hang-cau-hoi\u002Fsql","1.phong-van\u002F3.ngan-hang-cau-hoi\u002F3.sql","i-lucide-database-zap",{"title":88,"path":89,"stem":90,"icon":91},"ASP.NET và EF (50+)","\u002Fphong-van\u002Fngan-hang-cau-hoi\u002Faspnet-ef","1.phong-van\u002F3.ngan-hang-cau-hoi\u002F4.aspnet-ef","i-lucide-server",{"title":93,"path":94,"stem":95,"icon":96},"DSA và Coding (30+)","\u002Fphong-van\u002Fngan-hang-cau-hoi\u002Fdsa-coding","1.phong-van\u002F3.ngan-hang-cau-hoi\u002F5.dsa-coding","i-lucide-binary",{"title":98,"path":99,"stem":100,"icon":101},"HR và Soft skill (25+)","\u002Fphong-van\u002Fngan-hang-cau-hoi\u002Fhr-behavior","1.phong-van\u002F3.ngan-hang-cau-hoi\u002F6.hr-behavior","i-lucide-users",{"title":103,"path":104,"stem":105,"icon":106},"Design Pattern (55+)","\u002Fphong-van\u002Fngan-hang-cau-hoi\u002Fdesign-pattern","1.phong-van\u002F3.ngan-hang-cau-hoi\u002F7.design-pattern","i-lucide-puzzle",{"title":108,"path":109,"stem":110,"icon":91},"ASP.NET MVC và Web API","\u002Fphong-van\u002Fngan-hang-cau-hoi\u002Faspnet-mvc-webapi","1.phong-van\u002F3.ngan-hang-cau-hoi\u002F8.aspnet-mvc-webapi",{"title":112,"itle":113,"icon":114,"path":115,"stem":116,"children":117,"page":26},"Tai Lieu","Tài liệu và Cheat sheet","i-lucide-book-marked","\u002Fphong-van\u002Ftai-lieu","1.phong-van\u002F4.tai-lieu",[118,123],{"title":119,"path":120,"stem":121,"icon":122},"Cheat Sheet","\u002Fphong-van\u002Ftai-lieu\u002Fcheatsheet","1.phong-van\u002F4.tai-lieu\u002F1.cheatsheet","i-lucide-clipboard-list",{"title":124,"path":125,"stem":126,"icon":127},"Nguồn tham khảo","\u002Fphong-van\u002Ftai-lieu\u002Fnguon","1.phong-van\u002F4.tai-lieu\u002F2.nguon","i-lucide-link",{"title":129,"icon":130,"path":131,"stem":132,"children":133,"page":26},"Phỏng vấn English","i-lucide-globe","\u002Fphong-van\u002Fenglish-interview","1.phong-van\u002F5.english-interview",[134,138,143,148],{"title":135,"path":136,"stem":137,"icon":130},"Tổng quan English","\u002Fphong-van\u002Fenglish-interview\u002Ftong-quan","1.phong-van\u002F5.english-interview\u002F1.tong-quan",{"title":139,"path":140,"stem":141,"icon":142},"Vocabulary","\u002Fphong-van\u002Fenglish-interview\u002Fvocabulary","1.phong-van\u002F5.english-interview\u002F2.vocabulary","i-lucide-book-a",{"title":144,"path":145,"stem":146,"icon":147},"Technical Q và A (EN)","\u002Fphong-van\u002Fenglish-interview\u002Ftechnical-en","1.phong-van\u002F5.english-interview\u002F3.technical-en","i-lucide-code",{"title":149,"path":150,"stem":151,"icon":152},"Behavioral (EN)","\u002Fphong-van\u002Fenglish-interview\u002Fbehavioral-en","1.phong-van\u002F5.english-interview\u002F4.behavioral-en","i-lucide-message-square-text",{"title":154,"icon":155,"path":156,"stem":157,"children":158},"Tự học","i-lucide-graduation-cap","\u002Ftu-hoc","2.tu-hoc",[159,161,287,310,333,357,384],{"title":154,"path":156,"stem":160,"icon":155},"2.tu-hoc\u002Findex",{"title":162,"icon":68,"path":163,"stem":164,"children":165},"Database","\u002Ftu-hoc\u002Fdatabase","2.tu-hoc\u002F1.database\u002Findex",[166,167,197,222,243,248],{"title":162,"path":163,"stem":164,"icon":68},{"title":168,"icon":91,"path":169,"stem":170,"children":171,"page":26},"SQL Server","\u002Ftu-hoc\u002Fdatabase\u002Fsql-server","2.tu-hoc\u002F1.database\u002F2.sql-server",[172,177,182,187,192],{"title":173,"path":174,"stem":175,"icon":176},"1. Giới thiệu và Cài đặt","\u002Ftu-hoc\u002Fdatabase\u002Fsql-server\u002Fgioi-thieu-cai-dat","2.tu-hoc\u002F1.database\u002F2.sql-server\u002F1.gioi-thieu-cai-dat","i-lucide-play-circle",{"title":178,"path":179,"stem":180,"icon":181},"2. Cú pháp cơ bản","\u002Ftu-hoc\u002Fdatabase\u002Fsql-server\u002Fcu-phap-co-ban","2.tu-hoc\u002F1.database\u002F2.sql-server\u002F2.cu-phap-co-ban","i-lucide-code-2",{"title":183,"path":184,"stem":185,"icon":186},"3. Truy vấn nâng cao","\u002Ftu-hoc\u002Fdatabase\u002Fsql-server\u002Ftruy-van-nang-cao","2.tu-hoc\u002F1.database\u002F2.sql-server\u002F3.truy-van-nang-cao","i-lucide-git-merge",{"title":188,"path":189,"stem":190,"icon":191},"4. Đặc thù và Performance","\u002Ftu-hoc\u002Fdatabase\u002Fsql-server\u002Fdac-thu-performance","2.tu-hoc\u002F1.database\u002F2.sql-server\u002F4.dac-thu-performance","i-lucide-gauge",{"title":193,"path":194,"stem":195,"icon":196},"5. Q và A phỏng vấn","\u002Ftu-hoc\u002Fdatabase\u002Fsql-server\u002Fcau-hoi-phong-van","2.tu-hoc\u002F1.database\u002F2.sql-server\u002F5.cau-hoi-phong-van","i-lucide-message-circle-question",{"title":198,"icon":199,"path":200,"stem":201,"children":202,"page":26},"PostgreSQL","i-simple-icons-postgresql","\u002Ftu-hoc\u002Fdatabase\u002Fpostgresql","2.tu-hoc\u002F1.database\u002F3.postgresql",[203,206,209,212,215,218],{"title":173,"path":204,"stem":205,"icon":176},"\u002Ftu-hoc\u002Fdatabase\u002Fpostgresql\u002Fgioi-thieu-cai-dat","2.tu-hoc\u002F1.database\u002F3.postgresql\u002F1.gioi-thieu-cai-dat",{"title":178,"path":207,"stem":208,"icon":181},"\u002Ftu-hoc\u002Fdatabase\u002Fpostgresql\u002Fcu-phap-co-ban","2.tu-hoc\u002F1.database\u002F3.postgresql\u002F2.cu-phap-co-ban",{"title":183,"path":210,"stem":211,"icon":186},"\u002Ftu-hoc\u002Fdatabase\u002Fpostgresql\u002Ftruy-van-nang-cao","2.tu-hoc\u002F1.database\u002F3.postgresql\u002F3.truy-van-nang-cao",{"title":188,"path":213,"stem":214,"icon":191},"\u002Ftu-hoc\u002Fdatabase\u002Fpostgresql\u002Fdac-thu-performance","2.tu-hoc\u002F1.database\u002F3.postgresql\u002F4.dac-thu-performance",{"title":193,"path":216,"stem":217,"icon":196},"\u002Ftu-hoc\u002Fdatabase\u002Fpostgresql\u002Fcau-hoi-phong-van","2.tu-hoc\u002F1.database\u002F3.postgresql\u002F5.cau-hoi-phong-van",{"title":219,"path":220,"stem":221,"icon":96},"6. Tích hợp C# và Postgres","\u002Ftu-hoc\u002Fdatabase\u002Fpostgresql\u002Ftich-hop-csharp","2.tu-hoc\u002F1.database\u002F3.postgresql\u002F6.tich-hop-csharp",{"title":223,"icon":224,"path":225,"stem":226,"children":227,"page":26},"MySQL","i-simple-icons-mysql","\u002Ftu-hoc\u002Fdatabase\u002Fmysql","2.tu-hoc\u002F1.database\u002F4.mysql",[228,231,234,237,240],{"title":173,"path":229,"stem":230,"icon":176},"\u002Ftu-hoc\u002Fdatabase\u002Fmysql\u002Fgioi-thieu-cai-dat","2.tu-hoc\u002F1.database\u002F4.mysql\u002F1.gioi-thieu-cai-dat",{"title":178,"path":232,"stem":233,"icon":181},"\u002Ftu-hoc\u002Fdatabase\u002Fmysql\u002Fcu-phap-co-ban","2.tu-hoc\u002F1.database\u002F4.mysql\u002F2.cu-phap-co-ban",{"title":183,"path":235,"stem":236,"icon":186},"\u002Ftu-hoc\u002Fdatabase\u002Fmysql\u002Ftruy-van-nang-cao","2.tu-hoc\u002F1.database\u002F4.mysql\u002F3.truy-van-nang-cao",{"title":188,"path":238,"stem":239,"icon":191},"\u002Ftu-hoc\u002Fdatabase\u002Fmysql\u002Fdac-thu-performance","2.tu-hoc\u002F1.database\u002F4.mysql\u002F4.dac-thu-performance",{"title":193,"path":241,"stem":242,"icon":196},"\u002Ftu-hoc\u002Fdatabase\u002Fmysql\u002Fcau-hoi-phong-van","2.tu-hoc\u002F1.database\u002F4.mysql\u002F5.cau-hoi-phong-van",{"title":244,"path":245,"stem":246,"icon":247},"So sánh 3 RDBMS","\u002Ftu-hoc\u002Fdatabase\u002Fso-sanh","2.tu-hoc\u002F1.database\u002F5.so-sanh","i-lucide-columns-3",{"title":249,"path":250,"stem":251,"children":252,"icon":254},"Supabase (BaaS)","\u002Ftu-hoc\u002Fdatabase\u002Fsupabase","2.tu-hoc\u002F1.database\u002F6.supabase\u002Findex",[253,255,259,264,269,274,278,283],{"title":249,"path":250,"stem":251,"icon":254},"i-simple-icons-supabase",{"title":256,"path":257,"stem":258,"icon":68},"1. Database","\u002Ftu-hoc\u002Fdatabase\u002Fsupabase\u002Fdatabase","2.tu-hoc\u002F1.database\u002F6.supabase\u002F1.database",{"title":260,"path":261,"stem":262,"icon":263},"2. Authentication","\u002Ftu-hoc\u002Fdatabase\u002Fsupabase\u002Fauthentication","2.tu-hoc\u002F1.database\u002F6.supabase\u002F2.authentication","i-lucide-key",{"title":265,"path":266,"stem":267,"icon":268},"3. Storage & Realtime","\u002Ftu-hoc\u002Fdatabase\u002Fsupabase\u002Fstorage-realtime","2.tu-hoc\u002F1.database\u002F6.supabase\u002F3.storage-realtime","i-lucide-zap",{"title":270,"path":271,"stem":272,"icon":273},"4. Edge Functions & AI","\u002Ftu-hoc\u002Fdatabase\u002Fsupabase\u002Ffunctions-ai","2.tu-hoc\u002F1.database\u002F6.supabase\u002F4.functions-ai","i-lucide-brain",{"title":275,"path":276,"stem":277,"icon":181},"5. API & SDKs","\u002Ftu-hoc\u002Fdatabase\u002Fsupabase\u002Fapi-sdk","2.tu-hoc\u002F1.database\u002F6.supabase\u002F5.api-sdk",{"title":279,"path":280,"stem":281,"icon":282},"6. Platform & Deploy","\u002Ftu-hoc\u002Fdatabase\u002Fsupabase\u002Fplatform-deploy","2.tu-hoc\u002F1.database\u002F6.supabase\u002F6.platform-deploy","i-lucide-cloud",{"title":284,"path":285,"stem":286,"icon":196},"7. Interview & Q&A","\u002Ftu-hoc\u002Fdatabase\u002Fsupabase\u002Finterview","2.tu-hoc\u002F1.database\u002F6.supabase\u002F7.interview",{"title":288,"icon":289,"path":290,"stem":291,"children":292},"TypeScript","i-simple-icons-typescript","\u002Ftu-hoc\u002Ftypescript","2.tu-hoc\u002F2.typescript\u002Findex",[293,294,297,301,306],{"title":288,"path":290,"stem":291,"icon":289},{"title":173,"path":295,"stem":296,"icon":176},"\u002Ftu-hoc\u002Ftypescript\u002Fgioi-thieu-cai-dat","2.tu-hoc\u002F2.typescript\u002F1.gioi-thieu-cai-dat",{"title":298,"path":299,"stem":300,"icon":81},"2. Type System","\u002Ftu-hoc\u002Ftypescript\u002Ftype-system","2.tu-hoc\u002F2.typescript\u002F2.type-system",{"title":302,"path":303,"stem":304,"icon":305},"3. Advanced types","\u002Ftu-hoc\u002Ftypescript\u002Fadvanced-types","2.tu-hoc\u002F2.typescript\u002F3.advanced-types","i-lucide-braces",{"title":307,"path":308,"stem":309,"icon":196},"4. Q và A phỏng vấn","\u002Ftu-hoc\u002Ftypescript\u002Fcau-hoi-phong-van","2.tu-hoc\u002F2.typescript\u002F4.cau-hoi-phong-van",{"title":311,"icon":81,"path":312,"stem":313,"children":314},"OOP","\u002Ftu-hoc\u002Foop","2.tu-hoc\u002F3.oop\u002Findex",[315,316,321,326,330],{"title":311,"path":312,"stem":313,"icon":81},{"title":317,"path":318,"stem":319,"icon":320},"1. Bốn tính chất","\u002Ftu-hoc\u002Foop\u002F4-tinh-chat","2.tu-hoc\u002F3.oop\u002F1.4-tinh-chat","i-lucide-circle-dot",{"title":322,"path":323,"stem":324,"icon":325},"2. SOLID","\u002Ftu-hoc\u002Foop\u002Fsolid","2.tu-hoc\u002F3.oop\u002F2.solid","i-lucide-shield",{"title":327,"path":328,"stem":329,"icon":106},"3. Design Pattern","\u002Ftu-hoc\u002Foop\u002Fdesign-pattern","2.tu-hoc\u002F3.oop\u002F3.design-pattern",{"title":307,"path":331,"stem":332,"icon":196},"\u002Ftu-hoc\u002Foop\u002Fcau-hoi-phong-van","2.tu-hoc\u002F3.oop\u002F4.cau-hoi-phong-van",{"title":334,"icon":305,"path":335,"stem":336,"children":337},"Generic","\u002Ftu-hoc\u002Fgeneric","2.tu-hoc\u002F4.generic\u002Findex",[338,339,344,349,354],{"title":334,"path":335,"stem":336,"icon":305},{"title":340,"path":341,"stem":342,"icon":343},"1. Khái niệm và cú pháp","\u002Ftu-hoc\u002Fgeneric\u002Fkhai-niem","2.tu-hoc\u002F4.generic\u002F1.khai-niem","i-lucide-book",{"title":345,"path":346,"stem":347,"icon":348},"2. Constraint và Variance","\u002Ftu-hoc\u002Fgeneric\u002Fconstraint-variance","2.tu-hoc\u002F4.generic\u002F2.constraint-variance","i-lucide-filter",{"title":350,"path":351,"stem":352,"icon":353},"3. C# vs TS","\u002Ftu-hoc\u002Fgeneric\u002Fso-sanh","2.tu-hoc\u002F4.generic\u002F3.so-sanh","i-lucide-git-compare",{"title":307,"path":355,"stem":356,"icon":196},"\u002Ftu-hoc\u002Fgeneric\u002Fcau-hoi-phong-van","2.tu-hoc\u002F4.generic\u002F4.cau-hoi-phong-van",{"title":358,"icon":359,"path":360,"stem":361,"children":362},"Nuxt 4","i-simple-icons-nuxt","\u002Ftu-hoc\u002Fnuxt-4","2.tu-hoc\u002F5.nuxt-4\u002Findex",[363,364,367,372,376,379],{"title":358,"path":360,"stem":361,"icon":359},{"title":173,"path":365,"stem":366,"icon":176},"\u002Ftu-hoc\u002Fnuxt-4\u002Fgioi-thieu-cai-dat","2.tu-hoc\u002F5.nuxt-4\u002F1.gioi-thieu-cai-dat",{"title":368,"path":369,"stem":370,"icon":371},"2. Routing và Rendering","\u002Ftu-hoc\u002Fnuxt-4\u002Frouting-rendering","2.tu-hoc\u002F5.nuxt-4\u002F2.routing-rendering","i-lucide-route",{"title":373,"path":374,"stem":375,"icon":91},"3. Data và Server","\u002Ftu-hoc\u002Fnuxt-4\u002Fdata-server","2.tu-hoc\u002F5.nuxt-4\u002F3.data-server",{"title":307,"path":377,"stem":378,"icon":196},"\u002Ftu-hoc\u002Fnuxt-4\u002Fcau-hoi-phong-van","2.tu-hoc\u002F5.nuxt-4\u002F4.cau-hoi-phong-van",{"title":380,"path":381,"stem":382,"icon":383},"5. Practical Todo App","\u002Ftu-hoc\u002Fnuxt-4\u002Fpractical-todo-app","2.tu-hoc\u002F5.nuxt-4\u002F5.practical-todo-app","i-lucide-check-square",{"title":385,"path":386,"stem":387,"children":388,"icon":390},"Tailwind CSS","\u002Ftu-hoc\u002Ftailwindcss","2.tu-hoc\u002F6.tailwindcss\u002Findex",[389,391,396,401,406,411,416],{"title":385,"path":386,"stem":387,"icon":390},"i-simple-icons-tailwindcss",{"title":392,"path":393,"stem":394,"icon":395},"1. Layout & Spacing","\u002Ftu-hoc\u002Ftailwindcss\u002Flayout-spacing","2.tu-hoc\u002F6.tailwindcss\u002F1.layout-spacing","i-lucide-layout",{"title":397,"path":398,"stem":399,"icon":400},"2. Typography & Colors","\u002Ftu-hoc\u002Ftailwindcss\u002Ftypography-colors","2.tu-hoc\u002F6.tailwindcss\u002F2.typography-colors","i-lucide-type",{"title":402,"path":403,"stem":404,"icon":405},"3. Interactive & Effects","\u002Ftu-hoc\u002Ftailwindcss\u002Finteractive-effects","2.tu-hoc\u002F6.tailwindcss\u002F3.interactive-effects","i-lucide-sparkles",{"title":407,"path":408,"stem":409,"icon":410},"4. Responsive & Dark Mode","\u002Ftu-hoc\u002Ftailwindcss\u002Fresponsive-darkmode","2.tu-hoc\u002F6.tailwindcss\u002F4.responsive-darkmode","i-lucide-monitor-smartphone",{"title":412,"path":413,"stem":414,"icon":415},"5. Customization & Theme","\u002Ftu-hoc\u002Ftailwindcss\u002Fcustomization","2.tu-hoc\u002F6.tailwindcss\u002F5.customization","i-lucide-settings-2",{"title":417,"path":418,"stem":419,"icon":181},"6. Practical Projects","\u002Ftu-hoc\u002Ftailwindcss\u002Fpractical-projects","2.tu-hoc\u002F6.tailwindcss\u002F6.practical-projects",{"id":421,"title":422,"body":423,"description":2567,"extension":2568,"links":2569,"meta":2570,"navigation":2571,"path":140,"seo":2572,"stem":141,"__hash__":2573},"docs\u002F1.phong-van\u002F5.english-interview\u002F2.vocabulary.md","Vocabulary — Từ vựng phỏng vấn .NET English",{"type":424,"value":425,"toc":2554},"minimark",[426,436,441,707,711,981,985,1240,1244,1510,1514,1710,1714,1983,1987,2209,2213,2347,2351,2546],[427,428,431,435],"callout",{"color":429,"icon":430},"primary","i-lucide-volume-2",[432,433,434],"strong",{},"Cách dùng:"," chia thành 6 chủ đề. Mỗi ngày học 1 chủ đề — đọc to từ + định nghĩa English + tự đặt 1 câu ví dụ. Sau 1 tuần là vào nếp.",[437,438,440],"h2",{"id":439},"a-c-net-fundamentals","A. C# & .NET fundamentals",[442,443,444,460],"table",{},[445,446,447],"thead",{},[448,449,450,454,457],"tr",{},[451,452,453],"th",{},"English",[451,455,456],{},"VN",[451,458,459],{},"Ví dụ câu",[461,462,463,485,504,525,541,557,574,591,606,621,638,653,673,690],"tbody",{},[448,464,465,471,474],{},[466,467,468],"td",{},[432,469,470],{},"value type",[466,472,473],{},"kiểu giá trị",[466,475,476,477,481,482,484],{},"\"An ",[478,479,480],"code",{},"int"," is a ",[432,483,470],{},", stored on the stack.\"",[448,486,487,492,495],{},[466,488,489],{},[432,490,491],{},"reference type",[466,493,494],{},"kiểu tham chiếu",[466,496,497,498,481,501,503],{},"\"A ",[478,499,500],{},"class",[432,502,491],{},", the variable holds a pointer to the heap.\"",[448,505,506,511,514],{},[466,507,508],{},[432,509,510],{},"stack \u002F heap",[466,512,513],{},"stack\u002Fheap",[466,515,516,517,520,521,524],{},"\"Local variables live on the ",[432,518,519],{},"stack","; objects live on the ",[432,522,523],{},"heap",".\"",[448,526,527,532,535],{},[466,528,529],{},[432,530,531],{},"garbage collection (GC)",[466,533,534],{},"thu gom rác",[466,536,537,538,524],{},"\".NET handles memory automatically through ",[432,539,540],{},"garbage collection",[448,542,543,548,551],{},[466,544,545],{},[432,546,547],{},"immutable",[466,549,550],{},"không đổi được",[466,552,553,554,556],{},"\"Strings are ",[432,555,547],{}," in C#.\"",[448,558,559,564,567],{},[466,560,561],{},[432,562,563],{},"boxing \u002F unboxing",[466,565,566],{},"đóng \u002F mở hộp",[466,568,569,570,573],{},"\"",[432,571,572],{},"Boxing"," wraps a value type into an object on the heap.\"",[448,575,576,581,584],{},[466,577,578],{},[432,579,580],{},"generic",[466,582,583],{},"tổng quát hoá",[466,585,586,587,590],{},"\"I use ",[432,588,589],{},"generics"," to write reusable, type-safe code.\"",[448,592,593,598,601],{},[466,594,595],{},[432,596,597],{},"delegate",[466,599,600],{},"con trỏ hàm",[466,602,497,603,605],{},[432,604,597],{}," is a type-safe function pointer.\"",[448,607,608,613,616],{},[466,609,610],{},[432,611,612],{},"event",[466,614,615],{},"sự kiện",[466,617,476,618,620],{},[432,619,612],{}," is a wrapper around a delegate that restricts how subscribers can call it.\"",[448,622,623,628,631],{},[466,624,625],{},[432,626,627],{},"lambda expression",[466,629,630],{},"lambda",[466,632,633,634,637],{},"\"I prefer ",[432,635,636],{},"lambda expressions"," over anonymous methods for brevity.\"",[448,639,640,645,648],{},[466,641,642],{},[432,643,644],{},"closure",[466,646,647],{},"bao đóng",[466,649,497,650,652],{},[432,651,644],{}," captures variables from the enclosing scope.\"",[448,654,655,660,663],{},[466,656,657],{},[432,658,659],{},"extension method",[466,661,662],{},"method mở rộng",[466,664,665,666,669,670,524],{},"\"LINQ is built on ",[432,667,668],{},"extension methods"," for ",[478,671,672],{},"IEnumerable",[448,674,675,680,683],{},[466,676,677],{},[432,678,679],{},"null-coalescing",[466,681,682],{},"toán tử ??",[466,684,685,686,689],{},"\"I use the ",[432,687,688],{},"null-coalescing operator"," to provide a default value.\"",[448,691,692,697,700],{},[466,693,694],{},[432,695,696],{},"nullable reference type",[466,698,699],{},"reference nullable",[466,701,702,703,706],{},"\".NET 6 enables ",[432,704,705],{},"nullable reference types"," by default.\"",[437,708,710],{"id":709},"b-oop-design","B. OOP & Design",[442,712,713,723],{},[445,714,715],{},[448,716,717,719,721],{},[451,718,453],{},[451,720,456],{},[451,722,459],{},[461,724,725,741,765,781,804,820,837,852,868,884,904,920,936,952,968],{},[448,726,727,732,735],{},[466,728,729],{},[432,730,731],{},"encapsulation",[466,733,734],{},"đóng gói",[466,736,569,737,740],{},[432,738,739],{},"Encapsulation"," hides internal state behind a public API.\"",[448,742,743,748,751],{},[466,744,745],{},[432,746,747],{},"abstraction",[466,749,750],{},"trừu tượng",[466,752,569,753,756,757,761,762,524],{},[432,754,755],{},"Abstraction"," lets us focus on ",[758,759,760],"em",{},"what"," a type does, not ",[758,763,764],{},"how",[448,766,767,772,775],{},[466,768,769],{},[432,770,771],{},"inheritance",[466,773,774],{},"kế thừa",[466,776,777,778,780],{},"\"I prefer composition over ",[432,779,771],{}," in most cases.\"",[448,782,783,788,791],{},[466,784,785],{},[432,786,787],{},"polymorphism",[466,789,790],{},"đa hình",[466,792,569,793,796,797,800,801,524],{},[432,794,795],{},"Runtime polymorphism"," in C# is achieved via ",[478,798,799],{},"virtual"," and ",[478,802,803],{},"override",[448,805,806,810,813],{},[466,807,808],{},[432,809,803],{},[466,811,812],{},"ghi đè",[466,814,815,816,819],{},"\"The derived class ",[432,817,818],{},"overrides"," the base method.\"",[448,821,822,827,830],{},[466,823,824],{},[432,825,826],{},"overload",[466,828,829],{},"nạp chồng",[466,831,832,833,836],{},"\"I ",[432,834,835],{},"overloaded"," the constructor to accept different argument lists.\"",[448,838,839,844,847],{},[466,840,841],{},[432,842,843],{},"abstract class",[466,845,846],{},"lớp trừu tượng",[466,848,476,849,851],{},[432,850,843],{}," can have both abstract and concrete members.\"",[448,853,854,859,862],{},[466,855,856],{},[432,857,858],{},"interface",[466,860,861],{},"giao diện",[466,863,864,865,867],{},"\"I extracted an ",[432,866,858],{}," to make the class testable.\"",[448,869,870,875,878],{},[466,871,872],{},[432,873,874],{},"composition",[466,876,877],{},"thành phần",[466,879,569,880,883],{},[432,881,882],{},"Composition"," gives more flexibility than inheritance.\"",[448,885,886,891,894],{},[466,887,888],{},[432,889,890],{},"coupling \u002F cohesion",[466,892,893],{},"gắn kết",[466,895,896,897,900,901,524],{},"\"Aim for low ",[432,898,899],{},"coupling"," and high ",[432,902,903],{},"cohesion",[448,905,906,911,914],{},[466,907,908],{},[432,909,910],{},"design pattern",[466,912,913],{},"mẫu thiết kế",[466,915,916,917,524],{},"\"Singleton is a common ",[432,918,919],{},"creational pattern",[448,921,922,927,930],{},[466,923,924],{},[432,925,926],{},"dependency injection (DI)",[466,928,929],{},"tiêm phụ thuộc",[466,931,932,933,524],{},"\"ASP.NET Core has built-in ",[432,934,935],{},"dependency injection",[448,937,938,943,946],{},[466,939,940],{},[432,941,942],{},"SOLID principles",[466,944,945],{},"nguyên lý SOLID",[466,947,569,948,951],{},[432,949,950],{},"SOLID"," stands for five OOP principles.\"",[448,953,954,959,962],{},[466,955,956],{},[432,957,958],{},"single responsibility",[466,960,961],{},"trách nhiệm đơn",[466,963,569,964,967],{},[432,965,966],{},"Single Responsibility Principle"," — a class should have only one reason to change.\"",[448,969,970,975,978],{},[466,971,972],{},[432,973,974],{},"open \u002F closed",[466,976,977],{},"mở \u002F đóng",[466,979,980],{},"\"Open for extension, closed for modification.\"",[437,982,984],{"id":983},"c-database-sql","C. Database & SQL",[442,986,987,997],{},[445,988,989],{},[448,990,991,993,995],{},[451,992,453],{},[451,994,456],{},[451,996,459],{},[461,998,999,1015,1032,1049,1067,1083,1099,1115,1131,1148,1163,1177,1192,1208,1224],{},[448,1000,1001,1006,1009],{},[466,1002,1003],{},[432,1004,1005],{},"schema",[466,1007,1008],{},"lược đồ",[466,1010,1011,1012,1014],{},"\"I designed the ",[432,1013,1005],{}," with three normalized tables.\"",[448,1016,1017,1022,1025],{},[466,1018,1019],{},[432,1020,1021],{},"primary key (PK)",[466,1023,1024],{},"khoá chính",[466,1026,1027,1028,1031],{},"\"Each table has a ",[432,1029,1030],{},"primary key"," for unique identification.\"",[448,1033,1034,1039,1042],{},[466,1035,1036],{},[432,1037,1038],{},"foreign key (FK)",[466,1040,1041],{},"khoá ngoại",[466,1043,1044,1045,1048],{},"\"The ",[432,1046,1047],{},"foreign key"," enforces referential integrity.\"",[448,1050,1051,1056,1059],{},[466,1052,1053],{},[432,1054,1055],{},"constraint",[466,1057,1058],{},"ràng buộc",[466,1060,569,1061,1064,1065,524],{},[478,1062,1063],{},"NOT NULL"," is a column-level ",[432,1066,1055],{},[448,1068,1069,1074,1077],{},[466,1070,1071],{},[432,1072,1073],{},"index",[466,1075,1076],{},"chỉ mục",[466,1078,1079,1080,1082],{},"\"I added an ",[432,1081,1073],{}," to speed up the lookup.\"",[448,1084,1085,1090,1093],{},[466,1086,1087],{},[432,1088,1089],{},"clustered \u002F non-clustered",[466,1091,1092],{},"clustered\u002Fnon",[466,1094,1095,1096,524],{},"\"A table can only have one ",[432,1097,1098],{},"clustered index",[448,1100,1101,1106,1109],{},[466,1102,1103],{},[432,1104,1105],{},"JOIN (inner\u002Fleft\u002Fright\u002Ffull)",[466,1107,1108],{},"JOIN",[466,1110,476,1111,1114],{},[432,1112,1113],{},"inner join"," returns only matching rows from both tables.\"",[448,1116,1117,1122,1125],{},[466,1118,1119],{},[432,1120,1121],{},"normalization",[466,1123,1124],{},"chuẩn hoá",[466,1126,569,1127,1130],{},[432,1128,1129],{},"Third normal form"," removes transitive dependencies.\"",[448,1132,1133,1138,1141],{},[466,1134,1135],{},[432,1136,1137],{},"denormalization",[466,1139,1140],{},"phi chuẩn hoá",[466,1142,1143,1144,1147],{},"\"For reporting, I sometimes ",[432,1145,1146],{},"denormalize"," to avoid expensive joins.\"",[448,1149,1150,1155,1158],{},[466,1151,1152],{},[432,1153,1154],{},"transaction",[466,1156,1157],{},"giao dịch",[466,1159,1160,1161,524],{},"\"I wrapped the operations in a ",[432,1162,1154],{},[448,1164,1165,1170,1172],{},[466,1166,1167],{},[432,1168,1169],{},"ACID",[466,1171,1169],{},[466,1173,569,1174,1176],{},[432,1175,1169],{}," stands for Atomicity, Consistency, Isolation, Durability.\"",[448,1178,1179,1184,1187],{},[466,1180,1181],{},[432,1182,1183],{},"deadlock",[466,1185,1186],{},"bế tắc",[466,1188,1189,1190,524],{},"\"Two transactions waiting for each other cause a ",[432,1191,1183],{},[448,1193,1194,1199,1202],{},[466,1195,1196],{},[432,1197,1198],{},"stored procedure",[466,1200,1201],{},"thủ tục lưu trữ",[466,1203,1204,1205,1207],{},"\"We moved the logic into a ",[432,1206,1198],{}," for performance.\"",[448,1209,1210,1215,1218],{},[466,1211,1212],{},[432,1213,1214],{},"execution plan",[466,1216,1217],{},"kế hoạch thực thi",[466,1219,1220,1221,1223],{},"\"I checked the ",[432,1222,1214],{}," to find the bottleneck.\"",[448,1225,1226,1231,1234],{},[466,1227,1228],{},[432,1229,1230],{},"full table scan",[466,1232,1233],{},"quét toàn bảng",[466,1235,1236,1237,1239],{},"\"The query did a ",[432,1238,1230],{}," because the column wasn't indexed.\"",[437,1241,1243],{"id":1242},"d-web-api-http","D. Web \u002F API \u002F HTTP",[442,1245,1246,1256],{},[445,1247,1248],{},[448,1249,1250,1252,1254],{},[451,1251,453],{},[451,1253,456],{},[451,1255,459],{},[461,1257,1258,1278,1295,1311,1326,1349,1369,1384,1399,1416,1431,1446,1462,1478,1494],{},[448,1259,1260,1265,1268],{},[466,1261,1262],{},[432,1263,1264],{},"request \u002F response",[466,1266,1267],{},"yêu cầu \u002F phản hồi",[466,1269,1270,1271,1274,1275,524],{},"\"Every HTTP ",[432,1272,1273],{},"request"," has a corresponding ",[432,1276,1277],{},"response",[448,1279,1280,1285,1288],{},[466,1281,1282],{},[432,1283,1284],{},"endpoint",[466,1286,1287],{},"điểm cuối",[466,1289,1290,1291,1294],{},"\"I exposed three REST ",[432,1292,1293],{},"endpoints"," for user CRUD.\"",[448,1296,1297,1302,1305],{},[466,1298,1299],{},[432,1300,1301],{},"payload",[466,1303,1304],{},"nội dung",[466,1306,1307,1308,1310],{},"\"The JSON ",[432,1309,1301],{}," contains the user data.\"",[448,1312,1313,1318,1320],{},[466,1314,1315],{},[432,1316,1317],{},"header \u002F body",[466,1319,1317],{},[466,1321,1322,1323,524],{},"\"Authentication tokens go in the ",[432,1324,1325],{},"Authorization header",[448,1327,1328,1333,1336],{},[466,1329,1330],{},[432,1331,1332],{},"idempotent",[466,1334,1335],{},"luỹ đẳng",[466,1337,569,1338,1341,1342,1344,1345,1348],{},[478,1339,1340],{},"PUT"," is ",[432,1343,1332],{},"; ",[478,1346,1347],{},"POST"," is not.\"",[448,1350,1351,1356,1359],{},[466,1352,1353],{},[432,1354,1355],{},"status code",[466,1357,1358],{},"mã trạng thái",[466,1360,1361,1362,1365,1366,1368],{},"\"I return a ",[478,1363,1364],{},"404"," ",[432,1367,1355],{}," when the resource isn't found.\"",[448,1370,1371,1376,1378],{},[466,1372,1373],{},[432,1374,1375],{},"CORS",[466,1377,1375],{},[466,1379,1380,1381,1383],{},"\"I enabled ",[432,1382,1375],{}," to allow the React frontend to call the API.\"",[448,1385,1386,1391,1394],{},[466,1387,1388],{},[432,1389,1390],{},"JWT (token)",[466,1392,1393],{},"JWT",[466,1395,586,1396,1398],{},[432,1397,1393],{}," for stateless authentication.\"",[448,1400,1401,1406,1408],{},[466,1402,1403],{},[432,1404,1405],{},"claim",[466,1407,1405],{},[466,1409,1410,1411,1365,1414,524],{},"\"Each token includes a ",[478,1412,1413],{},"role",[432,1415,1405],{},[448,1417,1418,1423,1425],{},[466,1419,1420],{},[432,1421,1422],{},"middleware",[466,1424,1422],{},[466,1426,1427,1428,1430],{},"\"I wrote a custom ",[432,1429,1422],{}," to log request timing.\"",[448,1432,1433,1438,1440],{},[466,1434,1435],{},[432,1436,1437],{},"pipeline",[466,1439,1437],{},[466,1441,1442,1443,1445],{},"\"ASP.NET Core has a request ",[432,1444,1437],{}," of middlewares.\"",[448,1447,1448,1453,1456],{},[466,1449,1450],{},[432,1451,1452],{},"routing",[466,1454,1455],{},"định tuyến",[466,1457,569,1458,1461],{},[432,1459,1460],{},"Attribute routing"," lets me decorate controllers with route templates.\"",[448,1463,1464,1469,1472],{},[466,1465,1466],{},[432,1467,1468],{},"authentication",[466,1470,1471],{},"xác thực",[466,1473,569,1474,1477],{},[432,1475,1476],{},"Authentication"," verifies who the user is.\"",[448,1479,1480,1485,1488],{},[466,1481,1482],{},[432,1483,1484],{},"authorization",[466,1486,1487],{},"phân quyền",[466,1489,569,1490,1493],{},[432,1491,1492],{},"Authorization"," decides what the user is allowed to do.\"",[448,1495,1496,1501,1504],{},[466,1497,1498],{},[432,1499,1500],{},"rate limiting",[466,1502,1503],{},"giới hạn tốc độ",[466,1505,1506,1507,1509],{},"\"I added ",[432,1508,1500],{}," to prevent abuse.\"",[437,1511,1513],{"id":1512},"e-entity-framework-core","E. Entity Framework Core",[442,1515,1516,1526],{},[445,1517,1518],{},[448,1519,1520,1522,1524],{},[451,1521,453],{},[451,1523,456],{},[451,1525,459],{},[461,1527,1528,1543,1559,1573,1591,1607,1623,1641,1657,1674,1691],{},[448,1529,1530,1535,1537],{},[466,1531,1532],{},[432,1533,1534],{},"ORM",[466,1536,1534],{},[466,1538,1539,1540,524],{},"\"EF Core is an ",[432,1541,1542],{},"object-relational mapper",[448,1544,1545,1550,1553],{},[466,1546,1547],{},[432,1548,1549],{},"entity",[466,1551,1552],{},"thực thể",[466,1554,1555,1556,1558],{},"\"Each table maps to a C# ",[432,1557,1549],{}," class.\"",[448,1560,1561,1566,1568],{},[466,1562,1563],{},[432,1564,1565],{},"DbContext",[466,1567,1565],{},[466,1569,1044,1570,1572],{},[432,1571,1565],{}," is a unit of work for the session.\"",[448,1574,1575,1580,1582],{},[466,1576,1577],{},[432,1578,1579],{},"migration",[466,1581,1579],{},[466,1583,1584,1585,1587,1588,524],{},"\"I generated a ",[432,1586,1579],{}," with ",[478,1589,1590],{},"dotnet ef migrations add",[448,1592,1593,1598,1601],{},[466,1594,1595],{},[432,1596,1597],{},"change tracking",[466,1599,1600],{},"theo dõi thay đổi",[466,1602,1603,1604,1606],{},"\"EF Core uses ",[432,1605,1597],{}," to detect modifications.\"",[448,1608,1609,1614,1617],{},[466,1610,1611],{},[432,1612,1613],{},"lazy loading",[466,1615,1616],{},"tải lười",[466,1618,569,1619,1622],{},[432,1620,1621],{},"Lazy loading"," can cause the N+1 query problem.\"",[448,1624,1625,1630,1633],{},[466,1626,1627],{},[432,1628,1629],{},"eager loading",[466,1631,1632],{},"tải sẵn",[466,1634,586,1635,669,1638,1640],{},[478,1636,1637],{},".Include",[432,1639,1629],{}," of related entities.\"",[448,1642,1643,1648,1651],{},[466,1644,1645],{},[432,1646,1647],{},"N+1 problem",[466,1649,1650],{},"bài toán N+1",[466,1652,1653,1654,524],{},"\"Looping with lazy loading triggers the ",[432,1655,1656],{},"N+1 query problem",[448,1658,1659,1664,1667],{},[466,1660,1661],{},[432,1662,1663],{},"navigation property",[466,1665,1666],{},"property điều hướng",[466,1668,569,1669,481,1672,524],{},[478,1670,1671],{},"User.Orders",[432,1673,1663],{},[448,1675,1676,1681,1684],{},[466,1677,1678],{},[432,1679,1680],{},"tracking \u002F no-tracking",[466,1682,1683],{},"tracking",[466,1685,1686,1687,1690],{},"\"I call ",[478,1688,1689],{},".AsNoTracking()"," for read-only queries.\"",[448,1692,1693,1698,1701],{},[466,1694,1695],{},[432,1696,1697],{},"concurrency conflict",[466,1699,1700],{},"xung đột đồng thời",[466,1702,1603,1703,1706,1707,524],{},[478,1704,1705],{},"RowVersion"," to detect ",[432,1708,1709],{},"concurrency conflicts",[437,1711,1713],{"id":1712},"f-soft-skill-process","F. Soft skill & process",[442,1715,1716,1726],{},[445,1717,1718],{},[448,1719,1720,1722,1724],{},[451,1721,453],{},[451,1723,456],{},[451,1725,459],{},[461,1727,1728,1744,1760,1776,1792,1808,1824,1840,1856,1873,1888,1903,1919,1936,1952,1968],{},[448,1729,1730,1735,1738],{},[466,1731,1732],{},[432,1733,1734],{},"scope",[466,1736,1737],{},"phạm vi",[466,1739,1740,1741,1743],{},"\"We agreed on the ",[432,1742,1734],{}," before starting the sprint.\"",[448,1745,1746,1751,1754],{},[466,1747,1748],{},[432,1749,1750],{},"deadline",[466,1752,1753],{},"hạn chót",[466,1755,1756,1757,1759],{},"\"I missed the ",[432,1758,1750],{}," once and learned to communicate earlier.\"",[448,1761,1762,1767,1770],{},[466,1763,1764],{},[432,1765,1766],{},"trade-off",[466,1768,1769],{},"đánh đổi",[466,1771,1772,1773,1775],{},"\"There's a ",[432,1774,1766],{}," between performance and readability.\"",[448,1777,1778,1783,1786],{},[466,1779,1780],{},[432,1781,1782],{},"bottleneck",[466,1784,1785],{},"điểm nghẽn",[466,1787,1788,1789,1791],{},"\"The database was the ",[432,1790,1782],{},", not the API.\"",[448,1793,1794,1799,1802],{},[466,1795,1796],{},[432,1797,1798],{},"edge case",[466,1800,1801],{},"trường hợp biên",[466,1803,1804,1805,524],{},"\"I wrote tests covering the ",[432,1806,1807],{},"edge cases",[448,1809,1810,1815,1818],{},[466,1811,1812],{},[432,1813,1814],{},"regression",[466,1816,1817],{},"hồi quy",[466,1819,1820,1821,1823],{},"\"The new feature introduced a ",[432,1822,1814],{}," in the login flow.\"",[448,1825,1826,1831,1834],{},[466,1827,1828],{},[432,1829,1830],{},"code review",[466,1832,1833],{},"review code",[466,1835,1836,1837,524],{},"\"I learned a lot from senior engineers during ",[432,1838,1839],{},"code reviews",[448,1841,1842,1847,1850],{},[466,1843,1844],{},[432,1845,1846],{},"pair programming",[466,1848,1849],{},"code đôi",[466,1851,1852,1853,1855],{},"\"We did ",[432,1854,1846],{}," to debug the issue.\"",[448,1857,1858,1863,1866],{},[466,1859,1860],{},[432,1861,1862],{},"stand-up",[466,1864,1865],{},"họp đứng",[466,1867,1868,1869,1872],{},"\"Daily ",[432,1870,1871],{},"stand-ups"," keep the team aligned.\"",[448,1874,1875,1880,1882],{},[466,1876,1877],{},[432,1878,1879],{},"sprint",[466,1881,1879],{},[466,1883,1884,1885,1887],{},"\"Each ",[432,1886,1879],{}," is two weeks long in our team.\"",[448,1889,1890,1895,1897],{},[466,1891,1892],{},[432,1893,1894],{},"backlog",[466,1896,1894],{},[466,1898,1899,1900,1902],{},"\"We groom the ",[432,1901,1894],{}," every Friday.\"",[448,1904,1905,1910,1913],{},[466,1906,1907],{},[432,1908,1909],{},"MVP",[466,1911,1912],{},"sản phẩm tối thiểu",[466,1914,1915,1916,1918],{},"\"We shipped the ",[432,1917,1909],{}," in six weeks.\"",[448,1920,1921,1926,1929],{},[466,1922,1923],{},[432,1924,1925],{},"proof of concept (POC)",[466,1927,1928],{},"POC",[466,1930,1931,1932,1935],{},"\"I built a ",[432,1933,1934],{},"proof of concept"," to compare two approaches.\"",[448,1937,1938,1943,1946],{},[466,1939,1940],{},[432,1941,1942],{},"technical debt",[466,1944,1945],{},"nợ kỹ thuật",[466,1947,1948,1949,1951],{},"\"We pay down ",[432,1950,1942],{}," every fourth sprint.\"",[448,1953,1954,1959,1962],{},[466,1955,1956],{},[432,1957,1958],{},"refactor",[466,1960,1961],{},"tái cấu trúc",[466,1963,832,1964,1967],{},[432,1965,1966],{},"refactored"," the service to follow SOLID.\"",[448,1969,1970,1974,1976],{},[466,1971,1972],{},[432,1973,1766],{},[466,1975,1769],{},[466,1977,1978,1979,1982],{},"\"We considered the ",[432,1980,1981],{},"trade-offs"," before choosing Redis.\"",[437,1984,1986],{"id":1985},"g-verbs-hay-dùng-action-verbs","G. Verbs hay dùng (action verbs)",[442,1988,1989,2001],{},[445,1990,1991],{},[448,1992,1993,1996,1999],{},[451,1994,1995],{},"Verb",[451,1997,1998],{},"Meaning",[451,2000,459],{},[461,2002,2003,2019,2035,2051,2067,2083,2099,2115,2131,2146,2162,2177,2193],{},[448,2004,2005,2010,2013],{},[466,2006,2007],{},[432,2008,2009],{},"implement",[466,2011,2012],{},"hiện thực",[466,2014,832,2015,2018],{},[432,2016,2017],{},"implemented"," the search feature using LINQ.\"",[448,2020,2021,2026,2029],{},[466,2022,2023],{},[432,2024,2025],{},"design",[466,2027,2028],{},"thiết kế",[466,2030,832,2031,2034],{},[432,2032,2033],{},"designed"," the data model from scratch.\"",[448,2036,2037,2042,2045],{},[466,2038,2039],{},[432,2040,2041],{},"debug",[466,2043,2044],{},"sửa lỗi",[466,2046,832,2047,2050],{},[432,2048,2049],{},"debugged"," a memory leak in a production service.\"",[448,2052,2053,2058,2061],{},[466,2054,2055],{},[432,2056,2057],{},"deploy",[466,2059,2060],{},"triển khai",[466,2062,2063,2064,2066],{},"\"We ",[432,2065,2057],{}," twice a week to staging.\"",[448,2068,2069,2074,2077],{},[466,2070,2071],{},[432,2072,2073],{},"optimize",[466,2075,2076],{},"tối ưu",[466,2078,832,2079,2082],{},[432,2080,2081],{},"optimized"," the query and reduced response time by 70%.\"",[448,2084,2085,2090,2093],{},[466,2086,2087],{},[432,2088,2089],{},"integrate",[466,2091,2092],{},"tích hợp",[466,2094,832,2095,2098],{},[432,2096,2097],{},"integrated"," Stripe for payment.\"",[448,2100,2101,2106,2109],{},[466,2102,2103],{},[432,2104,2105],{},"scale",[466,2107,2108],{},"mở rộng",[466,2110,2111,2112,2114],{},"\"We need to ",[432,2113,2105],{}," horizontally for next quarter.\"",[448,2116,2117,2122,2125],{},[466,2118,2119],{},[432,2120,2121],{},"maintain",[466,2123,2124],{},"duy trì",[466,2126,2127,2128,2130],{},"\"The codebase is easy to ",[432,2129,2121],{}," thanks to SOLID.\"",[448,2132,2133,2138,2141],{},[466,2134,2135],{},[432,2136,2137],{},"collaborate",[466,2139,2140],{},"hợp tác",[466,2142,832,2143,2145],{},[432,2144,2137],{}," closely with QA on test cases.\"",[448,2147,2148,2153,2156],{},[466,2149,2150],{},[432,2151,2152],{},"estimate",[466,2154,2155],{},"ước lượng",[466,2157,2158,2159,2161],{},"\"I usually ",[432,2160,2152],{}," with a 30% buffer.\"",[448,2163,2164,2169,2172],{},[466,2165,2166],{},[432,2167,2168],{},"troubleshoot",[466,2170,2171],{},"xử lý sự cố",[466,2173,832,2174,2176],{},[432,2175,2168],{}," by checking logs and reproducing locally.\"",[448,2178,2179,2184,2187],{},[466,2180,2181],{},[432,2182,2183],{},"leverage",[466,2185,2186],{},"tận dụng",[466,2188,2063,2189,2192],{},[432,2190,2191],{},"leveraged"," caching to reduce DB load.\"",[448,2194,2195,2200,2203],{},[466,2196,2197],{},[432,2198,2199],{},"mitigate",[466,2201,2202],{},"giảm thiểu",[466,2204,2063,2205,2208],{},[432,2206,2207],{},"mitigated"," the risk with feature flags.\"",[437,2210,2212],{"id":2211},"h-filler-connector-giúp-nói-trôi","H. Filler & connector (giúp nói trôi)",[442,2214,2215,2225],{},[445,2216,2217],{},[448,2218,2219,2222],{},[451,2220,2221],{},"Phrase",[451,2223,2224],{},"Khi nào dùng",[461,2226,2227,2237,2247,2257,2267,2277,2287,2297,2307,2317,2327,2337],{},[448,2228,2229,2234],{},[466,2230,2231],{},[758,2232,2233],{},"\"Basically...\"",[466,2235,2236],{},"Tóm tắt nhanh",[448,2238,2239,2244],{},[466,2240,2241],{},[758,2242,2243],{},"\"In other words...\"",[466,2245,2246],{},"Diễn đạt lại",[448,2248,2249,2254],{},[466,2250,2251],{},[758,2252,2253],{},"\"For example...\"",[466,2255,2256],{},"Cho ví dụ",[448,2258,2259,2264],{},[466,2260,2261],{},[758,2262,2263],{},"\"On the other hand...\"",[466,2265,2266],{},"So sánh đối lập",[448,2268,2269,2274],{},[466,2270,2271],{},[758,2272,2273],{},"\"To put it simply...\"",[466,2275,2276],{},"Đơn giản hoá",[448,2278,2279,2284],{},[466,2280,2281],{},[758,2282,2283],{},"\"What I mean is...\"",[466,2285,2286],{},"Làm rõ",[448,2288,2289,2294],{},[466,2290,2291],{},[758,2292,2293],{},"\"Roughly speaking...\"",[466,2295,2296],{},"Ước chừng",[448,2298,2299,2304],{},[466,2300,2301],{},[758,2302,2303],{},"\"As far as I know...\"",[466,2305,2306],{},"Không chắc chắn 100%",[448,2308,2309,2314],{},[466,2310,2311],{},[758,2312,2313],{},"\"From my experience...\"",[466,2315,2316],{},"Kể từ kinh nghiệm",[448,2318,2319,2324],{},[466,2320,2321],{},[758,2322,2323],{},"\"It depends on...\"",[466,2325,2326],{},"Khi answer \"depends\"",[448,2328,2329,2334],{},[466,2330,2331],{},[758,2332,2333],{},"\"Long story short...\"",[466,2335,2336],{},"Tóm gọn câu chuyện",[448,2338,2339,2344],{},[466,2340,2341],{},[758,2342,2343],{},"\"That said...\"",[466,2345,2346],{},"Tuy nhiên \u002F dù vậy",[437,2348,2350],{"id":2349},"i-pronunciation-traps-thường-sai","I. Pronunciation traps thường sai",[442,2352,2353,2369],{},[445,2354,2355],{},[448,2356,2357,2360,2363,2366],{},[451,2358,2359],{},"Từ",[451,2361,2362],{},"Sai phổ biến",[451,2364,2365],{},"Đúng (IPA)",[451,2367,2368],{},"Ghi nhớ",[461,2370,2371,2387,2403,2419,2435,2450,2466,2482,2498,2514,2530],{},[448,2372,2373,2378,2381,2384],{},[466,2374,2375],{},[478,2376,2377],{},"async",[466,2379,2380],{},"\"a-sin\"",[466,2382,2383],{},"\u002Fˈeɪsɪŋk\u002F \"ay-sink\"",[466,2385,2386],{},"Nghĩ \"asynchronous\" rút gọn",[448,2388,2389,2394,2397,2400],{},[466,2390,2391],{},[478,2392,2393],{},"cache",[466,2395,2396],{},"\"ca-chê\"",[466,2398,2399],{},"\u002Fkæʃ\u002F \"cash\"",[466,2401,2402],{},"Phát âm như tiền mặt",[448,2404,2405,2410,2413,2416],{},[466,2406,2407],{},[478,2408,2409],{},"null",[466,2411,2412],{},"\"nun\" \u002F \"nu\"",[466,2414,2415],{},"\u002Fnʌl\u002F \"nul\"",[466,2417,2418],{},"Giống \"null\" trong Java VN",[448,2420,2421,2426,2429,2432],{},[466,2422,2423],{},[478,2424,2425],{},"query",[466,2427,2428],{},"\"kway-ri\"",[466,2430,2431],{},"\u002Fˈkwɪəri\u002F \"kwee-ri\"",[466,2433,2434],{},"Hai âm tiết",[448,2436,2437,2441,2444,2447],{},[466,2438,2439],{},[478,2440,1005],{},[466,2442,2443],{},"\"se-mà\"",[466,2445,2446],{},"\u002Fˈskiːmə\u002F \"SKEE-mə\"",[466,2448,2449],{},"\"Sk\" không \"Sh\"",[448,2451,2452,2457,2460,2463],{},[466,2453,2454],{},[478,2455,2456],{},"tuple",[466,2458,2459],{},"\"tu-pờ\"",[466,2461,2462],{},"\u002Fˈtʌpəl\u002F or \u002Fˈtuːpəl\u002F",[466,2464,2465],{},"Cả hai đều OK",[448,2467,2468,2473,2476,2479],{},[466,2469,2470],{},[478,2471,2472],{},"nullable",[466,2474,2475],{},"\"nu-la-bồ\"",[466,2477,2478],{},"\u002Fˈnʌl.ə.bəl\u002F \"NUL-ə-bəl\"",[466,2480,2481],{},"3 âm",[448,2483,2484,2489,2492,2495],{},[466,2485,2486],{},[478,2487,2488],{},"parameter",[466,2490,2491],{},"\"pa-ra-me-tờ\"",[466,2493,2494],{},"\u002Fpəˈræmɪtər\u002F \"pə-RAM-i-tər\"",[466,2496,2497],{},"Trọng âm vào \"RAM\"",[448,2499,2500,2505,2508,2511],{},[466,2501,2502],{},[478,2503,2504],{},"executable",[466,2506,2507],{},"\"ek-xê-cu-tê-bồ\"",[466,2509,2510],{},"\u002Fɪɡˈzekjʊtəbəl\u002F",[466,2512,2513],{},"Trọng âm \"ZEK\"",[448,2515,2516,2521,2524,2527],{},[466,2517,2518],{},[478,2519,2520],{},"architecture",[466,2522,2523],{},"\"ar-ki-tek-chờ\"",[466,2525,2526],{},"\u002Fˈɑːkɪtektʃər\u002F \"AR-ki-tek-chər\"",[466,2528,2529],{},"Trọng âm đầu",[448,2531,2532,2537,2540,2543],{},[466,2533,2534],{},[478,2535,2536],{},"pseudocode",[466,2538,2539],{},"\"pseu-do-code\"",[466,2541,2542],{},"\u002Fˈsuːdoʊkoʊd\u002F \"SOO-doh-code\"",[466,2544,2545],{},"\"P\" câm",[427,2547,2549,2550],{"color":429,"icon":2548},"i-lucide-arrow-right","Tiếp theo: ",[2551,2552,2553],"a",{"href":145},"Technical Q&A bằng English",{"title":2555,"searchDepth":2556,"depth":2556,"links":2557},"",2,[2558,2559,2560,2561,2562,2563,2564,2565,2566],{"id":439,"depth":2556,"text":440},{"id":709,"depth":2556,"text":710},{"id":983,"depth":2556,"text":984},{"id":1242,"depth":2556,"text":1243},{"id":1512,"depth":2556,"text":1513},{"id":1712,"depth":2556,"text":1713},{"id":1985,"depth":2556,"text":1986},{"id":2211,"depth":2556,"text":2212},{"id":2349,"depth":2556,"text":2350},"Từ vựng technical theo chủ đề C#, OOP, SQL, ASP.NET, EF Core — kèm phát âm và ví dụ câu.","md",null,{},{"title":139,"icon":142},{"title":422,"description":2567},"Y7uaPZLjRWSUF6uVVei34Cw1rIeWGa5m9KURPKiwLfM",[2575,2577],{"title":135,"path":136,"stem":137,"description":2576,"icon":130,"children":-1},"Công ty nào phỏng vấn English, format buổi phỏng vấn, mức tiếng Anh cần có cho fresher .NET HCM.",{"title":144,"path":145,"stem":146,"description":2578,"icon":147,"children":-1},"30+ technical questions in English với sample answer, hint phát âm, follow-up câu hỏi.",1783490356483]