- Trong phát triển phần mềm, việc viết mã gần như là bước cuối cùng để ra lệnh cho máy tính phải làm gì; điều cần làm trước tiên là quyết định sẽ tạo ra cái gì và tạo như thế nào
- Khi mở trình soạn thảo mã, rất dễ lập tức rơi vào chế độ tính năng, tức là mải mê triển khai ngay, nên cần có thời gian rời xa máy tính để tư duy sáng tạo
- Khi viết và phác thảo trên sổ tay, những ý tưởng mơ hồ sẽ được cụ thể hóa thành chữ viết và hình vẽ, đồng thời khó bỏ qua những lỗ hổng trong hiểu biết hơn
- Trên sổ tay, có thể sắp xếp lời giải ban đầu cho bài toán mới, phác thảo UI, vẽ lưu đồ, cũng như hệ thống hóa luồng dữ liệu và tương tác trong codebase hiện có để xác định hướng triển khai
- Khi ghi lại bằng văn bản như thể đang giải thích mã nguồn, sẽ dễ phát hiện những điểm lệch trong thiết kế, cấu trúc kém, sai sót, đồng thời lưu lại bản ghi của quá trình tư duy để xem lại sau này
Tư duy phát triển hiệu quả hơn ở ngoài máy tính
- Trong phát triển phần mềm, viết mã là cần thiết, nhưng điều cốt lõi cần quyết định trước là sẽ viết loại mã nào và sẽ tiếp cận ra sao
- Khi trình soạn thảo mã đang mở, bạn ngay lập tức ở trong trạng thái phải viết ra thứ gì đó có thể chạy được, và trong trạng thái đó, tư duy sáng tạo thường không vận hành tốt
- Khi giải quyết vấn đề, tác giả rời xa máy tính để đi dạo hoặc mang sổ tay ra ghế sofa hay patio ngoài trời để ngồi suy nghĩ
- Các địa điểm đi dạo được nhắc đến gồm khu vực ven nước như San Francisco Bay, Spree và Aurajoki
- Trên sổ tay, tác giả hình dung lời giải ban đầu cho vấn đề mới, thiết kế cách tiếp cận, đồng thời vẽ phác thảo UI hoặc lưu đồ
- Ngay cả khi làm việc với codebase hiện có, tác giả cũng sắp xếp luồng dữ liệu và các tương tác trên sổ tay, rồi từ đó tìm ra cách sửa lỗi hoặc bổ sung tính năng mới
Tác dụng mà việc viết và phác thảo để lại
- Viết và phác thảo là công cụ tư duy giúp biến những suy nghĩ mơ hồ, trừu tượng thành từ ngữ và hình ảnh
- Khi chỉ nghĩ trong đầu, rất dễ bỏ qua các lỗ hổng về kiến thức hay mức độ hiểu vấn đề, nhưng khi viết ra, những khoảng trống đó khó bị né tránh hơn
- Sau khi viết mã, tác giả thích ghi lại bằng văn bản như thể đang giải thích cho người khác
- Nếu có thể, tác giả sẽ công khai dưới dạng bài blog
- Ngay cả khi không thể công khai, viết theo cùng cách đó vẫn giúp phát hiện sự không nhất quán trong mã, thiết kế tệ và sai sót
- Có bài viết liên quan là how writing is my favourite refactoring tool
- Khi suy nghĩ bằng cách viết ra, chính quá trình tư duy đó sẽ được lưu lại thành bản ghi, giúp giảm nhu cầu phải tạo thêm ghi chú riêng
- Chỉ cần sắp xếp lại và chỉnh sửa một chút để tiện dùng sau này
- Nếu sau 2 tuần, 6 tháng hay 2 năm có ai hỏi vì sao một quyết định cụ thể đã được đưa ra, tác giả có thể xem lại sổ tay để kiểm tra mình đã nghĩ gì vào thời điểm đó
- Và người đặt câu hỏi đó thường cũng chính là bản thân mình trong tương lai
- Cũng có một bài viết riêng tập trung nhiều hơn vào nội dung ghi chú công việc: how I take work notes as a developer
1 bình luận
Các ý kiến trên Hacker News
Một cuộc thảo luận hay. Tôi nghĩ trọng tâm không phải là sổ tay so với công cụ số, mà là thứ gì khiến các bánh răng trong đầu chuyển số
Mỗi khi đổi chế độ, não sẽ chú ý theo một cách khác, và bối cảnh mới đó có thể nâng cao cả khả năng tập trung, sáng tạo lẫn hồi tưởng ký ức. Gần đây, mỗi tối tôi bắt đầu một sở thích mới là viết thay vì lập trình, và thấy não được reset, hiệu suất làm việc ban ngày cũng tốt hơn. Việc lập kế hoạch cũng vậy: chuyển từ môi trường số sang bút và giấy sẽ phá vỡ routine và khiến não tham gia theo cách khác. Quan trọng hơn bản thân công cụ là điểm sự thay đổi đánh thức tinh thần
Tôi không thấy khái niệm này được nhắc nhiều ở nơi khác, nhưng trong 9 năm qua nó đã thay đổi cách tôi tiếp cận vấn đề và học tập. Chuyển sang dùng sổ tay cũng là một trong những cách hay mà tôi dùng để tạo ra hiệu ứng này
Để mô tả một vật thể 3 chiều bằng 2 chiều cần thêm phép chiếu. Để mô tả tương đối một vật thể 3 chiều trong 2 chiều, cần ba hình vẽ. Nếu đối tượng phức tạp hơn 3 chiều thì phải nhìn từ nhiều góc độ hơn rất nhiều
Càng qua các năm tôi càng ít dùng máy ghi âm, nhưng khi thiếu thời gian và phải chuyển sang việc tiếp theo thì tôi thấy nó là tối ưu. Dùng máy ghi âm như một phương tiện cũng bao gồm cả quá trình về sau tập trung nghe lại và ghi những gì đã nói theo một cách khác. Dù là sổ giấy lâu bền hơn hay file văn bản cũng không quan trọng. Mỗi lần lặp lại, suy nghĩ đều biến đổi ở một mức nào đó, và nhờ vậy ta có cơ hội nhìn ý tưởng theo một cách khác
Đi vào bếp, đun nước và chờ trà ngấm khiến tôi rời khỏi bàn làm việc, và trong lúc chờ có cơ hội bắt đầu tự nói chuyện với mình về các suy nghĩ. Đôi khi chỉ cần đứng dậy khỏi ghế là vấn đề khó được giải quyết và câu trả lời trở nên rõ ràng. Dù vậy, sau nhiều năm, thỉnh thoảng tôi vẫn không nhớ ra điều này và cứ bám mãi lấy vấn đề
Một số người thông minh nhất tôi từng gặp trong toán học, vật lý và khoa học máy tính không dùng sổ tay mà dùng giấy in và bút. Xong thì họ vứt giấy đi
Rất hiếm khi ghi chú cá nhân từ lâu trước đây tỏ ra hữu ích. Thứ đáng ghi lại thì tôi đưa vào tài liệu, để sau này người khác có thể tình cờ tìm thấy điểm kỳ lạ mà tôi đã phát hiện. Những gì thật sự muốn nhớ thì tôi làm flashcard và học bằng lặp lại ngắt quãng cho đến khi thuộc. Tuy vậy, cách của tôi có thể không hợp với nhiều người. Có vẻ mọi người đang tiếp nhận bài viết này quá cá nhân và quá theo nghĩa đen. Đây là bài chia sẻ triết lý của tác giả, không phải tuyên bố rằng ai cũng phải làm theo. Nếu bút và sổ không hợp với bạn thì không dùng là được
Có hàng trăm bài viết liên quan và đây là một hiện tượng đã được ghi nhận kỹ: https://www.newscientist.com/article/2414241-writing-things-...
Viết tay có hiệu quả lớn hơn vì dùng nhiều giác quan và vùng não hơn so với gõ phím, đặc biệt là vỏ não vận động. Tôi cứ nghĩ đây là cái cớ tốt để mua một cuốn Moleskine, nhưng viết tay không phải một phần trong workflow của tôi. Thay vào đó, tôi hợp với việc gõ nhiều nội dung vào bộ đệm văn bản rồi biến đổi nó, nhất là bây giờ còn có LLM. Khi não hoàn toàn đứng hình, tôi bắt đầu gõ những cụm từ gần như không thể nhận ra vào trình soạn thảo văn bản, rồi khi đầu óc tỉnh lại thì chỉnh sửa, refactor và sắp xếp lại. Thường thì sau đó sẽ ra một email cần viết trong ngày, phác thảo mờ mờ của đoạn code, hoặc ít nhất là thứ giống danh sách việc cần làm. Phần lớn các nét nguệch ngoạc ban đầu thì tôi xóa. Dù vậy, đúng là viết tay giúp lưu giữ ký ức
Tôi định kỳ xem lại ghi chú và chuyển những gì đáng lưu vào hệ thống ghi chép phù hợp dưới dạng tóm tắt. Dù đó là lịch, ticket, wiki, lặp lại ngắt quãng hay gì cũng được. Tương tự, những thứ thực sự đáng giữ lại rất ít, và như vậy cũng ổn. Ghi chú giấy không phải là hệ thống lưu trữ mà gần với phần mở rộng của bộ nhớ làm việc hơn
Việc nhìn lại có thể có giá trị, nhưng tôi đã không thể khiến bản thân làm vậy
Thỉnh thoảng khi ghi điều gì có thể quên để tham khảo về sau, tôi dán một tờ giấy nhớ nhỏ thò ra ngoài để dễ tìm
Việc nói rằng sổ tay là “công cụ quan trọng nhất” đối với lập trình viên là chủ nghĩa lãng mạn thuần túy. Nó có thể hữu ích với một số người, nhưng đừng giả vờ rằng nó quan trọng hơn trình gỡ lỗi, quản lý phiên bản hay tích hợp liên tục. Đây là kỹ nghệ phần mềm, không phải đóng vai nghệ nhân
Những công cụ bạn nói đương nhiên là quan trọng, và tôi cũng dùng chúng rất tốt. Tôi không muốn làm lập trình viên mà thiếu quản lý phiên bản hay trình gỡ lỗi. Nếu mất chúng, chắc chắn tôi sẽ chậm lại và bực bội hơn. Dù vậy, với tôi sổ tay vẫn quan trọng hơn. Viết và chạy code là công cụ để hoàn thành công việc, nhưng với tôi phát triển phần mềm là tạo ra thứ gì đó có giá trị để giải quyết vấn đề hoặc làm cuộc sống dễ dàng hơn. Ở đó, code thường chỉ là một chi tiết triển khai tương đối nhỏ, còn việc xác định cần xây gì và xây như thế nào quan trọng hơn nhiều. Một số người suy nghĩ tốt trong trình soạn thảo code hoặc công cụ số, nhưng khi tôi bắt đầu làm tính năng trong trình soạn thảo code, tôi chuyển sang chế độ triển khai chi tiết và khó nhìn được bức tranh lớn. Vì vậy, việc cầm sổ để dùng như công cụ suy nghĩ trước và trong khi code là cốt lõi công việc của tôi. Nếu không dùng được các công cụ khác, tôi sẽ chậm lại; nhưng nếu không thể viết và suy nghĩ bằng bút và giấy, năng lực tư duy, giải quyết vấn đề và sáng tạo của tôi sẽ bị tổn hại nghiêm trọng, và cuối cùng tôi sẽ viết ra phần mềm tệ
Cũng có trường hợp mô tả quy trình Obsidian một cách lý tưởng nhưng rốt cuộc chẳng để lại ghi chú hữu ích nào; hoặc thay vì viết bài thì lại dành thời gian làm blog, nói rằng cách blog của mình quá độc đáo nên phải tự làm blog engine. Tôi cũng từng trải qua. Tôi thích câu “Đây là kỹ nghệ phần mềm, không phải đóng vai nghệ nhân”. Tôi sẽ ăn cắp câu đó và ghi vào sổ của mình
Khác biệt giữa thợ máy cổ xanh và kỹ sư cổ trắng nằm ở cách họ nhìn những cỗ máy mình dùng. Với kỹ sư, máy móc—dù là thước tính, máy tính bỏ túi hay siêu máy tính—chỉ là công cụ. Họ làm kỹ nghệ không phải vì dùng công cụ đó, mà vì họ suy nghĩ và công cụ giúp suy nghĩ ấy nhanh hơn một chút. Với thợ máy, máy móc chính là công việc. Không có máy để làm ra đồ vật thì không thể làm ra đồ vật, và chỉ suy nghĩ thì đồ vật không tự xuất hiện, nên suy nghĩ về đồ vật trở nên vô nghĩa
Nhưng cốt lõi cảm xúc thì vẫn đúng. Khi làm phần mềm, thiết kế code tốt là phần quan trọng căn bản nhất của công việc. Các công cụ được nhắc đến là những thứ giúp chuyển giao code đó, nhưng nếu bản thân thiết kế code đã sai thì chúng không có nhiều ý nghĩa. Ngày nay, quá trình thiết kế code có cảm giác như một kỹ năng đã thất truyền. Lập trình viên đã quá quen với việc ném bất cứ thứ gì lên tường miễn là đủ vượt qua điều kiện nghiệm thu. Quá trình thật sự xem xét logic và luồng của code trên giấy, ứng dụng vẽ sơ đồ, v.v. đang vắng bóng trong một phần đáng kể cộng đồng phát triển. Nếu người ta sẵn sàng rà soát logic của tính năng trước khi mở IDE và debug đoạn code đầu tiên nảy ra trong đầu, có lẽ app sẽ ít lỗi hơn một chút
Phần lớn bình luận tập trung vào bút và giấy vật lý, nhưng lại bỏ lỡ nguyên tắc bên dưới
Tác giả dùng bút và giấy vì khi ngồi trước máy tính, anh ấy chuyển sang chế độ tính năng, tức là triển khai thay vì thiết kế. Chỉ vậy thôi. Điểm rút ra quan trọng là đừng rơi vào cái bẫy sa đà vào triển khai khi lẽ ra cần thiết kế. Cân bằng điều đó thế nào là tùy mỗi người
Điều quan trọng là tìm công cụ phù hợp với bản thân. Một trong những lý do tôi muốn viết bài này là vì trong một đội kỹ thuật nơi mọi người đều ngồi trước máy tính 7,5 giờ mỗi ngày, tôi thường cảm thấy như người ngoài cuộc vì mình suy nghĩ tốt hơn khi rời khỏi màn hình và bàn phím. Tôi muốn đưa ra một ví dụ cho những người giống tôi, và cho những ai cảm thấy mình không hòa hợp
Tôi đã làm phần mềm khoảng 20 năm, trước đó có vài năm làm nghiên cứu và tiến sĩ hóa hữu cơ. Tôi làm senior ở Úc và cũng được đãi ngộ khá tốt
Tôi có chứng không có khả năng hình dung trong tâm trí (aphantasia) nên không thể hình dung đồ vật trong đầu hay tưởng tượng chúng như hình ảnh. Vì vậy tôi dùng bút và giấy, bảng trắng rất nhiều. Tôi tạo ERD, mind map, sequence diagram, v.v., và dùng ReMarkable để việc di chuyển và sắp xếp dễ hơn, hiệu quả hơn một chút. Một số người có thể xem đây là chủ nghĩa lãng mạn thuần túy, nhưng bút và giấy có tính quyết định đối với thành công của tôi
Vì phỏng vấn có giới hạn thời gian, tôi lập tức bắt đầu code để tạo ra thứ có thể trình bày, nhưng do không thể vẽ bất cứ thứ gì trong đầu, tôi đúng nghĩa là đang code trong mù mịt. Tôi cứ đọc lại đề bài và hy vọng lời giải sẽ xuất hiện. Sau khi nhận ra điều này, tôi bắt đầu vẽ bài toán vào sổ A2, giải bài toán trên giấy, rồi cuối cùng map cả lời giải lên giấy. Khi đó, như có phép màu, code tự nhiên tuôn ra. Có lẽ người bình thường nghĩ theo cách này khi lập trình
Tôi đã thử cả hai. Thử hoàn toàn số hóa, cũng thử hoàn toàn xoay quanh sổ tay. Cách tốt nhất tôi tìm được đến giờ là để ghi chú dài hạn trong ứng dụng ghi chú, còn quá trình suy nghĩ đang diễn ra thì để trong sổ
Tức là những việc tôi đang làm hoặc quá trình thực hiện chúng. Cách này giảm vấn đề tìm kiếm và sao chép của ghi chú vật lý. Nhưng khi trực tiếp viết ra quá trình hay công việc đang diễn ra, tôi nhớ tốt hơn nhiều. Đôi khi chỉ cần viết ra là đủ, không cần xem lại. Dù vậy, khi cần xem lại, tôi nắm được rõ hơn mình đã đi tới kết quả cuối cùng như thế nào, vì hành trình đó đã được ghi trong sổ. Việc tôi thích bút máy cũng có ích
Bạn phải chọn một phe và hoàn toàn tận hiến cho nó như mọi người trong phần bình luận này. Nhưng vì bạn đã có tư duy cởi mở và thử cả hai phía, tức là hoàn toàn số hóa và hoàn toàn dùng sổ, nên đã quá muộn. Do đó phán đoán của bạn tự động vô hiệu và sai. Luật là như vậy
Không hiểu nổi bút và sổ giấy. Tốc độ viết thì chậm, tìm kiếm những gì đã viết thì chậm đến phát điên, còn sao chép hay chia sẻ thì gần như bất khả thi
Cuốn sổ đó là công cụ nhanh nhất và dễ tiếp cận nhất để giữ lại suy nghĩ của tôi. Trước khi bất kỳ công cụ ghi chú nào kịp khởi động, tôi đã có thể nói ngắn gọn những gì đã thảo luận trong cuộc họp nhóm hồi tháng 10 năm ngoái. Tôi biết tên con, ngày sinh, bộ phim yêu thích của gần như mọi đồng nghiệp, và có thể lướt xem ngay cả khi đang chia sẻ màn hình mà không cần chuyển cửa sổ. Việc những nội dung đó khó đọc với người khác và không thể chia sẻ là một tính năng mà tôi đánh giá rất cao. Tôi mang nó đến bất cứ đâu mình muốn để suy ngẫm và ghi chú. Không có màn hình, không có thứ gây xao nhãng. Tôi vẽ nguệch ngoạc, kẻ đường, viết đùa, làm đủ thứ. Trang bên phải là công việc, trang bên trái là ý tưởng của tôi. Mục lục ở trang đầu cho tôi biết chính xác ý tưởng và mockup cho mấy biểu mẫu nhàm chán nằm ở đâu. Tôi cũng biết được khi nào mình đang quay vòng vô ích. Tôi có thể thấy những lỗ hổng trong suy nghĩ của mình vài tháng trước, hoặc những mẫu hành vi con người mà nếu không đã bỏ lỡ. Sự đơn giản là một lợi thế khổng lồ, nên tôi đã ngừng tìm thứ tốt hơn. Trừ trường hợp đặc biệt, tôi cũng không cố quảng bá nó. Nó đã tiết kiệm cho tôi rất nhiều thời gian
https://www.scientificamerican.com/article/why-writing-by-ha...
https://stackoverflow.blog/2022/11/23/why-writing-by-hand-is...
Với một bộ não dễ xao nhãng như tôi, viết tay chắc chắn tốt hơn. Khả năng tìm kiếm bị đánh giá quá cao. Phần lớn ghi chú chỉ để viết ra, rồi có xu hướng chất đống mà không bao giờ được đọc lại. Vì vậy, thay vì tối ưu để tìm kiếm tốt trên máy tính, tốt hơn là tối ưu cho khả năng lưu giữ ký ức để sau này tạo được liên kết tinh thần tốt hơn với tài liệu. Ghi chú trên PC là thứ thụ động. Điều mình muốn là tích hợp nội dung đó vào não để thực sự có thể làm được điều gì đó với nó
Tôi hoàn toàn đồng ý với tác giả. Trước máy tính thật sự rất khó suy nghĩ sâu, và có quá nhiều yếu tố gây phân tâm. Tốc độ viết và tìm kiếm không phải vấn đề với tôi. Tôi cũng muốn viết nhanh hơn, nhưng bản thân suy nghĩ sâu không phải việc diễn ra nhanh. Tìm kiếm cũng vậy, 99% những gì tôi viết sẽ không xem lại. Tất cả đều là quá trình giải quyết vấn đề và khắc sâu vào trí nhớ. Khi bị kẹt, rời khỏi máy tính thường là bước tiếp theo tốt nhất
Hãy ghi lại mọi thứ giáo sư viết trên bảng. Bạn sẽ ngạc nhiên vì mình nhớ được bài giảng nhiều đến mức nào. Và khi đọc lại ghi chú viết tay, cả buổi giảng lúc đó cũng hiện về cùng nó
Là kho lưu trữ thông tin dài hạn thì đó hoàn toàn là công cụ sai. Nó chỉ phù hợp để ghi lại tạm thời quá trình suy nghĩ. Những nội dung cần tồn tại lâu hơn vấn đề hiện tại tôi đang giải thì tôi để trong Obsidian
Sau nhiều năm thử đủ loại công cụ và ứng dụng ghi chú để sắp xếp mọi thứ, năm nay như một phần mục tiêu đầu năm, tôi mua một xấp notepad danh sách việc cần làm có ô ngày tháng và quyết định ghi ngẫu nhiên trong lúc họp hoặc làm việc. Tôi ngạc nhiên vì sau khi làm vậy, năng suất của mình tốt hơn hẳn
Sản phẩm cho ai tò mò: https://www.amazon.com/dp/B0BS1WJZNW
Tôi thích viết tay hơn nhiều.[1] Tôi đã dùng khá nhiều Moleskine, Field Notes và cũng dùng Muji trong thời gian dài, còn hiện tại thì đang rất ấn tượng với Midori
Tôi đã mua vài cuốn và sẽ mua thêm nhiều nữa. Cảm giác ‘cào’ xúc giác của bút máy trên giấy Midori khiến tôi thấy rất bình tâm, đến mức dù đang viết ra ý tưởng tầm thường nhất, tôi vẫn có cảm giác như mình đã trở thành nhà thơ :-)
https://brajeshwar.com/2025/notes/
Một trong số ít điều tôi nhớ khi làm việc ở văn phòng là bảng trắng lớn và việc đứng trước nó cùng đồng nghiệp
Khi cùng đồng nghiệp cầm bút marker và xử lý kiến trúc, chúng tôi thường tạo ra được những thiết kế class thật sự thanh lịch
Lần cuối làm CTO, tôi đã mua cho cả đội. Nếu có thể vẽ lại trên bảng trắng số, bạn sẽ không phải vẽ đi vẽ lại cùng 4 hình chữ nhật cả chục lần chỉ vì thiếu chỗ. Việc chụp ảnh bảng trắng trước khi xóa cũng ít đi