Today I Learnt (TIL) — Mỗi ngày một điều mới, cả team cùng giỏi lên

"An investment in knowledge pays the best interest." — Benjamin Franklin

Bạn có bao giờ ngồi làm việc rồi bất ngờ phát hiện ra một trick nhỏ mà tiết kiệm cả tiếng đồng hồ? Hay đọc docs xong mới biết cái API mình dùng mấy tháng nay hóa ra còn có option cực hay mà chưa bao giờ thử? Cảm giác đó thật tuyệt — nhưng nếu chỉ giữ cho mình thì phí quá.

Today I Learnt (TIL) chính là cách để biến những khoảnh khắc "À ha!" đó thành tài sản chung của cả team.

TIL là gì?

TIL — viết tắt của Today I Learnt (Hôm nay tôi đã học được) — là thói quen ghi lại và chia sẻ một điều mới mình vừa học được trong ngày. Không cần dài, không cần hoàn hảo, không cần phải là kiến thức "cao siêu". Chỉ cần đúng một điều nhỏ, ngắn gọn, và thực tế.

Ví dụ một TIL đơn giản:

TIL: Git stash có thể đặt tên

Thay vì git stash rồi quên mất stash đó là gì, mình có thể dùng git stash push -m "fix login bug". Khi git stash list sẽ hiện tên rõ ràng, không phải đoán mò nữa.

Chỉ vài dòng. Ai đọc cũng hiểu. Ai cũng có thể áp dụng ngay.

TIL bắt nguồn từ đâu?

TIL ban đầu phổ biến trên Reddit với subreddit r/todayilearned — nơi mọi người chia sẻ những fact thú vị họ vừa biết. Cộng đồng developer nhanh chóng áp dụng ý tưởng này vào lĩnh vực kỹ thuật. Trên GitHub, hàng ngàn repo TIL cá nhân được tạo ra — nổi tiếng nhất là repo của Josh Branchaud (jbranchaud/til) với hơn 13.000 stars, chứa hàng trăm bài TIL ngắn được phân loại theo chủ đề.

Nhiều công ty công nghệ cũng biến TIL thành văn hoá nội bộ: Thoughtbot, Hashrocket, và nhiều team khác duy trì repo TIL chung để cả công ty cùng học.

Vì sao TIL phù hợp với Haposoft?

Với việc làm việc trên đa dạng các dự án, công nghệ và ngôn ngữ, Haposoft có một lợi thế lớn: khối lượng kiến thức thực chiến khổng lồ. Mỗi ngày, anh chị em đang giải quyết những bài toán khác nhau — từ AWS infrastructure cho khách hàng, đến tối ưu performance cho hệ thống, hay debug một issue kỳ lạ trên mobile app. Những bài học đó nếu không được ghi lại sẽ chỉ nằm trong đầu một người.

TIL giúp giải quyết vấn đề đó với chi phí gần như bằng không.

Đối với người viết:

  • Viết ra giúp bạn hiểu sâu hơn. Khi phải diễn đạt lại cho người khác hiểu, bạn buộc phải tư duy rõ ràng hơn.
  • Tạo thành "bộ nhớ ngoài" cá nhân. Ba tháng sau quên mất trick đó, chỉ cần tìm lại bài TIL của mình.
  • Xây dựng thương hiệu cá nhân trong team — người hay chia sẻ là người được tin tưởng.

Đối với người đọc:

  • Tiết kiệm thời gian. Thay vì mất 2 tiếng Google, bạn đọc TIL của đồng nghiệp trong 2 phút.
  • Học được kiến thức từ các dự án mình chưa từng tham gia.
  • Biết team mình đang làm gì, đang dùng công nghệ gì — tăng sự kết nối.

Đối với công ty:

  • Xây dựng knowledge base sống, luôn cập nhật.
  • Tạo văn hoá học tập liên tục mà không cần tổ chức training hình thức.
  • Rút ngắn thời gian onboarding cho thành viên mới.

Một bài TIL tốt trông như thế nào?

Không có format cứng nhắc, nhưng một bài TIL hiệu quả thường có ba phần:

  1. Tiêu đề rõ ràng — Đọc tiêu đề là biết bài viết nói về gì. Ví dụ: "TIL: Docker multi-stage build giảm image size 80%".
  2. Bối cảnh ngắn — Mình gặp vấn đề gì, đang làm gì mà phát hiện ra điều này? Một hai câu là đủ.
  3. Nội dung chính — Code snippet, command, config, hoặc giải thích ngắn. Người đọc có thể copy-paste và dùng ngay.

Một số ví dụ TIL cho anh chị em tham khảo:

TIL: CSS container queries khác media queries

Media queries dựa vào viewport, còn container queries dựa vào kích thước phần tử cha. Khi làm component-based design, container queries giúp component tự responsive mà không phụ thuộc vào layout bên ngoài.
TIL: Promise.allSettled không throw error

Khác với Promise.all sẽ reject ngay khi có một promise fail, Promise.allSettled chờ tất cả hoàn thành rồi trả về kết quả từng cái — kèm status fulfilled hoặc rejected. Rất hữu ích khi cần gọi nhiều API độc lập mà không muốn một cái fail làm mất hết kết quả.
TIL: AWS CloudWatch Logs Insights query siêu nhanh

Thay vì scroll log thủ công, dùng query: fields @timestamp, @message | filter @message like /ERROR/ | sort @timestamp desc | limit 50. Tìm error trong hàng triệu dòng log chỉ mất vài giây.

Ví dụ TIL về AI — chủ đề nóng nhất hiện tại

Gần đây anh chị em Haposoft dùng AI trong công việc ngày càng nhiều — từ viết code, review, đến tạo document. Đây là mảnh đất màu mỡ cho TIL:

TIL: Claude Code có thể đọc cả project rồi tự refactor

Thay vì copy-paste từng file vào chat, mình chạy claude trực tiếp trong terminal tại root project. Nó đọc được cấu trúc thư mục, hiểu context giữa các file, và có thể refactor xuyên suốt nhiều file cùng lúc. Tiết kiệm cả buổi sáng so với refactor thủ công.
TIL: Prompt "hãy nghĩ từng bước" thực sự cải thiện output của LLM

Khi nhờ AI giải quyết bài toán phức tạp (debug logic, thiết kế schema, phân tích requirement), chỉ cần thêm "hãy suy nghĩ từng bước" vào cuối prompt là output chính xác hơn hẳn. Kỹ thuật này gọi là Chain-of-Thought prompting — không phải mẹo vặt mà là kỹ thuật đã được nghiên cứu bài bản.
TIL: Cursor có thể tạo rule riêng cho project

Tạo file .cursor/rules trong project root, viết các convention của dự án vào đó (naming, folder structure, coding style). Sau đó mỗi lần Cursor generate code, nó tự tuân theo rules mà không cần nhắc lại. Cực kỳ hữu ích khi làm dự án có convention riêng cho khách hàng Nhật.
TIL: Dùng AI để viết commit message chuẩn Conventional Commits

Chạy git diff --staged | claude "Viết commit message theo Conventional Commits cho diff này". Ra message chuẩn format feat:, fix:, refactor: trong 2 giây, thay vì ngồi nghĩ "mình ghi gì cho cái commit này nhỉ".
TIL: GitHub Copilot hoạt động tốt hơn khi có comment mô tả trước

Thay vì chờ Copilot đoán mình muốn gì, mình viết một comment tiếng Anh mô tả rõ function cần làm gì trước, rồi xuống dòng. Copilot suggest chính xác hơn nhiều so với để nó tự đoán từ context. Comment cũng đồng thời trở thành documentation luôn — một công đôi việc.
TIL: Có thể dùng AI để review code trước khi tạo PR

Trước khi tạo Pull Request, mình paste diff vào Claude và hỏi "Review code này, tìm bug tiềm ẩn, security issue, và gợi ý cải thiện". Nó bắt được mấy edge case mà mình bỏ sót — null check, race condition, SQL injection risk. Không thay thế được human review nhưng là một lớp filter cực tốt.

Bắt đầu TIL tại Haposoft như thế nào?

Không cần hệ thống phức tạp. Bắt đầu đơn giản nhất có thể:

Bước 1 — Chọn nơi chia sẻ. Haposoft mình đã có sẵn hai nơi tuyệt vời:

  • SNS nội bộ trên HapoOne — Nếu bạn chỉ muốn chia sẻ nhanh vài dòng cho anh chị em trong công ty, đây là nơi lý tưởng. Đăng lên như một status, không cần format cầu kỳ, không áp lực "phải viết hay". Nghĩ đến TIL như một dòng chia sẻ trên mạng xã hội nội bộ — ngắn gọn, tự nhiên, ai thấy hữu ích thì like và comment.
  • blog.haposoft.com — Khi bạn muốn viết bài hoàn chỉnh hơn, có hình ảnh minh hoạ, code block đẹp, và muốn chia sẻ ra bên ngoài để xây dựng thương hiệu cá nhân lẫn thương hiệu Haposoft, thì đây là sân chơi chính.

Gợi ý: Bắt đầu bằng HapoOne SNS cho nhẹ nhàng. Khi nào thấy tự tin hoặc có chủ đề đáng viết sâu hơn, "nâng cấp" lên blog.haposoft.com. Nhiều bài blog hay bắt đầu từ một dòng TIL ngắn trên SNS!

Bước 2 — Ai cũng có thể viết. TIL không phải đặc quyền của senior. Fresher mới vào nghề thường có những TIL hay nhất vì họ đang học mọi thứ từ đầu — góc nhìn "mới tinh" đó rất giá trị cho người khác.

Bước 3 — Giữ nhịp đều. Không nhất thiết phải viết mỗi ngày. Mỗi tuần một bài TIL đã là tuyệt vời.

Bước 4 — Tạo động lực. Highlight những bài TIL hay trong standup hoặc weekly meeting. Ghi nhận người chia sẻ. Có thể tạo "TIL of the Week" để vinh danh bài viết hữu ích nhất.

Những chủ đề TIL phổ biến

Chưa biết viết gì? Đây là vài gợi ý:

  • Một command line trick tiết kiệm thời gian
  • Một config nhỏ giải quyết bug khó
  • Sự khác biệt giữa hai khái niệm hay bị nhầm
  • Một tính năng ẩn của tool mình đang dùng hàng ngày
  • Một bài học từ code review
  • Một cách debug hiệu quả mình vừa phát hiện
  • Kiến thức về quy trình, không chỉ kỹ thuật — ví dụ cách viết ticket tốt hơn, cách estimate chính xác hơn
  • Một prompt pattern giúp AI trả lời chính xác hơn
  • Cách dùng AI tool (Claude, Copilot, Cursor) để tăng tốc một tác vụ cụ thể
  • So sánh kết quả giữa các AI model khi giải cùng một bài toán
  • Cách tích hợp AI vào workflow hiện tại của dự án

Lời kết

TIL không phải là viết blog dài, không phải là làm tutorial, không phải là chứng minh mình giỏi. TIL đơn giản là nói với đồng nghiệp: "Này, hôm nay mình biết thêm cái này hay lắm, chia sẻ cho mọi người luôn."

Kiến thức chỉ thực sự có giá trị khi được chia sẻ. Và chia sẻ không cần phải lớn lao — chỉ cần đều đặn và chân thành.

Hãy bắt đầu TIL đầu tiên của bạn ngay hôm nay. Mình tin là cả team sẽ cảm ơn bạn.


Bạn có TIL nào muốn chia sẻ không? Lên HapoOne SNS đăng ngay đi — chỉ vài dòng thôi cũng được! 🚀