<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xsl" href="rss.xsl"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>AI Programming Blog</title>
        <link>https://programming.chanmeng.org/blog/</link>
        <description>Learn AI-assisted programming through hands-on projects — latest articles and tutorials from the AI Programming Education Platform</description>
        <lastBuildDate>Sun, 01 Mar 2026 00:00:00 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en-US</language>
        <copyright>Copyright © 2026 AI Programming Education. All rights reserved.</copyright>
        <item>
            <title><![CDATA[HER WAKA 2026: AI × Career Empowerment Programme for Auckland Women]]></title>
            <link>https://programming.chanmeng.org/blog/her-waka-2026-programme-intro/</link>
            <guid>https://programming.chanmeng.org/blog/her-waka-2026-programme-intro/</guid>
            <pubDate>Sun, 01 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[HER WAKA 2026 — co-launched by SheSharp, MSD and AcademyEX. Four in-person workshops, 10 self-paced AI tutorials, and a complete job-search resource library. Now merged into this site as a new version.]]></description>
            <content:encoded><![CDATA[<p>We have merged the entire <strong>HER WAKA 2026</strong> curriculum into this site as a brand new version — <a class="" href="https://programming.chanmeng.org/docs/2026-her-waka/programme/about-her-waka/">HER WAKA 2026</a> — sitting alongside the existing "Winter 2024 Forward with Her Program" and "Summer 2025 Forward with Her Program".</p>
<!-- -->
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="what-is-it">What is it?<a href="https://programming.chanmeng.org/blog/her-waka-2026-programme-intro/#what-is-it" class="hash-link" aria-label="Direct link to What is it?" title="Direct link to What is it?" translate="no">​</a></h2>
<p>HER WAKA is a comprehensive employment-empowerment programme co-delivered by <strong>SheSharp</strong> and <strong>Ministry of Social Development (MSD, New Zealand)</strong>, hosted by <strong>academyEX</strong>, with industry insights from <strong>RCSA</strong> on the NZ recruitment landscape. It is designed for women MSD clients in the Auckland region preparing to return to the workforce. One workshop per month from March to June 2026, all in person at academyEX Pikopiko.</p>
<p>The programme has three core pillars:</p>
<ol>
<li class=""><strong>Four in-person workshops</strong> — AI &amp; The Future of Work, #IAmRemarkable &amp; Vibe Coding, Employment Rights, Networking &amp; Career Connections</li>
<li class=""><strong>10 self-paced AI tutorials</strong> — organised across five difficulty levels from ★ to ★★★★★, ranging from "Summarise Gmail with AI" to "Build a Daily Report Bot with Claude Code"</li>
<li class=""><strong>A complete job-search resource library</strong> — NZ IT job market, job platforms, recruitment agencies, CV/LinkedIn, employment rights, AI learning tools, tech communities</li>
</ol>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="why-merge-it-into-this-site">Why merge it into this site?<a href="https://programming.chanmeng.org/blog/her-waka-2026-programme-intro/#why-merge-it-into-this-site" class="hash-link" aria-label="Direct link to Why merge it into this site?" title="Direct link to Why merge it into this site?" translate="no">​</a></h2>
<p>HER WAKA was originally a standalone Mintlify site. Merging it here gives us:</p>
<ul>
<li class=""><strong>One navigation, three cohorts</strong> — switch seamlessly between Winter 2024, Summer 2025 and HER WAKA 2026 via the version dropdown in the top-right</li>
<li class=""><strong>Shared search and blog</strong> — Algolia indexes all three cohorts in one go; the blog continues to grow</li>
<li class=""><strong>Bilingual support</strong> — Chinese is the default; switch to English to read the original English curriculum (originally designed for MSD clients)</li>
</ul>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="quick-links">Quick links<a href="https://programming.chanmeng.org/blog/her-waka-2026-programme-intro/#quick-links" class="hash-link" aria-label="Direct link to Quick links" title="Direct link to Quick links" translate="no">​</a></h2>
<ul>
<li class=""><a class="" href="https://programming.chanmeng.org/docs/2026-her-waka/programme/about-her-waka/">Programme overview</a></li>
<li class=""><a class="" href="https://programming.chanmeng.org/docs/2026-her-waka/programme/schedule/">Four-workshop schedule</a></li>
<li class=""><a class="" href="https://programming.chanmeng.org/docs/2026-her-waka/tutorial/">10 self-paced tutorials</a></li>
<li class=""><a class="" href="https://programming.chanmeng.org/docs/2026-her-waka/resources/job-readiness/">Job-search resource library</a></li>
</ul>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="technical-note-for-the-curious">Technical note (for the curious)<a href="https://programming.chanmeng.org/blog/her-waka-2026-programme-intro/#technical-note-for-the-curious" class="hash-link" aria-label="Direct link to Technical note (for the curious)" title="Direct link to Technical note (for the curious)" translate="no">​</a></h2>
<p>The original site used Mintlify-specific components (<code>&lt;Card&gt;</code>/<code>&lt;Tabs&gt;</code>/<code>&lt;Steps&gt;</code>/<code>&lt;Accordion&gt;</code> etc.). To avoid 1000+ MDX manual rewrites, this migration introduces a lightweight <strong>MintlifyShim compatibility layer</strong> that maps these components to native Docusaurus features (<code>@theme/Tabs</code>, <code>@theme/Admonition</code>, native <code>&lt;details&gt;</code>, etc.) and globally injects them via a swizzled <code>MDXComponents.js</code> — leaving the MDX files almost untouched. The shim layer can also be reused for any future Mintlify-to-Docusaurus migration.</p>
<p>Happy learning</p>]]></content:encoded>
            <category>Forward with Her Activity</category>
            <category>AI Programming</category>
            <category>Tutorial</category>
        </item>
        <item>
            <title><![CDATA[Cursor IDE vs Gemini CLI: In-Depth AI Coding Tools Comparison]]></title>
            <link>https://programming.chanmeng.org/blog/cursor-ide-vs-gemini-cli/</link>
            <guid>https://programming.chanmeng.org/blog/cursor-ide-vs-gemini-cli/</guid>
            <pubDate>Sun, 10 Aug 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Deep comparison of Cursor IDE and Gemini CLI - two leading AI programming tools. Analyzes strengths, use cases, learning curves, and value to help you choose the right AI coding assistant.]]></description>
            <content:encoded><![CDATA[<p>In 2025's flourishing AI coding tool landscape, <strong>Cursor IDE</strong> and <strong>Gemini CLI</strong> represent two fundamentally different development experiences. Cursor provides a complete visual IDE, while Gemini CLI is a pure command-line AI assistant. This article compares these two tools across multiple dimensions to help you find the best fit.</p>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="tool-overview">Tool Overview<a href="https://programming.chanmeng.org/blog/cursor-ide-vs-gemini-cli/#tool-overview" class="hash-link" aria-label="Direct link to Tool Overview" title="Direct link to Tool Overview" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="cursor-ide">Cursor IDE<a href="https://programming.chanmeng.org/blog/cursor-ide-vs-gemini-cli/#cursor-ide" class="hash-link" aria-label="Direct link to Cursor IDE" title="Direct link to Cursor IDE" translate="no">​</a></h3>
<p>Cursor is a VS Code-based AI-enhanced editor that deeply integrates AI capabilities into every aspect of the editing experience, including code completion, editing, multi-file modifications, and conversational development.</p>
<p><strong>Key features</strong>:</p>
<ul>
<li class="">Based on VS Code, fully compatible with existing habits</li>
<li class="">Cmd+K / Ctrl+K shortcut for inline editing</li>
<li class="">Composer mode for large-scale multi-file changes</li>
<li class="">Automatic project context understanding</li>
</ul>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="gemini-cli">Gemini CLI<a href="https://programming.chanmeng.org/blog/cursor-ide-vs-gemini-cli/#gemini-cli" class="hash-link" aria-label="Direct link to Gemini CLI" title="Direct link to Gemini CLI" translate="no">​</a></h3>
<p>Gemini CLI is Google's command-line AI tool powered by the Gemini large language model. It runs in the terminal and completes development tasks through natural language conversation.</p>
<p><strong>Key features</strong>:</p>
<ul>
<li class="">Pure command-line operation, no GUI needed</li>
<li class="">Can directly execute system commands</li>
<li class="">Understands project file structure and content</li>
<li class="">Free to use (with daily limits)</li>
</ul>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="feature-comparison">Feature Comparison<a href="https://programming.chanmeng.org/blog/cursor-ide-vs-gemini-cli/#feature-comparison" class="hash-link" aria-label="Direct link to Feature Comparison" title="Direct link to Feature Comparison" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="code-editing">Code Editing<a href="https://programming.chanmeng.org/blog/cursor-ide-vs-gemini-cli/#code-editing" class="hash-link" aria-label="Direct link to Code Editing" title="Direct link to Code Editing" translate="no">​</a></h3>
<div class="theme-tabs-container tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">Cursor IDE</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">Gemini CLI</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><p><strong>Strengths</strong>:</p><ul>
<li class="">Real-time code completion as you type</li>
<li class="">Tab key to accept suggestions</li>
<li class="">Cmd+K to describe edit intent on selected code</li>
<li class="">Before/after diff preview</li>
</ul></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><p><strong>Strengths</strong>:</p><ul>
<li class="">Describe any modification in natural language</li>
<li class="">Operate on multiple files simultaneously</li>
<li class="">Create new files and directory structures</li>
<li class="">Not limited by an editor interface</li>
</ul></div></div></div>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="project-management">Project Management<a href="https://programming.chanmeng.org/blog/cursor-ide-vs-gemini-cli/#project-management" class="hash-link" aria-label="Direct link to Project Management" title="Direct link to Project Management" translate="no">​</a></h3>
<table><thead><tr><th>Capability</th><th>Cursor IDE</th><th>Gemini CLI</th></tr></thead><tbody><tr><td>Create new project</td><td>Manual or via terminal</td><td>Directly through conversation</td></tr><tr><td>Install dependencies</td><td>Use integrated terminal</td><td>Execute npm/pip commands directly</td></tr><tr><td>Git operations</td><td>Built-in Git panel or terminal</td><td>Natural language driven</td></tr><tr><td>Environment config</td><td>Manual setup</td><td>AI auto-diagnose and fix</td></tr></tbody></table>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="when-to-choose-which">When to Choose Which<a href="https://programming.chanmeng.org/blog/cursor-ide-vs-gemini-cli/#when-to-choose-which" class="hash-link" aria-label="Direct link to When to Choose Which" title="Direct link to When to Choose Which" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="choose-cursor-ide-when">Choose Cursor IDE When:<a href="https://programming.chanmeng.org/blog/cursor-ide-vs-gemini-cli/#choose-cursor-ide-when" class="hash-link" aria-label="Direct link to Choose Cursor IDE When:" title="Direct link to Choose Cursor IDE When:" translate="no">​</a></h3>
<ol>
<li class=""><strong>Daily coding work</strong> - You spend most of your time writing and modifying code</li>
<li class=""><strong>Team collaboration</strong> - Projects with strict code standards</li>
<li class=""><strong>Complex app development</strong> - Large frontend or backend projects</li>
</ol>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="choose-gemini-cli-when">Choose Gemini CLI When:<a href="https://programming.chanmeng.org/blog/cursor-ide-vs-gemini-cli/#choose-gemini-cli-when" class="hash-link" aria-label="Direct link to Choose Gemini CLI When:" title="Direct link to Choose Gemini CLI When:" translate="no">​</a></h3>
<ol>
<li class=""><strong>Environment setup</strong> - Project initialization and tool configuration</li>
<li class=""><strong>Learning to code</strong> - You're a complete beginner wanting hands-on guidance</li>
<li class=""><strong>Automation tasks</strong> - Batch file processing, data conversion</li>
<li class=""><strong>Budget constraints</strong> - Gemini CLI is free</li>
</ol>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="cost-comparison">Cost Comparison<a href="https://programming.chanmeng.org/blog/cursor-ide-vs-gemini-cli/#cost-comparison" class="hash-link" aria-label="Direct link to Cost Comparison" title="Direct link to Cost Comparison" translate="no">​</a></h2>
<table><thead><tr><th>Plan</th><th>Cursor IDE</th><th>Gemini CLI</th></tr></thead><tbody><tr><td><strong>Free</strong></td><td>Limited AI calls</td><td>Daily usage limits</td></tr><tr><td><strong>Personal</strong></td><td>$20/month</td><td>Free</td></tr><tr><td><strong>Team</strong></td><td>$40/month/user</td><td>-</td></tr></tbody></table>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="best-practice-use-both-together">Best Practice: Use Both Together<a href="https://programming.chanmeng.org/blog/cursor-ide-vs-gemini-cli/#best-practice-use-both-together" class="hash-link" aria-label="Direct link to Best Practice: Use Both Together" title="Direct link to Best Practice: Use Both Together" translate="no">​</a></h2>
<p>These tools aren't mutually exclusive. The most efficient approach is to <strong>switch based on task type</strong>:</p>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="recommended-workflow">Recommended Workflow<a href="https://programming.chanmeng.org/blog/cursor-ide-vs-gemini-cli/#recommended-workflow" class="hash-link" aria-label="Direct link to Recommended Workflow" title="Direct link to Recommended Workflow" translate="no">​</a></h3>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">1. Project initialization -&gt; Gemini CLI</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">2. Daily coding -&gt; Cursor IDE</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">3. Environment troubleshooting -&gt; Gemini CLI</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">4. Large-scale refactoring -&gt; Cursor IDE (Composer mode)</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">5. Deployment and ops -&gt; Gemini CLI</span><br></span></code></pre></div></div>
<div class="theme-admonition theme-admonition-tip admonition_xJq3 alert alert--success"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>Beginner Recommendation</div><div class="admonitionContent_BuS1"><p>If you have zero programming experience, start with Gemini CLI. Its conversational interaction feels more like everyday chatting, with a gentler learning curve. Once you have basic programming knowledge, transition to Cursor IDE for more efficient daily development.</p></div></div>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="summary">Summary<a href="https://programming.chanmeng.org/blog/cursor-ide-vs-gemini-cli/#summary" class="hash-link" aria-label="Direct link to Summary" title="Direct link to Summary" translate="no">​</a></h2>
<table><thead><tr><th>Dimension</th><th>Cursor IDE</th><th>Gemini CLI</th></tr></thead><tbody><tr><td><strong>Top Strength</strong></td><td>Deep integrated coding experience</td><td>Free and flexible</td></tr><tr><td><strong>Top Limitation</strong></td><td>Requires payment</td><td>No graphical interface</td></tr><tr><td><strong>Best For</strong></td><td>Developers who code daily</td><td>Beginners, ops, project setup</td></tr><tr><td><strong>Recommendation</strong></td><td>Essential for professional devs</td><td>Top choice for getting started</td></tr></tbody></table>
<p>There's no single best tool - only the best tool for the current task. Understanding each tool's strengths and limitations and choosing flexibly based on actual needs is the right approach in the AI era.</p>
<hr>
<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>Try It Yourself</div><div class="admonitionContent_BuS1"><p>Want to experience Gemini CLI's power firsthand? Start with our <a class="" href="https://programming.chanmeng.org/docs/2025-summer/basics/">Gemini CLI Environment Management course</a> and build your first AI project within a week!</p><p>Already using Cursor or other tools? Share your tool experiences in our <a href="https://discord.gg/T3NJG5n98a" target="_blank" rel="noopener noreferrer" class="">Discord community</a>!</p></div></div>]]></content:encoded>
            <category>Cursor IDE</category>
            <category>Gemini CLI</category>
            <category>Tool Comparison</category>
            <category>AI Tools</category>
            <category>AI Programming</category>
        </item>
        <item>
            <title><![CDATA[AI Programming Beginner's Guide: 2025 Zero-to-Hero Learning Path]]></title>
            <link>https://programming.chanmeng.org/blog/ai-programming-beginners-guide/</link>
            <guid>https://programming.chanmeng.org/blog/ai-programming-beginners-guide/</guid>
            <pubDate>Tue, 05 Aug 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[A complete beginner's guide to AI-assisted programming. Learn why AI coding matters, compare popular AI programming tools, and follow a step-by-step learning roadmap from scratch.]]></description>
            <content:encoded><![CDATA[<p>AI is transforming how we learn programming. In the past, learning to code meant spending months memorizing syntax and understanding algorithms. Now, AI programming assistants let you describe what you need in plain language and generate working code. This guide will help you understand what AI-assisted programming is and how to start learning efficiently from zero.</p>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="why-2025-is-the-best-time-to-learn-ai-programming">Why 2025 is the Best Time to Learn AI Programming<a href="https://programming.chanmeng.org/blog/ai-programming-beginners-guide/#why-2025-is-the-best-time-to-learn-ai-programming" class="hash-link" aria-label="Direct link to Why 2025 is the Best Time to Learn AI Programming" title="Direct link to Why 2025 is the Best Time to Learn AI Programming" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="ai-coding-tools-have-matured">AI Coding Tools Have Matured<a href="https://programming.chanmeng.org/blog/ai-programming-beginners-guide/#ai-coding-tools-have-matured" class="hash-link" aria-label="Direct link to AI Coding Tools Have Matured" title="Direct link to AI Coding Tools Have Matured" translate="no">​</a></h3>
<p>In 2024-2025, AI programming tools have exploded in development:</p>
<ul>
<li class=""><strong>Google Gemini CLI</strong> — Free command-line AI assistant that can directly manipulate files and execute commands</li>
<li class=""><strong>GitHub Copilot</strong> — Real-time code completion suggestions in your editor</li>
<li class=""><strong>Cursor IDE</strong> — An IDE designed specifically for AI programming</li>
<li class=""><strong>Claude / ChatGPT</strong> — General AI assistants, excellent at code explanation and generation</li>
</ul>
<p>These tools are mature enough to help complete beginners finish real projects.</p>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="learning-barriers-have-dropped-dramatically">Learning Barriers Have Dropped Dramatically<a href="https://programming.chanmeng.org/blog/ai-programming-beginners-guide/#learning-barriers-have-dropped-dramatically" class="hash-link" aria-label="Direct link to Learning Barriers Have Dropped Dramatically" title="Direct link to Learning Barriers Have Dropped Dramatically" translate="no">​</a></h3>
<p>Traditional programming learning path:</p>
<blockquote>
<p>Learn syntax -&gt; Practice algorithms -&gt; Build projects -&gt; Get hired (6-12 months)</p>
</blockquote>
<p>AI-assisted programming learning path:</p>
<blockquote>
<p>Learn tools -&gt; Build projects -&gt; Learn by doing -&gt; See results fast (2-4 weeks to get started)</p>
</blockquote>
<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>Key Shift</div><div class="admonitionContent_BuS1"><p>AI-assisted programming isn't about replacing programming learning - it's about letting you <strong>learn through practice</strong> instead of rote memorization. You still need to understand programming concepts, but AI helps you skip past much of the frustration of the beginner stage.</p></div></div>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="popular-ai-programming-tools-compared">Popular AI Programming Tools Compared<a href="https://programming.chanmeng.org/blog/ai-programming-beginners-guide/#popular-ai-programming-tools-compared" class="hash-link" aria-label="Direct link to Popular AI Programming Tools Compared" title="Direct link to Popular AI Programming Tools Compared" translate="no">​</a></h2>
<table><thead><tr><th>Feature</th><th>Gemini CLI</th><th>GitHub Copilot</th><th>Cursor IDE</th><th>Claude</th></tr></thead><tbody><tr><td><strong>Cost</strong></td><td>Free</td><td>$10/month</td><td>$20/month</td><td>Free/Paid</td></tr><tr><td><strong>Interface</strong></td><td>Command line</td><td>Editor plugin</td><td>Standalone IDE</td><td>Web/API</td></tr><tr><td><strong>Local file access</strong></td><td>Yes</td><td>Limited</td><td>Yes</td><td>No</td></tr><tr><td><strong>Best for</strong></td><td>Environment setup, project scaffolding</td><td>Daily coding</td><td>Complex development</td><td>Learning, Q&amp;A</td></tr><tr><td><strong>Difficulty</strong></td><td>Medium</td><td>Easy</td><td>Easy</td><td>Easiest</td></tr></tbody></table>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="recommended-combinations">Recommended Combinations<a href="https://programming.chanmeng.org/blog/ai-programming-beginners-guide/#recommended-combinations" class="hash-link" aria-label="Direct link to Recommended Combinations" title="Direct link to Recommended Combinations" translate="no">​</a></h3>
<p>For zero-experience learners:</p>
<ol>
<li class=""><strong>Getting Started</strong>: Claude (web) + Gemini CLI</li>
<li class=""><strong>Intermediate</strong>: Cursor IDE + GitHub Copilot</li>
</ol>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="zero-to-hero-learning-roadmap">Zero-to-Hero Learning Roadmap<a href="https://programming.chanmeng.org/blog/ai-programming-beginners-guide/#zero-to-hero-learning-roadmap" class="hash-link" aria-label="Direct link to Zero-to-Hero Learning Roadmap" title="Direct link to Zero-to-Hero Learning Roadmap" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="week-1-meet-ai-programming">Week 1: Meet AI Programming<a href="https://programming.chanmeng.org/blog/ai-programming-beginners-guide/#week-1-meet-ai-programming" class="hash-link" aria-label="Direct link to Week 1: Meet AI Programming" title="Direct link to Week 1: Meet AI Programming" translate="no">​</a></h3>
<p><strong>Goal</strong>: Understand what AI programming is, set up basic environment</p>
<ol>
<li class="">Learn basic concepts (terminal, code editors, Git)</li>
<li class="">Register accounts (Google, GitHub, Vercel)</li>
<li class="">Install development tools (Node.js, VS Code, Git)</li>
</ol>
<div class="theme-admonition theme-admonition-tip admonition_xJq3 alert alert--success"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>Quick Start</div><div class="admonitionContent_BuS1"><p>Find manual tool installation tedious? Use Gemini CLI to do it for you! See our <a class="" href="https://programming.chanmeng.org/docs/2025-summer/basics/">Gemini CLI Environment Management course</a>.</p></div></div>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="week-2-your-first-ai-project">Week 2: Your First AI Project<a href="https://programming.chanmeng.org/blog/ai-programming-beginners-guide/#week-2-your-first-ai-project" class="hash-link" aria-label="Direct link to Week 2: Your First AI Project" title="Direct link to Week 2: Your First AI Project" translate="no">​</a></h3>
<p><strong>Goal</strong>: Complete a small project entirely with AI tools</p>
<p><strong>Recommended</strong>: Build a personal website</p>
<p>Why a personal website?</p>
<ul>
<li class="">Visible results - you can see what you've built</li>
<li class="">Practical - serves as a portfolio</li>
<li class="">Comprehensive tech coverage - frontend, deployment, domains</li>
<li class="">AI excels at helping - template generation, content optimization</li>
</ul>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="week-3-deepen-your-practice">Week 3: Deepen Your Practice<a href="https://programming.chanmeng.org/blog/ai-programming-beginners-guide/#week-3-deepen-your-practice" class="hash-link" aria-label="Direct link to Week 3: Deepen Your Practice" title="Direct link to Week 3: Deepen Your Practice" translate="no">​</a></h3>
<ul>
<li class="">Learn to debug code with AI</li>
<li class="">Learn AI-assisted Git workflows</li>
<li class="">Try generating more complex features</li>
<li class="">Learn to read and understand AI-generated code</li>
</ul>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="week-4-build-your-workflow">Week 4: Build Your Workflow<a href="https://programming.chanmeng.org/blog/ai-programming-beginners-guide/#week-4-build-your-workflow" class="hash-link" aria-label="Direct link to Week 4: Build Your Workflow" title="Direct link to Week 4: Build Your Workflow" translate="no">​</a></h3>
<ul>
<li class="">Identify which tasks to delegate to AI</li>
<li class="">Which tasks require your own understanding</li>
<li class="">How to verify AI-generated code</li>
<li class="">How to continue learning and improving</li>
</ul>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="common-misconceptions">Common Misconceptions<a href="https://programming.chanmeng.org/blog/ai-programming-beginners-guide/#common-misconceptions" class="hash-link" aria-label="Direct link to Common Misconceptions" title="Direct link to Common Misconceptions" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="misconception-1-ai-will-replace-programmers">Misconception 1: "AI will replace programmers"<a href="https://programming.chanmeng.org/blog/ai-programming-beginners-guide/#misconception-1-ai-will-replace-programmers" class="hash-link" aria-label="Direct link to Misconception 1: &quot;AI will replace programmers&quot;" title="Direct link to Misconception 1: &quot;AI will replace programmers&quot;" translate="no">​</a></h3>
<p>AI is a tool, not a replacement. Just as calculators didn't replace mathematicians, AI coding tools won't replace programmers.</p>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="misconception-2-using-ai-to-write-code-is-cheating">Misconception 2: "Using AI to write code is cheating"<a href="https://programming.chanmeng.org/blog/ai-programming-beginners-guide/#misconception-2-using-ai-to-write-code-is-cheating" class="hash-link" aria-label="Direct link to Misconception 2: &quot;Using AI to write code is cheating&quot;" title="Direct link to Misconception 2: &quot;Using AI to write code is cheating&quot;" translate="no">​</a></h3>
<p>In professional development, using any tool that improves efficiency is the right approach. AI assistants are part of the developer's toolkit, just like autocomplete and Stack Overflow.</p>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="misconception-3-no-need-to-learn-programming-basics-anymore">Misconception 3: "No need to learn programming basics anymore"<a href="https://programming.chanmeng.org/blog/ai-programming-beginners-guide/#misconception-3-no-need-to-learn-programming-basics-anymore" class="hash-link" aria-label="Direct link to Misconception 3: &quot;No need to learn programming basics anymore&quot;" title="Direct link to Misconception 3: &quot;No need to learn programming basics anymore&quot;" translate="no">​</a></h3>
<p>AI can write code for you, but understanding what the code does is still your responsibility.</p>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="misconception-4-more-expensive-tools-are-better">Misconception 4: "More expensive tools are better"<a href="https://programming.chanmeng.org/blog/ai-programming-beginners-guide/#misconception-4-more-expensive-tools-are-better" class="hash-link" aria-label="Direct link to Misconception 4: &quot;More expensive tools are better&quot;" title="Direct link to Misconception 4: &quot;More expensive tools are better&quot;" translate="no">​</a></h3>
<p>Free tools are sufficient for most learning and personal projects. Start with free options (Gemini CLI + VS Code) before considering paid tools.</p>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="learning-resources">Learning Resources<a href="https://programming.chanmeng.org/blog/ai-programming-beginners-guide/#learning-resources" class="hash-link" aria-label="Direct link to Learning Resources" title="Direct link to Learning Resources" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="online-courses">Online Courses<a href="https://programming.chanmeng.org/blog/ai-programming-beginners-guide/#online-courses" class="hash-link" aria-label="Direct link to Online Courses" title="Direct link to Online Courses" translate="no">​</a></h3>
<ul>
<li class=""><a class="" href="https://programming.chanmeng.org/docs/2025-summer/intro/">AI Programming Open Course</a> - Our free course series</li>
<li class=""><a class="" href="https://programming.chanmeng.org/docs/2025-summer/basics/">Gemini CLI Basic Tutorial</a> - Systematic Gemini CLI learning</li>
<li class=""><a class="" href="https://programming.chanmeng.org/docs/2025-summer/website/">Personal Website Development</a> - Hands-on project</li>
</ul>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="community">Community<a href="https://programming.chanmeng.org/blog/ai-programming-beginners-guide/#community" class="hash-link" aria-label="Direct link to Community" title="Direct link to Community" translate="no">​</a></h3>
<ul>
<li class=""><a href="https://discord.gg/T3NJG5n98a" target="_blank" rel="noopener noreferrer" class="">Discord Community</a> - Join study groups</li>
<li class=""><a href="https://github.com/ChanMeng666/ai-programming-teaching-project/discussions" target="_blank" rel="noopener noreferrer" class="">GitHub Discussions</a> - Q&amp;A and discussions</li>
</ul>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="final-thoughts">Final Thoughts<a href="https://programming.chanmeng.org/blog/ai-programming-beginners-guide/#final-thoughts" class="hash-link" aria-label="Direct link to Final Thoughts" title="Direct link to Final Thoughts" translate="no">​</a></h2>
<p>The most important thing about learning AI programming isn't talent - it's <strong>taking action</strong>. A perfect study plan isn't as valuable as one completed project.</p>
<p>Start now:</p>
<ol>
<li class="">Check out our <a class="" href="https://programming.chanmeng.org/docs/2025-summer/intro/">Course Introduction</a></li>
<li class="">Set up your development environment</li>
<li class="">Complete your first AI-assisted project</li>
</ol>
<p>Every great developer started from zero. AI just makes that start smoother.</p>
<hr>
<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>Start Your AI Programming Journey</div><div class="admonitionContent_BuS1"><p>Ready? Begin with <a class="" href="https://programming.chanmeng.org/docs/2025-summer/basics/">Gemini CLI Environment Management</a> or join our <a href="https://discord.gg/T3NJG5n98a" target="_blank" rel="noopener noreferrer" class="">Discord Community</a> to connect with other learners!</p></div></div>]]></content:encoded>
            <category>AI Programming</category>
            <category>Tutorial</category>
            <category>Beginners Guide</category>
            <category>AI Tools</category>
        </item>
        <item>
            <title><![CDATA[Gemini CLI Complete Guide: Your AI Programming Assistant from Install to Practice]]></title>
            <link>https://programming.chanmeng.org/blog/gemini-cli-complete-guide/</link>
            <guid>https://programming.chanmeng.org/blog/gemini-cli-complete-guide/</guid>
            <pubDate>Fri, 01 Aug 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[A detailed guide to installing, configuring, and using Google Gemini CLI. Covers Windows, macOS, and Linux platforms, perfect for beginners getting started with AI-assisted programming.]]></description>
            <content:encoded><![CDATA[<p>Google's Gemini CLI is a powerful command-line AI programming assistant that helps developers interact with AI directly from the terminal to generate code, manage environments, manipulate files, and more. This guide will take you from zero to mastering Gemini CLI.</p>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="what-is-gemini-cli">What is Gemini CLI?<a href="https://programming.chanmeng.org/blog/gemini-cli-complete-guide/#what-is-gemini-cli" class="hash-link" aria-label="Direct link to What is Gemini CLI?" title="Direct link to What is Gemini CLI?" translate="no">​</a></h2>
<p>Gemini CLI is a command-line tool built by Google on the Gemini large language model. Unlike traditional AI chat interfaces, it runs directly in your terminal and can:</p>
<ul>
<li class="">Understand your project structure and code context</li>
<li class="">Read and write local files directly</li>
<li class="">Execute system commands</li>
<li class="">Help debug and fix code issues</li>
<li class="">Automate repetitive development tasks</li>
</ul>
<div class="theme-admonition theme-admonition-tip admonition_xJq3 alert alert--success"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>Why Choose Gemini CLI?</div><div class="admonitionContent_BuS1"><p>For beginners, the biggest advantage of Gemini CLI is that it's <strong>free</strong> and requires <strong>no complex setup</strong>. All you need is a Google account to get started immediately.</p></div></div>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="installing-gemini-cli">Installing Gemini CLI<a href="https://programming.chanmeng.org/blog/gemini-cli-complete-guide/#installing-gemini-cli" class="hash-link" aria-label="Direct link to Installing Gemini CLI" title="Direct link to Installing Gemini CLI" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="prerequisites">Prerequisites<a href="https://programming.chanmeng.org/blog/gemini-cli-complete-guide/#prerequisites" class="hash-link" aria-label="Direct link to Prerequisites" title="Direct link to Prerequisites" translate="no">​</a></h3>
<p>Before installing Gemini CLI, make sure you have <strong>Node.js 18 or later</strong> installed on your system.</p>
<div class="theme-tabs-container tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">Windows</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">macOS</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">Linux</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><p><strong>1. Install Node.js</strong></p><p>Visit <a href="https://nodejs.org/" target="_blank" rel="noopener noreferrer" class="">Node.js website</a> and download the LTS version. After installation, verify in PowerShell:</p><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">node --version</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">npm --version</span><br></span></code></pre></div></div><p><strong>2. Install Gemini CLI</strong></p><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">npm install -g @google/gemini-cli</span><br></span></code></pre></div></div><p>Or run directly with npx (no global install needed):</p><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">npx @google/gemini-cli</span><br></span></code></pre></div></div></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><p><strong>1. Install Node.js (Homebrew recommended)</strong></p><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">brew install node</span><br></span></code></pre></div></div><p><strong>2. Install Gemini CLI</strong></p><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">npm install -g @google/gemini-cli</span><br></span></code></pre></div></div></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><p><strong>1. Install Node.js</strong></p><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain"># Ubuntu/Debian</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">sudo apt-get install -y nodejs</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"># Fedora</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">sudo dnf install nodejs</span><br></span></code></pre></div></div><p><strong>2. Install Gemini CLI</strong></p><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">npm install -g @google/gemini-cli</span><br></span></code></pre></div></div></div></div></div>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="first-time-setup">First-time Setup<a href="https://programming.chanmeng.org/blog/gemini-cli-complete-guide/#first-time-setup" class="hash-link" aria-label="Direct link to First-time Setup" title="Direct link to First-time Setup" translate="no">​</a></h3>
<p>After installation, running Gemini CLI for the first time will guide you through Google account authorization:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">gemini</span><br></span></code></pre></div></div>
<p>Follow the prompts in the terminal to complete the OAuth login process.</p>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="basic-usage">Basic Usage<a href="https://programming.chanmeng.org/blog/gemini-cli-complete-guide/#basic-usage" class="hash-link" aria-label="Direct link to Basic Usage" title="Direct link to Basic Usage" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="interactive-mode">Interactive Mode<a href="https://programming.chanmeng.org/blog/gemini-cli-complete-guide/#interactive-mode" class="hash-link" aria-label="Direct link to Interactive Mode" title="Direct link to Interactive Mode" translate="no">​</a></h3>
<p>Run in any project directory:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">gemini</span><br></span></code></pre></div></div>
<p>In interactive mode, type natural language instructions:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">&gt; Show me the structure of this project</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">&gt; What JavaScript files are in this directory?</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">&gt; Create a simple HTTP server for me</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="common-use-cases">Common Use Cases<a href="https://programming.chanmeng.org/blog/gemini-cli-complete-guide/#common-use-cases" class="hash-link" aria-label="Direct link to Common Use Cases" title="Direct link to Common Use Cases" translate="no">​</a></h3>
<p><strong>Environment diagnosis and fixing:</strong></p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">&gt; Check my development environment for missing tools</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">&gt; Is there anything wrong with my Git configuration? Fix it</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">&gt; Clean up old Node.js versions on my system</span><br></span></code></pre></div></div>
<p><strong>Code generation and modification:</strong></p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">&gt; Create an Express.js project template in the current directory</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">&gt; Add error handling to this function</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">&gt; Refactor this JavaScript file to TypeScript</span><br></span></code></pre></div></div>
<p><strong>Git automation:</strong></p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">&gt; Initialize a Git repo and create a .gitignore</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">&gt; Review recent changes and write a meaningful commit message</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">&gt; Create and switch to a new branch</span><br></span></code></pre></div></div>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="practical-example-building-a-personal-website-with-gemini-cli">Practical Example: Building a Personal Website with Gemini CLI<a href="https://programming.chanmeng.org/blog/gemini-cli-complete-guide/#practical-example-building-a-personal-website-with-gemini-cli" class="hash-link" aria-label="Direct link to Practical Example: Building a Personal Website with Gemini CLI" title="Direct link to Practical Example: Building a Personal Website with Gemini CLI" translate="no">​</a></h2>
<p>Let's demonstrate Gemini CLI's capabilities through a real project.</p>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="step-1-initialize-the-project">Step 1: Initialize the Project<a href="https://programming.chanmeng.org/blog/gemini-cli-complete-guide/#step-1-initialize-the-project" class="hash-link" aria-label="Direct link to Step 1: Initialize the Project" title="Direct link to Step 1: Initialize the Project" translate="no">​</a></h3>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">&gt; Create a Docusaurus-based personal website project called my-portfolio</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="step-2-customize-configuration">Step 2: Customize Configuration<a href="https://programming.chanmeng.org/blog/gemini-cli-complete-guide/#step-2-customize-configuration" class="hash-link" aria-label="Direct link to Step 2: Customize Configuration" title="Direct link to Step 2: Customize Configuration" translate="no">​</a></h3>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">&gt; Modify docusaurus.config.js to change the title to "My Portfolio"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  and add Chinese language support</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="step-3-create-content">Step 3: Create Content<a href="https://programming.chanmeng.org/blog/gemini-cli-complete-guide/#step-3-create-content" class="hash-link" aria-label="Direct link to Step 3: Create Content" title="Direct link to Step 3: Create Content" translate="no">​</a></h3>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">&gt; Create a self-introduction page in the docs directory using Markdown,</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  including bio, skills list, and project experience</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="step-4-preview-locally">Step 4: Preview Locally<a href="https://programming.chanmeng.org/blog/gemini-cli-complete-guide/#step-4-preview-locally" class="hash-link" aria-label="Direct link to Step 4: Preview Locally" title="Direct link to Step 4: Preview Locally" translate="no">​</a></h3>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">&gt; Start the dev server so I can preview the website</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="step-5-deploy">Step 5: Deploy<a href="https://programming.chanmeng.org/blog/gemini-cli-complete-guide/#step-5-deploy" class="hash-link" aria-label="Direct link to Step 5: Deploy" title="Direct link to Step 5: Deploy" translate="no">​</a></h3>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">&gt; Help me deploy this project to Vercel with detailed steps</span><br></span></code></pre></div></div>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="advanced-tips">Advanced Tips<a href="https://programming.chanmeng.org/blog/gemini-cli-complete-guide/#advanced-tips" class="hash-link" aria-label="Direct link to Advanced Tips" title="Direct link to Advanced Tips" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="1-context-awareness">1. Context Awareness<a href="https://programming.chanmeng.org/blog/gemini-cli-complete-guide/#1-context-awareness" class="hash-link" aria-label="Direct link to 1. Context Awareness" title="Direct link to 1. Context Awareness" translate="no">​</a></h3>
<p>Gemini CLI reads files in the current directory and automatically understands project context. Launch it in your project root for smart behavior.</p>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="2-batch-file-operations">2. Batch File Operations<a href="https://programming.chanmeng.org/blog/gemini-cli-complete-guide/#2-batch-file-operations" class="hash-link" aria-label="Direct link to 2. Batch File Operations" title="Direct link to 2. Batch File Operations" translate="no">​</a></h3>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">&gt; Change all var declarations to const or let in src/ directory .js files</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">&gt; Add type hints to all Python files</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="3-learning-and-debugging">3. Learning and Debugging<a href="https://programming.chanmeng.org/blog/gemini-cli-complete-guide/#3-learning-and-debugging" class="hash-link" aria-label="Direct link to 3. Learning and Debugging" title="Direct link to 3. Learning and Debugging" translate="no">​</a></h3>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">&gt; Explain what this regex does: /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">&gt; Why does this code cause a memory leak? Find the cause and fix it</span><br></span></code></pre></div></div>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="faq">FAQ<a href="https://programming.chanmeng.org/blog/gemini-cli-complete-guide/#faq" class="hash-link" aria-label="Direct link to FAQ" title="Direct link to FAQ" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="q-how-is-gemini-cli-different-from-chatgpt">Q: How is Gemini CLI different from ChatGPT?<a href="https://programming.chanmeng.org/blog/gemini-cli-complete-guide/#q-how-is-gemini-cli-different-from-chatgpt" class="hash-link" aria-label="Direct link to Q: How is Gemini CLI different from ChatGPT?" title="Direct link to Q: How is Gemini CLI different from ChatGPT?" translate="no">​</a></h3>
<p>Gemini CLI runs locally in your terminal with direct access to your file system and development environment. ChatGPT is a web chat interface better suited for general Q&amp;A.</p>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="q-does-gemini-cli-cost-money">Q: Does Gemini CLI cost money?<a href="https://programming.chanmeng.org/blog/gemini-cli-complete-guide/#q-does-gemini-cli-cost-money" class="hash-link" aria-label="Direct link to Q: Does Gemini CLI cost money?" title="Direct link to Q: Does Gemini CLI cost money?" translate="no">​</a></h3>
<p>The basic version is free with daily usage limits. It's more than enough for personal learning and small projects.</p>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="q-can-i-use-gemini-cli-with-zero-programming-experience">Q: Can I use Gemini CLI with zero programming experience?<a href="https://programming.chanmeng.org/blog/gemini-cli-complete-guide/#q-can-i-use-gemini-cli-with-zero-programming-experience" class="hash-link" aria-label="Direct link to Q: Can I use Gemini CLI with zero programming experience?" title="Direct link to Q: Can I use Gemini CLI with zero programming experience?" translate="no">​</a></h3>
<p>Yes! One of Gemini CLI's biggest strengths is that you can describe what you want in natural language. However, learning basic terminal operations first is recommended.</p>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="summary">Summary<a href="https://programming.chanmeng.org/blog/gemini-cli-complete-guide/#summary" class="hash-link" aria-label="Direct link to Summary" title="Direct link to Summary" translate="no">​</a></h2>
<p>Gemini CLI is an excellent tool for learning AI-assisted programming. It lowers the barrier to coding, enabling beginners to collaborate with AI through natural language to complete development tasks.</p>
<p>Want to learn Gemini CLI more deeply? Check out our <a class="" href="https://programming.chanmeng.org/docs/2025-summer/basics/">Gemini CLI Environment Management course</a> for a systematic, project-based approach.</p>
<hr>
<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>Related Resources</div><div class="admonitionContent_BuS1"><ul>
<li class=""><a class="" href="https://programming.chanmeng.org/docs/2025-summer/basics/">Course 1: Gemini CLI Environment Management</a> - Systematic Gemini CLI learning</li>
<li class=""><a class="" href="https://programming.chanmeng.org/docs/2025-summer/website/">Course 2: Build and Deploy Personal Website</a> - Build a website with AI</li>
<li class=""><a href="https://discord.gg/T3NJG5n98a" target="_blank" rel="noopener noreferrer" class="">Discord Community</a> - Join the learning community</li>
</ul></div></div>]]></content:encoded>
            <category>Gemini CLI</category>
            <category>Tutorial</category>
            <category>AI Programming</category>
            <category>Beginners Guide</category>
        </item>
        <item>
            <title><![CDATA[Us, You, and Them: Identity Recognition and World Divisions Through Multiple Lenses]]></title>
            <link>https://programming.chanmeng.org/blog/identity-recognition-through-multiple-lenses/</link>
            <guid>https://programming.chanmeng.org/blog/identity-recognition-through-multiple-lenses/</guid>
            <pubDate>Sun, 27 Jul 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[2025 Summer Forward with Her Activity Mentor Group Q&A Session Speech: Exploring the Social Construction of Identity Recognition and Group Boundaries]]></description>
            <content:encoded><![CDATA[<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="mentor-qa-session-video">Mentor Q&amp;A Session Video<a href="https://programming.chanmeng.org/blog/identity-recognition-through-multiple-lenses/#mentor-qa-session-video" class="hash-link" aria-label="Direct link to Mentor Q&amp;A Session Video" title="Direct link to Mentor Q&amp;A Session Video" translate="no">​</a></h2>
<p>As a mentor for the 2025 Summer Forward with Her Activity, I shared deep reflections on identity recognition and social group divisions at the mentor group Q&amp;A session on July 27, 2025.</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/-0m3p4uCgcE?si=xqdLVush-BqEG74Z" title="Mentor Group Q&amp;A Session Video" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen=""></iframe>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="core-ideas-overview">Core Ideas Overview<a href="https://programming.chanmeng.org/blog/identity-recognition-through-multiple-lenses/#core-ideas-overview" class="hash-link" aria-label="Direct link to Core Ideas Overview" title="Direct link to Core Ideas Overview" translate="no">​</a></h2>
<div class="theme-admonition theme-admonition-tip admonition_xJq3 alert alert--success"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>Speech Core</div><div class="admonitionContent_BuS1"><p>This speech deeply explores the construction process of basic social categories like "us," "you," and "them," revealing the power dynamics, discourse construction, and psychological mechanisms behind identity recognition.</p></div></div>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="theoretical-framework">Theoretical Framework<a href="https://programming.chanmeng.org/blog/identity-recognition-through-multiple-lenses/#theoretical-framework" class="hash-link" aria-label="Direct link to Theoretical Framework" title="Direct link to Theoretical Framework" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="social-identity-theory">Social Identity Theory<a href="https://programming.chanmeng.org/blog/identity-recognition-through-multiple-lenses/#social-identity-theory" class="hash-link" aria-label="Direct link to Social Identity Theory" title="Direct link to Social Identity Theory" translate="no">​</a></h3>
<p><strong>Three Core Processes of Social Identity</strong></p>
<ol>
<li class=""><strong>Social Categorization</strong> - Dividing people into different groups</li>
<li class=""><strong>Social Identification</strong> - Recognizing and identifying with one's group membership</li>
<li class=""><strong>Social Comparison</strong> - Gaining positive distinctiveness through inter-group comparison</li>
</ol>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="multiple-narrative-perspectives">Multiple Narrative Perspectives<a href="https://programming.chanmeng.org/blog/identity-recognition-through-multiple-lenses/#multiple-narrative-perspectives" class="hash-link" aria-label="Direct link to Multiple Narrative Perspectives" title="Direct link to Multiple Narrative Perspectives" translate="no">​</a></h2>
<div class="theme-tabs-container tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">National Narrative</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">Ethnic and Racial Narrative</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">Gender Narrative</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">Religious Narrative</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">Geopolitical Narrative</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="imagined-communities">Imagined Communities<a href="https://programming.chanmeng.org/blog/identity-recognition-through-multiple-lenses/#imagined-communities" class="hash-link" aria-label="Direct link to Imagined Communities" title="Direct link to Imagined Communities" translate="no">​</a></h3><p><strong>Concept Source</strong>: Benedict Anderson</p><p><strong>Core Viewpoint</strong>: Nation-states are "imagined communities"</p><p><strong>Maintenance Mechanisms</strong>:</p><ul>
<li class="">Shared historical memory</li>
<li class="">Cultural symbols (flags, anthems)</li>
<li class="">Mass media dissemination</li>
</ul><div class="theme-admonition theme-admonition-caution admonition_xJq3 alert alert--warning"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>Double-edged Sword of Narrative</div><div class="admonitionContent_BuS1"><p>National narratives are both a source of cohesion and can potentially lead to conflict and division.</p></div></div></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="the-interweaving-of-culture-and-power">The Interweaving of Culture and Power<a href="https://programming.chanmeng.org/blog/identity-recognition-through-multiple-lenses/#the-interweaving-of-culture-and-power" class="hash-link" aria-label="Direct link to The Interweaving of Culture and Power" title="Direct link to The Interweaving of Culture and Power" translate="no">​</a></h3><p><strong>Ethnic Identity</strong>: More focused on culture than bloodline (e.g., formation of China's "Han ethnicity")</p><p><strong>Racial Concept</strong>: A product of social construction, historically closely related to colonialism</p><p><strong>Critical Perspective</strong>: Critical Race Theory (CRT) reveals how racism is inherent in law and institutions</p><div class="theme-admonition theme-admonition-warning admonition_xJq3 alert alert--warning"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>warning</div><div class="admonitionContent_BuS1"><p>The construction of racial narratives is often closely related to the political and economic status of specific groups and requires critical examination.</p></div></div></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="from-patriarchy-to-queer-theory">From Patriarchy to Queer Theory<a href="https://programming.chanmeng.org/blog/identity-recognition-through-multiple-lenses/#from-patriarchy-to-queer-theory" class="hash-link" aria-label="Direct link to From Patriarchy to Queer Theory" title="Direct link to From Patriarchy to Queer Theory" translate="no">​</a></h3><p><strong>1. Patriarchal Narrative</strong></p><ul>
<li class="">Male "rationality" vs female "emotion"</li>
<li class="">Gender division of public and private spheres</li>
</ul><p><strong>2. Feminist Challenge</strong></p><ul>
<li class="">Gender inequality is socially constructed</li>
<li class="">Intersectional feminism focuses on multiple oppressions</li>
</ul><p><strong>3. Queer Theory Deconstruction</strong></p><ul>
<li class="">Fluidity of gender and sexual orientation</li>
<li class="">Challenging binary identity labels</li>
</ul></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="boundaries-between-believers-and-non-believers">Boundaries Between Believers and Non-believers<a href="https://programming.chanmeng.org/blog/identity-recognition-through-multiple-lenses/#boundaries-between-believers-and-non-believers" class="hash-link" aria-label="Direct link to Boundaries Between Believers and Non-believers" title="Direct link to Boundaries Between Believers and Non-believers" translate="no">​</a></h3><p><strong>Chosen People Concept</strong>: Sense of specificity of faith groups</p><p><strong>Sacred vs Secular</strong>: Binary worldview</p><p><strong>Dual Effects</strong>:</p><ul>
<li class="">Provides sense of belonging and moral guidance</li>
<li class="">May lead to prejudice and conflict</li>
</ul></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="power-geography-of-east-west-north-south">Power Geography of East, West, North, South<a href="https://programming.chanmeng.org/blog/identity-recognition-through-multiple-lenses/#power-geography-of-east-west-north-south" class="hash-link" aria-label="Direct link to Power Geography of East, West, North, South" title="Direct link to Power Geography of East, West, North, South" translate="no">​</a></h3><p><strong>Orientalism Critique</strong> (Edward Said)</p><p><strong>Global North-South Divide</strong>: Development levels and historical legacy</p><p><strong>Discourse Power Struggle</strong>: Who defines "development" and "civilization"</p></div></div></div>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="psychological-mechanism-analysis">Psychological Mechanism Analysis<a href="https://programming.chanmeng.org/blog/identity-recognition-through-multiple-lenses/#psychological-mechanism-analysis" class="hash-link" aria-label="Direct link to Psychological Mechanism Analysis" title="Direct link to Psychological Mechanism Analysis" translate="no">​</a></h2>
<ul>
<li class=""><strong>In-group Favoritism</strong> — Favoring members of one's own group to enhance self-esteem</li>
<li class=""><strong>Out-group Homogeneity Bias</strong> — Believing "they're all the same," ignoring out-group diversity</li>
<li class=""><strong>Terror Management Theory</strong> — Managing death anxiety through group identification</li>
<li class=""><strong>Evolutionary Psychology Perspective</strong> — Group loyalty may have evolutionary adaptiveness</li>
</ul>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="insights-from-intersectionality-theory">Insights from Intersectionality Theory<a href="https://programming.chanmeng.org/blog/identity-recognition-through-multiple-lenses/#insights-from-intersectionality-theory" class="hash-link" aria-label="Direct link to Insights from Intersectionality Theory" title="Direct link to Insights from Intersectionality Theory" translate="no">​</a></h2>
<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>Intersectionality</div><div class="admonitionContent_BuS1"><p>Proposed by Kimberlé Crenshaw, emphasizing the multiplicity and complexity of individual identity. A person can simultaneously belong to multiple "us" groups, facing unique, compound experiences.</p></div></div>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="important-insights-from-intersectionality">Important Insights from Intersectionality<a href="https://programming.chanmeng.org/blog/identity-recognition-through-multiple-lenses/#important-insights-from-intersectionality" class="hash-link" aria-label="Direct link to Important Insights from Intersectionality" title="Direct link to Important Insights from Intersectionality" translate="no">​</a></h3>
<ul>
<li class="">No universal, homogeneous group experience exists</li>
<li class="">Must focus on the interaction of multiple power structures</li>
<li class="">Avoid covering one group's specificity with another group's "us"</li>
</ul>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="new-challenges-in-the-digital-age">New Challenges in the Digital Age<a href="https://programming.chanmeng.org/blog/identity-recognition-through-multiple-lenses/#new-challenges-in-the-digital-age" class="hash-link" aria-label="Direct link to New Challenges in the Digital Age" title="Direct link to New Challenges in the Digital Age" translate="no">​</a></h2>
<div class="theme-tabs-container tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">Globalization Impact</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">Internet Effects</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="fluidity-and-solidification-of-identity">Fluidity and Solidification of Identity<a href="https://programming.chanmeng.org/blog/identity-recognition-through-multiple-lenses/#fluidity-and-solidification-of-identity" class="hash-link" aria-label="Direct link to Fluidity and Solidification of Identity" title="Direct link to Fluidity and Solidification of Identity" translate="no">​</a></h3><p><strong>Dual Effects</strong>:</p><ul>
<li class=""><strong>Positive</strong>: Promotes cultural exchange, catalyzes hybrid identities</li>
<li class=""><strong>Negative</strong>: Triggers local identity anxiety, strengthens exclusionary consciousness</li>
</ul></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="coexistence-of-connection-and-division">Coexistence of Connection and Division<a href="https://programming.chanmeng.org/blog/identity-recognition-through-multiple-lenses/#coexistence-of-connection-and-division" class="hash-link" aria-label="Direct link to Coexistence of Connection and Division" title="Direct link to Coexistence of Connection and Division" translate="no">​</a></h3><p><strong>New Opportunities</strong>:</p><ul>
<li class="">Cross-regional interest communities</li>
<li class="">Voice platforms for marginalized groups (e.g., #MeToo)</li>
</ul><p><strong>New Challenges</strong>:</p><ul>
<li class="">Echo chamber effects and filter bubbles</li>
<li class="">Algorithm-reinforced group polarization</li>
<li class="">Online anonymity-enabled hate speech</li>
</ul></div></div></div>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="future-outlook-transcending-binary-opposition">Future Outlook: Transcending Binary Opposition<a href="https://programming.chanmeng.org/blog/identity-recognition-through-multiple-lenses/#future-outlook-transcending-binary-opposition" class="hash-link" aria-label="Direct link to Future Outlook: Transcending Binary Opposition" title="Direct link to Future Outlook: Transcending Binary Opposition" translate="no">​</a></h2>
<p><strong>Paths to Building an Inclusive "Greater Us"</strong></p>
<ul>
<li class="">Cultivate critical thinking, examine narrative frameworks</li>
<li class="">Promote cross-group dialogue, break stereotypes</li>
<li class="">Build just social structures, reduce power inequality</li>
<li class="">Embrace identity complexity, find common ground</li>
</ul>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="conclusion">Conclusion<a href="https://programming.chanmeng.org/blog/identity-recognition-through-multiple-lenses/#conclusion" class="hash-link" aria-label="Direct link to Conclusion" title="Direct link to Conclusion" translate="no">​</a></h2>
<div class="theme-admonition theme-admonition-success admonition_xJq3 alert alert--success"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>Core Insight</div><div class="admonitionContent_BuS1"><p>The boundaries between "us" and "them" are not fixed but are products of social construction. Recognizing the artificiality and fluidity of these divisions is the first step toward a more inclusive and just society.</p></div></div>
<p>The future challenge lies in how to acknowledge and respect differences while striving to find and build a more inclusive "greater us" that promotes common welfare. This requires us to view the world's differences and problems with a more macro, nuanced, and empathetic perspective.</p>
<hr>
<p><em>This article is compiled from the speech content of the Forward with Her Activity Mentor Group Q&amp;A session on July 27, 2025.</em></p>]]></content:encoded>
            <category>Forward with Her Activity</category>
            <category>Mentor Q&amp;A</category>
            <category>Identity Recognition</category>
            <category>Social Identity Theory</category>
            <category>Intersectionality</category>
        </item>
        <item>
            <title><![CDATA[Tutorial Video Resource Collection]]></title>
            <link>https://programming.chanmeng.org/blog/video-resources/</link>
            <guid>https://programming.chanmeng.org/blog/video-resources/</guid>
            <pubDate>Sat, 01 Feb 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[This collection organizes all tutorial video resources from our documentation for your convenience in centralized learning and viewing.]]></description>
            <content:encoded><![CDATA[<p>This collection organizes all tutorial video resources from our documentation for your convenience in centralized learning and viewing.</p>
<!-- -->
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="coze-workflow-development-tutorial">Coze Workflow Development Tutorial<a href="https://programming.chanmeng.org/blog/video-resources/#coze-workflow-development-tutorial" class="hash-link" aria-label="Direct link to Coze Workflow Development Tutorial" title="Direct link to Coze Workflow Development Tutorial" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="environment-configuration-section">Environment Configuration Section<a href="https://programming.chanmeng.org/blog/video-resources/#environment-configuration-section" class="hash-link" aria-label="Direct link to Environment Configuration Section" title="Direct link to Environment Configuration Section" translate="no">​</a></h3>
<h4 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="part-1-basic-configuration">Part 1: Basic Configuration<a href="https://programming.chanmeng.org/blog/video-resources/#part-1-basic-configuration" class="hash-link" aria-label="Direct link to Part 1: Basic Configuration" title="Direct link to Part 1: Basic Configuration" translate="no">​</a></h4>
<div style="width:100%;height:100%"></div>
<h4 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="part-2-advanced-setup">Part 2: Advanced Setup<a href="https://programming.chanmeng.org/blog/video-resources/#part-2-advanced-setup" class="hash-link" aria-label="Direct link to Part 2: Advanced Setup" title="Direct link to Part 2: Advanced Setup" translate="no">​</a></h4>
<div style="width:100%;height:100%"></div>
<h4 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="part-3-complete-workflow">Part 3: Complete Workflow<a href="https://programming.chanmeng.org/blog/video-resources/#part-3-complete-workflow" class="hash-link" aria-label="Direct link to Part 3: Complete Workflow" title="Direct link to Part 3: Complete Workflow" translate="no">​</a></h4>
<div style="width:100%;height:100%"></div>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="docusaurus-tutorial-series">Docusaurus Tutorial Series<a href="https://programming.chanmeng.org/blog/video-resources/#docusaurus-tutorial-series" class="hash-link" aria-label="Direct link to Docusaurus Tutorial Series" title="Direct link to Docusaurus Tutorial Series" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="complete-website-development-tutorial">Complete Website Development Tutorial<a href="https://programming.chanmeng.org/blog/video-resources/#complete-website-development-tutorial" class="hash-link" aria-label="Direct link to Complete Website Development Tutorial" title="Direct link to Complete Website Development Tutorial" translate="no">​</a></h3>
<h4 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="part-1-project-initialization">Part 1: Project Initialization<a href="https://programming.chanmeng.org/blog/video-resources/#part-1-project-initialization" class="hash-link" aria-label="Direct link to Part 1: Project Initialization" title="Direct link to Part 1: Project Initialization" translate="no">​</a></h4>
<div style="width:100%;height:100%"></div>
<p>Create project and perform basic configuration.</p>
<h4 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="part-2-content-writing">Part 2: Content Writing<a href="https://programming.chanmeng.org/blog/video-resources/#part-2-content-writing" class="hash-link" aria-label="Direct link to Part 2: Content Writing" title="Direct link to Part 2: Content Writing" translate="no">​</a></h4>
<div style="width:100%;height:100%"></div>
<p>Learn how to write and organize documentation content.</p>
<h4 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="part-3-theme-customization">Part 3: Theme Customization<a href="https://programming.chanmeng.org/blog/video-resources/#part-3-theme-customization" class="hash-link" aria-label="Direct link to Part 3: Theme Customization" title="Direct link to Part 3: Theme Customization" translate="no">​</a></h4>
<div style="width:100%;height:100%"></div>
<p>Customize website theme and styles.</p>
<h4 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="part-4-part-a-deployment-preparation">Part 4 (Part A): Deployment Preparation<a href="https://programming.chanmeng.org/blog/video-resources/#part-4-part-a-deployment-preparation" class="hash-link" aria-label="Direct link to Part 4 (Part A): Deployment Preparation" title="Direct link to Part 4 (Part A): Deployment Preparation" translate="no">​</a></h4>
<div style="width:100%;height:100%"></div>
<p>Pre-deployment preparation and configuration.</p>
<h4 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="part-4-part-b-vercel-deployment">Part 4 (Part B): Vercel Deployment<a href="https://programming.chanmeng.org/blog/video-resources/#part-4-part-b-vercel-deployment" class="hash-link" aria-label="Direct link to Part 4 (Part B): Vercel Deployment" title="Direct link to Part 4 (Part B): Vercel Deployment" translate="no">​</a></h4>
<div style="width:100%;height:100%"></div>
<p>Deploy website to Vercel platform.</p>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="ai-drawing-tutorial">AI Drawing Tutorial<a href="https://programming.chanmeng.org/blog/video-resources/#ai-drawing-tutorial" class="hash-link" aria-label="Direct link to AI Drawing Tutorial" title="Direct link to AI Drawing Tutorial" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="logo-design-basics">LOGO Design Basics<a href="https://programming.chanmeng.org/blog/video-resources/#logo-design-basics" class="hash-link" aria-label="Direct link to LOGO Design Basics" title="Direct link to LOGO Design Basics" translate="no">​</a></h3>
<h4 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="tutorial-video-1-logo-design-introduction">Tutorial Video 1: LOGO Design Introduction<a href="https://programming.chanmeng.org/blog/video-resources/#tutorial-video-1-logo-design-introduction" class="hash-link" aria-label="Direct link to Tutorial Video 1: LOGO Design Introduction" title="Direct link to Tutorial Video 1: LOGO Design Introduction" translate="no">​</a></h4>
<div style="width:100%;height:100%"></div>
<h4 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="tutorial-video-2-advanced-techniques">Tutorial Video 2: Advanced Techniques<a href="https://programming.chanmeng.org/blog/video-resources/#tutorial-video-2-advanced-techniques" class="hash-link" aria-label="Direct link to Tutorial Video 2: Advanced Techniques" title="Direct link to Tutorial Video 2: Advanced Techniques" translate="no">​</a></h4>
<div style="width:100%;height:100%"></div>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="ai-dialogue-system">AI Dialogue System<a href="https://programming.chanmeng.org/blog/video-resources/#ai-dialogue-system" class="hash-link" aria-label="Direct link to AI Dialogue System" title="Direct link to AI Dialogue System" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="environment-configuration-tutorial">Environment Configuration Tutorial<a href="https://programming.chanmeng.org/blog/video-resources/#environment-configuration-tutorial" class="hash-link" aria-label="Direct link to Environment Configuration Tutorial" title="Direct link to Environment Configuration Tutorial" translate="no">​</a></h3>
<h4 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="environment-configuration-guide">Environment Configuration Guide<a href="https://programming.chanmeng.org/blog/video-resources/#environment-configuration-guide" class="hash-link" aria-label="Direct link to Environment Configuration Guide" title="Direct link to Environment Configuration Guide" translate="no">​</a></h4>
<div style="width:100%;height:100%"></div>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="tips">Tips<a href="https://programming.chanmeng.org/blog/video-resources/#tips" class="hash-link" aria-label="Direct link to Tips" title="Direct link to Tips" translate="no">​</a></h2>
<ul>
<li class="">Video resources are from YouTube, please ensure your network environment can access it properly</li>
<li class="">It's recommended to watch in order, as each series builds progressively</li>
<li class="">If videos won't play, you can visit the YouTube links directly</li>
<li class="">Feel free to leave comments for discussion and exchange</li>
</ul>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="regular-updates">Regular Updates<a href="https://programming.chanmeng.org/blog/video-resources/#regular-updates" class="hash-link" aria-label="Direct link to Regular Updates" title="Direct link to Regular Updates" translate="no">​</a></h2>
<p>We regularly update and add new video tutorial resources. Welcome back to check for the latest content. If you find any issues or have good suggestions, please let us know.</p>]]></content:encoded>
            <category>Tutorial</category>
            <category>Video Resources</category>
        </item>
        <item>
            <title><![CDATA[How to Plan for Overseas Study and Career Development]]></title>
            <link>https://programming.chanmeng.org/blog/overseas-study-career-planning/</link>
            <guid>https://programming.chanmeng.org/blog/overseas-study-career-planning/</guid>
            <pubDate>Wed, 11 Dec 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[Video]]></description>
            <content:encoded><![CDATA[<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="video">Video<a href="https://programming.chanmeng.org/blog/overseas-study-career-planning/#video" class="hash-link" aria-label="Direct link to Video" title="Direct link to Video" translate="no">​</a></h2>
<div style="width:100%;height:100%"></div>
<!-- -->
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="about-further-education">About Further Education<a href="https://programming.chanmeng.org/blog/overseas-study-career-planning/#about-further-education" class="hash-link" aria-label="Direct link to About Further Education" title="Direct link to About Further Education" translate="no">​</a></h2>
<p>When applying for overseas graduate programs, you need to pay attention to the following key points:</p>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="the-value-of-work-experience">The Value of Work Experience<a href="https://programming.chanmeng.org/blog/overseas-study-career-planning/#the-value-of-work-experience" class="hash-link" aria-label="Direct link to The Value of Work Experience" title="Direct link to The Value of Work Experience" translate="no">​</a></h3>
<ul>
<li class="">Domestic development work experience can provide some advantage</li>
<li class="">However, the impact is relatively limited</li>
<li class="">Focus on highlighting practice experience relevant to your field</li>
</ul>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="overseas-employment-considerations">Overseas Employment Considerations<a href="https://programming.chanmeng.org/blog/overseas-study-career-planning/#overseas-employment-considerations" class="hash-link" aria-label="Direct link to Overseas Employment Considerations" title="Direct link to Overseas Employment Considerations" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="key-factors-in-major-selection">Key Factors in Major Selection<a href="https://programming.chanmeng.org/blog/overseas-study-career-planning/#key-factors-in-major-selection" class="hash-link" aria-label="Direct link to Key Factors in Major Selection" title="Direct link to Key Factors in Major Selection" translate="no">​</a></h3>
<ol>
<li class="">
<p><strong>Job Market Demand Orientation</strong></p>
<ul>
<li class="">Research talent demand in your target country</li>
<li class="">Understand popular industries and positions</li>
<li class="">Analyze future market trends</li>
</ul>
</li>
<li class="">
<p><strong>Immigration Policy Considerations</strong></p>
<ul>
<li class="">Whether you intend to immigrate locally</li>
<li class="">Understand local immigration policies</li>
<li class="">Assess the relevance between your major and immigration</li>
</ul>
</li>
<li class="">
<p><strong>Personal Career Planning</strong></p>
<ul>
<li class="">Clarify long-term career goals</li>
<li class="">Evaluate professional development prospects</li>
<li class="">Consider personal interests and abilities</li>
</ul>
</li>
</ol>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="suggestions-and-reminders">Suggestions and Reminders<a href="https://programming.chanmeng.org/blog/overseas-study-career-planning/#suggestions-and-reminders" class="hash-link" aria-label="Direct link to Suggestions and Reminders" title="Direct link to Suggestions and Reminders" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="pre-application-preparation">Pre-Application Preparation<a href="https://programming.chanmeng.org/blog/overseas-study-career-planning/#pre-application-preparation" class="hash-link" aria-label="Direct link to Pre-Application Preparation" title="Direct link to Pre-Application Preparation" translate="no">​</a></h3>
<ol>
<li class="">Thoroughly research your target country</li>
<li class="">Understand the job market situation</li>
<li class="">Study changes in immigration policies</li>
<li class="">Assess your personal competitiveness</li>
</ol>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="planning-key-points">Planning Key Points<a href="https://programming.chanmeng.org/blog/overseas-study-career-planning/#planning-key-points" class="hash-link" aria-label="Direct link to Planning Key Points" title="Direct link to Planning Key Points" translate="no">​</a></h3>
<ul>
<li class="">Set clear goals</li>
<li class="">Create a detailed timeline</li>
<li class="">Prepare sufficient funds</li>
<li class="">Get language preparation done in advance</li>
</ul>
<div class="theme-admonition theme-admonition-tip admonition_xJq3 alert alert--success"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>Recommendation</div><div class="admonitionContent_BuS1"><p>Before making a decision, it's recommended to:</p><ul>
<li class="">Talk with people working/studying overseas</li>
<li class="">Attend relevant lectures and sharing sessions</li>
<li class="">Follow policy changes in your target country</li>
<li class="">Develop multiple backup plans</li>
</ul></div></div>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="action-plan">Action Plan<a href="https://programming.chanmeng.org/blog/overseas-study-career-planning/#action-plan" class="hash-link" aria-label="Direct link to Action Plan" title="Direct link to Action Plan" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="step-1-information-gathering">Step 1: Information Gathering<a href="https://programming.chanmeng.org/blog/overseas-study-career-planning/#step-1-information-gathering" class="hash-link" aria-label="Direct link to Step 1: Information Gathering" title="Direct link to Step 1: Information Gathering" translate="no">​</a></h3>
<ul>
<li class="">Research target institutions and programs</li>
<li class="">Understand application requirements and deadlines</li>
<li class="">Collect previous years' admission data</li>
</ul>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="step-2-capability-enhancement">Step 2: Capability Enhancement<a href="https://programming.chanmeng.org/blog/overseas-study-career-planning/#step-2-capability-enhancement" class="hash-link" aria-label="Direct link to Step 2: Capability Enhancement" title="Direct link to Step 2: Capability Enhancement" translate="no">​</a></h3>
<ul>
<li class="">Improve language proficiency</li>
<li class="">Accumulate relevant work experience</li>
<li class="">Prepare for standardized tests</li>
</ul>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="step-3-application-preparation">Step 3: Application Preparation<a href="https://programming.chanmeng.org/blog/overseas-study-career-planning/#step-3-application-preparation" class="hash-link" aria-label="Direct link to Step 3: Application Preparation" title="Direct link to Step 3: Application Preparation" translate="no">​</a></h3>
<ul>
<li class="">Write personal statement</li>
<li class="">Prepare recommendation letters</li>
<li class="">Organize application materials</li>
</ul>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="step-4-long-term-planning">Step 4: Long-term Planning<a href="https://programming.chanmeng.org/blog/overseas-study-career-planning/#step-4-long-term-planning" class="hash-link" aria-label="Direct link to Step 4: Long-term Planning" title="Direct link to Step 4: Long-term Planning" translate="no">​</a></h3>
<ul>
<li class="">Develop career development path</li>
<li class="">Build professional network</li>
<li class="">Follow industry trends</li>
</ul>]]></content:encoded>
            <category>Study Abroad</category>
            <category>Career Planning</category>
            <category>Overseas Development</category>
        </item>
        <item>
            <title><![CDATA[Complete Guide to Downloading Tencent Meeting Recordings]]></title>
            <link>https://programming.chanmeng.org/blog/tencent-meeting-recording-download/</link>
            <guid>https://programming.chanmeng.org/blog/tencent-meeting-recording-download/</guid>
            <pubDate>Sun, 24 Nov 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[This tutorial will teach you how to download Tencent Meeting recording videos. The entire process doesn't require programming knowledge - just follow the steps.]]></description>
            <content:encoded><![CDATA[<div class="theme-admonition theme-admonition-tip admonition_xJq3 alert alert--success"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>Introduction</div><div class="admonitionContent_BuS1"><p>This tutorial will teach you how to download Tencent Meeting recording videos. The entire process doesn't require programming knowledge - just follow the steps.</p></div></div>
<!-- -->
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="prerequisites">Prerequisites<a href="https://programming.chanmeng.org/blog/tencent-meeting-recording-download/#prerequisites" class="hash-link" aria-label="Direct link to Prerequisites" title="Direct link to Prerequisites" translate="no">​</a></h2>
<p>You will need:</p>
<ul>
<li class="">A computer (Windows system)</li>
<li class="">Google Chrome browser</li>
<li class="">Git Bash software (we'll show you how to install it)</li>
</ul>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="detailed-steps">Detailed Steps<a href="https://programming.chanmeng.org/blog/tencent-meeting-recording-download/#detailed-steps" class="hash-link" aria-label="Direct link to Detailed Steps" title="Direct link to Detailed Steps" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="step-1-install-necessary-software">Step 1: Install Necessary Software<a href="https://programming.chanmeng.org/blog/tencent-meeting-recording-download/#step-1-install-necessary-software" class="hash-link" aria-label="Direct link to Step 1: Install Necessary Software" title="Direct link to Step 1: Install Necessary Software" translate="no">​</a></h3>
<ol>
<li class="">If you haven't installed Git Bash yet:<!-- -->
<ul>
<li class="">Visit the official website: <a href="https://git-scm.com/downloads" target="_blank" rel="noopener noreferrer" class="">Git Download Page</a></li>
<li class="">Click "Download for Windows"</li>
<li class="">Double-click the installer after download completes</li>
<li class="">Click "Next" through the installation using default settings</li>
</ul>
</li>
</ol>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="step-2-get-video-download-information">Step 2: Get Video Download Information<a href="https://programming.chanmeng.org/blog/tencent-meeting-recording-download/#step-2-get-video-download-information" class="hash-link" aria-label="Direct link to Step 2: Get Video Download Information" title="Direct link to Step 2: Get Video Download Information" translate="no">​</a></h3>
<ol>
<li class="">Open the Tencent Meeting recording link in Google Chrome</li>
<li class="">Click play on the video and wait for it to start playing</li>
<li class="">Press the <code>F12</code> key on your keyboard (some laptops may need <code>Fn + F12</code>)</li>
<li class="">Find and click the "Network" tab at the top of the developer tools window</li>
<li class="">Find and click the "Media" option under Network</li>
<li class="">Refresh the page and start playing the video again</li>
<li class="">Wait a few seconds and find the file ending with <code>.mp4</code></li>
<li class="">Right-click on this <code>.mp4</code> file</li>
<li class="">Select "Copy" → "Copy as cURL(bash)"</li>
</ol>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="step-3-modify-the-download-command">Step 3: Modify the Download Command<a href="https://programming.chanmeng.org/blog/tencent-meeting-recording-download/#step-3-modify-the-download-command" class="hash-link" aria-label="Direct link to Step 3: Modify the Download Command" title="Direct link to Step 3: Modify the Download Command" translate="no">​</a></h3>
<div class="theme-tabs-container tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">Before Modification</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">After Modification</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">curl 'https://example.com/video.mp4' \</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">-H 'range: bytes=14200808-314114094' \</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">-H 'if-range: "17c5ccf6d75f9bccce2a71f5a32dbea4-3"' \</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">-H 'accept: */*' \</span><br></span></code></pre></div></div></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">curl 'https://example.com/video.mp4' \</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">-H 'accept: */*' \</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">--output /d/meeting_video.mp4</span><br></span></code></pre></div></div></div></div></div>
<div class="theme-admonition theme-admonition-warning admonition_xJq3 alert alert--warning"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>Important Note</div><div class="admonitionContent_BuS1"><p>You must delete the lines containing <code>range:</code> and <code>if-range:</code> - this is the key step to ensure you download the complete video!</p></div></div>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="step-4-download-the-video">Step 4: Download the Video<a href="https://programming.chanmeng.org/blog/tencent-meeting-recording-download/#step-4-download-the-video" class="hash-link" aria-label="Direct link to Step 4: Download the Video" title="Direct link to Step 4: Download the Video" translate="no">​</a></h3>
<ol>
<li class="">Open Git Bash (find it in the Start menu)</li>
<li class="">Paste the modified command</li>
<li class="">Press Enter to execute</li>
<li class="">Wait for the download to complete</li>
</ol>
<p>Download process example:</p>
<p><img decoding="async" loading="lazy" alt="Tencent Meeting Video Download Process Screenshot" src="https://programming.chanmeng.org/assets/images/2024-11-24-tencent-meeting-recording-5dfce77d2bd5d80f1ed57bcf23c2d756.png" width="1457" height="990" class="img_ev3q"></p>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="frequently-asked-questions">Frequently Asked Questions<a href="https://programming.chanmeng.org/blog/tencent-meeting-recording-download/#frequently-asked-questions" class="hash-link" aria-label="Direct link to Frequently Asked Questions" title="Direct link to Frequently Asked Questions" translate="no">​</a></h2>
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>1. Why is my downloaded video incomplete?</summary><div><div class="collapsibleContent_i85q"><ul>
<li class="">The most likely reason is that you didn't delete the range field</li>
<li class="">Please go back to step 3 and make sure you deleted all range-related lines</li>
<li class="">Get the download command again and start over from the beginning</li>
</ul></div></div></details>
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>2. What if I can't find the range field?</summary><div><div class="collapsibleContent_i85q"><ul>
<li class="">Carefully check if the copied command contains <code>range:</code> or <code>if-range:</code></li>
<li class="">If you really can't find it, it may not need to be deleted - just add the save path</li>
<li class="">If unsure, send the command to a tech-savvy friend for help</li>
</ul></div></div></details>
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>3. How to change the save location?</summary><div><div class="collapsibleContent_i85q"><p>You can modify the <code>--output</code> parameter:</p><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain"># D drive root directory</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">--output /d/video-name.mp4</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"># Videos folder on D drive</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">--output /d/Videos/video-name.mp4</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"># Desktop</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">--output /c/Users/your-username/Desktop/video-name.mp4</span><br></span></code></pre></div></div></div></div></details>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="important-notes">Important Notes<a href="https://programming.chanmeng.org/blog/tencent-meeting-recording-download/#important-notes" class="hash-link" aria-label="Direct link to Important Notes" title="Direct link to Important Notes" translate="no">​</a></h2>
<ul>
<li class="">Ensure you have enough disk space</li>
<li class="">Don't close Git Bash during the download</li>
<li class="">Keep your network connection stable</li>
<li class="">Don't shut down or sleep your computer before download completes</li>
<li class="">If download speed is very slow, try getting the download command again</li>
</ul>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="advanced-tips">Advanced Tips<a href="https://programming.chanmeng.org/blog/tencent-meeting-recording-download/#advanced-tips" class="hash-link" aria-label="Direct link to Advanced Tips" title="Direct link to Advanced Tips" translate="no">​</a></h2>
<ul>
<li class="">Create a dedicated folder for downloaded videos</li>
<li class="">Give video files meaningful names</li>
<li class="">Verify the video plays correctly after download</li>
<li class="">Back up important video files promptly</li>
</ul>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="final-reminder">Final Reminder<a href="https://programming.chanmeng.org/blog/tencent-meeting-recording-download/#final-reminder" class="hash-link" aria-label="Direct link to Final Reminder" title="Direct link to Final Reminder" translate="no">​</a></h2>
<div class="theme-admonition theme-admonition-caution admonition_xJq3 alert alert--warning"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>Important</div><div class="admonitionContent_BuS1"><ol>
<li class="">Please respect video copyrights and don't distribute downloaded videos without permission</li>
<li class="">Downloaded videos are for personal study use only</li>
<li class="">Back up important videos promptly</li>
<li class="">If you encounter problems, start over from step 1</li>
<li class="">Special emphasis: Don't forget to delete the range field - this is the most critical step!</li>
</ol></div></div>]]></content:encoded>
            <category>Tutorial</category>
            <category>Tencent Meeting</category>
            <category>Video Download</category>
        </item>
        <item>
            <title><![CDATA[Design System: AI Programming Education Platform Guide]]></title>
            <link>https://programming.chanmeng.org/blog/design-system-guide/</link>
            <guid>https://programming.chanmeng.org/blog/design-system-guide/</guid>
            <pubDate>Tue, 19 Nov 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[{/ Creative style block /}]]></description>
            <content:encoded><![CDATA[
<!-- -->
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="design-philosophy">Design Philosophy<a href="https://programming.chanmeng.org/blog/design-system-guide/#design-philosophy" class="hash-link" aria-label="Direct link to Design Philosophy" title="Direct link to Design Philosophy" translate="no">​</a></h2>
<p>Inspired by minimalist geometric artists, our design system emphasizes:</p>
<ul>
<li class="">Clean lines and basic geometric shapes (squares, circles, triangles)</li>
<li class="">Limited but high-contrast color palette</li>
<li class="">Grid-based layouts</li>
<li class="">Negative space as a design element</li>
<li class="">Systematic repetition of visual elements</li>
<li class="">Focus on functionality and readability</li>
</ul>
<!-- -->
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="color-system">Color System<a href="https://programming.chanmeng.org/blog/design-system-guide/#color-system" class="hash-link" aria-label="Direct link to Color System" title="Direct link to Color System" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="primary-colors">Primary Colors<a href="https://programming.chanmeng.org/blog/design-system-guide/#primary-colors" class="hash-link" aria-label="Direct link to Primary Colors" title="Direct link to Primary Colors" translate="no">​</a></h3>
<div style="display:flex;flex-wrap:wrap;gap:10px"><div style="background-color:#1a237e;width:100px;height:100px;display:inline-block;margin:10px;border-radius:4px;text-align:center;color:white;padding:8px"><div>Deep Navy</div><div>#1a237e</div></div><div style="background-color:#ffffff;width:100px;height:100px;display:inline-block;margin:10px;border-radius:4px;text-align:center;color:#121212;padding:8px"><div>Pure White</div><div>#ffffff</div></div><div style="background-color:#121212;width:100px;height:100px;display:inline-block;margin:10px;border-radius:4px;text-align:center;color:white;padding:8px"><div>Geometric Black</div><div>#121212</div></div></div>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="secondary-colors">Secondary Colors<a href="https://programming.chanmeng.org/blog/design-system-guide/#secondary-colors" class="hash-link" aria-label="Direct link to Secondary Colors" title="Direct link to Secondary Colors" translate="no">​</a></h3>
<div style="display:flex;flex-wrap:wrap;gap:10px"><div style="background-color:#4a5fc1;width:100px;height:100px;display:inline-block;margin:10px;border-radius:4px;text-align:center;color:white;padding:8px"><div>Soft Blue</div><div>#4a5fc1</div></div><div style="background-color:#f5f6f7;width:100px;height:100px;display:inline-block;margin:10px;border-radius:4px;text-align:center;color:#121212;padding:8px"><div>Light Gray</div><div>#f5f6f7</div></div><div style="background-color:#ef5350;width:100px;height:100px;display:inline-block;margin:10px;border-radius:4px;text-align:center;color:white;padding:8px"><div>Accent Red</div><div>#ef5350</div></div></div>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="typography-system">Typography System<a href="https://programming.chanmeng.org/blog/design-system-guide/#typography-system" class="hash-link" aria-label="Direct link to Typography System" title="Direct link to Typography System" translate="no">​</a></h2>
<div class="theme-tabs-container tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">Base Font</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">Monospace Font</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><div class="language-css codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-css codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token variable" style="color:#36acaa">--ifm-font-family-base</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">'Space Grotesk'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> system-ui</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> -apple-system</span><span class="token punctuation" style="color:#393A34">;</span><br></span></code></pre></div></div></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><div class="language-css codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-css codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token variable" style="color:#36acaa">--ifm-font-family-monospace</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">'JetBrains Mono'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> SFMono-Regular</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> Monaco</span><span class="token punctuation" style="color:#393A34">;</span><br></span></code></pre></div></div></div></div></div>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="font-sizes">Font Sizes<a href="https://programming.chanmeng.org/blog/design-system-guide/#font-sizes" class="hash-link" aria-label="Direct link to Font Sizes" title="Direct link to Font Sizes" translate="no">​</a></h3>
<ul>
<li class="">Headings:<!-- -->
<ul>
<li class="">h1: 2.5rem (40px)</li>
<li class="">h2: 2rem (32px)</li>
<li class="">h3: 1.5rem (24px)</li>
</ul>
</li>
<li class="">Body: 1rem (16px)</li>
<li class="">Code: 0.9375rem (15px)</li>
</ul>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="layout-guidelines">Layout Guidelines<a href="https://programming.chanmeng.org/blog/design-system-guide/#layout-guidelines" class="hash-link" aria-label="Direct link to Layout Guidelines" title="Direct link to Layout Guidelines" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="grid-system">Grid System<a href="https://programming.chanmeng.org/blog/design-system-guide/#grid-system" class="hash-link" aria-label="Direct link to Grid System" title="Direct link to Grid System" translate="no">​</a></h3>
<ul>
<li class="">12-column grid</li>
<li class="">Gutter width: 24px</li>
<li class="">Maximum content width: 1200px</li>
<li class="">Responsive breakpoints:<!-- -->
<ul>
<li class="">Mobile: 320px</li>
<li class="">Tablet: 768px</li>
<li class="">Desktop: 1024px</li>
</ul>
</li>
</ul>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="spacing-scale">Spacing Scale<a href="https://programming.chanmeng.org/blog/design-system-guide/#spacing-scale" class="hash-link" aria-label="Direct link to Spacing Scale" title="Direct link to Spacing Scale" translate="no">​</a></h3>
<div class="language-css codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-css codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token variable" style="color:#36acaa">--space-xs</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">0.25</span><span class="token unit">rem</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain">  </span><span class="token comment" style="color:#999988;font-style:italic">/* 4px */</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token variable" style="color:#36acaa">--space-sm</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">0.5</span><span class="token unit">rem</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain">   </span><span class="token comment" style="color:#999988;font-style:italic">/* 8px */</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token variable" style="color:#36acaa">--space-md</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">1</span><span class="token unit">rem</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain">     </span><span class="token comment" style="color:#999988;font-style:italic">/* 16px */</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token variable" style="color:#36acaa">--space-lg</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">1.5</span><span class="token unit">rem</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain">   </span><span class="token comment" style="color:#999988;font-style:italic">/* 24px */</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token variable" style="color:#36acaa">--space-xl</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">2</span><span class="token unit">rem</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain">     </span><span class="token comment" style="color:#999988;font-style:italic">/* 32px */</span><br></span></code></pre></div></div>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="component-design">Component Design<a href="https://programming.chanmeng.org/blog/design-system-guide/#component-design" class="hash-link" aria-label="Direct link to Component Design" title="Direct link to Component Design" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="navigation-bar">Navigation Bar<a href="https://programming.chanmeng.org/blog/design-system-guide/#navigation-bar" class="hash-link" aria-label="Direct link to Navigation Bar" title="Direct link to Navigation Bar" translate="no">​</a></h3>
<ul>
<li class="">Fixed header with geometric logo</li>
<li class="">Horizontal menu for desktop</li>
<li class="">Hamburger menu for mobile</li>
<li class="">Geometric shapes as active state indicators</li>
</ul>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="hero-section">Hero Section<a href="https://programming.chanmeng.org/blog/design-system-guide/#hero-section" class="hash-link" aria-label="Direct link to Hero Section" title="Direct link to Hero Section" translate="no">​</a></h3>
<div class="language-css codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-css codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token selector class" style="color:#00009f">.hero</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token property" style="color:#36acaa">background</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">linear-gradient</span><span class="token punctuation" style="color:#393A34">(</span><span class="token number" style="color:#36acaa">135</span><span class="token unit">deg</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">var</span><span class="token punctuation" style="color:#393A34">(</span><span class="token variable" style="color:#36acaa">--primary-color</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">0</span><span class="token unit">%</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">var</span><span class="token punctuation" style="color:#393A34">(</span><span class="token variable" style="color:#36acaa">--secondary-color</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">100</span><span class="token unit">%</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token property" style="color:#36acaa">clip-path</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">polygon</span><span class="token punctuation" style="color:#393A34">(</span><span class="token number" style="color:#36acaa">0</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">0</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">100</span><span class="token unit">%</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">0</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">100</span><span class="token unit">%</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">85</span><span class="token unit">%</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">0</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">100</span><span class="token unit">%</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token property" style="color:#36acaa">min-height</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">80</span><span class="token unit">vh</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="code-blocks">Code Blocks<a href="https://programming.chanmeng.org/blog/design-system-guide/#code-blocks" class="hash-link" aria-label="Direct link to Code Blocks" title="Direct link to Code Blocks" translate="no">​</a></h3>
<ul>
<li class="">Dark background: <code>#1e1e1e</code></li>
<li class="">Syntax highlighting inspired by geometric patterns</li>
<li class="">Border radius: 4px</li>
<li class="">Padding: 1.5rem</li>
</ul>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="cards">Cards<a href="https://programming.chanmeng.org/blog/design-system-guide/#cards" class="hash-link" aria-label="Direct link to Cards" title="Direct link to Cards" translate="no">​</a></h3>
<div class="language-css codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-css codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token selector class" style="color:#00009f">.card</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token property" style="color:#36acaa">border</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> none</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token property" style="color:#36acaa">border-radius</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">4</span><span class="token unit">px</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token property" style="color:#36acaa">box-shadow</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">0</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">4</span><span class="token unit">px</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">6</span><span class="token unit">px</span><span class="token plain"> </span><span class="token color function" style="color:#d73a49">rgba</span><span class="token color punctuation" style="color:#393A34">(</span><span class="token color number" style="color:#36acaa">0</span><span class="token color punctuation" style="color:#393A34">,</span><span class="token color"> </span><span class="token color number" style="color:#36acaa">0</span><span class="token color punctuation" style="color:#393A34">,</span><span class="token color"> </span><span class="token color number" style="color:#36acaa">0</span><span class="token color punctuation" style="color:#393A34">,</span><span class="token color"> </span><span class="token color number" style="color:#36acaa">0.1</span><span class="token color punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token property" style="color:#36acaa">transition</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> transform </span><span class="token number" style="color:#36acaa">0.2</span><span class="token unit">s</span><span class="token plain"> ease</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token selector class" style="color:#00009f">.card</span><span class="token selector pseudo-class" style="color:#00009f">:hover</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token property" style="color:#36acaa">transform</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">translateY</span><span class="token punctuation" style="color:#393A34">(</span><span class="token number" style="color:#36acaa">-4</span><span class="token unit">px</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><br></span></code></pre></div></div>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="implementation-guide">Implementation Guide<a href="https://programming.chanmeng.org/blog/design-system-guide/#implementation-guide" class="hash-link" aria-label="Direct link to Implementation Guide" title="Direct link to Implementation Guide" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="1-update-docusaurusconfigjs">1. Update docusaurus.config.js<a href="https://programming.chanmeng.org/blog/design-system-guide/#1-update-docusaurusconfigjs" class="hash-link" aria-label="Direct link to 1. Update docusaurus.config.js" title="Direct link to 1. Update docusaurus.config.js" translate="no">​</a></h3>
<div class="language-javascript codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-javascript codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">module</span><span class="token punctuation" style="color:#393A34">.</span><span class="token property-access">exports</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token literal-property property" style="color:#36acaa">themeConfig</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token literal-property property" style="color:#36acaa">navbar</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token literal-property property" style="color:#36acaa">style</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">'dark'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token literal-property property" style="color:#36acaa">logo</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token literal-property property" style="color:#36acaa">alt</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">'Site Logo'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token literal-property property" style="color:#36acaa">src</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">'img/logo.svg'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token literal-property property" style="color:#36acaa">items</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token comment" style="color:#999988;font-style:italic">// Navigation items</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token literal-property property" style="color:#36acaa">prism</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token literal-property property" style="color:#36acaa">theme</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">require</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#e3116c">'prism-react-renderer/themes/nightOwl'</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">;</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="2-custom-css-variables">2. Custom CSS Variables<a href="https://programming.chanmeng.org/blog/design-system-guide/#2-custom-css-variables" class="hash-link" aria-label="Direct link to 2. Custom CSS Variables" title="Direct link to 2. Custom CSS Variables" translate="no">​</a></h3>
<p>In <code>src/css/custom.css</code>:</p>
<div class="language-css codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-css codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token selector pseudo-class" style="color:#00009f">:root</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token variable" style="color:#36acaa">--ifm-color-primary</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token hexcode color">#1a237e</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token variable" style="color:#36acaa">--ifm-color-primary-dark</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token hexcode color">#172069</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token variable" style="color:#36acaa">--ifm-color-primary-darker</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token hexcode color">#151e63</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token variable" style="color:#36acaa">--ifm-color-primary-darkest</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token hexcode color">#111851</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token variable" style="color:#36acaa">--ifm-color-primary-light</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token hexcode color">#1d2893</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token variable" style="color:#36acaa">--ifm-color-primary-lighter</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token hexcode color">#1f2a99</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token variable" style="color:#36acaa">--ifm-color-primary-lightest</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token hexcode color">#232fab</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token variable" style="color:#36acaa">--ifm-code-font-size</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">0.9375</span><span class="token unit">rem</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token variable" style="color:#36acaa">--ifm-font-size-base</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">16</span><span class="token unit">px</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token variable" style="color:#36acaa">--ifm-line-height-base</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">1.5</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token variable" style="color:#36acaa">--ifm-spacing-horizontal</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">var</span><span class="token punctuation" style="color:#393A34">(</span><span class="token variable" style="color:#36acaa">--space-md</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="3-homepage-structure">3. Homepage Structure<a href="https://programming.chanmeng.org/blog/design-system-guide/#3-homepage-structure" class="hash-link" aria-label="Direct link to 3. Homepage Structure" title="Direct link to 3. Homepage Structure" translate="no">​</a></h3>
<p>In <code>src/pages/index.js</code>:</p>
<div class="language-javascript codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-javascript codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token keyword module" style="color:#00009f">import</span><span class="token plain"> </span><span class="token imports maybe-class-name">React</span><span class="token plain"> </span><span class="token keyword module" style="color:#00009f">from</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">'react'</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword module" style="color:#00009f">import</span><span class="token plain"> </span><span class="token imports maybe-class-name">Layout</span><span class="token plain"> </span><span class="token keyword module" style="color:#00009f">from</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">'@theme/Layout'</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword module" style="color:#00009f">import</span><span class="token plain"> </span><span class="token imports maybe-class-name">Link</span><span class="token plain"> </span><span class="token keyword module" style="color:#00009f">from</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">'@docusaurus/Link'</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword module" style="color:#00009f">export</span><span class="token plain"> </span><span class="token keyword module" style="color:#00009f">default</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">function</span><span class="token plain"> </span><span class="token function maybe-class-name" style="color:#d73a49">Home</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token keyword control-flow" style="color:#00009f">return</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token operator" style="color:#393A34">&lt;</span><span class="token maybe-class-name">Layout</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      title</span><span class="token operator" style="color:#393A34">=</span><span class="token string" style="color:#e3116c">"AI Programming Education"</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      description</span><span class="token operator" style="color:#393A34">=</span><span class="token string" style="color:#e3116c">"Learn AI programming through collaborative examples"</span><span class="token operator" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token operator" style="color:#393A34">&lt;</span><span class="token plain">header className</span><span class="token operator" style="color:#393A34">=</span><span class="token string" style="color:#e3116c">"hero"</span><span class="token operator" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token operator" style="color:#393A34">&lt;</span><span class="token plain">div className</span><span class="token operator" style="color:#393A34">=</span><span class="token string" style="color:#e3116c">"container"</span><span class="token operator" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">          </span><span class="token operator" style="color:#393A34">&lt;</span><span class="token plain">h1 className</span><span class="token operator" style="color:#393A34">=</span><span class="token string" style="color:#e3116c">"hero__title"</span><span class="token operator" style="color:#393A34">&gt;</span><span class="token maybe-class-name">Master</span><span class="token plain"> </span><span class="token constant" style="color:#36acaa">AI</span><span class="token plain"> </span><span class="token maybe-class-name">Programming</span><span class="token operator" style="color:#393A34">&lt;</span><span class="token operator" style="color:#393A34">/</span><span class="token plain">h1</span><span class="token operator" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">          </span><span class="token operator" style="color:#393A34">&lt;</span><span class="token plain">p className</span><span class="token operator" style="color:#393A34">=</span><span class="token string" style="color:#e3116c">"hero__subtitle"</span><span class="token operator" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            </span><span class="token maybe-class-name">Through</span><span class="token plain"> collaborative learning and practical examples</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">          </span><span class="token operator" style="color:#393A34">&lt;</span><span class="token operator" style="color:#393A34">/</span><span class="token plain">p</span><span class="token operator" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">          </span><span class="token operator" style="color:#393A34">&lt;</span><span class="token plain">div className</span><span class="token operator" style="color:#393A34">=</span><span class="token string" style="color:#e3116c">"buttons"</span><span class="token operator" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            </span><span class="token operator" style="color:#393A34">&lt;</span><span class="token maybe-class-name">Link</span><span class="token plain"> className</span><span class="token operator" style="color:#393A34">=</span><span class="token string" style="color:#e3116c">"button button--primary button--lg"</span><span class="token operator" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">              </span><span class="token maybe-class-name">Get</span><span class="token plain"> </span><span class="token maybe-class-name">Started</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            </span><span class="token operator" style="color:#393A34">&lt;</span><span class="token operator" style="color:#393A34">/</span><span class="token maybe-class-name">Link</span><span class="token operator" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">          </span><span class="token operator" style="color:#393A34">&lt;</span><span class="token operator" style="color:#393A34">/</span><span class="token plain">div</span><span class="token operator" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token operator" style="color:#393A34">&lt;</span><span class="token operator" style="color:#393A34">/</span><span class="token plain">div</span><span class="token operator" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token operator" style="color:#393A34">&lt;</span><span class="token operator" style="color:#393A34">/</span><span class="token plain">header</span><span class="token operator" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">{</span><span class="token comment" style="color:#999988;font-style:italic">/* Features section */</span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token operator" style="color:#393A34">&lt;</span><span class="token plain">main</span><span class="token operator" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token operator" style="color:#393A34">&lt;</span><span class="token plain">section className</span><span class="token operator" style="color:#393A34">=</span><span class="token string" style="color:#e3116c">"features"</span><span class="token operator" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">          </span><span class="token operator" style="color:#393A34">&lt;</span><span class="token plain">div className</span><span class="token operator" style="color:#393A34">=</span><span class="token string" style="color:#e3116c">"container"</span><span class="token operator" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            </span><span class="token punctuation" style="color:#393A34">{</span><span class="token comment" style="color:#999988;font-style:italic">/* Feature cards */</span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">          </span><span class="token operator" style="color:#393A34">&lt;</span><span class="token operator" style="color:#393A34">/</span><span class="token plain">div</span><span class="token operator" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token operator" style="color:#393A34">&lt;</span><span class="token operator" style="color:#393A34">/</span><span class="token plain">section</span><span class="token operator" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token operator" style="color:#393A34">&lt;</span><span class="token operator" style="color:#393A34">/</span><span class="token plain">main</span><span class="token operator" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token operator" style="color:#393A34">&lt;</span><span class="token operator" style="color:#393A34">/</span><span class="token maybe-class-name">Layout</span><span class="token operator" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><br></span></code></pre></div></div>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="animation-guidelines">Animation Guidelines<a href="https://programming.chanmeng.org/blog/design-system-guide/#animation-guidelines" class="hash-link" aria-label="Direct link to Animation Guidelines" title="Direct link to Animation Guidelines" translate="no">​</a></h2>
<ul>
<li class="">Use subtle transition effects (0.2-0.3s)</li>
<li class="">Prefer transform over opacity changes</li>
<li class="">Implement geometric reveal animations</li>
<li class="">Keep interactions smooth and purposeful</li>
</ul>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="responsive-design">Responsive Design<a href="https://programming.chanmeng.org/blog/design-system-guide/#responsive-design" class="hash-link" aria-label="Direct link to Responsive Design" title="Direct link to Responsive Design" translate="no">​</a></h2>
<ul>
<li class="">Mobile-first approach</li>
<li class="">Fluid typography</li>
<li class="">Flexible grid system</li>
<li class="">Adaptive layout changes at breakpoints</li>
</ul>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="accessibility">Accessibility<a href="https://programming.chanmeng.org/blog/design-system-guide/#accessibility" class="hash-link" aria-label="Direct link to Accessibility" title="Direct link to Accessibility" translate="no">​</a></h2>
<ul>
<li class="">WCAG 2.1 AA compliant</li>
<li class="">High contrast ratios</li>
<li class="">Clear focus states</li>
<li class="">Semantic HTML structure</li>
<li class="">Screen reader optimized</li>
</ul>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="performance-optimization">Performance Optimization<a href="https://programming.chanmeng.org/blog/design-system-guide/#performance-optimization" class="hash-link" aria-label="Direct link to Performance Optimization" title="Direct link to Performance Optimization" translate="no">​</a></h2>
<ul>
<li class="">Optimized images</li>
<li class="">Lazy loading implementation</li>
<li class="">Minimized CSS/JS bundles</li>
<li class="">System fonts when possible</li>
<li class="">Static asset caching</li>
</ul>]]></content:encoded>
            <category>Design</category>
            <category>UI/UX</category>
            <category>Documentation</category>
        </item>
    </channel>
</rss>