Bắt đầu của cái bài viết này thì bắt nguồn từ một cuộc chat xàm với bạn bè của mình. Khi hỏi xung quanh xem mình nên viết về cái gì tiếp, thì có một người bạn của mình suggest là “write about writing”, mà lại hỏi đặc biệt về writing skills. Kiểu là làm thế nào để chọn topic và target audience, rồi làm thế nào để sắp xếp, organize ý tưởng và trình bày, convey cho người đọc để đạt được mục đích mình mong muốn. Đương nhiên, trình độ như mình thì lấy đâu ra writing skills để mà đi khoe với cả giải thích lại cho người khác. Tuy nhiên, cũng không phải vì thế mà câu hỏi không làm mình phải suy nghĩ thêm.
Để nói về viết lách thì thực sự là mình tư duy một cách khá là bản năng. Không nói đâu xa, chỉ ngay 2 bài viết trước, “Hard, Slow and Stupid” và “The Three Data Perspectives” đã là 2 thể loại khác hẳn nhau. Một bài thì mang tính tự sự và riêng tư hơn, còn một bài thì lại hơi khô khan, technical hơn hẳn. Chủ đề thì có thể đến từ bất cứ đâu - có thể là một bài viết nào mình đọc được, hoặc là một nội dung bàn luận mà làm mình suy nghĩ - quan trọng nhất là đó là thứ làm mình sẽ phải suy nghĩ thêm về nó. Vì phải có thứ hứng thú thì mình mới muốn lập luận chặt chẽ hơn, tư duy kỹ càng, để xây thành 1 bài viết dài hơn có đầu có đũa. Khi đó thì mình sẽ mở editor lên, viết lại ý tưởng của mình thành những gạch đầu dòng, thành đề bài, dàn ý, và sau đó vứt lại vào trong Draft. Khi viết technical, mình sẽ xây dựng khung bài 1 cách kỹ càng hơn, có những ý chính, gạch đầu dòng, chỗ nào cần bổ sung thêm giải thích hoặc dẫn chứng, sẽ được note lại và bổ sung dần dần; xây dựng bài viết từ thân cây, cành cây rồi đến lá cây. Còn khi viết vui vẻ xàm xí như thế này thì mình có khi sẽ để câu chữ nó tự tuôn ra, viết luôn một lèo cho nó trôi theo dòng cảm xúc và suy nghĩ; tự nhiên bài viết nó sẽ chân thành hơn, dễ gần hơn.
Dẫn ngược lại câu chuyện viết code, ngày xưa cũng từng là cần câu cơm của mình. Thú thực thì kinh nghiệm code của mình nó rất là tạp nham. Bỏ qua thời đại học đi vì hồi đó thì cứ tính như là mình không biết code, thì cuộc đời đi làm của mình lại bắt đầu từ làm Database Engineer, quản lý 1 lô 1 lốc Redis. Những dòng code đầu tiên mình viết một cách professionally thì lại là Infra script viết bằng Bash hoặc Python. Trải qua nhiều chông gai đến Pyspark và SQL xử lý dữ liệu, quay qua Webserver với Golang, nhảy qua K8s, Docker, Helm rồi CRDs, lộn vào Scala với Java JVM; và bây giờ thì lại quay lại với Web server Golang với Typescript. Trải nghiệm thì rộng rãi, và cũng mang lại cho mình nhiều thứ để ngẫm nghĩ. Data Engineering thì như là một thứ mà mình gắn bó chặt chẽ nhất, nhưng mà nó lại nằm ở 1 cái ngã ba đường chông chênh, ở giữa Engineering và Data. Mình thực sự dành sự yêu thích và quan tâm đến cả hai lĩnh vực này, và hoàn toàn không muốn bỏ rơi 1 bên nào cả. Và kỳ lạ thay, khi ngẫm nghĩ lại, thì cái này cũng hơi giống với sự viết lách của chính bản thân mình.
Software Engineering là một ngành yêu cầu 1 tư duy vô cùng chặt chẽ. Các System, workflow, logic luôn được đặt ra một cách rõ ràng; trình tự của các bước được thiết lập chặt chẽ. Lập trình như kiểu vẽ ra một công thức để máy tính làm theo, mọi thứ đều rõ ràng. Cái này mình có học tập 1 đứa em backend engineer cùng team mà vô cùng cẩn thận: Feature thì phải bắt đầu từ giấy bút, vẽ ra cái khung của hệ thống. Viết ra function signature cẩn thận ở từng tầng, viết sẵn comment vào bằng câu chữ, là ở function này mình sẽ làm cái gì. Sau khi xây xong dàn bài, nó sẽ chuyển dần từng đoạn logic thành đoạn code, để đảm bảo mọi thứ được đi 1 cách gọn ghẽ đẹp đẽ. Cách xây dựng code này cũng không khác gì cách viết một bài viết technical, xây dựng từ bộ khung vững chắc bên trong và phát triển dần ra đến những nét tô điểm bên ngoài. Không chỉ với những bài viết technical, mà cả với viết lách ở môi trường hơi chuyên nghiệp hơn 1 xíu, như viết product documentation, project proposal hay GTM plan, đây có thể là cách viết để đạt được độ rõ ràng, rành mạch cao nhất.
Data thì lại là một ngành đụng đến rất nhiều số má. Tuy nhiên với mình, phân tích dữ liệu lại là một thứ rất là phóng khoáng. Dữ liệu thì có đầy ra đó, nhưng mà tuỳ theo hoàn cảnh, theo tư duy, theo hiểu biết của mỗi người, thì mọi người sẽ nhìn nhận ra các thứ khác nhau. Nó là sự chiêm nghiệm của từng người, và sẽ không ai giống nhau cả. Lấy ví dụ 1 cổ phiếu đi, cùng là một công ty nhưng mà mỗi người sẽ nhìn vào các thứ khác nhau để định giá, vậy mà có bao giờ bạn thấy 2 người cùng đưa ra nhận định giống nhau? Cùng 1 công ty, nhưng giao dịch xảy ra khi 1 người thấy đó là điểm hợp lý để bán, và 1 người thấy đó là điểm hợp lý để mua (Cái này mình sẽ nói về Data Driven lúc khác, mình cũng đã có topic này ở trong draft rồi =)) . Phân tích data, đặc biệt là phần Data Exploration, nó lại cho mình cảm giác như một hành trình: nhìn bên này, ngó bên kia, xây dựng các giả thuyết, tìm tòi sự liên kết, và xây dựng lên những nhận định của mình. Nó như là một bài văn tự sự, kết nối những thứ mình cảm nhận được, và viết nên 1 câu chuyện vậy.
Viết lách cũng như cách để giúp mình tư duy lại sự đời. Ngẫm lại, thì blog với code cũng không khác nhau lắm…