Nguyễn Đình Cường
0 comment
09 Nov, 2026
Với lập trình viên mới, portfolio là bằng chứng sống động nhất cho khả năng của bạn, nhiều khi thuyết phục hơn cả bảng điểm. Bài này hướng dẫn bạn quyết định nên đưa gì vào portfolio và dựng một trang cá nhân gọn gàng, responsive chỉ bằng HTML và CSS.
Người xem portfolio thường chỉ dành vài chục giây ban đầu, nên trang cần trả lời nhanh ba câu hỏi: bạn là ai, bạn làm được gì, và làm sao để liên hệ. Thay vì liệt kê tất cả những gì từng học, hãy chọn lọc:
Mỗi thẻ dự án nên có tên, một câu mô tả vấn đề nó giải quyết, công nghệ sử dụng, liên kết đến bản chạy thử và mã nguồn. Nếu có thể, hãy nói rõ vai trò của bạn (nhất là với dự án nhóm) và điều khó nhất bạn đã vượt qua. Đừng thổi phồng: người phỏng vấn hoàn toàn có thể hỏi sâu vào bất kỳ dòng nào bạn ghi, và bạn nên giải thích được mọi thứ trong đó.
<!DOCTYPE html>
<html lang="vi">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Nguyễn An - Lập trình viên Web</title>
<meta name="description" content="Portfolio của Nguyễn An, lập trình viên web.">
<link rel="stylesheet" href="style.css">
</head>
<body>
<header class="hero">
<h1>Xin chào, mình là An</h1>
<p>Lập trình viên web đang tập trung vào front-end và trải nghiệm người dùng.</p>
<a class="btn" href="#projects">Xem dự án</a>
</header>
<main>
<section id="projects">
<h2>Dự án</h2>
<div class="grid">
<article class="card">
<h3>Ứng dụng Todo</h3>
<p>Quản lý công việc có lưu dữ liệu cục bộ, viết bằng JavaScript thuần.</p>
<p class="tags">HTML · CSS · JavaScript</p>
<a href="https://example.com/demo">Demo</a> ·
<a href="https://github.com/example/todo">Mã nguồn</a>
</article>
<!-- thêm các thẻ dự án khác -->
</div>
</section>
<section id="skills">
<h2>Kỹ năng</h2>
<ul class="skills">
<li>HTML, CSS</li>
<li>JavaScript</li>
<li>Git, GitHub</li>
</ul>
</section>
<section id="contact">
<h2>Liên hệ</h2>
<p>Email: <a href="mailto:an@example.com">an@example.com</a></p>
</section>
</main>
<footer><p>© 2026 Nguyễn An</p></footer>
</body>
</html>Các địa chỉ và tên trong ví dụ chỉ là minh họa, hãy thay bằng thông tin thật của bạn.
:root {
--bg: #ffffff;
--text: #1f2937;
--muted: #6b7280;
--accent: #6d28d9;
}
* { box-sizing: border-box; }
body { margin: 0; font-family: system-ui, sans-serif; color: var(--text); line-height: 1.6; background: var(--bg); }
main, .hero, footer { padding: 32px 20px; max-width: 960px; margin: 0 auto; }
.hero { padding-top: 72px; }
.hero h1 { font-size: 2rem; margin: 0 0 8px; }
.btn { display: inline-block; margin-top: 16px; padding: 10px 20px; background: var(--accent); color: #fff; border-radius: 8px; text-decoration: none; }
.grid { display: grid; gap: 16px; }
.card { border: 1px solid #e5e7eb; border-radius: 12px; padding: 20px; }
.tags { color: var(--muted); font-size: .9rem; }
.skills { display: flex; flex-wrap: wrap; gap: 8px; padding: 0; list-style: none; }
.skills li { background: #f3f4f6; padding: 6px 12px; border-radius: 999px; }
@media (min-width: 700px) {
.hero h1 { font-size: 3rem; }
.grid { grid-template-columns: repeat(2, 1fr); }
}Việc dùng biến CSS (--accent) cho phép đổi màu chủ đạo ở một chỗ. Giao diện này mới chỉ là khởi đầu, bạn có thể thêm chế độ tối, hiệu ứng nhẹ hoặc ảnh chụp màn hình dự án.
Đẩy mã lên GitHub và bật GitHub Pages, hoặc dùng các dịch vụ lưu trữ tĩnh miễn phí khác. Có địa chỉ riêng để ghi vào CV là điểm cộng lớn. Nếu có thể, hãy đặt tên miền gọn như tên của bạn.
Nhà tuyển dụng thường bấm vào mã nguồn. Hãy viết README ngắn gồm mô tả, cách chạy, ảnh minh họa và những điều bạn đã học. Commit thường xuyên với thông điệp rõ ràng cũng nói lên thói quen làm việc của bạn.
Một portfolio tốt không cần cầu kỳ: nội dung chọn lọc, giao diện sạch, liên kết hoạt động và mọi thứ bạn nêu đều là sự thật. Hãy xem nó là sản phẩm sống, cập nhật mỗi khi bạn hoàn thành dự án mới.
Nếu cần các dự án thực hành chất lượng để bổ sung vào portfolio, bạn có thể tham khảo các khóa học tại codebem.com.
Nguyễn Đình Cường
0 comment