Thoạt nghe qua coding và writing không có điểm gì liên quan. Một cái là khoa học tự nhiên, cái còn lại là khoa học xã hội. Coding thì liên quan tới kĩ thuật lập trình khô khan, phải theo qui tắc. Còn writing thì văn vẻ bay bổng, sáng tạo từ mở bài cho tới kết luận. Coding dành cho máy móc đọc, còn writing thì dành cho con người.
Thực tế là mình cũng nghĩ như vậy, cho đến khi tham gia thử thách 30 ngày Writing On The Net (WOTN). Và mình nhận thấy có một số điểm tương đồng về nguyên tắc giữa coding và writing.
Không chỉ vậy, việc áp dụng những nguyên lý học code trong writing còn giúp mình cải thiện kĩ năng viết một cách nhanh chóng.
Giải quyết vấn đề
Bản chất cốt lõi của coding và writing đều nhằm giải quyết một vấn đề nào đó. Và có rất nhiều cách tiếp cận để có thể giải quyết được cùng một vấn đề.
Kể từ khi iPhone ra đời, có một câu nói nổi tiếng để thể hiện rằng vấn đề luôn có giải pháp: "There is an app for that!" Thực tế đúng như vậy, từ chơi game, mạng xã hội cho tới...đi chùa, cầu duyên. Luôn có một ứng dụng cho nhu cầu đó, và coding là cách để hiện thực hóa nó. Dù cho ở bất kì nền tảng nào.
Viết là cách cơ bản nhất trong giao tiếp của con người với nhau để thể hiện quan điểm, cảm xúc, suy nghĩ. Từ đó giúp người đọc sáng tỏ hoặc gợi mở hướng tốt hơn cho một vấn đề cụ thể hoặc trừu tượng.
Cảm giác đạt được thành tựu nho nhỏ khi giải quyết xong một vấn đề bằng code cũng tương tự như khi xong một bài viết và publish lên mạng. Mỗi lần như vậy là một cơ hội luyện tập để cải thiện suy nghĩ cho mạch lạc hơn.
Qui trình làm việc
Bạn không thể bắt đầu viết code mà không hiểu yêu cầu là gì, cũng như không thể bắt đầu writing với một cái đầu trống rỗng.
Trong software development, trước khi bắt tay vào coding thì coder phải hiểu đề bài, hiểu context, nắm được business rồi từ đó mới đi tìm giải pháp. Đến khi bắt tay vào code thì có thể google tham khảo, hỏi ChatGPT rồi nhào nặn làm sao để đống source code của mình chạy được, chạy ổn, chạy không bug. Sau khi code thì còn review làm sao cho gọn, cho tối ưu, cho dễ maintain về sau.
Trước khi bắt tay vào viết, bạn cũng phải tự trả lời bài viết của mình muốn trình bày vấn đề gì? đối tượng độc giả là ai, trong hoàn cảnh nào, có giúp ích gì cho người đọc không? Trong quá trình viết cũng cần tìm tư liệu, lên ý tưởng, chọn cách thể hiện. Sau khi viết cũng cần đọc lại, dò lỗi chính tả, sửa câu văn ý tứ để cho gãy gọn hơn.
Cách trình bày
Cơ bản nhất trong lập trình cho mỗi một ngôn ngữ sẽ có coding standard, rồi syntax, cách comment, do not repeat yourself (DRY)... để người khác dễ đọc. Cao hơn một chút sẽ có design pattern để giúp code tối ưu và chạy trơn tru hơn. Cao siêu hơn nữa sẽ là architecture design, rồi data flow...
Writing cũng có cách đặt dấu câu để ngắt đoạn, cách xuống dòng, thêm hình ảnh, đồ thị minh họa. Cao hơn nữa là sẽ là cách triển khai dàn ý, thắc, mở vấn đề ra sao. Câu hook là gì. Xịn xò hơn nữa là sẽ là bạn muốn bài viết của mình theo phong cách nào trong framework 3As: Aspirational, Actionable hay Analytical. Bạn muốn viết trên tín cá nhân (kinh nghiệm bản thân) hay tín vay....
Cả writing và coding tuy có những tactics khác nhau nhưng nhìn chung đều hướng đến mục tiêu sau cùng là để người khác đọc hiểu được những gì mà mình viết ra.
Để viết càng dễ đọc, dễ hiểu, trình bày rõ ràng đều đòi hỏi cả coder và writer phải có sự hòa hợp giữa kiến thức và tư duy trình bày để đạt được hiệu quả tốt nhất
Xây dựng module
Trong phần mềm có một khái niệm là Reinvent the wheel
. Ý ám chỉ đến việc cố nghĩ ra một thứ mà đã được phát minh ra trước đó rồi. Khi bắt đầu xây dựng một project, ta không bắt đầu từ số không, mà sẽ dựa vào framework, guideline, best practices, một số hàm, module, component có sẵn rồi kết hợp lại, tinh chỉnh để cho ra được kết quả mong muốn. Khi cần mở rộng thì chỉ việc gắn thêm module, gọi thêm hàm trong thư viện ra dùng.
Viết cũng vậy, bạn có bãi tập kết-nơi thoải mái liệt kê xuống ý tưởng. Bạn có nhà kho lưu trữ-nơi bạn đã tổng hợp, filter, những ý tưởng đó. Khi bắt đầu một bài viết, bạn sẽ có những ý tưởng rời rạc, những ghi chú lấy từ nhà kho. Các ý tưởng được chia nhỏ rồi từ từ được bạn kết nối, xâu chuỗi, thêm ví dụ thành chương, thành tiêu đề.... Bạn không bắt đầu từ tờ giấy trắng, bạn đã có một hệ thống hỗ trợ và việc của bạn là kết hợp chúng lại theo cách của mình để mang lại giá trị cho độc giả.
Xây dựng module là khái niệm được áp dụng cả trong phần mềm và viết. Sử dụng những nguyên tắc, ý tưởng, và module đã có sẵn giúp tiết kiệm thời gian và nỗ lực. Việc cải thiện sau mỗi giai đoạn cũng là chìa khóa để phát triển và duy trì sự hấp dẫn.
Cải tiến
Trong phần mềm, khái niệm Legacy codebase liên quan đế việc phải làm việc với những thứ đã được tạo ra trước đó. Theo yêu cầu nghiệp vụ cụ thể bạn sẽ cải tiến, nâng cấp để tương thích với các hệ thống hiện tại, performance tốt hơn, chạy ít tài nguyên hơn, sửa lỗi....
Một bài viết của chính bạn sau một khoản thời gian thì quan điểm, tư duy có thể mở rộng, nâng cấp hoặc thay đổi. Từ đó bạn lại có một bài viết mới hoặc cập nhật bài viết cũ để thể hiện quan điểm cho hợp với góc nhìn của từng thời điểm.
Việc cải thiện phần mềm và bài viết đều có điểm chung là mình thấy được và so sánh thành quả và suy nghĩ trong quá khứ. Từ đó để đối chiếu và biết mình cần thay đổi sản phẩm của mình để phù hợp với nhu cầu của bản thân hoặc tổ chức.
Công cụ để thể hiện
Phầm mềm tốt sẽ giúp tăng năng suất. Tạo nên giá trị cho người sử dụng và doanh nghiệp.
Bài viết hay thì chia sẻ được góc nhìn, tạo động lực, hoặc sự đồng cảm. Nếu may mắn viral thì sức tác động càng lớn.
Mục tiêu sau cùng của cả hai đều là công cụ mạnh mẽ để tạo ra sự thay đổi, dù chỉ là một lập trình viên nhưng có thể tạo ra một framework hay một nhà văn có tác phẩm để đời. Tất cả đều tác động tới xã hội, tới văn hóa, ảnh hưởng nhiều khía cạnh
Kết
Cuối cùng, cả hai đều là công cụ mạnh mẽ để thay đổi và tạo ra ảnh hưởng trong xã hội. Dù là việc xây dựng một ứng dụng hay viết một bài viết, cả hai đều có khả năng tác động lớn đến văn hóa và tư duy. Chúng là những kỹ năng và công cụ đặc biệt, đồng thời là nguồn động viên cho sự sáng tạo và cải thiện bản thân.
#WOTN #day14
Bài viết thuộc thử thách viết 30 ngày viết dở và đều của khóa học Writing On The Net.
Hay quá anh ơi, em cũng feeling so awesome khi tìm được điểm matching giữa các khía cạnh khác nhau trong cuộc sống ạ 💚
Một sự so sánh siêu hay và rất thuyết phục luôn ạ!