Quản lý cơ sở kiến ​​thức cá nhân của tôi · tkainrad

[ad_1]

Thật khó để tưởng tượng bất kỳ lĩnh vực nào khác mà việc học cả đời quan trọng hơn trong công nghệ phần mềm. Một đặc điểm độc đáo khác là mức độ mà tài liệu học tập có sẵn miễn phí trên internet. Trên hết, chúng tôi tự tạo ra các tài nguyên khác nhau bằng cách ghi lại các vấn đề, gửi báo cáo lỗi, viết ghi chú, tạo tài liệu và nhiều tài nguyên khác. Tổng của tất cả các tài nguyên này có thể được gọi là một cơ sở tri thức.
Bạn có thể lập luận rằng mọi nhà phát triển đều có một hệ thống để quản lý nền tảng kiến ​​thức cá nhân của họ, cho dù họ có biết hay không. Trong bài đăng này, tôi giải thích thực hành quản lý kiến ​​thức của tôi.

Cơ sở kiến ​​thức cá nhân của một kỹ sư phần mềm có khả năng trùng lặp với kiến ​​thức của chủ nhân và đối tác dự án của họ. Hãy chắc chắn để nghiên cứu cẩn thận nghĩa vụ bảo vệ dữ liệu của bạn. Một cơ sở tốt là giữ cho nền tảng kiến ​​thức cá nhân của bạn kỹ thuật chặt chẽ và không bao giờ bao gồm dữ liệu có liên quan đến khách hàng hoặc mọi người nói chung.

Tôi chọn chủ đề này chủ yếu vì ba lý do:

  1. Vui vẻ:
    Tôi thích suy nghĩ về quy trình làm việc của mình và cố gắng cải thiện chúng. Có lẽ hơi quá, một số người bạn đã bắt đầu tròn mắt khi tôi cố gắng giới thiệu một công cụ mới cho họ.
  2. Cải thiện hệ thống và quy trình công việc của tôi:
    Viết một bài đăng về thiết lập Linux của tôi rất bổ ích cho tôi. Trong khi ghi lại cấu hình của tôi, đặc biệt là quy trình công việc dòng lệnh của tôi, tôi đã xác định được một số thiếu sót mà tôi đã loại bỏ. Sau khi viết bài viết này, tôi đã có thể nói rằng quy trình quản lý kiến ​​thức của tôi đã được cải thiện tương tự.
  3. Mức độ liên quan:
    Quản lý tri thức dưới mọi hình thức là không thể thiếu đối với công nghệ phần mềm.
 Nhiệm vụ quản lý kiến ​​thức được thực hiện thường xuyên. Nó trả hết để làm chúng hiệu quả. (Nguồn: xkcd.com)

Nhiệm vụ quản lý kiến ​​thức được thực hiện thường xuyên. Nó trả hết để làm chúng hiệu quả. (Nguồn: xkcd.com)

Phần lớn bài đăng này mô tả việc sử dụng các công cụ phần mềm của tôi. Các ngôi sao sẽ là

Sao chép tất cả các thực hành của tôi có thể sẽ không phục vụ bạn tốt. Tôi mời bạn thử mọi thứ theo tốc độ của riêng bạn và xem lại bài đăng này bất cứ khi nào bạn đang tìm kiếm ý tưởng mới.

Mặc dù tất cả mọi người đều yêu thích sách, hoặc ít nhất là nói như vậy, bao gồm cả bản thân tôi, thực tế là hầu hết chúng ta đều dựa vào tài nguyên kỹ thuật số.
Thách thức là tổ chức kiến ​​thức này một cách hiệu quả mà không tạo ra quá nhiều chi phí.

Có một số cách tiếp cận ngây thơ mà tôi cho là không đủ. Cho đến vài năm trước, tôi chủ yếu dựa vào dấu trang trình duyệt, nhưng vì một số lý do, trình duyệt không cung cấp các tính năng tổ chức phù hợp.
Một cách khác là chỉ sao chép URL vào ghi chú, vấn đề dự án, tài liệu và tất cả các loại nội dung được tạo thủ công khác. Điều này là khả thi và tất cả chúng ta đều làm điều đó thường xuyên, nhưng nó không liên quan gì đến những gì tôi nghĩ là quản lý dấu trang.

Thiết lập hiện tại của tôi phức tạp hơn một chút, nhưng cuối cùng, nó không đòi hỏi nhiều công việc hơn là chỉ giữ dấu trang trong trình duyệt.
Tôi sắp xếp các dấu trang của mình thành nhiều lớp, tùy thuộc vào tần suất tôi muốn truy cập chúng và thời gian tồn tại của chúng.

Có thể bạn đang nghĩ đến bộ nhớ đệm ngay bây giờ, nhưng may mắn thay, các lớp đánh dấu không phải là cấp độ bộ đệm. Điều này sẽ khó quản lý vì như chúng ta đều biết, có hai vấn đề khó khăn trong khoa học máy tính: mất hiệu lực bộ đệm, đặt tên và lỗi off-by-1.
Ngược lại với các mục bộ đệm, một dấu trang không được phép di chuyển giữa các lớp. Thay vào đó, nó được chèn vào đúng chỗ và ở đó.

Hình dưới đây minh họa các lớp của tôi:

 Các lớp đánh dấu

Các lớp đánh dấu

1. Dấu trang Chrome

Dấu trang Chrome có một số lợi ích tốt. Chúng được đồng bộ hóa giữa các thiết bị, những thiết bị mới có thể được thêm dễ dàng và việc tổ chức chúng trong các thư mục mang lại ít nhất một số cấu trúc. Một lợi thế khác đối với tôi là tiện ích mở rộng Albert Chromium cho phép tôi truy cập và mở các dấu trang Chrome của mình từ Albert:

 Tìm kiếm thông qua các dấu trang Chrome trực tiếp từ Albert. Nhấn enter sẽ mở mục được chọn trong Chrome.

Tìm kiếm thông qua các dấu trang Chrome trực tiếp từ Albert. Nhấn enter sẽ mở mục được chọn trong Chrome.

Vì những ưu điểm này, dấu trang Chrome là lý tưởng cho những thứ tôi cần thường xuyên và muốn có thể truy cập phần nào độc lập với bối cảnh. Tuy nhiên, chúng không phù hợp để giữ các thư viện dấu trang rộng lớn. Không có gắn thẻ, không thể thêm nhận xét và trình duyệt thậm chí không lưu dấu thời gian khi trang được đánh dấu. Hơn nữa không thể lọc và tìm kiếm dấu trang Chrome bằng các truy vấn phức tạp. Theo kinh nghiệm của tôi, các thư viện đánh dấu trình duyệt rất khó quản lý nếu chúng phát triển vượt quá một kích thước nhất định.

Một số ví dụ về dấu trang Chrome phù hợp:

  • Bảng điều khiển AWS EC2
  • Bảng điều khiển nền tảng đám mây của Google
  • Không gian làm việc chùng
  • Bảng GitLab
  • Các trang nội dung, như Hacker News, InfoQ và DZone

Ví dụ về những thứ mà không nên là Dấu trang Chrome:

  • Bài đăng trên blog sẽ được đọc sau
  • Liên kết đến các dự án nguồn mở
  • Câu hỏi tràn ngăn xếp

2. Workona

Workona là một bổ sung tương đối mới vào hộp công cụ của tôi. Tôi có cảm xúc lẫn lộn về nó, chủ yếu là vì đôi khi nó có thể cảm thấy hơi chậm.
Có một số điều nó làm rất tốt mặc dù.

Workona cho phép bạn tạo các không gian làm việc của trình duyệt đi kèm với danh sách dấu trang của riêng họ. Điều này hoạt động độc đáo khi bạn có nhiều dự án mà bạn làm việc trong thời gian dài hơn. Nó cũng sẽ nhớ những tab bạn đã mở trong một không gian làm việc cụ thể và đồng bộ hóa thông tin này trên các thiết bị. Do đó, đây là một nơi tốt đẹp cho những thứ mà tôi cần thường xuyên phụ thuộc vào bối cảnh.

 Ảnh chụp màn hình không gian làm việc của Workona (Nguồn)

Ảnh chụp màn hình không gian làm việc của Workona (Nguồn)

Workona cho phép bạn thêm ứng dụng và sau đó sẽ thu thập các liên kết và thậm chí các tính năng để các ứng dụng đó có thể truy cập nhanh chóng. Ví dụ: tôi sử dụng nó để truy cập các dự án GitLab và GitHub khác nhau, Không gian làm việc Slack và đôi khi là các câu hỏi StackOverflow. Các mục này được Workona tạo tự động và do đó tôi không xem chúng là dấu trang. Cũng có thể truy cập các tính năng của các ứng dụng này trực tiếp từ Workona, chủ yếu để tạo các tài nguyên mới, chẳng hạn như các dự án GitLab / GitHub, Google Docs, DropBox Files, v.v. Cảm giác hơi giống như Trạm được tích hợp trực tiếp vào trình duyệt.

Điểm bán hàng đối với tôi là Workona cho phép tôi thực hiện tất cả những điều được mô tả thông qua các phím tắt và thậm chí có thể tùy chỉnh các phím tắt này tại chrome: // tiện ích mở rộng / phím tắt

3. Notion

Cuối cùng, chúng tôi đến lớp phù hợp để duy trì một thư viện dấu trang lớn. Đối với điều này, và nhiều trường hợp sử dụng khác, tôi sử dụng Notion. Nó đã trở thành cốt lõi của nền tảng kiến ​​thức cá nhân của tôi.

Cấp miễn phí của Notion đi kèm với giới hạn cứng về số lượng khối bạn có thể tạo. Điều này có nghĩa là bạn sẽ phải chuyển sang phiên bản trả phí nếu bạn sử dụng nó một cách nghiêm túc trong một thời gian. Nó là miễn phí cho sinh viên và giáo viên.
Tất cả các liên kết đến Notion trong bài đăng này là các liên kết liên kết. Nếu bạn đăng ký tài khoản thông qua các liên kết này, bạn sẽ nhận được 10 đô la tín dụng Notion miễn phí và tôi sẽ nhận được 5 đô la. Điều này hoạt động ngay cả khi bạn tạo một tài khoản miễn phí.

Tính năng sát thủ đối với tôi là cơ sở dữ liệu. Nó linh hoạt đáng kinh ngạc và có thể một tay thay thế nhiều công cụ khác cho tôi. Đối với bộ sưu tập dấu trang của tôi, tôi sử dụng một cơ sở dữ liệu lớn. Thêm các mục mới có thể được thực hiện thông qua Notion Web Clip. Tôi hơi khó chịu khi clipper web không cho phép tôi thêm thuộc tính và thẻ trực tiếp, nhưng ngoài ra, nó hoạt động tốt. Trước đây, tôi đã sử dụng Trello, cũng khá tốt trong việc giữ dấu trang. Tuy nhiên, để giới hạn số lượng công cụ khác nhau mà tôi sử dụng, tôi đã thay thế nó bằng Notion.

 Cơ sở dữ liệu dấu trang của tôi được lọc để chỉ hiển thị các mục liên quan đến bài đăng này.

Cơ sở dữ liệu dấu trang của tôi được lọc để chỉ hiển thị các mục liên quan đến bài đăng này.

Mục tiêu với cơ sở dữ liệu này là tôi có thể tìm thấy thứ gì đó từ nhiều năm nay chỉ với một ký ức mơ hồ rằng nó sẽ ở đó. Điều này là có thể bởi vì Notion tự động lưu trữ siêu dữ liệu, chẳng hạn như dấu thời gian tạo. Thậm chí quan trọng hơn, tôi có thể thêm các thẻ và thuộc tính tùy ý.

Mọi thứ trở nên thực sự thú vị khi bạn sử dụng các mối quan hệ giữa các cơ sở dữ liệu Notion khác nhau. Ví dụ, tôi có một cơ sở dữ liệu các bài đăng trên blog có liên quan đến dấu trang của tôi. Bây giờ tôi có thể lọc dấu trang của mình bằng các bài đăng trên blog và nhanh chóng xem các nguồn nào ảnh hưởng đến một bài đăng cụ thể.

Tôi không thể bao gồm tất cả các tính năng cơ sở dữ liệu Notion trong bài viết này. Tôi nghĩ rằng đây là một cái gì đó bạn phải xem cho chính mình. Trang tài liệu Notion về chủ đề này có thể cung cấp cho bạn một số ấn tượng hơn nữa.

Nhược điểm của bảng tính năng phong phú này là nó đòi hỏi một số kỷ luật. Tôi gắn thẻ và chú thích các mục mới, mà tôi đã thêm thông qua trình cắt web, khoảng hai lần một tháng. Thông thường, tôi chỉ xóa các mục mới vì chúng không còn quan trọng nữa. Nếu tôi không thể nghĩ ra các thẻ hoặc quan hệ phù hợp cho một mặt hàng, điều này thường có nghĩa là nó không phù hợp với tôi.

Một bài học quan trọng khác tôi phải học một cách khó khăn:
Không sử dụng quá nhiều cơ sở dữ liệu song song. Notion cung cấp các phương thức tuyệt vời để lọc và tìm kiếm bảng. Bạn thậm chí có thể xác định các chế độ xem khác nhau trên cùng một cơ sở dữ liệu chỉ hiển thị một phần cụ thể của dữ liệu. Do đó, không bắt buộc phải tách tất cả các loại thành các cơ sở dữ liệu khác nhau. Ví dụ, lúc đầu, tôi có ba cơ sở dữ liệu khác nhau cho tài nguyên Python, tài nguyên Django và tài nguyên Wagtail. Đây là một giải pháp tồi. Bây giờ, tất cả đều sống trong cùng một cơ sở dữ liệu với các thẻ thích hợp.

Tôi hy vọng rằng một ngày nào đó tôi sẽ có thể tìm kiếm thông qua cơ sở dữ liệu Notion của mình từ Albert. Có lẽ tôi sẽ tự xây dựng một tiện ích mở rộng sau khi API Notion cuối cùng được phát hành.

Để minh họa những gì tôi đã mô tả bằng quá nhiều từ, bạn có thể xem một phần công khai của cơ sở dữ liệu dấu trang của tôi có chứa tất cả các tài nguyên hữu ích để viết bài này. Cột sau trong cơ sở dữ liệu công khai này có vẻ trống vì bảng liên quan không công khai.

4. Nguồn Bookmark gốc

Lớp cuối cùng không yêu cầu bất kỳ công việc nào cả. Nó chỉ có nghĩa là nhận thức được các nguồn dấu trang riêng khi cố gắng tìm một cái gì đó, và cả khi nghĩ về việc thêm dấu trang mới. Ví dụ, khá dễ dàng để tìm kiếm thông qua các câu hỏi bạn đã trả lời trên Stack Overflow. Nó cũng không phải là vấn đề để quay lại các bài đăng Hacker News của bạn hoặc tìm kiếm thông qua các dự án bạn đã đóng trên GitHub. Giữ những thứ đó trong các nguồn dấu trang của riêng bạn sẽ làm tăng thêm sự dư thừa và tiếng ồn.
Đây là một số nguồn dấu trang gốc được sử dụng phổ biến nhất của tôi:

Tóm tắt

Tôi biết rằng điều này nghe có vẻ vô cùng phức tạp. Tuy nhiên, tôi nhấn mạnh vào tuyên bố của mình rằng nó không thực sự đòi hỏi nhiều công việc hơn là giữ tất cả dấu trang trong trình duyệt. Bạn vẫn phải thêm mỗi bookmark chỉ một lần. Nếu bạn nội bộ hóa hệ thống của mình, bạn sẽ không gặp vấn đề gì khi tìm kiếm dấu trang vì nó sẽ khá rõ ràng nơi một tài nguyên cụ thể có thể. Phải thừa nhận rằng, nó đòi hỏi một số bảo trì để giữ một bộ sưu tập dấu trang lớn trong Notion, nhưng nó sẽ sớm được đền đáp và khoản thanh toán được tích lũy theo thời gian.

Có một hệ thống phù hợp cho các nguồn lực bên ngoài là điều tuyệt vời, nhưng nó không giúp ích gì nhiều nếu mọi thứ bạn tự viết là một mớ hỗn độn. Do đó, điều cần thiết là phải tổ chức các tài nguyên tự viết.

Bài đăng trên Blog

Bài đăng trên blog thành công nhất của tôi là về cách tôi chạy và lưu trữ trang web này miễn phí. Tuy nhiên, bài đăng không bao gồm phần chuyên sâu nhất về việc chạy trang web này: Viết và duy trì các bài đăng trên blog. Đối với điều này, tôi rất dựa vào Notion. Tôi có một cơ sở dữ liệu với tất cả các bài đăng trên blog trước đây và ý tưởng cho các bài đăng trong tương lai. Thật đơn giản để thêm các thẻ như đã thực hiện đang thực hiện ý tưởng và xem cơ sở dữ liệu dưới dạng bảng kanban với các làn đường dựa trên các thẻ đó.

Bài viết phác thảo

Tất cả các bài đăng được xuất bản trên blog này đã được soạn thảo trong Notion. Khi chúng ít nhiều kết thúc, tôi sử dụng xuất khẩu markdown và sao chép nội dung vào một tệp văn bản mới trong dự án Hugo của tôi. Có một số vấn đề nhỏ với điều này. Thông thường, tôi phải điều chỉnh các định dạng và liên kết mã, nhưng nhìn chung nó hoạt động rất tốt và có một số lợi ích tốt đẹp:

  • Chỉnh sửa trên tất cả các thiết bị
    Sử dụng khái niệm, tôi có thể dễ dàng chỉnh sửa bản nháp của mình trên tất cả các thiết bị, ngay cả trên điện thoại khi tôi đang di chuyển.
  • Sử dụng nội dung khái niệm hiện có
    Tôi có thể nhanh chóng thêm đoạn mã, liên kết và các nội dung khác mà tôi giữ trong Notion. Điều này có thể được thực hiện thông qua quan hệ cơ sở dữ liệu hoặc chỉ bằng cách kéo các khối tương ứng vào trang dự thảo.
  • Kiểm soát phiên bản nhẹ
    Là nhà phát triển, chúng tôi yêu GIT. Tuy nhiên, để thêm một vài dòng vào một bài đăng trên blog, đó là một quá mức cần thiết. Notion có tính năng phiên bản tích hợp và theo dõi tất cả các thay đổi tự động. Đương nhiên, nó không cung cấp các tùy chọn hợp nhất tinh vi, nhưng thật dễ dàng để tránh các xung đột khi bạn đang viết blog cá nhân.

Sau khi một bài viết được phát hành, tôi chuyển bài viết từ làm sang được phát hành .

Theo dõi các ý tưởng cập nhật

Bạn có thể nhận thấy rằng một số bài đăng trên blog của tôi khá dài. Giữ cho chúng cập nhật là một thách thức nhỏ. May mắn thay, tôi có Notion để giúp tôi điều này. Tôi có một cơ sở dữ liệu nơi tôi thêm các đề xuất để cập nhật các bài đăng hiện có của mình. Sử dụng một mối quan hệ, tôi liên kết những ý tưởng này với các bài đăng tương ứng trong cơ sở dữ liệu bài viết của mình:

 Thật khó để biết khi nào bạn hoàn thành việc thiết lập máy trạm Linux hoàn hảo.

Thật khó để biết khi nào bạn hoàn thành việc thiết lập máy trạm Linux hoàn hảo.

Nguồn theo dõi

Để theo dõi các tài nguyên của bên thứ ba hữu ích trong việc tạo bài đăng, tôi thêm chúng vào cơ sở dữ liệu dấu trang của mình và liên kết chúng với cơ sở dữ liệu bài đăng của tôi.

 Cơ sở dữ liệu dấu trang của tôi được lọc để chỉ hiển thị các mục liên quan đến bài đăng này.

Cơ sở dữ liệu dấu trang của tôi được lọc để chỉ hiển thị các mục liên quan đến bài đăng này.

Bạn cũng có thể xem danh sách đầy đủ các nguồn cho bài đăng này thông qua một phần công khai của cơ sở dữ liệu dấu trang của tôi.

Ghi chú

Tôi cho rằng mọi kỹ sư phần mềm đều ghi chú ở một mức độ nào đó, ngay cả khi họ không có hệ thống và chỉ tình cờ viết nội dung vào tệp văn bản.
Ngoài ra còn có một lượng lớn phần mềm miễn phí và trả phí để ghi chép và tổ chức ghi chú. Một số người thậm chí thích sử dụng giấy vật lý với hệ thống BuJo.

Bất kể bạn thích phương pháp nào, bạn phải suy nghĩ về thời điểm, lý do và cách ghi chú.

Khi nào cần ghi chú

Tôi đã suy nghĩ khá nhiều về câu hỏi này và trước đây tôi đã không tuân thủ bất kỳ quy tắc được xác định trước nào liên quan đến vấn đề này. Để hiểu rõ hơn về thói quen của tôi và quyết định những gì hoạt động tốt nhất trong quá khứ, tôi đã xem qua các ghi chú của tôi từ những năm trước được lan truyền trên nhiều ứng dụng và nhiều tệp. Tôi đã cố gắng tìm các mẫu phổ biến:

  • Nắm bắt thông tin từ các nguồn âm thanh
    Tôi là người học trực quan và thích nội dung bằng văn bản hơn âm thanh. Tuy nhiên, có nhiều loại nguồn âm thanh mà mọi người đều gặp phải:
    • Các cuộc họp
    • Bài thuyết trình
    • Gặp gỡ
    • Hội nghị
    • Thảo luận không chính thức
    • Video
    • Podcast
  • Bảo quản thông tin thường cần nhưng không phù hợp với bất kỳ dự án tài liệu phù hợp nào
    Trong trường hợp của tôi, đây là những điều như sau:
    • Dòng lệnh với nhiều tham số, tùy chọn phức tạp và đường dẫn. Tôi giữ chúng trong ghi chú của mình để có thể nhanh chóng sao chép-dán chúng trong tương lai xa.
    • Chẳng hạn, hướng dẫn cho các nhiệm vụ có thể sẽ phải lặp lại trong tương lai
      • thiết lập môi trường phát triển cho ngăn xếp công nghệ cụ thể
      • triển khai một dự án trên một dịch vụ lưu trữ cụ thể.
  • Câu hỏi
    Đôi khi tôi nghĩ đến một câu hỏi mà tôi muốn hỏi một người cụ thể, người hiện không có sẵn. Câu hỏi và câu trả lời cuối cùng của nó là một trường hợp sử dụng tốt cho một ghi chú.

Nhờ thiết lập dòng lệnh phức tạp hơn với Zsh và nhiều plugin khác nhau để tự động hoàn thành và tìm kiếm lịch sử, việc bảo quản các dòng lệnh trở nên ít quan trọng hơn đối với tôi. Nếu bạn vẫn đang sử dụng Bash với tìm kiếm mặc định Ctl r tôi nghĩ bạn sẽ thu được lợi nhuận từ bài đăng của tôi khi thiết lập máy trạm Linux.

Mặt khác, điều quan trọng là phải làm rõ những gì không nên là một ghi chú trong hệ thống này:

  • Kiến thức dành riêng cho dự án
    Mọi thứ liên quan trực tiếp đến một dự án phần mềm cụ thể, không nên là một ghi chú trong cơ sở kiến ​​thức cá nhân của bạn. Thay vào đó, nó nên đi vào bất kỳ hệ thống nào được sử dụng để theo dõi các vấn đề, hợp nhất các yêu cầu, tài liệu, v.v. Bài đăng này bao gồm một phần riêng biệt về điều này dưới đây.
  • Thông tin cần thiết trong một thời gian rất ngắn
    Đôi khi tôi cần ghi chú trong một cuộc trò chuyện mà tôi sẽ chỉ cần ngay lập tức sau đó. Đối với điều này, tôi chỉ cần mở VSCode và gõ trước. Khi thông tin không còn cần thiết, tập tin có thể bị xóa hoàn toàn.

Nói chung, đừng làm quá và đừng làm quá. Nếu bạn ghi chú mọi lúc, bạn sẽ tạo ra chi phí và dự phòng. Nếu bạn không bao giờ ghi chú, tốt, bạn sẽ không có ghi chú.

Tại sao phải ghi chú

Câu trả lời rõ ràng là ghi nhớ mọi thứ. Điều này không có nghĩa là ghi chú sẽ thay thế bộ nhớ của bạn. Ngược lại, ghi chú cung cấp cấu trúc và bối cảnh và do đó giúp bộ não của bạn xây dựng bản đồ kiến ​​thức của bạn. Tôi tin rằng việc ghi chú làm tăng lượng dữ liệu mà bạn có thể nhớ lại từ bộ nhớ.

Ngoài ra, một số điều rất khó nhớ, chẳng hạn như ngăn xếp công nghệ phức tạp được trình bày tại các cuộc họp, dòng lệnh với một số tùy chọn mờ, số, v.v. Viết những điều này xuống có thể mở rộng cơ sở kiến ​​thức của bạn đáng kể. Ghi chú cũng rất hữu ích khi viết tài liệu trong tương lai hoặc để viết bài đăng trên blog như thế này; -)

Cách ghi chú

Có thể rất hấp dẫn khi chỉ cần gõ trước trong khi nói chuyện. Ghi nhận bất cứ điều gì có vẻ thú vị tại thời điểm này. Tuy nhiên, bạn nên đáp ứng các yêu cầu chính thức cơ bản và viết ra một số bối cảnh. Nếu không, bạn sẽ gặp khó khăn khi trích xuất thông tin hữu ích từ ghi chú của bạn trong tương lai. Nếu bạn ghi chú thường xuyên, điều quan trọng là phải tổ chức chúng bằng cách gán thẻ và thuộc tính, có ngày tạo, có thể lọc và tìm kiếm thông qua chúng, v.v. Phần mềm có thể giúp với những điều này.

Cho đến khoảng một năm trước, tôi vẫn ghi chú chủ yếu trên các máy cục bộ của mình, đồng bộ hóa chúng với Dropbox. Các ứng dụng tập trung hầu hết vào việc ghi chú, chẳng hạn như Evernote, không bao giờ có sức hấp dẫn đối với tôi, mặc dù tôi đã sử dụng Google Keep / Notes. Nó không quá tệ, hỗ trợ, ví dụ: ghi nhãn và hoạt động với ít ma sát trên điện thoại di động. Tuy nhiên, thậm chí không có hỗ trợ định dạng cơ bản, chứ đừng nói đến định dạng đánh dấu hoặc tô sáng cú pháp mã.

Sau đó, tôi phát hiện ra Notion.
Lúc đầu, nó không thực sự là về ghi chú cho tôi. Tôi thích nó chủ yếu vì khái niệm cơ sở dữ liệu của nó và để tổ chức các tài nguyên của bên thứ ba như được mô tả trong phần đánh dấu trang. Tuy nhiên, đến bây giờ, tôi sử dụng nó rất nhiều cho hầu hết tất cả các ghi chú của tôi và các loại nội dung tự viết khác. Tôi nghĩ rằng sự kết hợp hỗ trợ cú pháp đánh dấu, các lệnh gạch chéo và WYSIWYG của Notion mang lại trải nghiệm viết tuyệt vời.

Tôi thực sự khuyên bạn nên tổ chức tất cả các ghi chú của bạn trong một cơ sở dữ liệu duy nhất với các thẻ thích hợp, chẳng hạn như cuộc họp tc câu hỏi . Tương tự như cơ sở dữ liệu dấu trang được mô tả ở trên, Notion sẽ tự động cung cấp một cột với thời gian tạo ghi chú. Nếu bạn có các cuộc họp thường xuyên với cùng một người, bạn có thể suy nghĩ về việc thêm cột Người tham gia .

Cơ sở dữ liệu ghi chú là trường hợp sử dụng hoàn hảo cho một tính năng Notion tuyệt vời khác: Mẫu. Tính năng này sẽ cho phép bạn tạo các mẫu cho các loại ghi chú khác nhau của mình và sau đó, ví dụ, thêm ghi chú cuộc họp mới chỉ bằng một cú nhấp chuột. Tùy thuộc vào mẫu, ghi chú mới đi kèm với bố cục được xác định trước và có thể bao gồm các trường cho người tham gia và chương trình nghị sự của cuộc họp. Đây là những gì mở ra khi tôi nhấp để thêm ghi chú cuộc họp mới vào cơ sở dữ liệu của mình:

 Mẫu ghi chú cuộc họp cơ bản của tôi.

Mẫu ghi chú cuộc họp cơ bản của tôi.

Theo kinh nghiệm của tôi, tốt nhất là giữ thông tin dự án càng sát nhau càng tốt. Đối với tôi, điều này có nghĩa là theo dõi vấn đề, hợp nhất các yêu cầu (nghĩa là yêu cầu kéo), tài liệu và mọi thứ khác đi kèm với một dự án phần mềm phải nằm cùng với mã nguồn.

Cách thức này đảm bảo rằng bất kỳ ai làm việc với mã bây giờ hoặc trong tương lai đều có quyền truy cập vào tất cả các thông tin. Giải pháp của tôi cho việc này là sử dụng GitLab cho mọi thứ liên quan đến một dự án cụ thể. Điều này bao gồm khá nhiều thứ trừ một số ghi chú nhanh mà đôi khi tôi viết bằng Notion vì tôi không muốn ai khác nhìn thấy chúng.

Để làm điều này, GitLab cung cấp rất nhiều tính năng tài liệu và quản lý dự án, như quản lý vấn đề mông, wiki dự án, không gian đoạn mã cho tất cả các dự án và tài khoản, v.v.
Một wiki dự án là một nơi tuyệt vời cho tất cả các tài liệu không cụ thể cho một vấn đề. Điều này có thể bao gồm những điều sau đây:

  • Hướng dẫn thiết lập môi trường phát triển
  • Hướng dẫn triển khai thủ công
  • Mô tả kiến ​​trúc và sơ đồ. Tôi là một fan hâm mộ lớn của nàng tiên cá, cho phép tạo sơ đồ UML bằng Markdown và được GitLab hỗ trợ.
  • Hướng dẫn về quy ước đặt tên, mô hình thiết kế, vv

Nếu bạn đã đọc bài đăng của tôi về việc chạy và lưu trữ trang web này, bạn sẽ biết rằng tôi cũng sử dụng GitLab cho dự án blog cá nhân này. Tuy nhiên, tôi sử dụng Notion cho phần lớn các tài liệu dự án và các nhiệm vụ quản lý, bởi vì nó đi kèm với một số lợi ích duy nhất cho trường hợp sử dụng này, như được mô tả ở trên.

Tất nhiên, có những lựa chọn thay thế. GitHub đã bắt kịp trong quá khứ và cung cấp một bộ tính năng rất giống nhau. Tôi chỉ có kinh nghiệm hạn chế với các sản phẩm Atlassian, nhưng tôi cho rằng bạn có thể đạt được điều tương tự bằng cách sử dụng hỗn hợp BitBucket, Confluence và Jira.
Ở một ghi chú bên lề, viết bằng Confluence cảm thấy rất giống như viết bằng Notion. Cả hai đều nhận ra cú pháp đánh dấu và cung cấp các lệnh gạch chéo để nhanh chóng chèn các loại nội dung phức tạp.

Điều này tương đối đơn giản. Tôi nghĩ rằng điều quan trọng nhất là sử dụng một số hình thức lưu trữ đám mây. Cá nhân, tôi sử dụng Dropbox.
Tiếp theo, bạn nên suy nghĩ về một cấu trúc thư mục phù hợp. Cuối cùng, bạn sẽ có thể tìm kiếm các tệp của mình một cách nhanh chóng.

Tôi sử dụng Linux và dựa vào Albert để tìm kiếm thông qua các tệp. Nếu điều này không hiệu quả, tôi sử dụng lệnh xác định vị trí và, phương sách cuối cùng của tôi là các công cụ dòng lệnh, chẳng hạn như tìm grep . Họ vẫn là vua cho các yêu cầu tìm kiếm phức tạp, chẳng hạn như kết hợp regex và bao gồm cả nội dung tệp.

Nếu bạn có thể đánh dấu vào ba ô

  1. khả dụng trên tất cả các thiết bị
  2. Cấu trúc

  3. có thể tìm kiếm

bạn nên thiết lập tất cả.

Cơ sở dữ liệu Notion hỗ trợ các cột tệp. Điều này có nghĩa là bạn có thể tải lên một tệp khác nhau cho mỗi ô. Tôi chưa tìm thấy một trường hợp sử dụng liên quan trực tiếp đến công nghệ phần mềm cho việc này. Tuy nhiên, nó là tuyệt vời để quản lý hóa đơn.

Trong phần này, tôi muốn trình bày một số loại trường hợp sử dụng quản lý tri thức đặc biệt dành riêng cho công nghệ phần mềm. Hầu hết chúng tôi đã chọn đúng cách chỉ sau khi bắt đầu sử dụng Notion. Dù sao đi nữa, tôi muốn nói rằng bạn nên sao chép tất cả chúng, nhưng bạn rất sẵn lòng thử những gì bạn cho là thú vị.

Đoạn mã

Hiện tại, tôi có hai cách để thu thập các đoạn mã. Tôi hy vọng cuối cùng tôi có thể tích hợp chúng bằng cách nào đó.

Đoạn mã người dùng VSCode

Cái đầu tiên là Đoạn mã người dùng VSCode. VSCode thực hiện nhiều điều đúng và quản lý đoạn trích là một trong số đó. Rất dễ dàng để xác định các đoạn mới và sử dụng chúng bằng cách nhập một chuỗi được xác định trước. Đơn giản chỉ cần nhấn Ctrl Shift p và chọn Tùy chọn: Định cấu hình Đoạn trích người dùng . Sau đó, bạn có thể chia đoạn mã của mình thành nhiều tệp hoặc chỉ cần đặt tất cả chúng lại với nhau trong tệp global-snipptes.code-snippets . Đây là một số đoạn trích của tôi để viết bài đăng trên blog với markdown và Hugo:

   1
  2
  3
  4
  5
  6
  7
  8
  9
  10
  11
  12
  13
  14
  15
  16
  17
  18
  19
  20
  21
  22
  23
  24
  25
  26
  27
  28
  
   "hình"  :  {
     "phạm vi" :  "đánh dấu" ,
     "tiền tố" :  "fig" ,
     "cơ thể" : [
         "{{< figure src="/images/"  class="center-figure"  caption="" >}}" 
    ],
     "mô tả" :  "Chèn mã ngắn hugo hình" 
} 
 "chú thích"  :  {
     "phạm vi" :  "đánh dấu" ,
     "tiền tố" :  "chú thích" ,
     "cơ thể" : [
         "{{% chú thích " ghi chú thông tin mẹo cảnh báo  "%}}" ,
         "" ,
         "{{% / chú thích%}}" 
    ],
     "mô tả" :  "Chèn mã ngắn chú thích hugo" 
} 
 "mã"  :  {
     "phạm vi" :  "đánh dấu" ,
     "tiền tố" :  "mã" ,
     "cơ thể" : [
         "{{< highlight bash "linenos=table">}}" ,
         "" ,
         "{{< / highlight >}}" 
    ],
     "mô tả" :  "Chèn mã ngắn hugo" 
}  

Đoạn mã sau đó có thể được sử dụng bằng cách nhập tiền tố và nhấn Ctrl + Space :


Cơ sở dữ liệu đoạn trích Notion

Trường hợp sử dụng thứ hai liên quan đến các đoạn mã nhỏ mà tôi đã tự viết và tôi muốn ghi nhớ. Điều này không nhất thiết vì lý do năng suất, mà là vì nỗi nhớ. Đó là lý tưởng cho các thuật toán nhỏ, ví dụ như khi bạn quản lý để tăng đáng kể hiệu suất của một cái gì đó bằng cách áp dụng một số kỹ thuật thông minh.

Tôi giữ các đoạn mã đó trong cơ sở dữ liệu Notion, hoạt động rất tốt vì tôi có thể gắn thẻ chúng và thêm các thuộc tính tùy ý. Một lợi ích tốt đẹp của thói quen này là nó không thành vấn đề nếu bạn không thực hiện trong một thời gian. Cơ sở dữ liệu của bạn sẽ không trông lộn xộn một cách đột ngột.

 Một mục mẫu mực của cơ sở dữ liệu đoạn mã của tôi trong Notion.

Một mục mẫu mực của cơ sở dữ liệu đoạn mã của tôi trong Notion.

Cơ sở dữ liệu lối tắt

Tôi tin rằng việc thành thạo đánh máy là rất quan trọng đối với một kỹ sư phần mềm. Sẽ dễ dàng hơn để duy trì dòng chảy nếu bạn có thể nhập nhanh và điều hướng xung quanh IDE và các công cụ của bạn bằng các phím tắt. Khi bộ công cụ của tôi phát triển, tôi nhận ra rằng tôi có một thời gian khó khăn để theo dõi những phím tắt nào tôi đang sử dụng, chúng sử dụng trong ứng dụng nào và liệu tôi có thể thay đổi chúng để chúng hoạt động với càng nhiều công cụ càng tốt.

Do đó, tôi bắt đầu theo dõi một số phím tắt tôi muốn sử dụng ở mọi nơi. Đây là những thứ như tạo các tab mới, tạo các cửa sổ mới, mở tính năng tìm kiếm của công cụ tương ứng và hơn thế nữa.

Cơ sở dữ liệu này giúp tôi xác định các phần trùng lặp và thúc đẩy tôi suy nghĩ về nhiệm vụ nào có thể phù hợp với tổ hợp khóa cụ thể mà tôi thường sử dụng. Ví dụ: tôi sử dụng Ctrl Shift T trong IDE để tìm kiếm định nghĩa loại và Ctrl Shift ] – R để tìm kiếm tài nguyên nói chung. Vì tôi có các tổ hợp phím này được ghi nhớ trong nhiều năm và có thể sử dụng nó rất nhanh, tôi muốn sử dụng nó bất cứ khi nào có thể. Do đó, tôi cố gắng thiết lập các ứng dụng của mình để một số loại tìm kiếm mở ra bất cứ khi nào tôi sử dụng một trong những kết hợp này. My Notion database makes it easy to see which applications offer search features and which of them I can modify.

For example, my Browser now forwards CtrlShiftT / R to Workona and allows me to switch/search workspaces or use the general search, respectively.

Screenshot of my Notion shortcut database

Screenshot of my Notion shortcut database

Notion's filtering and search capabilities are great for identifying problems with your setup. For me, a problem is when two applications use different shortcuts for a very similar operation. Unfortunately, Notion is negative example of an application that doesn't let you customize its shortcuts and therefore reduces the usefulness of my database. If someone from the Notion team reads this at some point, I kindly ask you to lobby on my behalf to prioritize personalized keyboard shortcuts.

I am excited about this use case and will talk about it in much more detail in a future blog post.

I also have a Notion database to keep track of small web tools that I use. This serves little purpose for things that are used frequently as you will remember them anyway. However, for minor things that are only needed once in a while, such as color palette generators, detecting handwriting as LaTeX symbols, and checking SSL certificates this is quite handy. Usually, you can find these tools via google, but sometimes there are many tools for a task and it is nice to keep track of the ones that work best.

Screenshot of my software tools database in Notion.

Screenshot of my software tools database in Notion.

Again, the important thing here is to not overdo it. There are extensive publicly available lists of such tools. Your list should not be a copy of those but rather a small collection of the things you like and need from time to time.

Collecting Ideas for new Projects

Like many software engineers in these golden times, I sometimes think about starting new software projects, maybe even bootstrapping a small business.
You probably guessed it already, I keep ideas for possible projects in a Notion database. The main benefit is, once again, that it allows me to easily link it with other databases, such as my bookmarks.

Similar posts often conclude with warnings that you should be very careful not to spend too much time on organizing and maintaining your knowledge and workflows. In principle, I agree with this sentiment. After all, you want to increase your productivity.

I do believe, however, that it is worth it to spend some time thinking about your knowledge management system. The most important part about conceptualizing a system is to decide exactly which types of information you want to maintain in your knowledge base. If you get this right you will benefit for the rest of your career. Even if the tools might change in the future, the system will stay.

Please don't hesitate to share your own experiences in the comments below. I am sure that my workflows are not perfect, but they might get closer with your tips.

This post is released together with a new post in my Reading List series, which lists related resources. If you want to dive even deeper into knowledge management concepts, you might want to have a look.

[ad_2]
Source link: webdesignernews

Leave a Reply

Your email address will not be published. Required fields are marked *

.
.
.
.