[{"content":"Welcome to Hugo theme Stack. This is your first post. Edit or delete it, then start writing!\nFor more information about this theme, check the documentation: https://stack.jimmycai.com/\nWant a site like this? Check out hugo-theme-stack-stater\nPhoto by Pawel Czerwinski on Unsplash\n","date":"2022-03-06T00:00:00Z","image":"/p/hello-world/cover.jpg","permalink":"/p/hello-world/","title":"Blog dau tien"},{"content":"Frontend và Backend Khác Nhau Thế Nào? Giới Thiệu Khi bắt đầu học lập trình web, điều đầu tiên bạn nghe tới là \u0026ldquo;frontend\u0026rdquo; và \u0026ldquo;backend\u0026rdquo;. Nhưng frontend và backend khác nhau như thế nào? Nếu bạn muốn trở thành backend developer và bắt đầu học backend cho người mới, bạn cần hiểu rõ ranh giới này.\nBài viết này sẽ giúp bạn phân biệt hai lĩnh vực, từ đó quyết định con đường phù hợp.\nFrontend là Gì? Frontend là phần người dùng thấy và tương tác trực tiếp trên màn hình.\nCông việc Frontend:\nThiết kế giao diện (UI/UX) Viết mã HTML, CSS, JavaScript Tạo nút bấm, form nhập liệu Hiển thị dữ liệu cho người dùng Xử lý tương tác: click, scroll, hover Công cụ phổ biến: React, Vue, Angular, HTML/CSS.\nFrontend developer cần tư duy về trải nghiệm người dùng, tính thẩm mỹ, và khả năng tương tác mượt mà.\nBackend là Gì? Backend là phần \u0026ldquo;sau hình ảnh\u0026rdquo; - nơi xử lý dữ liệu, logic, và bảo mật.\nCông việc Backend:\nXử lý yêu cầu từ frontend Lưu trữ dữ liệu vào database Viết API để frontend gọi Xử lý logic nghiệp vụ phức tạp Đảm bảo bảo mật, hiệu năng Công cụ phổ biến: ASP.NET, Node.js, Python, Java, PostgreSQL, MySQL.\nBackend developer tập trung vào việc giải quyết vấn đề phức tạp, tối ưu hóa hiệu năng, và quản lý dữ liệu an toàn.\nFrontend và Backend Khác Nhau Ở Các Điểm Nào? Tiêu Chí Frontend Backend Người dùng thấy được? Có, trực tiếp Không, ẩn phía sau Ngôn ngữ chính JavaScript, HTML, CSS Node.js, Python, C#, Java Lưu trữ dữ liệu Local storage, cache Database (SQL, NoSQL) Bảo mật Xác thực token, HTTPS Mã hóa, authentication, authorization Tốc độ phản hồi Milisecond (người dùng cảm nhận) Millisecond đến vài giây Sử dụng cơ sở dữ liệu? Không trực tiếp Có, quản lý chính Ví Dụ Thực Tế: Một Ứng Dụng Ngân Hàng Hãy tưởng tượng một ứng dụng ngân hàng:\nFrontend:\nHiển thị số dư tài khoản (giao diện đẹp) Nút \u0026ldquo;Chuyển tiền\u0026rdquo; với form nhập Hiệu ứng loading khi chờ Backend:\nNhận yêu cầu \u0026ldquo;chuyển 1 triệu đồng\u0026rdquo; Kiểm tra: tài khoản có đủ tiền? Kiểm tra bảo mật: đó có phải người dùng không? Trừ tiền từ tài khoản A Cộng tiền vào tài khoản B Ghi lại giao dịch (audit log) Phản hồi thành công cho frontend Nếu thiếu backend mạnh mẽ, bất cứ ai cũng có thể sửa code HTML rồi \u0026ldquo;chuyển tiền miễn phí\u0026rdquo;. Đó là lý do backend tồn tại.\nHọc Backend cho Người Mới: Nên Bắt Đầu Từ Đâu? Nếu quyết định học backend cho người mới, bạn cần:\nHọc một ngôn ngữ lập trình - Python hoặc C# là tốt nhất cho beginner Hiểu cơ bản database - SQL, cách lưu và truy vấn dữ liệu Học viết API - Cách frontend gọi backend Thực hành với dự án thực tế - Xây dựng ứng dụng từ đơn giản đến phức tạp Học system design - Khi dự án lớn, làm sao để nó hoạt động nhanh? Sai Lầm Thường Gặp Sai lầm 1: Nghĩ backend dễ hơn vì \u0026ldquo;người không thấy\u0026rdquo;\nThực tế: Backend phức tạp hơn vì phải xử lý hàng triệu người dùng, dữ liệu khổng lồ, bảo mật chặt.\nSai lầm 2: Học backend mà quên hiểu frontend\nKhông biết frontend như thế nào, bạn sẽ viết API khó dùng. Hiểu frontend giúp bạn viết backend tốt hơn.\nSai lầm 3: Tập trung quá nhiều vào lý thuyết\nKhi học backend cho người mới, hãy làm project thực tế. Code \u0026gt; Sách.\nKết Luận Frontend và backend khác nhau ở mục tiêu, công cụ, và tư duy. Frontend là trang chủ, backend là kho hàng + quản lý bán hàng.\nNếu bạn thích giải quyết vấn đề phức tạp, xây dựng hệ thống mạnh mẽ, và không quá lo về tính thẩm mỹ, học backend cho người mới là lựa chọn đúng.\nHành động tiếp theo: Chọn một ngôn ngữ, làm một dự án đơn giản (như API quản lý danh sách việc cần làm), rồi dần nâng cấp.\nBước Đi Tiếp Theo Bạn không chắc nên bắt đầu từ đâu? Hãy liên hệ với tôi - tôi sẽ giúp bạn lập kế hoạch học tập phù hợp.\nXem CV của tôi\nHọc backend cho người mới đòi hỏi sự kiên nhẫn và thực hành. Nhưng khi bạn hiểu rõ, tất cả sẽ trở nên dễ dàng hơn.\n","date":"2026-03-30T00:00:00Z","permalink":"/p/frontend-v%C3%A0-backend-kh%C3%A1c-nhau-th%E1%BA%BF-n%C3%A0o-h%C6%B0%E1%BB%9Bng-d%E1%BA%ABn-cho-ng%C6%B0%E1%BB%9Di-m%E1%BB%9Bi/","title":"Frontend và Backend khác nhau thế nào? Hướng dẫn cho người mới"},{"content":"Hành Trình Trở Thành Backend Developer Trở thành một backend developer không phải là con đường dễ dàng, nhưng nếu bạn có lộ trình rõ ràng và tránh được những sai lầm phổ biến, bạn hoàn toàn có thể đạt được mục tiêu này.\nKinh nghiệm 1. Học tập – Nền tảng quan trọng nhất Backend là phần xử lý logic, database và API – nơi mọi dữ liệu được xử lý trước khi trả về frontend.\nNhững thứ bạn cần học: Ngôn ngữ: NodeJS / Java / C# / Python Database: MySQL, PostgreSQL, MongoDB API: RESTful API, GraphQL Git HTTP/HTTPS, JSON Lộ trình: Học 1 ngôn ngữ backend Làm CRUD API Kết nối database Làm project Deploy 2. Công việc thực tế Backend developer làm gì: Xây dựng API Xử lý business logic Làm việc với database Debug hệ thống Kinh nghiệm: Đọc code nhiều hơn viết code Biết debug Hiểu business Sai lầm Khi học Học quá nhiều ngôn ngữ Không làm project Chỉ học lý thuyết Khi đi làm Không đọc code cũ Ngại hỏi Không debug Code không tối ưu Sai lầm lớn nhất: Không có tư duy hệ thống\nTài liệu Free FreeCodeCamp MDN Docs W3Schools Sách Clean Code Design Patterns System Design Khóa học Udemy Coursera YouTube Kết luận Hành trình trở thành backend developer là quá trình dài, cần kiên trì và thực hành liên tục.\nNếu bạn có lộ trình đúng và tránh được sai lầm, bạn sẽ tiến rất nhanh.\n","date":"2026-03-29T00:00:00Z","permalink":"/p/h%C3%A0nh-tr%C3%ACnh-tr%E1%BB%9F-th%C3%A0nh-backend-developer-l%E1%BB%99-tr%C3%ACnh-sai-l%E1%BA%A7m-kinh-nghi%E1%BB%87m/","title":"Hành Trình Trở Thành Backend Developer: Lộ Trình, Sai Lầm \u0026 Kinh Nghiệm"},{"content":"This article offers a sample of basic Markdown syntax that can be used in Hugo content files, also it shows whether basic HTML elements are decorated with CSS in a Hugo theme.\nHeadings The following HTML \u0026lt;h1\u0026gt;—\u0026lt;h6\u0026gt; elements represent six levels of section headings. \u0026lt;h1\u0026gt; is the highest section level while \u0026lt;h6\u0026gt; is the lowest.\nH1 H2 H3 H4 H5 H6 Paragraph Xerum, quo qui aut unt expliquam qui dolut labo. Aque venitatiusda cum, voluptionse latur sitiae dolessi aut parist aut dollo enim qui voluptate ma dolestendit peritin re plis aut quas inctum laceat est volestemque commosa as cus endigna tectur, offic to cor sequas etum rerum idem sintibus eiur? Quianimin porecus evelectur, cum que nis nust voloribus ratem aut omnimi, sitatur? Quiatem. Nam, omnis sum am facea corem alique molestrunt et eos evelece arcillit ut aut eos eos nus, sin conecerem erum fuga. Ri oditatquam, ad quibus unda veliamenimin cusam et facea ipsamus es exerum sitate dolores editium rerore eost, temped molorro ratiae volorro te reribus dolorer sperchicium faceata tiustia prat.\nItatur? Quiatae cullecum rem ent aut odis in re eossequodi nonsequ idebis ne sapicia is sinveli squiatum, core et que aut hariosam ex eat.\nBlockquotes The blockquote element represents content that is quoted from another source, optionally with a citation which must be within a footer or cite element, and optionally with in-line changes such as annotations and abbreviations.\nBlockquote without attribution Tiam, ad mint andaepu dandae nostion secatur sequo quae. Note that you can use Markdown syntax within a blockquote.\nBlockquote with attribution Don\u0026rsquo;t communicate by sharing memory, share memory by communicating.\n— Rob Pike1\nTables Tables aren\u0026rsquo;t part of the core Markdown spec, but Hugo supports supports them out-of-the-box.\nName Age Bob 27 Alice 23 Inline Markdown within tables Italics Bold Code italics bold code A B C D E F Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus ultricies, sapien non euismod aliquam, dui ligula tincidunt odio, at accumsan nulla sapien eget ex. Proin eleifend dictum ipsum, non euismod ipsum pulvinar et. Vivamus sollicitudin, quam in pulvinar aliquam, metus elit pretium purus Proin sit amet velit nec enim imperdiet vehicula. Ut bibendum vestibulum quam, eu egestas turpis gravida nec Sed scelerisque nec turpis vel viverra. Vivamus vitae pretium sapien Code Blocks Code block with backticks 1 2 3 4 5 6 7 8 9 10 \u0026lt;!doctype html\u0026gt; \u0026lt;html lang=\u0026#34;en\u0026#34;\u0026gt; \u0026lt;head\u0026gt; \u0026lt;meta charset=\u0026#34;utf-8\u0026#34;\u0026gt; \u0026lt;title\u0026gt;Example HTML5 Document\u0026lt;/title\u0026gt; \u0026lt;/head\u0026gt; \u0026lt;body\u0026gt; \u0026lt;p\u0026gt;Test\u0026lt;/p\u0026gt; \u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt; Code block indented with four spaces \u0026lt;!doctype html\u0026gt;\r\u0026lt;html lang=\u0026quot;en\u0026quot;\u0026gt;\r\u0026lt;head\u0026gt;\r\u0026lt;meta charset=\u0026quot;utf-8\u0026quot;\u0026gt;\r\u0026lt;title\u0026gt;Example HTML5 Document\u0026lt;/title\u0026gt;\r\u0026lt;/head\u0026gt;\r\u0026lt;body\u0026gt;\r\u0026lt;p\u0026gt;Test\u0026lt;/p\u0026gt;\r\u0026lt;/body\u0026gt;\r\u0026lt;/html\u0026gt;\rDiff code block 1 2 3 4 5 [dependencies.bevy] git = \u0026#34;https://github.com/bevyengine/bevy\u0026#34; rev = \u0026#34;11f52b8c72fc3a568e8bb4a4cd1f3eb025ac2e13\u0026#34; - features = [\u0026#34;dynamic\u0026#34;] + features = [\u0026#34;jpeg\u0026#34;, \u0026#34;dynamic\u0026#34;] One line code block 1 \u0026lt;p\u0026gt;A paragraph\u0026lt;/p\u0026gt; List Types Ordered List First item Second item Third item Unordered List List item Another item And another item Nested list Fruit Apple Orange Banana Dairy Milk Cheese Other Elements — abbr, sub, sup, kbd, mark GIF is a bitmap image format.\nH2O\nXn + Yn = Zn\nPress CTRL + ALT + Delete to end the session.\nMost salamanders are nocturnal, and hunt for insects, worms, and other small creatures.\nThe above quote is excerpted from Rob Pike\u0026rsquo;s talk during Gopherfest, November 18, 2015.\u0026#160;\u0026#x21a9;\u0026#xfe0e;\n","date":"2023-09-07T00:00:00Z","permalink":"/p/markdown-syntax-guide/","title":"Markdown Syntax Guide"},{"content":"Hugo theme Stack supports the creation of interactive image galleries using Markdown. It\u0026rsquo;s powered by PhotoSwipe and its syntax was inspired by Typlog.\nTo use this feature, the image must be in the same directory as the Markdown file, as it uses Hugo\u0026rsquo;s page bundle feature to read the dimensions of the image. External images are not supported.\nSyntax 1 ![Image 1](1.jpg) ![Image 2](2.jpg) Result Photo by mymind and Luke Chesser on Unsplash\n","date":"2023-08-26T00:00:00Z","image":"/p/image-gallery/2.jpg","permalink":"/p/image-gallery/","title":"Image gallery"},{"content":"For more details, check out the documentation.\nBilibili video Tencent video YouTube video Generic video file Your browser doesn't support HTML5 video. Here is a link to the video instead. GitLab Quote Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\n― A famous person, The book they wrote Photo by Codioful on Unsplash\n","date":"2023-08-25T00:00:00Z","image":"/p/shortcodes/cover.jpg","permalink":"/p/shortcodes/","title":"Shortcodes"},{"content":"Stack has built-in support for math typesetting using KaTeX.\nIt\u0026rsquo;s not enabled by default side-wide, but you can enable it for individual posts by adding math: true to the front matter. Or you can enable it side-wide by adding math = true to the params.article section in config.toml.\nInline math This is an inline mathematical expression: $\\varphi = \\dfrac{1+\\sqrt5}{2}= 1.6180339887…$\n1 $\\varphi = \\dfrac{1+\\sqrt5}{2}= 1.6180339887…$ Block math $$\r\\varphi = 1+\\frac{1} {1+\\frac{1} {1+\\frac{1} {1+\\cdots} } } $$ 1 2 3 $$ \\varphi = 1+\\frac{1} {1+\\frac{1} {1+\\frac{1} {1+\\cdots} } } $$ $$\rf(x) = \\int_{-\\infty}^\\infty\\hat f(\\xi)\\,e^{2 \\pi i \\xi x}\\,d\\xi\r$$ 1 2 3 $$ f(x) = \\int_{-\\infty}^\\infty\\hat f(\\xi)\\,e^{2 \\pi i \\xi x}\\,d\\xi $$ ","date":"2023-08-24T00:00:00Z","permalink":"/p/math-typesetting/","title":"Math Typesetting"}]