Chào mừng đến với Learning Notes của tôi
Một không gian rõ ràng, có hệ thống để tích lũy kiến thức và ghi lại quá trình học.
Chào mừng đến với hành trình học của tôi#
Mọi điều được ghi chép, phân tích và ôn luyện sẽ đọng lại lâu hơn. Đây là nơi tôi tập hợp ý tưởng, ghi lại kiến thức và mài giũa tư duy qua từng dòng viết.
Tôi không viết vì đã hiểu — tôi viết để hiểu.
Nguyên tắc cốt lõi#
- Học có chủ đích
- Tư duy bằng cách viết
- Sắp xếp kiến thức gọn gàng
Học có chủ đích nghĩa là quay lại những điểm mấu chúng đúng lúc. 1
Bạn sẽ tìm thấy gì ở đây?#
Dòng chảy kiến thức#
- Khái niệm đáng ghi nhớ
- Ghi chú thực hành & kỹ thuật
- Công cụ và mental models
Chủ đề#
- Programming
- Systems thinking
- Productivity & habits
- Personal growth & clarity
Demo Markdown & Style Playground#
Phần này để đảm bảo các component Markdown/MDX hoạt động trơn tru và giữ thiết kế đẹp mắt.
Ghi chú bên lề#
Sidenote giúp thêm ngữ cảnh mà không làm gián đoạn mạch đọc. 1
Kiểu chữ#
- In đậm để nhấn mạnh
- In nghiêng để chú ý
Những điều tôi không còn tininline code
Viết giúp kiến thức bền vững hơn.
Tabs#
console.log("Hello, World!");
function sum(a, b) {
return a + b;
}
console.log("Sum =", sum(5, 7));#include <iostream>
int main() {
std::cout << "Hello, World!" << std::endl;
int a = 5;
int b = 7;
std::cout << "Sum = " << a + b << std::endl;
return 0;
}print("Hello, World!")
a = 5
b = 7
print("Sum =", a + b)Các bước hướng dẫn#
- 01
Bước 1: Khởi tạo dự án
Chạy
create-next-appđể dựng bộ khung và cài các phụ thuộc ban đầu, giữ cho môi trường thật sạch trước khi tuỳ chỉnh thêm. - 02
Bước 2: Cài Tailwind CSS
Cấu hình
tailwind.config.js, thêm các directive@tailwindvàoglobals.css, đồng thời rà lại mọi kiểu chữ hoặc đoạn văn dài. Đoạn mô tả này cố tình dài dòng để thử đường nối thẳng đứng và đảm bảo nội dung nhiều dòng không làm hỏng bố cục. - 03
Bước 3: Triển khai
Đẩy code lên Git, tạo project trên Vercel và giám sát lần deploy đầu tiên. Nhắc thêm các việc như bật branch preview, mời reviewer và viết release note để đường nối vẫn đẹp kể cả khi mỗi bước có thêm nhiều hành động.
Tree View#
Tasks & kế hoạch#
- Khởi tạo không gian này
- Viết và xuất bản đều đặn
- Ôn luyện, chỉnh sửa và lặp lại
Links & tài nguyên#
Bảng ví dụ#
| Chủ đề | Mục tiêu học tập | Tình hình hiện tại | ||||
|---|---|---|---|---|---|---|
| Kế hoạch | Thời gian | Mức độ | Tiến độ | |||
| Bắt đầu | Kết thúc | Tiến độ (%) | Các mục đã làm | |||
| Kỹ năng kỹ thuật | ||||||
| Programming (Algorithms) | Đạt mức Intermediate | 01/10 | 15/12 | Intermediate | 85% | Hoàn thành phần Algorithms |
| System Design | Tìm hiểu kiến trúc cơ bản | 20/11 | — | Beginner | 30% | Đang học High-level Design |
| Tư duy & mô hình hóa | ||||||
| Systems Thinking | Nắm vững các mô hình nền tảng | 05/10 | — | Beginner Intermediate | 60% | Đã viết về Complexity |
| Áp dụng mô hình vào thực tế | 15/11 | 31/12 | Intermediate | 20% | ||
| Productivity | Áp dụng Atomic Habits | Không có mốc cố định | Advanced | 95% | Đã hình thành thói quen ổn định | |
| Tăng trưởng cá nhân | ||||||
| Personal Growth | Viết 5 bài phân tích | 01/11 | 15/12 | New Beginner | 40% | Đã viết 2 bài |
| Ôn lại sau 1 tháng | Đang phát triển | — | N/A | |||
| Tiến độ trung bình | Khoảng 60–70% | |||||
| Nhận xét | Đang đi đúng hướng và duy trì ổn định | |||||
Toán#
Một số công thức inline như , , .
The Standard Model Lagrangian
Nested Calculus & Matrices: Tổ hợp này dùng để kiểm tra xem các dấu căn, phân số lồng nhau và ma trận có bị vỡ layout hay không.
Phương trình trường Einstein: Dùng để test khả năng hiển thị chỉ số trên/dưới (indices).
Code blocks#
Test highlight chuỗi key-value, mảng lồng nhau và giá trị null/boolean.
{
"app_name": "MDX_Renderer",
"version": 1.0,
"features": ["syntax-highlighter", "math-jax"],
"config": {
"dark_mode": true,
"deprecated_field": null,
"max_retries": 5
}
}Test khả năng hiển thị thụt dòng (indentation) và list không dùng ngoặc.
server:
host: "0.0.0.0"
port: 8080
routes:
- path: /api/v1
handler: main_handler
- path: /health
check: trueTest màu của các từ khóa (SELECT, WHERE) so với tên bảng và chuỗi.
SELECT u.id, u.username, o.total
FROM users u
JOIN orders o ON u.id = o.user_id
WHERE o.status = 'completed'
AND o.created_at > '2023-01-01'
ORDER BY o.total DESC;Test ký tự đặc biệt như ::, &, 'a (lifetime) và macro println!.
struct User<'a> {
username: &'a str,
active: bool,
}
fn main() {
let user = User { username: "Dev", active: true };
println!("User: {}", user.username);
}Test màu nền/chữ của dòng thêm (+) và dòng xóa (-).
function calculateTotal(price, tax) {
- return price + price * tax;
+ return price * (1 + tax);
}Test mã màu hex #0f172a
.button-primary {
background-color: #0f172a;
color: rgba(255, 255, 255, 0.9);
}
.button-primary:hover {
transform: translateY(-2px);
}Custom Components#
MDX hiện đại cho phép nhúng phần tử tương tác ngay trong bài viết — rất tiện để trực quan hóa dữ liệu.
Demo biểu đồ#
Learning Experiments#
Đôi khi cách học tốt nhất là trải nghiệm thực tế. Dưới đây là log training từ một thử nghiệm model — nhắc ta rằng tiến bộ luôn tới từ từng bước nhỏ.
Tăng trưởng nhỏ nhưng đều đặn sẽ cộng dồn theo thời gian.
Epoch 1/5
166/166 ━━━━━━━━━━━━━━━━━━━━ 84s 415ms/step - loss: 0.1110 - val_loss: 0.0959
Epoch 2/5
166/166 ━━━━━━━━━━━━━━━━━━━━ 79s 472ms/step - loss: 0.0874 - val_loss: 0.0802
Epoch 3/5
166/166 ━━━━━━━━━━━━━━━━━━━━ 78s 463ms/step - loss: 0.0789 - val_loss: 0.0765
Epoch 4/5
166/166 ━━━━━━━━━━━━━━━━━━━━ 78s 467ms/step - loss: 0.0769 - val_loss: 0.0731
Epoch 5/5
166/166 ━━━━━━━━━━━━━━━━━━━━ 77s 464ms/step - loss: 0.0753 - val_loss: 0.0712Callouts#
Ghi chú về Hiệu suất
Việc render quá nhiều component trên phía client có thể làm giảm FCP (First Contentful Paint).
Hãy cân nhắc sử dụng Server Components khi có thể.
Không còn được hỗ trợ
Hàm getStaticProps sẽ bị loại bỏ trong phiên bản v15. Hãy chuyển sang dùng API fetch.
Không bao giờ commit các tệp .env lên GitHub.
Lời kết#
Cảm ơn bạn đã ghé thăm.
Không gian này sẽ tiếp tục phát triển, thay đổi và hoàn thiện — cùng với người xây dựng nó.
lượt xem
— lượt xem
Nguyen Xuan Hoa
nguyenxuanhoakhtn@gmail.com