<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Định Trương Quang </title>
    <description>The latest articles on DEV Community by Định Trương Quang  (@banhmysuawx).</description>
    <link>https://dev.to/banhmysuawx</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F899499%2F1d4fdabc-2fa9-4f92-9592-738b5c48d1eb.jpeg</url>
      <title>DEV Community: Định Trương Quang </title>
      <link>https://dev.to/banhmysuawx</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/banhmysuawx"/>
    <language>en</language>
    <item>
      <title>AWS Free Tier 2025: Nhận ngay $200 Credit. Hướng dẫn chi tiết.</title>
      <dc:creator>Định Trương Quang </dc:creator>
      <pubDate>Sun, 20 Jul 2025 15:18:10 +0000</pubDate>
      <link>https://dev.to/aws-builders/aws-free-tier-2025-nhan-ngay-200-credit-huong-dan-chi-tiet-39m5</link>
      <guid>https://dev.to/aws-builders/aws-free-tier-2025-nhan-ngay-200-credit-huong-dan-chi-tiet-39m5</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;Tóm Tắt&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;AWS đã công bố thay đổi lớn cho chương trình Free Tier từ 15/07/2025, chuyển từ mô hình giới hạn giờ sử dụng sang cấp credit trực tiếp. Người dùng mới sẽ nhận &lt;strong&gt;100$ credit ngay lập tức&lt;/strong&gt; và có thể kiếm thêm &lt;strong&gt;100$ nữa&lt;/strong&gt; thông qua 5 nhiệm vụ thực hành. Chương trình mới linh hoạt hơn nhưng có thời hạn ngắn hơn (6 tháng), phù hợp cho việc học tập và thử nghiệm các dịch vụ AWS.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Mục lục&lt;/strong&gt;
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;AWS Free Tier 2025: Có gì mới?&lt;/li&gt;
&lt;li&gt;So sánh Free Account Plan vs. Paid Account Plan&lt;/li&gt;
&lt;li&gt;Làm sao để nhận thêm 100$ credit?&lt;/li&gt;
&lt;li&gt;Chi tiết 5 nhiệm vụ nhận thêm 100$ credit&lt;/li&gt;
&lt;li&gt;Danh sách Service "Đắt Đỏ" Cần Tránh&lt;/li&gt;
&lt;li&gt;FAQ - Câu hỏi thường gặp&lt;/li&gt;
&lt;li&gt;Tổng kết&lt;/li&gt;
&lt;/ol&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F57i8kifwgjssx4qd0ugm.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F57i8kifwgjssx4qd0ugm.webp" alt="AWS-Free-Tier.png" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Chào anh em,&lt;/p&gt;

&lt;p&gt;Làm việc với AWS hàng ngày, mình luôn để ý những thay đổi, đặc biệt là chương trình Free Tier – thứ mà rất nhiều anh em mới bắt đầu cloud thường quan tâm.&lt;/p&gt;

&lt;p&gt;Gần đây, trong sự kiện &lt;strong&gt;AWS Summit New York&lt;/strong&gt;, AWS đã công bố một cập nhật quan trọng: &lt;strong&gt;chương trình Free Tier đã được cải tiến để trở nên linh hoạt và hữu ích hơn&lt;/strong&gt;. Thay vì giới hạn theo giờ sử dụng như trước, giờ đây người dùng mới sẽ nhận được credit để tự do khám phá các dịch vụ.&lt;/p&gt;

&lt;p&gt;Bài viết này mình sẽ tổng hợp lại những điểm chính và hướng dẫn anh em cách tận dụng tối đa ưu đãi này.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;AWS Free Tier 2025: Có gì mới?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Nếu trước đây bạn đã quen với việc được miễn phí &lt;strong&gt;750 giờ&lt;/strong&gt; dùng &lt;strong&gt;EC2 t2.micro&lt;/strong&gt; hay một lượng request Lambda nhất định mỗi tháng, thì giờ mọi thứ đã thay đổi hoàn toàn, cho các tài khoản mới đăng ký từ ngày 15/07/2025. &lt;strong&gt;Đối với những tài khoản đăng ký trước 15/07/2025 thì vẫn theo chính sách cũ&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe7e1g4lmouyi3gqx6y2x.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe7e1g4lmouyi3gqx6y2x.webp" alt="comapre.png" width="800" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Cụ thể, mô hình mới tập trung vào việc cấp &lt;strong&gt;AWS credits&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Nhận ngay 100$ credit:&lt;/strong&gt; Ngay sau khi đăng ký tài khoản thành công, bạn sẽ có ngay 100$ trong tài khoản.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Kiếm thêm 100$ credit:&lt;/strong&gt; Bạn có thể nhận thêm 100$ nữa bằng cách hoàn thành 5 nhiệm vụ thực hành cơ bản trên AWS (mỗi nhiệm vụ được 20$).&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;So sánh nhanh: Free Tier cũ vs. Free Tier mới 2025&lt;/strong&gt;
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Tiêu chí&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Free Tier cũ (trước 15/07/2025)&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Free Tier mới (từ 15/07/2025)&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Thời hạn&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;12 tháng miễn phí&lt;/td&gt;
&lt;td&gt;6 tháng (hoặc đến khi hết credit)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Cơ chế miễn phí&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Miễn phí theo hạn mức mỗi tháng (ví dụ: 750 giờ EC2 t2.micro, 1 triệu req Lambda...)&lt;/td&gt;
&lt;td&gt;Được cấp 100\$ credit + tối đa 100\$ nữa nếu hoàn thành 5 nhiệm vụ&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Cách dùng&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Dùng trong hạn mức, vượt thì bị tính phí&lt;/td&gt;
&lt;td&gt;Tự do sử dụng các dịch vụ nằm trong danh sách hỗ trợ, trong phạm vi số credit được cấp&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Kết thúc gói&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Tài khoản vẫn hoạt động, chỉ bị tính phí nếu vượt mức&lt;/td&gt;
&lt;td&gt;Tài khoản sẽ bị đóng nếu không nâng cấp sau 6 tháng hoặc khi hết credit&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Phân loại tài khoản&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Không có, chỉ một loại duy nhất&lt;/td&gt;
&lt;td&gt;Có 2 loại: Free Plan và Paid Plan&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Truy cập dịch vụ&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Toàn quyền truy cập&lt;/td&gt;
&lt;td&gt;Free Plan bị giới hạn một số dịch vụ dễ làm cạn credit hoặc yêu cầu phần cứng&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Always Free&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Có&lt;/td&gt;
&lt;td&gt;Có (vẫn giữ nguyên hơn 30 dịch vụ Always Free)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;p&gt;Khi đăng ký, bạn sẽ có hai lựa chọn:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Gói Miễn Phí (Free Account Plan):&lt;/strong&gt; Gói này đảm bảo bạn sẽ không bị tính phí cho đến khi chủ động nâng cấp. Tuy nhiên, nó sẽ hết hạn sau 6 tháng hoặc khi bạn dùng hết credit. Một số dịch vụ dành cho doanh nghiệp cũng sẽ bị giới hạn.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Gói Trả Phí (Paid Account Plan):&lt;/strong&gt; Với gói này, hệ thống sẽ tự động trừ vào số credit bạn có. Khi dùng hết credit, chi phí phát sinh sẽ được tính theo giá on-demand như bình thường.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Điểm hay là nếu bạn nâng cấp lên gói trả phí, số credit còn lại vẫn có hiệu lực trong vòng 12 tháng tính từ ngày đăng ký.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fayleo8z1s7kyqoneumtr.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fayleo8z1s7kyqoneumtr.webp" alt="plan.png" width="800" height="640"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;So sánh Free Account Plan vs. Paid Account Plan&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Sau khi đăng ký tài khoản AWS, bạn sẽ có hai lựa chọn chính: &lt;strong&gt;Free Plan (Gói Miễn phí)&lt;/strong&gt; và &lt;strong&gt;Paid Plan (Gói Trả phí)&lt;/strong&gt;. Cả hai đều bắt đầu với 100$ credit và có thể kiếm thêm 100$ nữa nếu bạn hoàn thành 5 nhiệm vụ thực hành. Tuy nhiên, cách hai gói này vận hành thì khá khác nhau.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Tiêu chí&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Free Plan (Gói Miễn phí)&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Paid Plan (Gói Trả phí)&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Credit ban đầu&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Nhận 100\$ sau khi tạo tài khoản&lt;/td&gt;
&lt;td&gt;Tương tự&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Thưởng thêm&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Nhận thêm tối đa 100\$ nếu hoàn thành các nhiệm vụ thực hành&lt;/td&gt;
&lt;td&gt;Tương tự&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Dịch vụ hỗ trợ&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Chỉ truy cập được các dịch vụ phổ biến, hạn chế những dịch vụ có khả năng "ngốn" credit nhanh hoặc yêu cầu phần cứng&lt;/td&gt;
&lt;td&gt;Truy cập đầy đủ tất cả dịch vụ AWS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Giá sử dụng&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Không bị tính phí cho tới khi hết credit hoặc sau 6 tháng&lt;/td&gt;
&lt;td&gt;Dùng hết credit sẽ bị tính theo giá on-demand&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Thời hạn gói&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;6 tháng hoặc đến khi hết credit (tùy điều kiện nào đến trước)&lt;/td&gt;
&lt;td&gt;Không giới hạn thời gian&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Sau khi hết credit&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Tài khoản sẽ tự động bị đóng nếu không nâng cấp trong vòng 90 ngày&lt;/td&gt;
&lt;td&gt;Tài khoản vẫn hoạt động, tiếp tục tính phí nếu sử dụng dịch vụ&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Các ưu đãi khác&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Không áp dụng được các khuyến mãi bổ sung&lt;/td&gt;
&lt;td&gt;Có thể nhận các ưu đãi và credit từ chương trình khác&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Always Free&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Có&lt;/td&gt;
&lt;td&gt;Có&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Thích hợp cho ai?&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Người mới học, thử nghiệm, làm demo, POC&lt;/td&gt;
&lt;td&gt;Phát triển ứng dụng thực tế, cần mở rộng&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Để xem chi tiết các dịch vụ hỗ trợ ở gói Free bạn có thể xem ở &lt;a href="https://aws.amazon.com/free/?ams%23interactive-card-vertical%23pattern-data-339318104.filter=%257B%2522search%2522%253A%2522%2522%252C%2522filters%2522%253A%255B%257B%2522id%2522%253A%2522GLOBAL%2523local-tags-free-tier-products-plan-type.and%2522%252C%2522value%2522%253A%255B%2522available-on-both-plans%2522%255D%257D%255D%257D" rel="noopener noreferrer"&gt;docs&lt;/a&gt; này&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Nên chọn gói nào?&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Nếu bạn mới bắt đầu làm quen với AWS, muốn thực hành nhưng không muốn lo lắng chuyện lỡ tay tốn tiền, thì Free Plan là lựa chọn lý tưởng. Nó giúp bạn khám phá trong phạm vi an toàn và không phát sinh phí trừ khi bạn chủ động nâng cấp.&lt;/p&gt;

&lt;p&gt;Còn nếu bạn xác định làm sản phẩm thực tế, cần sử dụng nhiều dịch vụ hơn hoặc cần tài khoản ổn định lâu dài, thì nên cân nhắc Paid Plan để tránh gián đoạn. Credit vẫn được áp dụng như bình thường, nhưng bạn sẽ bị tính phí nếu vượt quá hạn mức.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Làm sao để nhận thêm 100$ credit?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Đây là phần thông tin hữu ích nhất. Để nhận thêm 100$, bạn cần hoàn thành 5 bài lab đơn giản, được thiết kế để giúp người mới làm quen với các building block quan trọng của AWS. Mỗi bài hoàn thành, bạn nhận 20$ credit.&lt;/p&gt;

&lt;p&gt;Các dịch vụ đó bao gồm:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Amazon EC2:&lt;/strong&gt; Học cách khởi chạy và tắt một máy chủ ảo EC2.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Amazon RDS:&lt;/strong&gt; Tìm hiểu các tùy chọn cấu hình cơ bản để tạo một database RDS.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AWS Lambda:&lt;/strong&gt; Xây dựng một ứng dụng web đơn giản với một Lambda function và function URL.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Amazon Bedrock:&lt;/strong&gt; Trải nghiệm Generative AI bằng cách gửi một prompt và nhận response trong Amazon Bedrock text playground.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AWS Budgets:&lt;/strong&gt; Học cách thiết lập ngân sách và cảnh báo để quản lý tài khoản hiệu quả.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Bạn có thể theo dõi tiến trình nhận credit này ngay trên widget &lt;strong&gt;Explore AWS&lt;/strong&gt; ở trang chủ AWS Management Console.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0tvmefi00y6yykc2bw70.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0tvmefi00y6yykc2bw70.webp" alt="Explore AWS" width="800" height="439"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Chi tiết 5 nhiệm vụ nhận thêm 100$ credit&lt;/strong&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Hướng dẫn từng bước nhận 20$ đầu tiên với AWS Budgets&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Để bạn dễ hình dung, mình sẽ hướng dẫn nhanh cách lấy 20$ đầu tiên bằng việc tạo một budget. Đây cũng là kỹ năng cực kỳ quan trọng để tránh phát sinh các chi phí không mong muốn sau này.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Trong widget &lt;strong&gt;Explore AWS&lt;/strong&gt;, tìm và chọn &lt;strong&gt;Set up a cost budget using AWS Budgets&lt;/strong&gt;. Bạn sẽ được chuyển đến trang AWS Billing and Cost Management.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnm19w9scweb8f93g4xz2.webp" alt="Cost 1.png" width="800" height="438"&gt;
&lt;/li&gt;
&lt;li&gt; Để đơn giản, hãy chọn &lt;strong&gt;Use a template (simplified)&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt; Chọn loại budget là &lt;strong&gt;Monthly cost budget&lt;/strong&gt;. Tại đây, bạn nhập số tiền dự kiến chi tiêu hàng tháng (ví dụ: 10$). Hệ thống sẽ gửi email cảnh báo nếu chi phí thực tế hoặc dự báo vượt quá con số này.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnufdziopulsjtbgp5yvi.webp" alt="Cost 2.png" width="800" height="418"&gt;
&lt;/li&gt;
&lt;li&gt; Điền các thông tin cần thiết như email nhận thông báo và hoàn tất.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn604ajns0qm5h6pctu4u.webp" alt="Cost 6.png" width="800" height="439"&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Sau khi tạo budget thành công, bạn chỉ cần chờ khoảng 10 phút. Vào mục &lt;strong&gt;Credits&lt;/strong&gt; trong menu bên trái của trang Billing, bạn sẽ thấy 20$ credit được cộng vào tài khoản.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbjhrsqb7mlzs5m7vtabl.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbjhrsqb7mlzs5m7vtabl.webp" alt="Cost 7.png" width="800" height="442"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Hướng dẫn nhận 20$ từ nhiệm vụ EC2&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Đây là nhiệm vụ thực hành khởi chạy một máy chủ ảo. Bạn chỉ cần làm theo các bước được chỉ dẫn sẵn trên màn hình.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Từ widget &lt;strong&gt;Explore AWS&lt;/strong&gt;, chọn nhiệm vụ &lt;strong&gt;Launch an instance using EC2&lt;/strong&gt; để bắt đầu.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjuse9zwuwi8wj70aruzr.webp" alt="Ec2-1.png" width="800" height="440"&gt;
&lt;/li&gt;
&lt;li&gt; Làm theo các bước của tutorial, bạn có thể &lt;strong&gt;giữ nguyên hầu hết các cài đặt mặc định&lt;/strong&gt; (AMI, Instance Type, Network, Storage).
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd2hfntil6hu8iv93arbg.webp" alt="EC2-3.png" width="800" height="420"&gt;
&lt;/li&gt;
&lt;li&gt; Tại bước &lt;strong&gt;Key pair&lt;/strong&gt;, hãy nhấn &lt;strong&gt;Create new key pair&lt;/strong&gt;, đặt tên và &lt;strong&gt;lưu lại file &lt;code&gt;.pem&lt;/code&gt;&lt;/strong&gt; được tải về. Đây là bước quan trọng nhất cần thao tác.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffl18jl7cahdq82hqwga7.webp" alt="EC2-5.png" width="800" height="418"&gt;
&lt;/li&gt;
&lt;li&gt; Sau khi nhấn &lt;strong&gt;Launch instance&lt;/strong&gt;, hãy đi đến trang quản lý EC2, chọn máy chủ vừa tạo và &lt;strong&gt;Terminate instance&lt;/strong&gt; để hoàn thành nhiệm vụ.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl70d1hzovywtme0gxkgl.webp" alt="EC2-12.png" width="800" height="453"&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Sau khi terminate, bạn sẽ nhận được 20$ credit và tránh phát sinh phí.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Hướng dẫn nhận 20$ từ nhiệm vụ Amazon Bedrock&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Nhiệm vụ này yêu cầu bạn sử dụng một mô hình AI (foundation model) trong môi trường Bedrock playground để tạo ra một response.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Từ widget &lt;strong&gt;Explore AWS&lt;/strong&gt;, chọn nhiệm vụ &lt;strong&gt;"Use a foundation model in the Amazon Bedrock playground"&lt;/strong&gt; để bắt đầu.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhuk3vm81n3ij4u76g7k6.webp" alt="Bedrock1.png" width="800" height="417"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Yêu cầu quyền truy cập model (Quan trọng):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Nếu đây là lần đầu bạn dùng Bedrock, bạn sẽ cần yêu cầu cấp quyền truy cập model.&lt;/li&gt;
&lt;li&gt;Trên trang &lt;a href="https://us-east-1.console.aws.amazon.com/bedrock/home#/modelaccess" rel="noopener noreferrer"&gt;&lt;strong&gt;Model access&lt;/strong&gt;&lt;/a&gt;, hãy &lt;strong&gt;chọn các model của Amazon&lt;/strong&gt; (ví dụ: Nova Lite, Titan Text G1 - Lite)
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm1yj0962l9f4zpv5i3ls.webp" alt="Bedrock4.png" width="800" height="443"&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6wazkcv555odc5vn4q4u.webp" alt="Bedrock5.png" width="800" height="417"&gt;
&lt;/li&gt;
&lt;li&gt;Cuộn xuống dưới cùng và nhấn &lt;strong&gt;Save changes&lt;/strong&gt;. Quyền truy cập thường được cấp ngay lập tức.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Quay lại trang &lt;strong&gt;Playground&lt;/strong&gt;, nhấn nút &lt;strong&gt;Select model&lt;/strong&gt;. Chọn một model của &lt;strong&gt;Amazon&lt;/strong&gt; mà bạn vừa được cấp quyền (ví dụ: &lt;strong&gt;Nova Lite 1.0&lt;/strong&gt;) rồi nhấn &lt;strong&gt;Apply&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6spr1asixm9li963iwib.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6spr1asixm9li963iwib.webp" alt="Bedrock2.png" width="800" height="418"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frw7auwlqlrnhjryzm7t7.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frw7auwlqlrnhjryzm7t7.webp" alt="Bedrock6.png" width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Trong ô input, gõ một câu hỏi bất kỳ (ví dụ: &lt;code&gt;Who are you?&lt;/code&gt;) rồi nhấn nút &lt;strong&gt;Run&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3n8s0x98aicgn8sox74p.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3n8s0x98aicgn8sox74p.webp" alt="Bedrock7.png" width="800" height="419"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Khi model AI trả về kết quả là bạn đã hoàn thành nhiệm vụ. 20$ credit sẽ được cộng vào tài khoản của bạn ngay sau đó.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Hướng dẫn nhận 20$ từ nhiệm vụ AWS Lambda&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Nhiệm vụ này sẽ hướng dẫn bạn tạo một web app đơn giản bằng Lambda mà không cần viết code.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Trong widget &lt;strong&gt;Explore AWS&lt;/strong&gt;, chọn nhiệm vụ &lt;strong&gt;"Create a web app using AWS Lambda"&lt;/strong&gt;.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnxc9ttsnjohr6gp6os17.webp" alt="Lambda-1.png" width="800" height="445"&gt;
&lt;/li&gt;
&lt;li&gt; Trên trang "Create function", chọn &lt;strong&gt;Use a blueprint&lt;/strong&gt;. Trong danh sách &lt;code&gt;Blueprint name&lt;/code&gt;, tìm và chọn &lt;strong&gt;"Getting started with Lambda HTTP"&lt;/strong&gt;.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7tibcf5usjz2kk6ap13h.webp" alt="Lambda-2.png" width="800" height="447"&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsvvcj5wemiefu2bg9teq.webp" alt="Lambda-3.png" width="800" height="448"&gt;
&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Đặt tên cho function&lt;/strong&gt; của bạn (Function name), kéo xuống cuối trang, tick vào ô &lt;strong&gt;Acknowledgment&lt;/strong&gt; rồi nhấn &lt;strong&gt;Create function&lt;/strong&gt;.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpetvba623nxtj0l5akbc.webp" alt="Lambda-4.png" width="800" height="448"&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqzhjceq3idliqhhmuv45.webp" alt="Lambda-6.png" width="800" height="486"&gt;
&lt;/li&gt;
&lt;li&gt; Sau khi function được tạo, trang chi tiết sẽ hiện ra. Tìm mục &lt;strong&gt;Function URL&lt;/strong&gt; và &lt;strong&gt;nhấp vào đường link&lt;/strong&gt; đó. Khi một trang web mới hiện ra với dòng chữ "Hello from AWS Lambda!" là bạn đã hoàn thành nhiệm vụ.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxaj9el9w5qsj4xi4j95k.webp" alt="Lambda-8.png" width="800" height="449"&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr0ukwoh1n7t9axeb2uhh.webp" alt="Lambda-9.png" width="800" height="488"&gt;
&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;QUAN TRỌNG - Dọn dẹp:&lt;/strong&gt; Để tránh phát sinh phí, hãy quay lại trang quản lý function. Trong menu &lt;strong&gt;Actions&lt;/strong&gt;, chọn &lt;strong&gt;Delete function&lt;/strong&gt; và làm theo các bước để xác nhận xóa.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;20$ credit sẽ được cộng vào tài khoản của bạn sau khi hoàn thành.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Hướng dẫn nhận 20$ từ nhiệm vụ Amazon RDS&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Nhiệm vụ này sẽ hướng dẫn bạn tạo một cơ sở dữ liệu quan hệ trên RDS bằng phương pháp đơn giản nhất.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Trong widget &lt;strong&gt;Explore AWS&lt;/strong&gt;, chọn nhiệm vụ &lt;strong&gt;"Create an Amazon RDS Database"&lt;/strong&gt; để bắt đầu.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffxm71cjj9f6z1lh60luw.webp" alt="RDS-1.png" width="800" height="462"&gt;
&lt;/li&gt;
&lt;li&gt; Trên trang "Create database", chọn phương thức là &lt;strong&gt;Easy create&lt;/strong&gt; và trong phần &lt;code&gt;Engine type&lt;/code&gt;, chọn &lt;strong&gt;Aurora (PostgreSQL Compatible) hoặc PostgreSQL&lt;/strong&gt;.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6m312qhvi81gbh8hpigl.webp" alt="RDS-2.png" width="800" height="460"&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Funuwhsht9ptkk2ov6bt2.webp" alt="RDS-3.png" width="800" height="450"&gt;
&lt;/li&gt;
&lt;li&gt; Giữ nguyên các thiết lập mặc định khác, cuộn xuống cuối trang và nhấn nút &lt;strong&gt;Create database&lt;/strong&gt;.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fauck5p2fw15jk2v9d340.webp" alt="RDS-5.png" width="800" height="450"&gt;
&lt;/li&gt;
&lt;li&gt; Chờ vài phút cho database được tạo xong (chuyển sang trạng thái &lt;code&gt;Available&lt;/code&gt;).
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa82prwx3wjcp0d7lr8bo.webp" alt="RDS-6.png" width="800" height="447"&gt;
&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;QUAN TRỌNG - Dọn dẹp:&lt;/strong&gt; Để tránh phát sinh phí, bạn phải xóa database này. Hãy &lt;strong&gt;chọn database&lt;/strong&gt; vừa tạo, vào menu &lt;strong&gt;Actions&lt;/strong&gt; và chọn &lt;strong&gt;Delete&lt;/strong&gt;. Làm theo các bước để xác nhận xóa.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;20$ credit sẽ được cộng vào tài khoản của bạn sau khi hoàn thành nhiệm vụ.&lt;/p&gt;

&lt;p&gt;Như vậy, ngoài 100$ credit được cấp ngay khi tạo tài khoản, bạn đã hoàn thành 5 nhiệm vụ thực hành để nhận thêm 100$ nữa. Mỗi nhiệm vụ đều được thiết kế để bạn làm quen với một dịch vụ cốt lõi của AWS và đều cộng 20$ vào tài khoản sau khi hoàn thành.&lt;/p&gt;

&lt;p&gt;Hoàn thành tất cả các bước trên, bạn sẽ có tổng cộng &lt;strong&gt;200$ credit&lt;/strong&gt; trong tài khoản để tự do khám phá và xây dựng các ứng dụng đầu tay trên AWS.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhkg3n13uokquswlqvy12.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhkg3n13uokquswlqvy12.webp" alt="200.png" width="800" height="466"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Danh sách Service "Đắt Đỏ" Cần Tránh&lt;/strong&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Services có thể làm bạn hết sạch credit trong vài giờ&lt;/strong&gt;
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Compute &amp;amp; Storage&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;EC2 instance lớn&lt;/strong&gt;: t3.large, m5.xlarge, c5.4xlarge trở lên&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GPU instances&lt;/strong&gt;: p3, p4, g4 series (có thể tốn 5-20$/giờ)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dedicated Hosts&lt;/strong&gt;: Tốn kém nhất, tránh hoàn toàn&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;EBS volumes lớn&lt;/strong&gt;: gp3 &amp;gt;1TB, io1/io2 với IOPS cao&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Database&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;RDS Multi-AZ&lt;/strong&gt;: Gấp đôi chi phí so với single-AZ&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Aurora Serverless v2&lt;/strong&gt;: Auto-scaling có thể tốn nhiều tiền&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DynamoDB On-Demand&lt;/strong&gt;: Với traffic cao, có thể tốn 10x so với Provisioned&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Networking&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;NAT Gateway&lt;/strong&gt;: 0.045$/giờ + data transfer&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;VPC Endpoints&lt;/strong&gt;: 0.01$/giờ cho mỗi endpoint (LOL mình từng phải xin credit từ AWS vì quên tắt cái này)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Direct Connect&lt;/strong&gt;: Chi phí port rất cao&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;AI/ML&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;SageMaker training jobs&lt;/strong&gt;: Instance ml.p3.xlarge tốn 4.9$/giờ&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bedrock với model lớn&lt;/strong&gt;: Claude 3 Opus, GPT-4 equivalent&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rekognition&lt;/strong&gt;: Với volume lớn hình ảnh/video&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Services an toàn phù hợp Free Tier&lt;/strong&gt;
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Always Free (Không giới hạn thời gian)&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Lambda&lt;/strong&gt;: 1 triệu request/tháng&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DynamoDB&lt;/strong&gt;: 25GB storage + 25 RCU/WCU&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;S3&lt;/strong&gt;: 5GB Standard storage&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CloudWatch&lt;/strong&gt;: 10 custom metrics + 1 triệu API requests&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SNS&lt;/strong&gt;: 1 triệu publishes&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SQS&lt;/strong&gt;: 1 triệu requests&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Chi phí phù hợp cho study&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;EC2 t2.micro/t3.micro&lt;/strong&gt;: Chỉ tốn khoảng 8.5$/tháng&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;RDS t3.micro&lt;/strong&gt;: Single-AZ, khoảng 15$/tháng&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ElastiCache t3.micro&lt;/strong&gt;: Redis/Memcached nhỏ&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;API Gateway&lt;/strong&gt;: 1 triệu calls đầu tiên rẻ&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Tips tiết kiệm credit&lt;/strong&gt;
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Luôn terminate EC2 instances&lt;/strong&gt; sau khi thực hành&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sử dụng Spot Instances&lt;/strong&gt; khi có thể (giảm 50-90% chi phí)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Chọn region rẻ&lt;/strong&gt;: us-east-1 thường rẻ nhất&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Xóa resources không sử dụng&lt;/strong&gt;: EBS volumes, Elastic IPs, Load Balancers&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Set up billing alerts&lt;/strong&gt; ở ngưỡng 50$, 100$, 150$&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;FAQ - Câu hỏi thường gặp&lt;/strong&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Về Credit và Billing&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Q: Credit có thể chuyển đổi thành tiền mặt không?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
A: Không, credit chỉ dùng để thanh toán các service AWS trong thời hạn hiệu lực.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: Tôi có thể tạo nhiều tài khoản để có thêm credit?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
A: AWS cấm tạo nhiều tài khoản để lạm dụng Free Tier. Họ sẽ block nếu phát hiện.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: Credit có hết hạn không?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
A: Có, credit từ Free Tier hết hạn sau 6 tháng (Free Plan) hoặc 12 tháng (Paid Plan).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: Tôi có bị charge khi hết credit không?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
A: Free Plan: Không bị charge, tài khoản sẽ bị suspend. Paid Plan: Sẽ bị charge theo pay-as-you-go.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Về Technical&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Q: Tôi có thể host production app trên Free Tier không?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
A: Không khuyến khích. Free Tier phù hợp cho học tập, POC, demo. Production cần dùng Paid Plan.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: Service nào phù hợp nhất để học AWS?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
A: Bắt đầu với: EC2 → S3 → RDS → Lambda → API Gateway → CloudFormation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: Tôi có thể backup data trước khi tài khoản hết hạn không?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
A: Có, hãy export data từ RDS, download từ S3, backup code từ Lambda trước khi hết hạn.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Về Troubleshooting&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Q: Tại sao tôi không nhận được credit sau khi hoàn thành task?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
A: Đợi 10-15 phút, refresh trang. Có thể lên đến 24h. Nếu vẫn không có, liên hệ AWS Support.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: Tài khoản bị suspend nhưng tôi chưa dùng hết credit?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
A: Có thể do: violation policy, suspicious activity, hoặc chưa verify đầy đủ.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: Làm sao để tracking chi phí real-time?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
A: Sử dụng AWS Cost Explorer, set up billing alerts trong CloudWatch.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Tổng kết&lt;/strong&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Tổng kết lợi ích AWS Free Tier 2025&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;AWS Free Tier 2025 mang đến &lt;strong&gt;cơ hội vàng&lt;/strong&gt; cho developer tiếp cận cloud computing với chi phí thấp. Với &lt;strong&gt;200$ credit&lt;/strong&gt; và &lt;strong&gt;6 tháng thời gian&lt;/strong&gt;, bạn có thể:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Xây dựng 3-5 projects&lt;/strong&gt; hoàn chỉnh&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Học được 10+ AWS services&lt;/strong&gt; quan trọng&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Resources tham khảo&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AWS Free Tier&lt;/strong&gt;: &lt;a href="https://aws.amazon.com/free/" rel="noopener noreferrer"&gt;https://aws.amazon.com/free/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AWS Free Tier Documentation&lt;/strong&gt;: &lt;a href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/free-tier.html" rel="noopener noreferrer"&gt;AWS Free Tier Documentation&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AWS Documentation&lt;/strong&gt;: &lt;a href="https://docs.aws.amazon.com/" rel="noopener noreferrer"&gt;https://docs.aws.amazon.com/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AWS Training&lt;/strong&gt;: &lt;a href="https://aws.amazon.com/training/" rel="noopener noreferrer"&gt;https://aws.amazon.com/training/&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Một vài lưu ý quan trọng cuối cùng&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Thông báo&lt;/strong&gt;: AWS sẽ gửi email khi bạn dùng hết 50%, 75%, và 90% lượng credit. Họ cũng sẽ nhắc nhở khi gói miễn phí 6 tháng sắp hết hạn.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tài khoản cũ (Legacy Free Tier)&lt;/strong&gt;: Nếu tài khoản của bạn được tạo &lt;em&gt;trước&lt;/em&gt; ngày 15/07/2025, bạn vẫn sẽ ở trong chương trình Free Tier cũ (dùng theo giờ, theo request...). Chính sách "Always Free" vẫn áp dụng cho cả hai chương trình.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Phạm vi áp dụng&lt;/strong&gt;: Chương trình mới có hiệu lực ở tất cả các AWS Regions, ngoại trừ AWS GovCloud (US) và các region ở Trung Quốc.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Hãy bắt đầu hành trình ngay hôm nay - tương lai của bạn trong cloud computing đang chờ đón!&lt;/p&gt;

&lt;p&gt;Chúc các bạn học hỏi được nhiều điều hữu ích! 🚀&lt;/p&gt;

</description>
      <category>aws</category>
      <category>freetier</category>
      <category>vietnamese</category>
    </item>
    <item>
      <title>Khi AI trở thành 'cộng sự' trong terminal: Hành trình build game Snake với Amazon Q CLI</title>
      <dc:creator>Định Trương Quang </dc:creator>
      <pubDate>Mon, 23 Jun 2025 16:27:42 +0000</pubDate>
      <link>https://dev.to/aws-builders/khi-ai-tro-thanh-cong-su-trong-terminal-hanh-trinh-build-game-snake-voi-amazon-q-cli-5bia</link>
      <guid>https://dev.to/aws-builders/khi-ai-tro-thanh-cong-su-trong-terminal-hanh-trinh-build-game-snake-voi-amazon-q-cli-5bia</guid>
      <description>&lt;h2&gt;
  
  
  🤔 Anh em có bao giờ ước mình có một "cộng sự" AI ngay trong terminal không?
&lt;/h2&gt;

&lt;p&gt;Thử tưởng tượng xem: thay vì phải Google "cách dùng git rebase" lần thứ 100, bạn chỉ cần gõ một câu lệnh đơn giản:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;q chat &lt;span class="s2"&gt;"Tôi muốn gộp 3 commit cuối thành 1, làm thế nào"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fspvum10mq91exhg5l4yn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fspvum10mq91exhg5l4yn.png" alt="Demo Amazon Q Chat về Git" width="800" height="497"&gt;&lt;/a&gt;&lt;br&gt;Hình 1: Demo Amazon Q CLI trả lời câu hỏi về Git
  &lt;/p&gt;

&lt;p&gt;Tất cả nằm gọn trong &lt;strong&gt;Amazon Q CLI&lt;/strong&gt; – trợ lý AI thông minh ngay trong terminal của anh em dev.&lt;/p&gt;

&lt;h3&gt;
  
  
  ✨ Tại sao Amazon Q CLI lại "ngon"?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;🚀 &lt;strong&gt;Tiết kiệm thời gian kha khá&lt;/strong&gt;: Không cần phải &lt;code&gt;Alt+Tab&lt;/code&gt; qua lại giữa terminal và trình duyệt nữa.&lt;/li&gt;
&lt;li&gt;🧠 &lt;strong&gt;Hiểu ngữ cảnh dự án (context-aware)&lt;/strong&gt;: AI đủ thông minh để biết bạn đang làm việc trong thư mục nào, với file nào, từ đó đưa ra gợi ý chính xác hơn.&lt;/li&gt;
&lt;li&gt;💬 &lt;strong&gt;Hỏi đáp tự nhiên bằng tiếng Việt&lt;/strong&gt;: Giao tiếp như với một người bạn, nhận về câu trả lời chi tiết, dễ hiểu.&lt;/li&gt;
&lt;li&gt;🔧 &lt;strong&gt;Tương thích tốt với các công cụ quen thuộc&lt;/strong&gt;: "Chơi" được với Git, Docker, AWS CLI, kubectl và nhiều hơn thế nữa.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🚀 Phần 1: Cài Đặt &amp;amp; Trải Nghiệm Lần Đầu
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Amazon Q CLI là gì?
&lt;/h3&gt;

&lt;p&gt;Nói đơn giản, Amazon Q CLI là một trợ lý AI dành cho anh em dev, tương tác trực tiếp trong command line. Thay vì phải mò mẫm trên Stack Overflow, bạn chỉ cần "chat" với nó để giải quyết vấn đề, từ việc tìm một câu lệnh shell phức tạp, debug code, cho đến viết script tự động.&lt;/p&gt;

&lt;p&gt;Nó có thể:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Chuyển yêu cầu tự nhiên (tiếng Việt/Anh) thành các lệnh shell, git, docker...&lt;/li&gt;
&lt;li&gt;Hiểu ngữ cảnh dự án để đưa ra gợi ý phù hợp.&lt;/li&gt;
&lt;li&gt;Trò chuyện, giải đáp thắc mắc về lập trình.&lt;/li&gt;
&lt;li&gt;Hỗ trợ viết code và debug.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🛠️ Cài đặt trong một nốt nhạc (&lt;a href="https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/command-line-installing.html" rel="noopener noreferrer"&gt;Tham khảo docs&lt;/a&gt;)
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Bước 1: Cài đặt
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;macOS (khuyến khích):&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;brew &lt;span class="nb"&gt;install &lt;/span&gt;amazon-q
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Linux (Ubuntu/Debian):&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;wget https://desktop-release.q.us-east-1.amazonaws.com/latest/amazon-q.deb
&lt;span class="nb"&gt;sudo &lt;/span&gt;dpkg &lt;span class="nt"&gt;-i&lt;/span&gt; amazon-q.deb
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Bước 2: Đăng nhập (Hoàn toàn miễn phí)
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;q login &lt;span class="nt"&gt;--license&lt;/span&gt; free
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Lệnh này sẽ mở trình duyệt để bạn đăng nhập bằng AWS Builder ID (tài khoản này miễn phí và không cần thẻ tín dụng).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4xaqabu54r0f5230ha0h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4xaqabu54r0f5230ha0h.png" alt="Login" width="800" height="62"&gt;&lt;/a&gt;&lt;br&gt;Hình 2: Màn hình đăng nhập Amazon Q CLI
  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F88y6icroatq1z7vcrdxt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F88y6icroatq1z7vcrdxt.png" alt="Cấp quyền" width="800" height="469"&gt;&lt;/a&gt;&lt;br&gt;Hình 3: Màn hình cấp quyền cho Amazon Q CLI
  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fij6009x5xlef7cgk6gca.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fij6009x5xlef7cgk6gca.png" alt="Thành quả" width="800" height="635"&gt;&lt;/a&gt;&lt;br&gt;Hình 4: Đăng nhập thành công, sẵn sàng chiến!
  &lt;/p&gt;

&lt;h4&gt;
  
  
  Bước 2.1 (Optional nhưng nên làm): Tắt telemetry và chia sẻ dữ liệu
&lt;/h4&gt;

&lt;p&gt;Để đảm bảo Amazon Q không sử dụng dữ liệu từ terminal của bạn cho việc training model, mình khuyến khích chạy hai lệnh sau:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;q settings telemetry.enabled &lt;span class="nb"&gt;false
&lt;/span&gt;q settings codeWhisperer.shareCodeWhispererContentWithAWS &lt;span class="nb"&gt;false&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Bước 3: Bắt đầu "tám" với AI
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;q chat
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;🎉 Xong! Giờ thì hỏi AI bất cứ điều gì bạn muốn!&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  3 Lệnh "Tủ" Cần Nắm Vững
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Lệnh&lt;/th&gt;
&lt;th&gt;Mục Đích&lt;/th&gt;
&lt;th&gt;Ví Dụ&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;q chat&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Chat chit, hỏi đáp, viết code&lt;/td&gt;
&lt;td&gt;&lt;code&gt;q chat "Viết hàm sắp xếp mảng trong Python"&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;q translate&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Dịch ngôn ngữ tự nhiên ra command&lt;/td&gt;
&lt;td&gt;&lt;code&gt;q translate "tìm file .py sửa trong tuần này"&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/help&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Xem danh sách các lệnh có sẵn&lt;/td&gt;
&lt;td&gt;Gõ &lt;code&gt;/help&lt;/code&gt; ngay trong session chat&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  💡 Phần 2: Ứng Dụng Thực Tế Hàng Ngày
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🤔 Amazon Q CLI vs. Amazon Q trong IDE - Dùng cái nào, khi nào?
&lt;/h3&gt;

&lt;p&gt;Cả hai đều là "anh em một nhà" nhưng phục vụ cho những mục đích khác nhau.&lt;/p&gt;

&lt;h4&gt;
  
  
  Amazon Q CLI (Terminal) 👍 Khi nào dùng?
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Khi bạn là "dân" terminal chính hiệu, sống và làm việc phần lớn thời gian trên command line.&lt;/li&gt;
&lt;li&gt;Cần "bịa" nhanh một câu lệnh shell, git, docker phức tạp.&lt;/li&gt;
&lt;li&gt;Đang SSH vào server và cần trợ giúp ngay tại chỗ.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ví dụ&lt;/strong&gt;: "Tạo cho tôi một bash script để backup database MySQL."&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Amazon Q trong IDE 👍 Khi nào dùng?
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Khi bạn đang trong luồng viết code, cần tập trung cao độ.&lt;/li&gt;
&lt;li&gt;Cần refactor những đoạn code lớn, phức tạp.&lt;/li&gt;
&lt;li&gt;Debug và viết unit test ngay trong môi trường IDE.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ví dụ&lt;/strong&gt;: "Refactor class này theo design pattern MVC giùm tôi."&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  💼 Vài tình huống quen thuộc
&lt;/h3&gt;

&lt;h4&gt;
  
  
  🏢 Bạn là Backend Developer
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; Tôi cần tạo một API endpoint để lấy danh sách user, có phân trang, dùng Python và Django.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  🎓 Bạn là sinh viên đang học code
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; Giải thích cho tôi sự khác biệt giữa var, &lt;span class="nb"&gt;let&lt;/span&gt;, và const trong JavaScript một cách dễ hiểu nhất.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  🚀 Bạn là DevOps đang deploy ứng dụng
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; Viết cho tôi một Dockerfile để đóng gói ứng dụng Python Django, có file requirements.txt nhé.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  🎯 Khám phá các lệnh hay ho
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Các lệnh cơ bản trong session chat
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Bắt đầu một session chat mới&lt;/span&gt;
q chat

&lt;span class="c"&gt;# Trong lúc chat:&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; /help          &lt;span class="c"&gt;# Xem tất cả các lệnh&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; /clear         &lt;span class="c"&gt;# Dọn dẹp màn hình chat&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; /editor        &lt;span class="c"&gt;# Mở editor để gõ các prompt dài, phức tạp&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; /quit          &lt;span class="c"&gt;# Thoát khỏi session chat&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzehwoze7ul8x06e15xn0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzehwoze7ul8x06e15xn0.png" alt="Lệnh /help" width="800" height="838"&gt;&lt;/a&gt;&lt;br&gt;Hình 5: Danh sách các lện trong session chat Amazon Q
  &lt;/p&gt;

&lt;h4&gt;
  
  
  Dùng &lt;code&gt;q translate&lt;/code&gt; - "Ma thuật" thực sự là đây
&lt;/h4&gt;

&lt;p&gt;Đây là tính năng mình cực kỳ thích. Nó biến những yêu cầu đời thường thành những câu lệnh chính xác.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Tìm file Python được sửa gần đây&lt;/span&gt;
q translate &lt;span class="s2"&gt;"tìm tất cả file Python được sửa trong tuần qua"&lt;/span&gt;
&lt;span class="c"&gt;# Kết quả: find . -name "*.py" -mtime -7&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff76rz1icwp64rrpxibjo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff76rz1icwp64rrpxibjo.png" alt="Tìm file trong tuần" width="800" height="151"&gt;&lt;/a&gt;&lt;br&gt;Hình 6: Dùng &lt;code&gt;translate&lt;/code&gt; để tìm file Python đã sửa trong tuần qua
  &lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Thao tác với Git chưa bao giờ dễ hơn&lt;/span&gt;
q translate &lt;span class="s2"&gt;"tạo branch git mới tên là 'feature/login' từ nhánh main"&lt;/span&gt;
&lt;span class="c"&gt;# Kết quả: git checkout -b feature/login main&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdgasd12fbpkztq41gxoj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdgasd12fbpkztq41gxoj.png" alt="Tạo branch" width="800" height="195"&gt;&lt;/a&gt;&lt;br&gt;Hình 7: Dùng &lt;code&gt;translate&lt;/code&gt; để tạo branch Git mới, không cần nhớ lệnh
  &lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Chạy Docker container&lt;/span&gt;
q translate &lt;span class="s2"&gt;"chạy container Docker image 'nginx' và map port 8080 của máy host vào port 80 của container"&lt;/span&gt;
&lt;span class="c"&gt;# Kết quả: docker run -p 8080:80 nginx&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi8tmgwb0uvz9mkjagt3p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi8tmgwb0uvz9mkjagt3p.png" alt="Chạy container" width="800" height="169"&gt;&lt;/a&gt;&lt;br&gt;Hình 8: Dùng &lt;code&gt;translate&lt;/code&gt; để tạo lệnh chạy container Docker
  &lt;/p&gt;




&lt;h2&gt;
  
  
  🔧 Phần 3: Tinh Chỉnh Nâng Cao
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Quản lý Ngữ cảnh (Context) - Dạy AI "hiểu" dự án của bạn
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Cung cấp Context cho AI
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Bắt đầu session chat&lt;/span&gt;
q chat

&lt;span class="c"&gt;# "Mớm" cho AI biết về các file quan trọng trong dự án&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; /context add ./requirements.txt ./snake_game.py

&lt;span class="c"&gt;# Kiểm tra xem AI đang "biết" những gì&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; /context show

&lt;span class="c"&gt;# Xóa context để bắt đầu một chủ đề mới&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; /context clear
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fud5s1i17r43dimb5zx8j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fud5s1i17r43dimb5zx8j.png" alt="Quản lý context" width="800" height="431"&gt;&lt;/a&gt;&lt;br&gt;Hình 9: Quản lý ngữ cảnh (context) giúp AI đưa ra câu trả lời chính xác hơn
  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tại sao &lt;code&gt;context&lt;/code&gt; lại quan trọng đến vậy?&lt;/strong&gt; Khi AI hiểu được cấu trúc và các thành phần chính của dự án, câu trả lời của nó sẽ không chung chung nữa mà cực kỳ chính xác và phù hợp.&lt;/p&gt;

&lt;h4&gt;
  
  
  Quản lý Profile - Tách biệt các dự án
&lt;/h4&gt;

&lt;p&gt;Nếu bạn làm nhiều dự án cùng lúc, &lt;code&gt;profile&lt;/code&gt; sẽ giúp bạn giữ mọi thứ ngăn nắp.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Tạo profile cho từng dự án&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; /profile create frontend-react
&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; /profile create backend-python
&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; /profile create devops-aws

&lt;span class="c"&gt;# Chuyển qua lại giữa các profile&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; /profile &lt;span class="nb"&gt;set &lt;/span&gt;backend-python

&lt;span class="c"&gt;# Mỗi profile có context riêng biệt, không lẫn lộn&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; /context add ./main.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;img src="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qvgfuvy0gdtfu2gz9n6x.png" alt="Quản lý profile"&amp;gt;
&amp;lt;figcaption&amp;gt;Hình: Quản lý profile để tách biệt các ngữ cảnh công việc&amp;lt;/figcaption&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h3&gt;
  
  
  Những "Chiêu" Hay Ho Khác
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Các lệnh hữu ích trong session chat
&lt;/h4&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Lệnh&lt;/th&gt;
&lt;th&gt;Công Dụng&lt;/th&gt;
&lt;th&gt;Ví dụ&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/tools trust fs_write&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Cho phép AI tự động ghi file mà không cần hỏi lại.&lt;/td&gt;
&lt;td&gt;Khi bạn muốn AI tự tạo file config, code...&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/compact&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Tóm tắt cuộc trò chuyện dài để tiết kiệm token.&lt;/td&gt;
&lt;td&gt;Khi cuộc trò chuyện đã quá dài.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/save session.json&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Lưu lại toàn bộ session chat.&lt;/td&gt;
&lt;td&gt;Backup công việc đang dang dở.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/load session.json&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Tải lại session chat đã lưu.&lt;/td&gt;
&lt;td&gt;Tiếp tục công việc từ lần trước.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h4&gt;
  
  
  Mẹo và thủ thuật
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;!{command}&lt;/code&gt;&lt;/strong&gt;: Chạy lệnh shell ngay trong cửa sổ chat mà không cần thoát ra. Cực kỳ tiện lợi!
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nb"&gt;ls&lt;/span&gt; &lt;span class="nt"&gt;-la&lt;/span&gt;
  &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;!&lt;/span&gt;git status
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4jnj35dtt7k3is6b3j5c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4jnj35dtt7k3is6b3j5c.png" alt="Command in chat" width="800" height="481"&gt;&lt;/a&gt;&lt;br&gt;Hình 10: Chạy lệnh shell trực tiếp trong session chat Amazon Q
  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;Ctrl + J&lt;/code&gt;&lt;/strong&gt;: Mở editor để viết những prompt dài hơi, nhiều dòng.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;Ctrl + S&lt;/code&gt;&lt;/strong&gt;: Tìm kiếm nhanh trong lịch sử chat và context hiện tại.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🕹️ Phần 4: Case Study - Xây Dựng Game Rắn Săn Mồi Cùng "Đồng Nghiệp" AI
&lt;/h2&gt;

&lt;p&gt;Lý thuyết là vậy, nhưng sức mạnh thực sự của một công cụ chỉ thể hiện qua thực chiến. Bây giờ, hãy cùng mình tái hiện lại hành trình "pair-programming" với Amazon Q CLI, từ một thư mục trống đến một game Snake hoàn chỉnh.&lt;/p&gt;

&lt;h3&gt;
  
  
  🐣 Level 0: Nền Móng Đầu Tiên - Từ Ý Tưởng đến Game Chơi Được
&lt;/h3&gt;

&lt;p&gt;Mọi chuyện bắt đầu từ một thư mục trống (mình tạo sẵn 1 file snake_game.py demo chỉ start pygame)và một ý tưởng. Mục tiêu của mình rất đơn giản: có một phiên bản game cơ bản nhất, chạy được ngay lập tức.&lt;/p&gt;

&lt;h4&gt;
  
  
  Bước 1: Phác thảo ý tưởng
&lt;/h4&gt;

&lt;p&gt;Đầu tiên, mình vào thư mục dự án và khởi động Amazon Q.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; ~/Self-Project/AWS-Builder/snake-game-with-amazon-q
q chat
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Để đưa ra một yêu cầu hoàn chỉnh, mình dùng lệnh &lt;code&gt;/editor&lt;/code&gt;. Nó mở ra một trình soạn thảo ngay trong terminal, giúp mình viết các prompt dài và phức tạp một cách thoải mái.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;👨‍💻 Mình:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Hãy giúp tôi tạo một trò chơi Rắn (Snake) đơn giản bằng Python và thư viện `pygame`.

**Yêu cầu cốt lõi:**
1. Cửa sổ game kích thước 800x600 pixel.
2. Rắn bắt đầu với độ dài 1 khúc.
3. Điều khiển rắn bằng các phím mũi tên.
4. "Mồi" xuất hiện ngẫu nhiên.
5. Khi rắn ăn "mồi", nó dài ra và "mồi" mới xuất hiện.
6. Game kết thúc nếu rắn đâm vào tường hoặc tự cắn vào thân.

Vui lòng cung cấp toàn bộ code để có thể chạy ngay.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Bước 2: AI bắt tay vào việc
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;🤖 Amazon Q:&lt;/strong&gt; &lt;em&gt;I'll help you create a simple Snake game using Python and pygame. Let me create a complete, runnable Snake game that meets all your requirements.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Ngay lập tức, AI đề xuất tạo một file mã nguồn:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;🛠️  Using tool: fs_write
 ⋮ 
 ● Path: snake_game.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Điều đáng kinh ngạc là AI không chỉ vứt ra một cục code. Nó hiển thị một bản &lt;code&gt;diff&lt;/code&gt; chi tiết, cho thấy nó sẽ tạo ra một file &lt;code&gt;snake_game.py&lt;/code&gt; hoàn chỉnh với &lt;strong&gt;212 dòng code&lt;/strong&gt;. Code được tổ chức rất chuyên nghiệp theo hướng đối tượng (OOP):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Class &lt;code&gt;Game&lt;/code&gt;&lt;/strong&gt;: Quản lý vòng lặp chính, sự kiện, và trạng thái game.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Class &lt;code&gt;Snake&lt;/code&gt;&lt;/strong&gt;: Xử lý logic di chuyển, ăn mồi, kiểm tra va chạm của rắn.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Class &lt;code&gt;Food&lt;/code&gt;&lt;/strong&gt;: Chịu trách nhiệm tạo và đặt lại vị trí mồi.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsn8qmq2cuflozvhs1daq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsn8qmq2cuflozvhs1daq.png" alt="Coding Diff" width="800" height="320"&gt;&lt;/a&gt;&lt;br&gt;Hình 11: Amazon Q hiển thị diff chi tiết của file code sắp được tạo
  &lt;/p&gt;

&lt;p&gt;Mình chỉ việc đồng ý:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;Allow this action? &lt;span class="o"&gt;[&lt;/span&gt;y/n/t]:
&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; y
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Bước 3: Hoàn thiện "hệ sinh thái" của dự án
&lt;/h4&gt;

&lt;p&gt;Một lập trình viên chuyên nghiệp biết rằng code không phải là tất cả. Và Amazon Q cũng vậy! Nó không dừng lại ở việc tạo file mã nguồn.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🤖 Amazon Q:&lt;/strong&gt; &lt;em&gt;Now let me create a requirements file to make easy to install the nêcsary dependencies:&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;🛠️  Using tool: fs_write
 ⋮ 
 ● Path: requirements.txt

pygame==2.5.2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5r7e6hwli6jnhg08nfub.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5r7e6hwli6jnhg08nfub.png" alt="Auto add requirements" width="800" height="288"&gt;&lt;/a&gt;&lt;br&gt;Hình 12: Amazon Q chủ động tạo file requirements.txt
  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🤖 Amazon Q:&lt;/strong&gt; &lt;em&gt;Let me also create a README file with instructions on how to run the game:&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;🛠️  Using tool: fs_write
 ⋮ 
 ● Path: README.md
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;AI tự động điền vào file README các mục quan trọng như hướng dẫn cài đặt, cách chạy, luật chơi...&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyvdru55zgpuna7gdpzhc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyvdru55zgpuna7gdpzhc.png" alt="Q tạo Readme" width="800" height="746"&gt;&lt;/a&gt;&lt;br&gt;Hình 13: Amazon Q tự động tạo file README.md với hướng dẫn đầy đủ
  &lt;/p&gt;

&lt;h4&gt;
  
  
  Bước 4: Thành quả đầu tiên
&lt;/h4&gt;

&lt;p&gt;Chỉ sau vài phút, AI báo cáo kết quả:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🤖 Amazon Q:&lt;/strong&gt; &lt;em&gt;Perfect! I've created a complete Snake game that meets all your requirements. Here's what I've built for you:&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🎮 Các tính năng đã implement:&lt;/strong&gt;&lt;br&gt;
✅ Kích thước window game &lt;strong&gt;800x600 pixel&lt;/strong&gt;.&lt;br&gt;
✅ Rắn bắt đầu với &lt;strong&gt;1 khúc&lt;/strong&gt;.&lt;br&gt;
✅ Điều khiển bằng &lt;strong&gt;phím mũi tên&lt;/strong&gt;.&lt;br&gt;
✅ "Mồi" xuất hiện &lt;strong&gt;ngẫu nhiên&lt;/strong&gt;.&lt;br&gt;
✅ Rắn &lt;strong&gt;dài ra&lt;/strong&gt; khi ăn mồi.&lt;br&gt;
✅ &lt;strong&gt;Phát hiện va chạm&lt;/strong&gt; (tường và thân).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🎁 Tính năng bonus:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Theo dõi điểm số.&lt;/li&gt;
&lt;li&gt;Màn hình Game Over với tùy chọn chơi lại.&lt;/li&gt;
&lt;li&gt;Gameplay mượt mà ở 10 FPS.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;🚀 Cách chạy:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Cài đặt dependencies&lt;/span&gt;
pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; requirements.txt

&lt;span class="c"&gt;# Chạy game&lt;/span&gt;
python snake_game.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fecukq1hwmtznobb4pp9w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fecukq1hwmtznobb4pp9w.png" alt="Kết Quả" width="800" height="334"&gt;&lt;/a&gt;&lt;br&gt;Hình 14: Amazon Q tóm tắt các tính năng đã hoàn thành
  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4ytr0sibs1tuu3loyady.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4ytr0sibs1tuu3loyady.gif" alt="Chạy thử pygame" width="800" height="625"&gt;&lt;/a&gt;&lt;br&gt;Hình 15: Demo game Snake chạy ngon lành!
  &lt;/p&gt;

&lt;h4&gt;
  
  
  💡 Điểm sáng ở đây là gì?
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Hiểu sâu bối cảnh&lt;/strong&gt;: Chỉ từ một prompt, Q đã nắm bắt toàn bộ yêu cầu.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Chủ động hành động&lt;/strong&gt;: Q không hỏi vặt, nó bắt tay vào code và tạo ra sản phẩm hoàn chỉnh.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tư duy hệ thống&lt;/strong&gt;: Q không chỉ đưa code, nó tạo ra cả một "hệ sinh thái" (&lt;code&gt;requirements.txt&lt;/code&gt;, &lt;code&gt;README.md&lt;/code&gt;) để dự án trở nên chuyên nghiệp và dễ sử dụng ngay từ đầu.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Code chất lượng&lt;/strong&gt;: Mã nguồn sạch, cấu trúc tốt và chạy được ngay mà không có lỗi.&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  🎨 Level 1: "Tút Tát" Giao Diện &amp;amp; Thêm "Hồn" Cho Game
&lt;/h3&gt;

&lt;p&gt;Game đã chạy, nhưng giao diện còn khá "thô". Giờ là lúc làm cho nó "đã mắt, đã tai" hơn.&lt;/p&gt;

&lt;h4&gt;
  
  
  Bước 1: Thêm hiệu ứng đồ họa (Visual Effects)
&lt;/h4&gt;

&lt;p&gt;Mình muốn game trông hiện đại và bắt mắt hơn. Mình cung cấp file &lt;code&gt;snake_game.py&lt;/code&gt; làm &lt;code&gt;context&lt;/code&gt; và đưa ra yêu cầu mới.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F164s2picwkupw0a0yz5d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F164s2picwkupw0a0yz5d.png" alt="Add context" width="658" height="144"&gt;&lt;/a&gt;&lt;br&gt;Hình 16: Thêm file &lt;code&gt;snake_game.py&lt;/code&gt; vào ngữ cảnh của Amazon Q
  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;👨‍💻 Mình gõ trong editor:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Cải thiện giao diện cho game Snake của tôi:

1. Thêm background gradient chuyển từ xanh đậm đến xanh nhạt.
2. Tạo hiệu ứng đổ bóng (shadow) cho con rắn.
3. Làm cho "mồi" có hiệu ứng nhấp nháy.
4. Thêm viền (border) cho khu vực chơi.
5. Tạo màn hình tiêu đề (title screen) có hiệu ứng động.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;🤖 Amazon Q:&lt;/strong&gt; &lt;em&gt;I'll help you improve the visual interface of your Snake game with all the requested enhancements. Let me create an enhanced version with gradient background, shadow effects, blinking food, beautiful borders, and an animated title screen.&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight diff"&gt;&lt;code&gt;🛠️  Using tool: fs_write
 ⋮ 
 ● Path: snake_game.py
&lt;span class="err"&gt;
&lt;/span&gt;   1,  1: import pygame
   2,  2: import random
   3,  3: import sys
&lt;span class="gi"&gt;+      4: import math
&lt;/span&gt;   ...
&lt;span class="gi"&gt;+     22: LIGHT_BLUE = (173, 216, 230)
+     23: DARK_BLUE = (25, 25, 112)
+     24: GOLD = (255, 215, 0)
+     25: SHADOW_COLOR = (0, 0, 0, 100)
&lt;/span&gt;...
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;AI ngay lập tức đề xuất sửa đổi file &lt;code&gt;snake_game.py&lt;/code&gt;, thêm các hằng số màu sắc mới và các hàm để vẽ hiệu ứng.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxo2sjsvvle4c2elg6po6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxo2sjsvvle4c2elg6po6.png" alt="Add Color" width="800" height="945"&gt;&lt;/a&gt;&lt;br&gt;Hình 17: Amazon Q thêm màu sắc và logic để vẽ hiệu ứng đồ họa
  &lt;/p&gt;

&lt;h4&gt;
  
  
  Bước 2: Thổi hồn bằng âm thanh (Sound Effects)
&lt;/h4&gt;

&lt;p&gt;Một game hay không thể thiếu âm thanh. Điều thú vị là mình muốn thử thách AI một chút.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;👨‍💻 Mình:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;Thêm âm thanh vào game Snake:

1. Âm thanh khi ăn mồi.
2. Âm thanh khi game over.
3. Nhạc nền.
4. Nút bật/tắt âm thanh &lt;span class="o"&gt;(&lt;/span&gt;phím M&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="nb"&gt;.&lt;/span&gt;

Yêu cầu đặc biệt: &lt;span class="k"&gt;**&lt;/span&gt;Không dùng file âm thanh có sẵn, hãy tự tạo ra âm thanh bằng code Python&lt;span class="k"&gt;**&lt;/span&gt;&lt;span class="nb"&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;🤖 Amazon Q:&lt;/strong&gt; &lt;em&gt;I'll help you add sound effects to your Snake game using pygame.mixer and create simple sound files programmatically.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Đây là lúc AI thể hiện sự thông minh vượt trội. Nó không chỉ sửa file game, mà còn tạo ra một file hoàn toàn mới:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;🛠️  Using tool: fs_write
 ⋮ 
 ● Path: sound_generator.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;File &lt;code&gt;sound_generator.py&lt;/code&gt; này chứa code Python sử dụng &lt;code&gt;numpy&lt;/code&gt; để tạo ra các sóng âm (dạng &lt;code&gt;array&lt;/code&gt;) cho từng hiệu ứng, sau đó lưu chúng lại. Đây là một kỹ thuật lập trình âm thanh rất hay mà mình không cần phải tự tìm hiểu.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxue1ktc22y7pqe6jctzj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxue1ktc22y7pqe6jctzj.png" alt="Add sound" width="800" height="1250"&gt;&lt;/a&gt;&lt;br&gt;Hình 18: Amazon Q tự viết một script &lt;code&gt;sound_generator.py&lt;/code&gt; để tạo âm thanh từ code
  &lt;/p&gt;

&lt;h4&gt;
  
  
  Bước 3: Gặp lỗi và cùng AI "bắt bệnh" (Troubleshooting)
&lt;/h4&gt;

&lt;p&gt;Trong quá trình phát triển, gặp lỗi là chuyện bình thường. Khi mình chạy game, console báo lỗi:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvkp2go05d00t4mwz9nlj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvkp2go05d00t4mwz9nlj.png" alt="Error Sound" width="800" height="94"&gt;&lt;/a&gt;&lt;br&gt;Hình 19: Lỗi khi chạy game với âm thanh mới
  &lt;/p&gt;

&lt;p&gt;Đây là cơ hội tuyệt vời để thử khả năng debug của Amazon Q. Mình chỉ cần copy-paste lỗi vào cho nó:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;👨‍💻 Mình:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Sửa lỗi này giúp tôi với:
Could not initialize sounds: Array must be 2-dimensional for stereo mixer
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7g0yh0a6un70swnzu8me.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7g0yh0a6un70swnzu8me.png" alt="Fix sound" width="800" height="390"&gt;&lt;/a&gt;&lt;br&gt;Hình 20: Amazon Q phân tích và đề xuất cách sửa lỗi âm thanh
  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🤖 Amazon Q:&lt;/strong&gt; &lt;em&gt;I see the issue! The problem is with the audio array format for pygame's sound system. Let me fix the sound generator to properly handle stereo/mono audio formats.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;AI không chỉ sửa lỗi. Nó còn chủ động tạo ra một script &lt;code&gt;test_sounds.py&lt;/code&gt; để mình có thể kiểm tra hệ thống âm thanh một cách độc lập trước khi chạy toàn bộ game. Cực kỳ cẩn thận!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs65cr2zraviyq9qsk053.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs65cr2zraviyq9qsk053.png" alt="Sound test script" width="800" height="1068"&gt;&lt;/a&gt;&lt;br&gt;Hình 21: AI còn cẩn thận tạo thêm script để test riêng phần âm thanh
  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🎉 Kết quả:&lt;/strong&gt; Sau khi Q đã fix, mình chạy lại game và mọi thứ hoạt động hoàn hảo!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foiu9po940pdzzmpuabco.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foiu9po940pdzzmpuabco.gif" alt="Add Visual" width="800" height="625"&gt;&lt;/a&gt;&lt;br&gt;Hình 22: Demo game với giao diện và âm thanh đã được nâng cấp
  &lt;/p&gt;

&lt;h4&gt;
  
  
  🎓 Bài học từ Level 1
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Phát triển lặp&lt;/strong&gt;: Xây dựng từng lớp tính năng (đồ họa, âm thanh) dựa trên nền tảng đã có.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sức mạnh của &lt;code&gt;context&lt;/code&gt;&lt;/strong&gt;: Cung cấp file code hiện tại giúp Q đưa ra các đề xuất sửa đổi cực kỳ chính xác.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Debug hiệu quả&lt;/strong&gt;: Chỉ cần đưa ra thông báo lỗi, Q có thể phân tích, tìm nguyên nhân, đề xuất giải pháp, và thậm chí tạo cả script để testing.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  🎮 Level 2: Nâng Tầm Gameplay
&lt;/h3&gt;

&lt;p&gt;Game đã đẹp và có âm thanh, giờ là lúc làm cho nó hấp dẫn và có chiều sâu hơn về lối chơi.&lt;/p&gt;

&lt;h4&gt;
  
  
  Bước 1: Thêm Power-ups và Chướng ngại vật
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;👨‍💻 Mình:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Thêm các yếu tố mới vào game:

**Power-ups (tỷ lệ xuất hiện 5%):**
- 🍒 Cherry: +20 điểm, rắn không dài ra.
- ⚡ Lightning: Tăng tốc trong 5 giây.
- 🛡️ Shield: Bất tử trong 3 giây.
- 💎 Diamond: +50 điểm và đóng băng thời gian 2 giây.

**Chướng ngại vật:**
- 🧱 Các khối tường xuất hiện ngẫu nhiên.
- 🕳️ Lỗ dịch chuyển (vào một lỗ, ra lỗ còn lại).

Hiển thị thời gian đếm ngược cho các power-up đang kích hoạt.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;🤖 Amazon Q:&lt;/strong&gt; &lt;em&gt;I'll help you add these exciting new elements to your Snake game! Let me implement the power-ups, obstacles, and timer system.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;AI lại tiếp tục công việc refactor và bổ sung code. Nó tạo ra class mới như &lt;code&gt;PowerUp&lt;/code&gt;, &lt;code&gt;Obstacle&lt;/code&gt; và cập nhật &lt;code&gt;Game&lt;/code&gt; class với logic phức tạp để quản lý tất cả, bao gồm cả hệ thống hẹn giờ và hiệu ứng hình ảnh cho từng loại.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh05trdtb66f1bzx08y5y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh05trdtb66f1bzx08y5y.png" alt="Thêm power-up" width="800" height="1520"&gt;&lt;/a&gt;&lt;br&gt;Hình 23: Amazon Q thêm code cho các power-ups và chướng ngại vật
  &lt;/p&gt;

&lt;h4&gt;
  
  
  Bước 2: Cải thiện trải nghiệm với "Xuyên Tường"
&lt;/h4&gt;

&lt;p&gt;Cơ chế "chết khi đâm vào tường" ở phiên bản đầu khá khó chịu. Mình quyết định thay đổi nó.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;👨‍💻 Mình:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;Cải thiện gameplay: khi rắn đi xuyên tường, nó sẽ không chết mà xuất hiện ở cạnh đối diện.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;🤖 Amazon Q:&lt;/strong&gt; *Tôi sẽ cải thiện gameplay bằng cách cho phép rắn xuyên qua tường và xuất hiện ở phía đối diện thay vì chết khi va vào tường. Đây là một tính năng rất hay để làm game thú vị hơn!&lt;/p&gt;

&lt;p&gt;AI nhanh chóng xác định phần code xử lý va chạm tường và thay thế nó bằng logic mới. Thay đổi này nhỏ nhưng làm cho trải nghiệm chơi game mượt mà và chiến thuật hơn rất nhiều.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe0hn7f4ovkqc1uyleycr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe0hn7f4ovkqc1uyleycr.png" alt="Xuyên Tường" width="800" height="1833"&gt;&lt;/a&gt;&lt;br&gt;Hình 24: Amazon Q dễ dàng thêm tính năng "xuyên tường" cho rắn
  &lt;/p&gt;

&lt;h4&gt;
  
  
  Kết quả
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F84d061x2hmt09vi4kn81.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F84d061x2hmt09vi4kn81.gif" alt="Game với power-ups" width="800" height="625"&gt;&lt;/a&gt;&lt;br&gt;Hình 25: Demo game với power-ups và tính năng xuyên tường
  &lt;/p&gt;




&lt;h3&gt;
  
  
  🏆 Level 3: Nâng Cấp "Pro" - Hệ Thống High Score &amp;amp; Bảng Xếp Hạng
&lt;/h3&gt;

&lt;p&gt;Để game có tính cạnh tranh và lôi cuốn hơn, không thể thiếu hệ thống lưu điểm cao.&lt;/p&gt;

&lt;h4&gt;
  
  
  Bước 1: Yêu cầu hệ thống high score hoàn chỉnh
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;👨‍💻 Mình:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Tạo hệ thống high score hoàn chỉnh:

1. **Local storage:**
   - Save top 10 scores vào JSON file
   - Include: name, score, date, level reached

2. **Leaderboard screen:**
   - Hiển thị ranking với animation
   - Input name khi đạt high score
   - Export leaderboard to CSV

3. **Statistics:**
   - Total games played
   - Average score
   - Best streak
   - Time played
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;🤖 Amazon Q:&lt;/strong&gt; &lt;em&gt;Tôi sẽ tạo hệ thống high score hoàn chỉnh cho Snake game của bạn. Hãy bắt đầu với việc tạo các file cần thiết:&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;AI bắt đầu một cuộc "cách mạng" về kiến trúc code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;🛠️  Using tool: fs_write
 ⋮ 
 ● Path: high_score_manager.py
 ● Path: leaderboard_screen.py
 ● Path: name_input_screen.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Đây chính là tư duy của một kỹ sư có kinh nghiệm. Thay vì nhồi nhét tất cả vào một file, AI đã tách code thành các module có trách nhiệm rõ ràng.&lt;/p&gt;

&lt;h4&gt;
  
  
  Bước 2: Tích hợp và hoàn thiện
&lt;/h4&gt;

&lt;p&gt;Sau khi tạo các module trên, AI tiếp tục cập nhật file &lt;code&gt;snake_game.py&lt;/code&gt; để tích hợp chúng vào luồng game chính, đồng thời cập nhật cả &lt;code&gt;README.md&lt;/code&gt; để hướng dẫn về các tính năng mới. Quá trình này bao gồm:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Import các class mới: &lt;code&gt;HighScoreManager&lt;/code&gt;, &lt;code&gt;LeaderboardScreen&lt;/code&gt;, &lt;code&gt;NameInputScreen&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Thêm các game state mới: &lt;code&gt;"leaderboard"&lt;/code&gt;, &lt;code&gt;"name_input"&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Cập nhật event loop (&lt;code&gt;handle_events&lt;/code&gt;) để xử lý các phím bấm mới (như &lt;code&gt;L&lt;/code&gt; để xem leaderboard, &lt;code&gt;E&lt;/code&gt; để export).&lt;/li&gt;
&lt;li&gt;Cập nhật logic game (&lt;code&gt;update&lt;/code&gt;) để kiểm tra high score khi game over và chuyển sang màn hình nhập tên.&lt;/li&gt;
&lt;li&gt;Cập nhật hàm render (&lt;code&gt;draw&lt;/code&gt;) để hiển thị các màn hình mới.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;🤖 AI cũng không quên cập nhật các file phụ trợ:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;requirements.txt&lt;/code&gt;:&lt;/strong&gt; Được cập nhật để đảm bảo phiên bản tương thích.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;README.md&lt;/code&gt;:&lt;/strong&gt; Được bổ sung chi tiết về hệ thống high score, hướng dẫn sử dụng các tính năng mới và cấu trúc file dự án.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Bước 3: Kết quả cuối cùng
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;🤖 Amazon Q:&lt;/strong&gt; &lt;em&gt;Tuyệt vời! Tôi đã tích hợp thành công hệ thống high score. Hệ thống này không chỉ lưu điểm mà còn cung cấp một trải nghiệm người dùng rất chuyên nghiệp.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcw8m08clfjko9eodz1v4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcw8m08clfjko9eodz1v4.png" alt="High Score System" width="800" height="636"&gt;&lt;/a&gt;&lt;br&gt;Hình 26: Amazon Q triển khai hệ thống high score với kiến trúc module
  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fea2ghm1ua9xk3yij9677.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fea2ghm1ua9xk3yij9677.png" alt="Status" width="800" height="626"&gt;&lt;/a&gt;&lt;br&gt;Hình 27: Thống kê và dữ liệu game được lưu trữ và hiển thị đẹp mắt
  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🏆 Các tính năng High Score đã implement:&lt;/strong&gt;&lt;br&gt;
✅ &lt;strong&gt;Lưu trữ Local&lt;/strong&gt;: Tự động lưu top 10 điểm và thống kê vào file JSON.&lt;br&gt;
✅ &lt;strong&gt;Leaderboard Động&lt;/strong&gt;: Màn hình bảng xếp hạng với huy chương (🥇, 🥈, 🥉).&lt;br&gt;
✅ &lt;strong&gt;Theo Dõi Thống Kê&lt;/strong&gt;: Ghi lại lịch sử chơi game chi tiết.&lt;br&gt;
✅ &lt;strong&gt;Export ra CSV&lt;/strong&gt;: Xuất bảng xếp hạng chỉ bằng một phím bấm.&lt;br&gt;
✅ &lt;strong&gt;Kiến Trúc Module&lt;/strong&gt;: Tách biệt logic rõ ràng (data, UI, game logic), giúp dự án dễ bảo trì và mở rộng.&lt;/p&gt;


&lt;h3&gt;
  
  
  📚 Level 4: Bước Cuối Cùng - Hoàn Thiện Documentation Như Dân Chuyên
&lt;/h3&gt;

&lt;p&gt;Một dự án tốt không thể thiếu tài liệu hướng dẫn chi tiết. Đây là bước cuối cùng để biến dự án thành một sản phẩm mã nguồn mở hoàn chỉnh.&lt;/p&gt;
&lt;h4&gt;
  
  
  Bước 1: Yêu cầu bộ tài liệu đầy đủ
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;👨‍💻 Mình:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Tạo documentation hoàn chỉnh:

**Developer docs:**
- Code architecture explanation
- API documentation với Sphinx
- Contributing guidelines
- Setup development environment

**User manual:**
- Interactive tutorial in-game
- Strategy guide với screenshots
- FAQ section
- Troubleshooting guide

**Video content:**
- Screen recording của gameplay
- Development timelapse
- Tutorial videos

Tạo GitHub Pages site cho documentation.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;🤖 Amazon Q:&lt;/strong&gt; &lt;em&gt;Tôi sẽ tạo documentation hoàn chỉnh cho Snake game của bạn. Hãy bắt đầu với việc tạo cấu trúc documentation và các file cần thiết&lt;/em&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Bước 2: AI tạo hệ thống documentation
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;AI đã thực hiện một khối lượng công việc khổng lồ:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Thiết lập nền tảng Sphinx:&lt;/strong&gt; Tạo toàn bộ cấu trúc thư mục &lt;code&gt;docs/&lt;/code&gt; với các file cấu hình.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tự động viết nội dung:&lt;/strong&gt; Sinh ra hàng loạt file &lt;code&gt;.rst&lt;/code&gt; với nội dung chi tiết cho từng phần.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tạo script hỗ trợ:&lt;/strong&gt; Viết script Python (&lt;code&gt;scripts/generate_screenshots.py&lt;/code&gt;) để tự động chạy game và chụp lại các màn hình cần thiết để minh họa.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Thiết lập CI/CD:&lt;/strong&gt; Tạo file &lt;code&gt;.github/workflows/docs.yml&lt;/code&gt; để tự động build và deploy tài liệu lên GitHub Pages mỗi khi có commit mới.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb12iyvab094uinewzcgj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb12iyvab094uinewzcgj.png" alt="Documentation Structure" width="800" height="674"&gt;&lt;/a&gt;&lt;br&gt;Hình 28: Cấu trúc thư mục documentation chuyên nghiệp được tạo bởi Amazon Q
  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzerwmcyexyi3m33qoe3r.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzerwmcyexyi3m33qoe3r.png" alt="Generate Screenshots" width="800" height="884"&gt;&lt;/a&gt;&lt;br&gt;Hình 31: Script tự động chụp ảnh màn hình game để làm tài liệu
  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0glgklvwrusbefflyoax.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0glgklvwrusbefflyoax.png" alt="CI/CD Workflow" width="800" height="1332"&gt;&lt;/a&gt;&lt;br&gt;Hình 32: Workflow CI/CD cho GitHub Actions để tự động deploy tài liệu
  &lt;/p&gt;

&lt;h4&gt;
  
  
  Bước 3: Thành quả không tưởng
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;🤖 Amazon Q:&lt;/strong&gt; &lt;em&gt;Hệ thống documentation của bạn đã sẵn sàng. Nó không chỉ là các file văn bản, mà là một trang web hoàn chỉnh, có thể được host miễn phí trên GitHub Pages.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxx97007rwf077b35i6ok.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxx97007rwf077b35i6ok.png" alt="Documentation Preview" width="386" height="488"&gt;&lt;/a&gt;&lt;br&gt;Hình 33: Xem trước trang tài liệu được tạo hoàn toàn bằng Amazon Q
  &lt;/p&gt;




&lt;p&gt;&lt;strong&gt;📖 Các thành phần của bộ Documentation:&lt;/strong&gt;&lt;br&gt;
✅ &lt;strong&gt;👨‍💻 Dành cho Developer&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Code Architecture&lt;/strong&gt;: Giải thích sâu về cấu trúc class, luồng game state, hệ thống render.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;API Reference&lt;/strong&gt;: Tài liệu API được tự động sinh ra từ docstrings bằng Sphinx, chi tiết từng class và method.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contributing Guide&lt;/strong&gt;: Hướng dẫn chi tiết cách đóng góp, code style, quy trình pull request.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;✅ &lt;strong&gt;👤 Dành cho Người dùng&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Interactive Tutorial&lt;/strong&gt;: Một guide siêu chi tiết gồm 6 bài học, từ cách di chuyển cơ bản đến chiến thuật nâng cao, có cả bài tập thực hành.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Strategy Guide&lt;/strong&gt;: Phân tích chuyên sâu về cách sử dụng power-up, né chướng ngại vật và tối ưu điểm số.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;FAQ &amp;amp; Troubleshooting&lt;/strong&gt;: Giải đáp mọi thắc mắc thường gặp và hướng dẫn sửa lỗi.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;✅ &lt;strong&gt;🎥 Media và Tự động hóa&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Tự động tạo Screenshot&lt;/strong&gt;: Script giúp tạo ra hình ảnh minh họa nhất quán cho tài liệu.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tự động quay Video&lt;/strong&gt;: Script giúp ghi lại các đoạn video gameplay cho tutorials.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tự động Deploy&lt;/strong&gt;: Nhờ GitHub Actions, trang docs sẽ luôn được cập nhật với phiên bản mới nhất của code.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;✅ &lt;strong&gt;🌐 Trang GitHub Pages chuyên nghiệp&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Giao diện được tùy chỉnh với màu sắc của game.&lt;/li&gt;
&lt;li&gt;Cấu trúc điều hướng rõ ràng, dễ tìm kiếm.&lt;/li&gt;
&lt;li&gt;Tối ưu cho cả desktop và mobile.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Một số hình ảnh demo screenshoot được chụp từ script generate_screenshots.py
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffn4dt7gujhbuw847hksz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffn4dt7gujhbuw847hksz.png" alt="Title Screen" width="800" height="600"&gt;&lt;/a&gt;&lt;br&gt;Hình 34: Màn hình tiêu đề (title screen) của game
  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F923qtz8tceqaiojt8b98.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F923qtz8tceqaiojt8b98.png" alt="UI Elements" width="800" height="600"&gt;&lt;/a&gt;&lt;br&gt;Hình 35: Các thành phần UI trong game
  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxlvpdnw1lexnehezj0fc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxlvpdnw1lexnehezj0fc.png" alt="Gameplay Active" width="800" height="600"&gt;&lt;/a&gt;&lt;br&gt;Hình 36: Màn hình gameplay đang diễn ra
  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdz2p54kb6doobe4faj67.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdz2p54kb6doobe4faj67.png" alt="Obstacles Teleports" width="800" height="600"&gt;&lt;/a&gt;&lt;br&gt;Hình 37: Hệ thống dịch chuyển (teleport) trong game
  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5pgmwigmtcls1pu8xpbm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5pgmwigmtcls1pu8xpbm.png" alt="Obstacles Walls" width="800" height="600"&gt;&lt;/a&gt;&lt;br&gt;Hình 38: Chướng ngại vật tường trong game
  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdl7lycqa9cl1rxtxivef.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdl7lycqa9cl1rxtxivef.png" alt="Powerup Cherry Example" width="800" height="600"&gt;&lt;/a&gt;&lt;br&gt;Hình 39: Power-up Cherry trong game (+20 điểm)
  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk9yaq35cso64o2nx205d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk9yaq35cso64o2nx205d.png" alt="Powerup Diamond Example" width="800" height="600"&gt;&lt;/a&gt;&lt;br&gt;Hình 40: Power-up Diamond trong game (+50 điểm)
  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkgvieuk3s0k6p59inh96.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkgvieuk3s0k6p59inh96.png" alt="Powerup Lightning Example" width="800" height="600"&gt;&lt;/a&gt;&lt;br&gt;Hình 41: Power-up Lightning trong game (tăng tốc)
  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg82pgg9jvfq74pkh7kuy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg82pgg9jvfq74pkh7kuy.png" alt="Powerup Shield Example" width="800" height="600"&gt;&lt;/a&gt;&lt;br&gt;Hình 42: Power-up Shield trong game (bất tử tạm thời)
  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0d1a4tr2gapkzwyclfp8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0d1a4tr2gapkzwyclfp8.png" alt="Game Over Screen" width="800" height="600"&gt;&lt;/a&gt;&lt;br&gt;Hình 43: Màn hình Game Over
  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2cd4wqtnkdfcuxus7cri.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2cd4wqtnkdfcuxus7cri.png" alt="Name Input Screen" width="800" height="600"&gt;&lt;/a&gt;&lt;br&gt;Hình 44: Màn hình nhập tên người chơi đạt điểm cao
  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffjk2cm9asrrx5eq12r4d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffjk2cm9asrrx5eq12r4d.png" alt="Leaderboard Screen" width="800" height="600"&gt;&lt;/a&gt;&lt;br&gt;Hình 45: Màn hình bảng xếp hạng điểm cao
  &lt;/p&gt;




&lt;h3&gt;
  
  
  🎓 Tổng Kết &amp;amp; Đúc Rút Kinh Nghiệm
&lt;/h3&gt;

&lt;p&gt;Qua hành trình này, mình đã hình thành một workflow làm việc cực kỳ hiệu quả với Amazon Q CLI:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Bắt đầu đơn giản&lt;/strong&gt;: Khởi đầu với một yêu cầu cốt lõi.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Phát triển lặp&lt;/strong&gt;: Xây dựng từng lớp tính năng một cách tuần tự: Giao diện → Âm thanh → Gameplay → High Score → Documentation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tin tưởng vào AI&lt;/strong&gt;: Đừng chỉ xem nó là công cụ viết code. Hãy giao cho nó cả việc thiết kế kiến trúc, tự động hóa và viết tài liệu.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Từ ý tưởng đến sản phẩm&lt;/strong&gt;: Chỉ từ những cuộc hội thoại bằng ngôn ngữ tự nhiên, mình đã đi từ một thư mục trống đến một sản phẩm mã nguồn mở hoàn chỉnh.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Đây không chỉ là một trợ lý, mà thực sự là một "đồng nghiệp" AI đắc lực. Amazon Q CLI đã thay đổi hoàn toàn cách mình tiếp cận các dự án cá nhân, giúp mình hiện thực hóa ý tưởng nhanh hơn bao giờ hết.&lt;/p&gt;

&lt;p&gt;Chúc anh em cài đặt thành công và có những trải nghiệm thú vị&lt;/p&gt;

</description>
      <category>aws</category>
      <category>awschallenge</category>
      <category>buildgameschallenge</category>
      <category>amazonqdeveloper</category>
    </item>
    <item>
      <title>Chia sẻ kinh nghiệm ôn thi và đăng ký (voucher 50%) chứng chỉ Python: PCAP 🐍📜</title>
      <dc:creator>Định Trương Quang </dc:creator>
      <pubDate>Fri, 28 Mar 2025 12:26:08 +0000</pubDate>
      <link>https://dev.to/banhmysuawx/chia-se-kinh-nghiem-on-thi-va-dang-ky-voucher-50-chung-chi-python-pcap-16ep</link>
      <guid>https://dev.to/banhmysuawx/chia-se-kinh-nghiem-on-thi-va-dang-ky-voucher-50-chung-chi-python-pcap-16ep</guid>
      <description>&lt;h2&gt;
  
  
  1. Chặng đường của mình đến với PCAP 🚀
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqdhsbc55wn79n3enca1c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqdhsbc55wn79n3enca1c.png" alt="image.png" width="800" height="254"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Chào mọi người! Mình là &lt;strong&gt;Định Trương&lt;/strong&gt; aka &lt;strong&gt;banhmysuawx&lt;/strong&gt;, hiện đang là &lt;strong&gt;Software Engineer&lt;/strong&gt; tại một công ty outsource của Nhật Bản tại Việt Nam. Trước khi quyết định lấy chứng chỉ PCAP, mình đã trăn trở khá nhiều về việc liệu có nên đầu tư thời gian và tiền bạc vào một chứng chỉ hay không. Trong quá trình làm việc, mình nhận thấy tuy đã có kinh nghiệm sử dụng Python được khoảng &lt;strong&gt;3 năm&lt;/strong&gt;, nhưng vẫn còn nhiều kiến thức nền tảng mình chưa thực sự vững. Đó là lúc mình quyết định &lt;strong&gt;"về vạch xuất phát"&lt;/strong&gt; và làm mới toàn bộ kiến thức Python của mình thông qua việc chinh phục chứng chỉ PCAP. Và mình vừa Pass chứng chỉ này với số điểm 93/100 sau 2 tháng ôn thi (chắc cũng chưa được vì trùng mấy tuần tết 🤡)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm59fgp4xemn815kmldfb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm59fgp4xemn815kmldfb.png" alt="image.png" width="800" height="563"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Một số thông tin về PCAP™ ℹ️
&lt;/h2&gt;

&lt;p&gt;Chứng chỉ PCAP (Certified Associate in Python Programming) do &lt;a href="https://pythoninstitute.org/pcap" rel="noopener noreferrer"&gt;Python Institute&lt;/a&gt; cung cấp, nhằm đánh giá khả năng lập trình Python ở mức Intermediate. Chứng chỉ này phù hợp cho những người mới bắt đầu học Python hoặc đã có kinh nghiệm lập trình muốn nâng cao trình độ và có chứng chỉ công nhận năng lực. Ngoài ra Python Institute còn cung cấp các chứng chỉ khác như &lt;a href="https://pythoninstitute.org/pcep" rel="noopener noreferrer"&gt;Certified Entry-Level Python Programmer (PCEP)&lt;/a&gt; cho người mới và &lt;a href="https://pythoninstitute.org/pcpp1" rel="noopener noreferrer"&gt;Certified Professional in Python Programming (PCPP)&lt;/a&gt; cho pro :3&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Format&lt;/strong&gt;: Trắc nghiệm (Multiple Choice, Single Choice). ✅&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Thời gian&lt;/strong&gt;: 65 phút ⏱️&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Số câu hỏi&lt;/strong&gt;: 40. ❓&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Điểm để pass&lt;/strong&gt;: 70%. 🎯&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ngôn ngữ&lt;/strong&gt;: Tiếng Anh. 🇬🇧&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Địa điểm thi&lt;/strong&gt;: Online hoặc trực tiếp tại các trung tâm thi (Person VUE). Mình thi trực tiếp trên OpenEDG. 💻&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Giá thi&lt;/strong&gt;: 295 USD (Yaeh, cuối bài mình sẽ chia sẻ về việc giảm giá 50% khi đăng ký thi). 💰&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  3. Tài liệu và Mẹo Ôn Tập 📚
&lt;/h2&gt;

&lt;p&gt;Mình ôn và làm test trước theo các nguồn sau, đa phần đều miễn phí hoặc giá rất rẻ&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Tài liệu học&lt;/strong&gt; 📖:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Udemy: &lt;a href="https://www.udemy.com/course/python-pcap/?couponCode=ST10MT30325G2" rel="noopener noreferrer"&gt;Python PCAP: Pass Certified Associate in Python Programming&lt;/a&gt; (Khoá này khoảng 299k) 💻&lt;/li&gt;
&lt;li&gt;Khóa học Python Essentials 2 trên &lt;a href="https://edube.org/study/pe2" rel="noopener noreferrer"&gt;OpenEDG&lt;/a&gt; (Free) 🆓&lt;/li&gt;
&lt;li&gt;Syllabus từ &lt;a href="https://pythoninstitute.org/pcap-exam-syllabus" rel="noopener noreferrer"&gt;Python Institute&lt;/a&gt; 📋&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Practice Test&lt;/strong&gt; 🧪:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Mình làm test trên Udemy &lt;a href="https://www.udemy.com/course/pcap-certification-python-exam-practice-tests/?couponCode=ST10MT30325G2" rel="noopener noreferrer"&gt;Python Certification Exam PCAP-31-03 - Preparation&lt;/a&gt; (Khoá này khoảng 279k) ✍️&lt;/li&gt;
&lt;li&gt;Practice Test của OpenEDG (29$) (Phần này mình sẽ có bài viết chia sẻ sau. Các bạn không cần mua đâu ^^). 🎓&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  4. Nội dung bài thi 📝
&lt;/h2&gt;

&lt;p&gt;Bài thi PCAP bao gồm 5 phần chính như sau:&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp67a65df2dm2qd9mb63p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp67a65df2dm2qd9mb63p.png" alt="_- visual selection (1).png" width="800" height="465"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Modules và Packages 📦&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Hiểu và sử dụng modules, packages, và PIP.&lt;/li&gt;
&lt;li&gt;Import và sử dụng modules và packages.&lt;/li&gt;
&lt;li&gt;Tạo và sử dụng modules và packages.&lt;/li&gt;
&lt;li&gt;Các module và packages có sẵn trong Python.&lt;/li&gt;
&lt;li&gt;Trọng số: 12%&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Exceptions 🛑&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Nắm rõ cấu trúc exceptions.&lt;/li&gt;
&lt;li&gt;Sử dụng try, except, else, finally.&lt;/li&gt;
&lt;li&gt;Phân cấp exceptions.&lt;/li&gt;
&lt;li&gt;Custom exceptions.&lt;/li&gt;
&lt;li&gt;Trọng số: 14%&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Strings 🔤&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;ASCII, Unicode, UTF-8.&lt;/li&gt;
&lt;li&gt;Các Method, Function, và Operators của Strings.&lt;/li&gt;
&lt;li&gt;Slicing, Indexing, Concatenation, Formatting.&lt;/li&gt;
&lt;li&gt;Trọng số: 18%&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lập trình Hướng Đối tượng (OOP) 🏛️&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Các khái niệm như lớp (class), đối tượng (object), kế thừa (inheritance), và đóng gói (encapsulation).&lt;/li&gt;
&lt;li&gt;Sử dụng OOP trong Python.&lt;/li&gt;
&lt;li&gt;Trọng số: 34%&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Miscellaneous (List Comprehensions, Lambdas, Closures, and I/O Operations)🧩&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Làm việc với file, luồng dữ liệu (streams), và các thao tác I/O.&lt;/li&gt;
&lt;li&gt;Trọng số: 22%&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Các bạn có thể tham khảo syllabus chính thức trên &lt;a href="https://pythoninstitute.org/pcap-exam-syllabus" rel="noopener noreferrer"&gt;Python Institute&lt;/a&gt; .&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Kinh nghiệm và lộ trình ôn thi
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqhidn3p1cw8nlar1ion6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqhidn3p1cw8nlar1ion6.png" alt="_- visual selection (3).png" width="800" height="572"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Kinh nghiệm đắc giá nhất của mình là phải kỷ luật với bản thân trong quá trình ôn thi. Phải đảm bảo hoàn thành những mục tiêu mình đã đề ra.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Lập kế hoạch học tập 📅&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Mình dành 2 tháng để ôn thi Python. Mặc dù đã có nền tảng kiến thức về Python, mình vẫn quyết định ôn lại từ cơ bản đến nâng cao để đảm bảo kiến thức vững chắc. Mình chia quá trình học thành 2 giai đoạn rõ ràng.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🌱  Giai đoạn 1 - Xây dựng nền tảng kiến thức Python (~1 tháng rưỡi)&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Mình học song song 2 khóa học: một khóa trên &lt;strong&gt;Udemy&lt;/strong&gt; và một khóa trên &lt;strong&gt;OpenEDG&lt;/strong&gt;. Đặc biệt, mình khuyên các bạn nên tham khảo khóa học trên &lt;strong&gt;OpenEDG&lt;/strong&gt; vì nó miễn phí và nội dung sát với cấu trúc đề thi PCAP.&lt;/li&gt;
&lt;li&gt;Mình áp dụng phương pháp &lt;strong&gt;"học chậm mà chắc"&lt;/strong&gt; 🐢. Thay vì cố gắng học nhiều nội dung một lúc, mình học từng phần nhỏ và ghi chép cẩn thận vào Note (mình sử dụng AI để hỗ trợ việc take notes). Trước mỗi buổi học mới, mình sẽ dành thời gian ôn lại take note của buổi trước, giúp kiến thức không bị quên.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;🔍 Giai đoạn 2 - Luyện đề và củng cố kiến thức (khoảng 2 tuần)&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Mình tập trung làm các bài test thử trên &lt;strong&gt;Udemy&lt;/strong&gt;. Khóa học cung cấp 6 bài test, mỗi bài 100 câu hỏi. Mình chia việc luyện đề thành hai cách tiếp cận:&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;▶ 3 bài test đầu tiên&lt;/strong&gt;: Nhằm làm quen với cấu trúc và độ khó của đề thi. Mỗi bài test mình thực hiện theo quy trình hai ngày:

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;1️⃣ Ngày thứ nhất&lt;/strong&gt;: Làm từng câu, kiểm tra đáp án ngay và ghi chú lại những lỗi sai để hiểu rõ vấn đề.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;2️⃣ Ngày thứ hai&lt;/strong&gt;: Làm toàn bộ bài test một lượt, sau đó kiểm tra đáp án và tiếp tục ghi chú lỗi sai. Mình sẽ viết code lại các phần bị sai để hiểu và nắm kiến thức.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;▶ 3 bài test cuối cùng&lt;/strong&gt;: Khi đã nắm vững cấu trúc đề, mình chuyển sang làm mỗi ngày một bài test hoàn chỉnh mà không kiểm tra đáp án từng câu. Sau khi hoàn thành, mình take note những lỗi sai và dành thời gian ôn lại những điểm yếu.&lt;/li&gt;

&lt;li&gt;Sau khi hoàn thành cả 6 bài test, mình tổng hợp tất cả các note về lỗi sai thành một tài liệu tổng hợp. Mình dành một ngày để ôn tập kỹ lưỡng những kiến thức này - đây là những điểm mình thường mắc lỗi và cần chú ý nhất.&lt;/li&gt;

&lt;li&gt;Trong những ngày gần thi, mình ôn lại Practice Test và làm Exam Test trên OpenEDG (Mình sẽ viết một series chia sẻ chi tiết về phần này trong thời gian tớ ^^).&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Quản lý thời gian 🕒&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Phân bổ thời gian dựa trên mức độ phức tạp của từng chủ đề, ưu tiên những phần bạn còn yếu.&lt;/li&gt;
&lt;li&gt;Mình thấy 2 phần khó nhất là Exceptions và OOP. Bạn nên dành thời gian nhiều cho 2 phần này&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Chủ động 🖋️&lt;/strong&gt;: Các bạn nên chủ động tự viết code cho các lý thuyết luôn để đảm bảo nắm được rõ nhất.&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Ôn tập lại kiến thức 🔄&lt;/strong&gt;: Trước khi thi, ôn tập lại toàn bộ kiến thức và các chủ đề quan trọng.&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  5.1 Những "vật cản" trong quá trình ôn thi
&lt;/h3&gt;

&lt;p&gt;Không phải lúc nào quá trình học tập cũng suôn sẻ.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi8r66xozzv9o5hmpzwq9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi8r66xozzv9o5hmpzwq9.png" alt="image.png" width="707" height="774"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Phần OOP đã thực sự "hành" mình trong gần 1 tuần! Có những buổi tối mình ngồi cả 3 giờ chỉ để hiểu rõ một khái niệm về đa kế thừa và cách Python xử lý method resolution order (MRO). Mình còn nhớ cái cảm giác "wow"💡 khi cuối cùng cũng hiểu được tại sao &lt;code&gt;super().__init__()&lt;/code&gt; lại hoạt động theo cách nó vận hành - đó là lúc mình thấy mọi nỗ lực đều xứng đáng.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffjuswqscu8iti04oltd7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffjuswqscu8iti04oltd7.png" alt="image.png" width="586" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  5.2 Chiến Lược Làm Bài
&lt;/h3&gt;

&lt;p&gt;Mình thi trực tiếp trên OpenEDG nên thích thi lúc nào cũng được. Không cần chọn giờ như Pearson Vue&lt;/p&gt;

&lt;p&gt;Trong quá trình thi, bạn nên:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;🧠 Hiểu loại câu hỏi&lt;/strong&gt;: Hãy đọc từng câu hỏi thật cẩn thận và nắm vững yêu cầu. Đây là dạng trắc nghiệm nên đặc biệt chú ý xem câu hỏi đang yêu cầu chọn đáp án đúng hay đáp án sai.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;⏲️ Quản lý thời gian&lt;/strong&gt;: Với 40 câu hỏi trong 65 phút, bạn có khoảng 1,6 phút cho mỗi câu. Nếu so với bài test trên Udemy (100 câu trong 2 giờ 30 phút), kỳ thi PCAP thực tế còn thoải mái hơn về mặt thời gian. Tuy nhiên, đừng "sa lầy" vào một câu hỏi quá lâu - hãy đánh dấu và quay lại sau khi đã hoàn thành các câu dễ hơn.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🚩 Xử lý câu hỏi khó&lt;/strong&gt;: Nếu gặp câu khó, đánh dấu và quay lại sau nếu còn thời gian.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;❌ Loại bỏ đáp án sai&lt;/strong&gt;: Thay vì cố gắng tìm ngay đáp án đúng, hãy bắt đầu bằng việc loại bỏ những đáp án rõ ràng là sai. Điều này giúp thu hẹp phạm vi lựa chọn và tăng khả năng chọn đúng, đặc biệt khi bạn không hoàn toàn chắc chắn
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3d4pf5lyc0s7tc7ma1x9.png" alt="_- visual selection (4).png" width="800" height="661"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  5.2.1. Lưu ý đặc biệt
&lt;/h4&gt;

&lt;p&gt;Qua kinh nghiệm cá nhân (pass với điểm 93%), mình nhận thấy có hai chủ đề dễ mất điểm nhất:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Custom Exception 🛑&lt;/strong&gt; : Đây là phần dễ gây nhầm lẫn về cú pháp và cách sử dụng, thứ tự exception, và cách xử lý các trường hợp ngoại lệ.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lập trình hướng đối tượng (OOP) 🔄&lt;/strong&gt; : Đặc biệt là các khái niệm về kế thừa, tính đa hình, và cách Python xử lý các mối quan hệ giữa các lớp.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Hãy đầu tư thời gian luyện tập thật nhiều cho hai phần này - viết code, test các tình huống khác nhau, và đảm bảo bạn hiểu sâu cách thức hoạt động. Trong khi những module khác mình đạt 100%, chính hai mảng này là nơi mất điểm chủ yếu.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Một vài "mẫu câu hỏi" bạn có thể gặp trong kỳ thi
&lt;/h2&gt;

&lt;h3&gt;
  
  
  6.1 Ví dụ 1: MRO (Method Resolution Order) trong đa kế thừa
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;A&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;process&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;A&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;B&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;A&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;process&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;B&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="nf"&gt;super&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;process&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;C&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;A&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;process&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;C&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="nf"&gt;super&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;process&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;D&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;B&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;C&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;process&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;D&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="nf"&gt;super&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;process&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="n"&gt;obj&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;D&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;obj&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;process&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Câu hỏi&lt;/strong&gt;: Output của đoạn code trên là gì?&lt;/p&gt;

&lt;h3&gt;
  
  
  6.2 Ví dụ 2: Diamond inheritance với thuộc tính
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Base&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Left&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Base&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;pass&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Right&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Base&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Child&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Left&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Right&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;pass&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Child&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Câu hỏi&lt;/strong&gt;: Output của đoạn code trên là gì?&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Kinh nghiệm đăng ký thi và giảm giá 50%
&lt;/h2&gt;

&lt;p&gt;Có 2 phương án để thi PCAP:&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxnh8mqjgvvhe44v815fz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxnh8mqjgvvhe44v815fz.png" alt="image.png" width="800" height="481"&gt;&lt;/a&gt;&lt;br&gt;
Mình chọn thi qua OpenEDG thì voucher chỉ được áp dụng khi test qua OpenEDG. Các bạn cũng có thể chọn thi offline qua Pearson Vue (Mình nhớ chỉ support thi off ở HN/HCM)&lt;/p&gt;

&lt;h3&gt;
  
  
  7.1 Các bước để nhận voucher cho khóa học Python Essentials 2
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;📝 Đăng ký khóa học Python Essentials 2&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Đầu tiên, bạn cần đăng ký khóa học "Python Essentials 2" trên nền tảng OpenEDG. Nếu chưa đăng ký, hãy truy cập trang &lt;a href="https://edube.org/study/pe2" rel="noopener noreferrer"&gt;OpenEDG Courses&lt;/a&gt; và làm theo hướng dẫn để tham gia khóa học.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;✅ Hoàn thành tất cả các module trong khóa học&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Khóa học được chia thành nhiều module. Bạn cần hoàn thành từng module bằng cách xem hết video, đọc tài liệu và thực hiện các bài tập tương tác (nếu có) trong mỗi module.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;📊 Pass các bài kiểm tra module&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Sau mỗi module, bạn sẽ phải làm một bài kiểm tra để đánh giá mức độ hiểu bài. Bạn cần đạt ít nhất &lt;strong&gt;70% điểm&lt;/strong&gt; cho mỗi bài kiểm tra này. Nếu không đạt, hãy ôn lại nội dung module và làm lại bài kiểm tra cho đến khi đạt yêu cầu.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;🏁 Pass bài kiểm tra tổng kết&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Sau khi hoàn thành tất cả các module và vượt qua các bài kiểm tra riêng lẻ, bạn sẽ làm một bài kiểm tra tổng kết bao quát toàn bộ khóa học. Bạn cần đạt ít nhất &lt;strong&gt;70% điểm&lt;/strong&gt; để đủ điều kiện nhận voucher. Hãy ôn tập kỹ tất cả tài liệu trước khi làm bài này.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;👤 Tạo tài khoản Pearson VUE&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Nếu bạn chưa có tài khoản Pearson VUE, hãy truy cập &lt;a href="https://www.pearsonvue.com/us/en/python.html" rel="noopener noreferrer"&gt;Pearson VUE&lt;/a&gt; và tạo một tài khoản mới. Sử dụng cùng địa chỉ email mà bạn đã dùng để đăng ký trên OpenEDG để đảm bảo liên kết chính xác.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;🔗 Liên kết tài khoản OpenEDG với Pearson VUE&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Đăng nhập vào tài khoản OpenEDG của bạn.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Vào phần &lt;strong&gt;"&lt;a href="https://edube.org/my-account/settings/" rel="noopener noreferrer"&gt;My Account&lt;/a&gt;"&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Chọn &lt;strong&gt;"Add Pearson VUE account"&lt;/strong&gt; (Liên kết tài khoản với Pearson VUE) và làm theo hướng dẫn để kết nối hai tài khoản. Đây là bước quan trọng để hệ thống xác nhận bạn đã hoàn thành khóa học.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Lưu ý: Nếu bạn vừa tạo tài khoản Pearson VUE, hãy kiên nhẫn chờ tối đa 24 giờ để hệ thống cập nhật thông tin trước khi thực hiện liên kết.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Candidate Testing ID (Pearson VUE) bạn lấy từ phần này nhé &lt;a href="/images/sharing/PCAP/id.png" class="article-body-image-wrapper"&gt;&lt;img src="/images/sharing/PCAP/id.png" alt="id"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;🎟️ Kiểm tra voucher&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Sau khi hoàn thành các bước trên và đáp ứng đầy đủ tiêu chí (hoàn thành tất cả module, đạt ít nhất 70% điểm ở các bài kiểm tra), voucher sẽ xuất hiện bên cạnh nút &lt;strong&gt;"&lt;a href="https://edube.org/study/catalog/python-essentials-2-aligned-with-pcap-31-03/my-voucher" rel="noopener noreferrer"&gt;Dashboard&lt;/a&gt;"&lt;/strong&gt; trên tab khóa học của bạn trên nền tảng OpenEDG.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Đồng thời, bạn cũng sẽ nhận được thông báo xác nhận trong email tài khoản OpenEDG, xác nhận rằng voucher đã được cấp thành công.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;💸 Sử dụng voucher&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Khi sẵn sàng đăng ký thi PCAP, hãy đăng nhập vào tài OpenEDG&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Truy cập vào trang &lt;a href="https://ums.edube.org/store?q=pcap" rel="noopener noreferrer"&gt;OpenEDG Store&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Chọn &lt;strong&gt;"PCAP Exam Voucher"&lt;/strong&gt; và thêm vào giỏ hàng (Chú ý Voucher này chỉ áp dụng cho hình thức thi trên nền tảng TestNow)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Nhập mã voucher bạn nhận được từ bước trước và hoàn tất quá trình đăng ký. Invoice sẽ được gửi vào email của bạn. Dưới đây là invoice của mình sau khi giảm giá 50% mình mua cả bundle (Exam + Practice Test + Retake) &lt;a href="/images/sharing/PCAP/invoice.png" class="article-body-image-wrapper"&gt;&lt;img src="/images/sharing/PCAP/invoice.png" alt="invoice"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Mình nghĩ chỉ nên mua Exam thôi, còn Practice Test thì không cần mua vì mình sẽ chia sẻ bài viết sau về việc luyện thi trên OpenEDG. Nếu ôn tập kỹ lưỡng thì không cần mua Retake nữa. Mình cũng pass ngay lần đầu thi&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Lưu ý&lt;/strong&gt;: Bạn nên kiểm tra thông tin voucher để đảm bảo nó hợp lệ trước khi đăng ký thi. Nếu có bất kỳ vấn đề nào, hãy liên hệ với hỗ trợ của OpenEDG để được hỗ trợ.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;📆 Đăng ký thi&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Sau khi mua voucher (thi), bạn có thể vào &lt;a href="https://edube.org/certify?channel=testNow" rel="noopener noreferrer"&gt;trang này&lt;/a&gt; để Assign voucher cho mình!&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Khi bạn đã sẵn sàng, thì hãy Task Exam bất kỳ lúc nào bạn muốn. Mình thi vào buổi chiều T7, sau khi làm xong bài test mình nhận được kết quả 2 ngày sau đó.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  8. "Bài học cuộc sống" từ quá trình học tập
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Những điều mình học được ngoài kiến thức kỹ thuật
&lt;/h3&gt;

&lt;p&gt;Quá trình ôn thi PCAP không chỉ giúp mình nâng cao kiến thức Python mà còn dạy mình nhiều bài học giá trị:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;🧘 Kiên nhẫn là chìa khóa:&lt;/strong&gt; Có những khái niệm mình phải đọc đi đọc lại 3-4 lần mới thực sự hiểu. Đừng vội vàng, hãy kiên nhẫn với bản thân.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🛠️ Thực hành &amp;gt; Lý thuyết:&lt;/strong&gt; Mình có thể đọc về custom exceptions cả ngày nhưng chỉ khi tự tay viết code và debug các lỗi, mình mới thực sự hiểu.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🔄 Học từ thất bại:&lt;/strong&gt; Những câu hỏi mình trả lời sai trong practice test thường là những bài học giá trị nhất. Mỗi lần sai là một lần không quên.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  9. FAQ - Những câu hỏi mình từng thắc mắc (và có thể bạn cũng vậy)
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5fi4iimw9sea08b8gaax.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5fi4iimw9sea08b8gaax.png" alt="image.png" width="800" height="267"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;💼 Chứng chỉ PCAP có thực sự có giá trị không?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Câu trả lời ngắn gọn: &lt;strong&gt;Có&lt;/strong&gt;, nhưng không phải theo cách bạn nghĩ. Giá trị lớn nhất không phải là tấm chứng chỉ mà là kiến thức bạn thu được trong quá trình ôn tập. Mình cảm nhận được sự tự tin hơn rất nhiều khi code Python sau khi có chứng chỉ này.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🤔 PCAP khó đến mức nào?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Nếu bạn đã có kinh nghiệm Python, độ khó sẽ ở mức &lt;strong&gt;trung bình.&lt;/strong&gt; Tuy nhiên, đừng chủ quan! Có nhiều "cạm bẫy" trong đề thi dễ khiến bạn mất điểm oan nếu không nắm chắc các khái niệm nền tảng.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;📚📱💻 Nên học từ nguồn nào là tốt nhất?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Không có "nguồn tốt nhất" mà nên kết hợp nhiều nguồn. Mình học hiệu quả nhất khi kết hợp lý thuyết (khóa học) với thực hành (viết code) và kiểm tra kiến thức (làm practice test).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;⏳ Chứng chỉ PCAP có thời hạn không?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Chứng chỉ PCAP &lt;strong&gt;không có thời hạn&lt;/strong&gt;. Tuy nhiên, nếu bạn muốn nâng cao trình độ, bạn có thể chọn thi chứng chỉ PCPP sau đó.&lt;/p&gt;

&lt;h2&gt;
  
  
  10. Kết Luận
&lt;/h2&gt;

&lt;p&gt;Qua bài viết này, mình đã chia sẻ toàn bộ hành trình chinh phục chứng chỉ PCAP - từ việc tìm hiểu nội dung, lập kế hoạch học tập đến chiến lược làm bài hiệu quả. Chứng chỉ PCAP không chỉ là một minh chứng cho kỹ năng lập trình Python ở mức trung cấp mà còn là cơ hội tuyệt vời để hệ thống hóa và nâng cao kiến thức về ngôn ngữ này.&lt;/p&gt;

&lt;p&gt;Mình tin rằng với phương pháp học tập kỷ luật, việc ôn luyện đúng cách và tận dụng các tài nguyên miễn phí/giá rẻ như đã chia sẻ, các bạn hoàn toàn có thể đạt được kết quả tốt. Đặc biệt, đừng bỏ qua cơ hội tiết kiệm đến 50% chi phí thi thông qua việc hoàn thành khóa học Python Essentials 2 trên OpenEDG.&lt;/p&gt;

&lt;p&gt;Trong thời gian tới, mình sẽ tiếp tục chia sẻ thêm về các bài practice test trên OpenEDG để giúp các bạn có thêm tài liệu ôn tập chất lượng. Hãy chuẩn bị thật kỹ và tự tin bước vào kỳ thi!&lt;/p&gt;

&lt;p&gt;Chúc các bạn thành công với hành trình chinh phục PCAP của mình!&lt;/p&gt;

&lt;p&gt;Mọi người hứng thú với series hướng dẫn thi PCAP thì theo dõi mình ở Blog này nhé: &lt;a href="https://blogs.dinhtruong.dev/" rel="noopener noreferrer"&gt;https://blogs.dinhtruong.dev/&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Hướng dẫn cài đặt Python 3.12 trên EC2 (Amazon Linux) với OpenSSL và Pip</title>
      <dc:creator>Định Trương Quang </dc:creator>
      <pubDate>Fri, 28 Mar 2025 12:24:46 +0000</pubDate>
      <link>https://dev.to/banhmysuawx/huong-dan-cai-dat-python-312-tren-ec2-amazon-linux-voi-openssl-va-pip-45gn</link>
      <guid>https://dev.to/banhmysuawx/huong-dan-cai-dat-python-312-tren-ec2-amazon-linux-voi-openssl-va-pip-45gn</guid>
      <description>&lt;h1&gt;
  
  
  &lt;strong&gt;Cài đặt Python 3 trên EC2 (Amazon Linux) với OpenSSL và Pip&lt;/strong&gt;
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvzcvoqbkb6bzn7pyqiid.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvzcvoqbkb6bzn7pyqiid.png" alt="image.png" width="800" height="199"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  &lt;strong&gt;Giới thiệu&lt;/strong&gt;
&lt;/h1&gt;

&lt;p&gt;Bài viết này hướng dẫn chi tiết cách cài đặt Python 3.12 trên Amazon Linux với OpenSSL và Pip.&lt;/p&gt;

&lt;p&gt;Python là một ngôn ngữ lập trình phổ biến được sử dụng rộng rãi trong khoa học dữ liệu, phát triển web và nhiều ứng dụng khác. &lt;/p&gt;

&lt;p&gt;Việc cài đặt Python kết hợp với OpenSSL để đảm bảo khi cài đặt các gói pip không gây ra lỗi SSL, giúp bạn tạo môi trường phát triển Python an toàn và hiệu quả trên Amazon Linux.&lt;/p&gt;

&lt;h1&gt;
  
  
  &lt;strong&gt;Các bước cài đặt&lt;/strong&gt;
&lt;/h1&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;0. Xoá toàn bộ Python3.12 và các dependencies cũ&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Bước này giúp bạn xoá toàn bộ Python3.12 và các dependencies cũ trên Amazon Linux trước khi cài đặt Python mới. Để xoá Python3.12 và các dependencies cũ, hãy sử dụng lệnh sau:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;#Kiểm tra phiên bản Python 3.12 đang sử dụng&lt;/span&gt;
which python3.12
python3.12 &lt;span class="nt"&gt;--version&lt;/span&gt;
&lt;span class="nb"&gt;ls&lt;/span&gt; /usr/bin/python3.12

&lt;span class="c"&gt;# Remove Python directories&lt;/span&gt;
&lt;span class="nb"&gt;sudo rm&lt;/span&gt; &lt;span class="nt"&gt;-rf&lt;/span&gt; /usr/lib/python3.12
&lt;span class="nb"&gt;sudo rm&lt;/span&gt; &lt;span class="nt"&gt;-rf&lt;/span&gt; /usr/local/lib/python3.12
&lt;span class="nb"&gt;sudo rm&lt;/span&gt; &lt;span class="nt"&gt;-rf&lt;/span&gt; /usr/include/python3.12
&lt;span class="nb"&gt;sudo rm&lt;/span&gt; &lt;span class="nt"&gt;-rf&lt;/span&gt; /usr/local/include/python3.12
&lt;span class="nb"&gt;sudo rm&lt;/span&gt; &lt;span class="nt"&gt;-rf&lt;/span&gt; /usr/share/python3.12
&lt;span class="nb"&gt;sudo rm&lt;/span&gt; &lt;span class="nt"&gt;-rf&lt;/span&gt; /usr/local/share/python3.12

&lt;span class="c"&gt;#Clean package manager cache&lt;/span&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;yum clean all

&lt;span class="c"&gt;#Verify Python 3.12 is removed&lt;/span&gt;
which python3.12
python3.12 &lt;span class="nt"&gt;--version&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  &lt;strong&gt;1. Cập nhật hệ thống&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Trước khi cài đặt Python 3, hãy cập nhật hệ thống Amazon Linux của bạn để đảm bảo bạn có các gói phần mềm mới nhất.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo yum update -y
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  &lt;strong&gt;2. Cài đặt Required Development Tools&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Để biên dịch Python từ source code, bạn cần cài đặt các công cụ phát triển và thư viện cần thiết như sau:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;yum groupinstall &lt;span class="s2"&gt;"Development Tools"&lt;/span&gt; &lt;span class="nt"&gt;-y&lt;/span&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;yum &lt;span class="nb"&gt;install &lt;/span&gt;gcc bzip2-devel libffi-devel &lt;span class="nt"&gt;-y&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  &lt;strong&gt;3. Cài đặt OpenSSL&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;OpenSSL là một thư viện mã hóa quan trọng, cung cấp các chức năng và giao thức mã hóa cần thiết cho các ứng dụng Python để thiết lập kết nối an toàn qua mạng. Nó đóng vai trò then chốt trong việc đảm bảo an ninh internet và quản lý máy chủ bằng cách cung cấp các chức năng mã hóa như tạo certificate, mã hóa dữ liệu, xác thực và nhiều chức năng khác.&lt;/p&gt;

&lt;p&gt;Sau khi cài đặt các gói cần thiết, hãy sử dụng lệnh sau để cài đặt OpenSSL 1.1:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;yum &lt;span class="nb"&gt;install &lt;/span&gt;openssl11 openssl11-devel &lt;span class="nt"&gt;-y&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Để đảm bảo OpenSSL 1.1 đã được cài đặt thành công, hãy kiểm tra phiên bản OpenSSL bằng lệnh sau:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;openssl version
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0c764i5yyn5a9wrur79d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0c764i5yyn5a9wrur79d.png" alt="image.png" width="728" height="82"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;4. Cài đặt Python 3 từ Python.org&lt;/strong&gt;
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Tải xuống mã nguồn Python:&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; /tmp
&lt;span class="nb"&gt;sudo &lt;/span&gt;wget https://www.python.org/ftp/python/3.12.8/Python-3.12.8.tgz
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Giải nén tệp Python:&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo tar &lt;/span&gt;xzf Python-3.12.8.tgz
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Cấu hình trước khi biên dịch:&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Trước tiên cần cấu hình Python để sử dụng OpenSSL 1.1 đã cài đặt. Để làm điều này, hãy sử dụng lệnh sau:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;Python-3.12.8
&lt;span class="c"&gt;# Xác định đường dẫn của OpenSSL 1.1&lt;/span&gt;
which openssl11
&lt;span class="nb"&gt;sudo&lt;/span&gt; ./configure &lt;span class="nt"&gt;--with-openssl&lt;/span&gt;&lt;span class="o"&gt;={&lt;/span&gt;target_path&lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="c"&gt;# Ví dụ: sudo ./configure --with-openssl=/usr/bin/openssl11&lt;/span&gt;
&lt;span class="nb"&gt;sudo&lt;/span&gt; ./configure &lt;span class="nt"&gt;--enable-optimizations&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Biên dịch và cài đặt Python 3:&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Biên dịch và cài đặt Python 3 từ source code Python (Đợi một lúc cũng kha khá thời gian)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;make
&lt;span class="nb"&gt;sudo &lt;/span&gt;make altinstall
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Sử dụng make altinstall để tránh ghi đè lên tệp nhị phân python mặc định /usr/bin/python.  &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Kiểm tra phiên bản Python 3:&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python3.12 &lt;span class="nt"&gt;--version&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz5un2m1fobbmrdzkktzx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz5un2m1fobbmrdzkktzx.png" alt="image.png" width="800" height="64"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;(Optional) Thay đổi phiên bản Python mặc định:&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo ln&lt;/span&gt; &lt;span class="nt"&gt;-s&lt;/span&gt; /usr/local/bin/python3.12 /usr/local/bin/python3
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Điều này cho phép bạn sử dụng lệnh python3 để gọi phiên bản Python 3.12 vừa cài đặt. Nếu bạn không muốn sử dụng phiên bản Python 3.12 làm mặc định, hãy bỏ qua bước này.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;6. Kiểm tra cài đặt OpenSSL với Python 3&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Để đảm bảo OpenSSL được tích hợp đúng cách với Python 3, hãy chạy lệnh sau:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python3.12 &lt;span class="nt"&gt;-c&lt;/span&gt; &lt;span class="s2"&gt;"import ssl; print(ssl.OPENSSL_VERSION)"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp7nt0tqp9h6y1wjc3mqy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp7nt0tqp9h6y1wjc3mqy.png" alt="image.png" width="800" height="45"&gt;&lt;/a&gt;&lt;br&gt;
Lệnh này sẽ hiển thị phiên bản OpenSSL mà Python 3 đang sử dụng.&lt;/p&gt;
&lt;h2&gt;
  
  
  &lt;strong&gt;7. (Optinal) Thiết lập môi trường ảo&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Môi trường ảo giúp cô lập các gói Python cho các dự án khác nhau. Điều này cho phép bạn quản lý các gói cụ thể cho từng dự án, tránh xung đột giữa các dự án khác nhau và đảm bảo rằng mỗi dự án đều có môi trường Python riêng biệt. Để thiết lập môi trường ảo, trước tiên hãy cài đặt package virtualenv:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; ~
python3.12 &lt;span class="nt"&gt;-m&lt;/span&gt; ensurepip &lt;span class="nt"&gt;--upgrade&lt;/span&gt;
pip3.12 &lt;span class="nb"&gt;install &lt;/span&gt;virtualenv
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Sau đó, tạo một môi trường ảo mới:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python3.12 &lt;span class="nt"&gt;-m&lt;/span&gt; venv &amp;lt;tên_môi trường_ảo&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Để kích hoạt môi trường ảo, sử dụng lệnh:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;source&lt;/span&gt; &amp;lt;tên_môi trường_ảo&amp;gt;/bin/activate
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Bây giờ bạn có thể cài đặt các gói Python trong môi trường ảo này mà không ảnh hưởng đến môi trường Python global.&lt;/p&gt;

&lt;h1&gt;
  
  
  &lt;strong&gt;Phụ lục&lt;/strong&gt;
&lt;/h1&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Lệnh hữu ích&lt;/strong&gt;
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Lệnh&lt;/th&gt;
&lt;th&gt;Mô tả&lt;/th&gt;
&lt;th&gt;Ví dụ&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;sudo yum update-y&lt;/td&gt;
&lt;td&gt;Cập nhật hệ thống&lt;/td&gt;
&lt;td&gt;sudo yum update-y&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;python3--version&lt;/td&gt;
&lt;td&gt;Kiểm tra phiên bản Python 3&lt;/td&gt;
&lt;td&gt;python3--version&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;sudo yum install openssl11&lt;/td&gt;
&lt;td&gt;Cài đặt OpenSSL 1.1&lt;/td&gt;
&lt;td&gt;sudo yum install openssl11&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;python3-c "import ssl; print(ssl.OPENSSL_VERSION)"&lt;/td&gt;
&lt;td&gt;Kiểm tra phiên bản OpenSSL trong Python 3&lt;/td&gt;
&lt;td&gt;python3-c "import ssl; print(ssl.OPENSSL_VERSION)"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;sudo python3-m ensurepip --upgrade&lt;/td&gt;
&lt;td&gt;Nâng cấp ensurepip&lt;/td&gt;
&lt;td&gt;sudo python3-m ensurepip --upgrade&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;sudo pip3 install virtualenv&lt;/td&gt;
&lt;td&gt;Cài đặt virtualenv&lt;/td&gt;
&lt;td&gt;sudo pip3 install virtualenv&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;python3-m venv &amp;lt;tên_môi trường_ảo&amp;gt;&lt;/td&gt;
&lt;td&gt;Tạo môi trường ảo&lt;/td&gt;
&lt;td&gt;python3-m venv myenv&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;source&amp;lt;tên_môi trường_ảo&amp;gt;/bin/activate&lt;/td&gt;
&lt;td&gt;Kích hoạt môi trường ảo&lt;/td&gt;
&lt;td&gt;source myenv/bin/activate&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h1&gt;
  
  
  &lt;strong&gt;Các vấn đề thường gặp và giải pháp&lt;/strong&gt;
&lt;/h1&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;1. Lỗi OpenSSL&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Nếu bạn gặp lỗi liên quan đến OpenSSL khi cài đặt Python 3 từ source code, hãy đảm bảo rằng bạn đã cài đặt các thư viện libbz2-dev, openssl, libssl-dev và liblzma-dev 14. Các thư viện này cung cấp các chức năng cần thiết cho OpenSSL để hoạt động chính xác với Python.&lt;/p&gt;

&lt;p&gt;Bạn có thể kiểm tra phiên bản SSL mà Python đang sử dụng bằng lệnh&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt; python &lt;span class="se"&gt;\-&lt;/span&gt;c &lt;span class="s2"&gt;"import ssl; print(ssl.OPENSSL&lt;/span&gt;&lt;span class="se"&gt;\_&lt;/span&gt;&lt;span class="s2"&gt;VERSION)"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Nếu phiên bản OpenSSL thấp hơn 1.1.1, bạn có thể cần cập nhật OpenSSL lên phiên bản mới hơn hoặc hạ cấp urllib3 xuống phiên bản cũ hơn hỗ trợ OpenSSL 1.0.2 bằng lệnh&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="s1"&gt;'urllib3\&amp;lt;2.0'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Việc hạ cấp urllib3 có thể là giải pháp tạm thời nếu bạn không thể cập nhật OpenSSL ngay lập tức.&lt;/p&gt;

&lt;p&gt;Ngoài ra, một vấn đề khác có thể xảy ra là biến môi trường LD_LIBRARY_PATH không được thiết lập chính xác. Biến này chỉ định đường dẫn đến các thư viện dùng chung mà hệ thống sẽ tìm kiếm khi chạy chương trình. Nếu LD_LIBRARY_PATH không bao gồm đường dẫn đến thư viện OpenSSL, Python có thể không tìm thấy OpenSSL và gây ra lỗi.&lt;/p&gt;

&lt;h1&gt;
  
  
  &lt;strong&gt;Tổng kết&lt;/strong&gt;
&lt;/h1&gt;

&lt;p&gt;Việc cài đặt Python 3 với OpenSSL và Pip trên Amazon Linux là bước quan trọng để thiết lập một môi trường phát triển Python an toàn và hiệu quả. OpenSSL đảm bảo an toàn cho các kết nối mạng và mã hóa dữ liệu, trong khi Pip giúp dễ dàng quản lý các thư viện Python. &lt;br&gt;
Bằng cách làm theo các bước được nêu trong bài viết này, bạn có thể cài đặt Python 3, OpenSSL và Pip, đồng thời thiết lập môi trường ảo để quản lý các dự án Python của mình một cách hiệu quả. Việc sử dụng môi trường ảo (venv) giúp cô lập các gói Python cho từng dự án, tránh xung đột và đảm bảo tính ổn định cho ứng dụng của bạn.&lt;/p&gt;

&lt;p&gt;Tìm hiểu thêm những bài viết hay ho khác trên blog của mình ở đây: &lt;a href="https://blogs.dinhtruong.dev/" rel="noopener noreferrer"&gt;https://blogs.dinhtruong.dev/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>python</category>
      <category>aws</category>
    </item>
  </channel>
</rss>
