Từ 0 đến 9 lời khuyên của dân viết lách cho dân coder

Từ 0 đến 9 lời khuyên của dân viết lách cho dân coder

Bạn có bao giờ thấy cuốn sách self-help nào cho lập trình viên chưa? Các tài liệu giải thích về vòng lặp for hay về các ngôn ngữ lập trình thì chắc chắn là có cả. Nhưng còn những vấn đề liên quan đến hành vi của chúng ta thì sao? Nếu bạn cũng là lập trình viên, thì bạn sẽ biết rằng các lập trình viên cũng bị bế tắc (block) y hệt như các nhà văn vậy.
Hóa ra các nhà văn cũng biết cách để vượt qua bế tắc lập trình đấy. Mười mẹo sau đây sẽ giúp bạn trở thành một lập trình viên hiệu quả, sáng tạo và tự tin hơn, cho dù bạn là một lập trình viên mới hay đã là chuyên gia. Những thứ mẹo này thì từ đâu ra vậy? Thực ra là, để xoa dịu cảm giác tội lỗi của tôi vào năm cuối tiến sĩ trong các cuộc phỏng vấn của khoa, tôi đã đọc rất nhiều sách về viết lách trên máy bay. Và tôi đã khám phá ra là rất nhiều cuốn sách về viết lách cũng có những hiểu biết và phương pháp áp dụng được cho lập trình.
Rõ ràng là list thì bắt đầu từ index 0 đúng không?

Tip 0: Program First | Trước tiên cứ phải code đã

Lập trình thì cần tập trung, và chúng ta đều bận rộn. Vậy giải pháp là gì? Con người chúng ta sáng tạo nhất vào buổi sáng, vì vậy hãy tận dụng giờ làm việc đầu tiên trong ngày của bạn. Đừng lên lịch họp. Đừng kiểm tra email hoặc mạng xã hội của bạn. Nếu bạn đang ở nhà, thậm chí có thể không đánh răng. Đối với tôi, cà phê là thiêng liêng. Nhưng sau đó, làm ơn hãy đặt mông của bạn xuống ghế. (Một số người nói rằng công cụ hữu ích nhất của nhà văn là keo dính). Đặt khoảng thời gian hoàng đạo này của bạn vào lịch làm việc, và tuyệt đối không được để bị ảnh hưởng bởi bất cứ thứ gì khác.

Tip 1: Don’t Be Afraid To Use Paper | Đừng ngần ngại dùng giấy (đừng nghĩ bậy nha)

Trước khi bạn bật màn hình, hãy lập sơ đồ suy nghĩ của bạn, ghi lại những ý tưởng trên một sổ ghi chú, lập một danh sách. Cuốn sách Writing Your Dissertation in Fifteen Minutes a Day nhấn mạnh tầm quan trọng của việc đưa ra bản thảo số không (draft zero), hay cũng chính là đưa khung sườn trước khi viết bản thảo đầu tiên. Bạn đã dành cả buổi tối và đến tận đêm để đưa ra những ý tưởng chìm sâu trong tiềm thức của bạn. Giờ hãy để chúng tự nổi lên. The Artist’s Way gợi ý rằng viết tự do có thể giúp bạn trở thành một lập trình viên giỏi hơn. Hãy làm những gì tốt cho bạn.

Tip 2: Establish a Programming Addiction | Hãy nghiện lập trình

Con người là sinh vật của thói quen. Vì vậy, hãy làm cho lập trình trở thành một phần trong lịch trình của bạn, và đặt ra những mục tiêu hợp lý. Khái niệm này xuất phát từ cuốn sách Writing Down the Bones. Sau một vài tuần, chỉ cần bạn bỏ lỡ một buổi ngồi code thôi là bạn sẽ bắt đầu cảm thấy thiếu thiếu rồi. Một phút tuy ngắn ngủi, nhưng nhiều phút cộng lại dần thì quãng thời gian sẽ trở nên dài đấy.

Tip 3: Track Ideas as Well As Bugs | Theo dõi các ý tưởng cũng như các bug

Hãy viết ra sổ tay những ý tưởng và những vấn đề mà bạn có thể trở lại và giải quyết khi bạn gặp khó khăn hoặc tìm kiếm điều tiếp theo để giải quyết. Lịch trình lập trình (Mẹo 2) là một khởi đầu rất tốt, nhưng sự sáng tạo có thể không phải lúc nào cũng tuân theo lịch trình, hoặc bạn có thể bận rộn với một cái gì đó khác, vì vậy hãy nắm bắt ý tưởng của bạn khi bạn có thể. Họ nói rằng việc viết lách cũng sẽ giúp con chữ tuôn ra, vì vậy khi bạn càng code nhiều, bạn càng có nhiều ý tưởng hơn về code. Như tôi luôn mang theo một cuốn sổ tay.

Tip 4: Make Friends | Kết bạn

Mọi người làm việc tốt hơn khi mỗi người có trách nhiệm. Hãy đặt ra các buổi chia sẻ hàng tuần, nơi bạn đặt mục tiêu, thảo luận về các vấn đề khó khăn, và chia sẻ tài nguyên hoặc chiến lược. Ví dụ, những người bạn trong hội Computer Vision của tôi tại CMU đã họp 15 phút vào các buổi sáng thứ Hai trong quán cà phê của trường đại học. Tất cả mọi người (thậm chí lập trình viên) đều quan tâm đến áp lực xã hội. Gặp trực tiếp là tốt nhất, nhưng bạn cũng có thể lên các diễn đàn online. Mọi người có thể sẽ cảm thấy bị nhột khi bạn hỏi về code của họ.

Tip 5: Learn from Others | Học hỏi từ người khác

Cũng giống như việc tách rời mọi thứ để có thể sắp xếp mọi thứ lại với nhau một cách tốt hơn, các lập trình viên có thể hình thành một cảm giác code cho chính mình bằng cách đọc và sửa code của người khác. Trong The Sense of Style, Stephen Pinker nhấn mạnh rằng các nhà văn giỏi cũng chính là những người đọc cuồng nhiệt. Không giống như viết lách, việc sử dụng các thư viện có sẵn để làm nền móng cho code của bạn là việc nên làm. Hãy hiểu rõ được ngọn ngành mọi thứ, nhưng đồng thời cũng không cần phải phát minh lại bánh xe khi ai đó đã tìm ra vấn đề trước đó.

Tip 6. Be Nice to Your Muse | Hãy tử tế với nàng thơ của bạn

Việc hình dung cấu trúc code hay là thuật toán giải quyết vấn đề bắt đầu từ đâu cũng chính là một quá trình sáng tạo. Hãy tưởng tượng có hai bàn làm việc trong văn phòng của bạn, một bàn để viết (Mẹo hiện tại), một bàn để chỉnh sửa (Mẹo 7). Bàn viết có hướng nhìn ra cửa sổ, tính khí thất thường dễ thay đổi, và luôn khuyến khích bạn đuổi theo những ý tưởng. Đừng ngại đi dạo hoặc thử một cái gì đó mà chưa chắc đã là giải pháp cuối cùng tốt nhất. Một trong những thực tập sinh năng suất nhất của tôi có xu hướng đi lại trên hành lang tại CMU khi cô ấy đang tìm bước tiếp theo trong code của mình. Lập trình, giống như viết, liên quan đến nhiều vấn đề hơn là chỉ gõ các ký tự trên màn hình, vì vậy hãy luôn biết chăm sóc cái mầm sáng tạo của mình.

Tip 7. Be Heartless (but not Mean-Spirited) | Hãy vô tâm (nhưng không phải là xấu tính)

Nếu bạn đang trong giai đoạn chỉnh sửa (editing), bạn thường sẽ phải “giết chết cục cưng của mình”. Câu nói này đã trở nên phổ biến với nhiều nhà văn, bao gồm cả Stephen King. Đó là về việc loại bỏ những thứ thừa thãi. Ví dụ, bạn có thể đã dành nhiều thời gian để làm cho đoạn code này hoạt động, nhưng bây giờ bạn đã có thứ gì đó tốt hơn. Comment out tất cả đoạn đó nếu bạn thực sự không thể chịu được cảnh tượng xoá code hãi hùng, nhưng nhớ là bạn phải biết giết, giết, giết. Trái ngược với Mẹo 6, bàn chỉnh sửa của bạn không được trang trí đẹp đẽ và sẽ nằm ở một góc. Các lập trình viên nói chung thường giỏi ở bước này (mặc dù tôi thích cửa sổ hơn). Hãy nhẫn tâm khi nói về mục đích thiết yếu nhất của code của mình, nhưng hãy tử tế khi nói về chính mình.

Tip 8: Beware The Curse of Knowledge | Coi chừng Lời nguyền kiến thức

Một trong những lý do chúng ta không (thường) lập trình bằng ngôn ngữ assembly là vì nó không dễ đọc với con người. Khi các ngôn ngữ mã hóa cấp cao hơn trao quyền cho chúng ta với sự trừu tượng (abstraction), chúng ta cũng nên lựa ra những loại trừu tượng có ý nghĩa. Gọi một cái gì đó là var1 và var2 là một hành động vô văn hoá đối với người sẽ phải động vào code của bạn (khả năng cao cũng chính là bạn) nếu cần phải thay đổi sau này. Một trong những thách thức lớn nhất của viết lách đó là đảm bảo rằng khán giả phải theo được nội dung. Sử dụng những khoảng trắng, những comment của bạn và dành thời gian tạo ra các cấu trúc và các lớp trừu tượng hợp lý. Không quan trọng đoạn văn (hoặc đoạn code) của bạn thông minh đến mức nào, nếu mọi người không thể giải được cấu trúc của cả đoạn.

Tip 9: End On A Downward Slope | Dừng xe trên dốc xuống

Mỗi buổi sáng nên được bắt đầu từ… ngày hôm trước. Hãy dành 10% cuối cùng của bạn mỗi ngày cho những gì bạn sẽ làm trong ngày tiếp theo. Có thể bạn cấu trúc đoạn code tiếp theo của bạn bằng cách comment. Hoặc bạn lập một danh sách. Tôi lái một chiếc xe số. Và, bằng cách đỗ xe ở dốc xuống, tôi biết rằng ngay cả khi ắc quy của xe tôi chết trong đêm, tôi vẫn sẽ có thể sử dụng lợi thế trọng lực của con dốc để khởi động động cơ của mình. Nó giống như là mang sẵn bộ quần áo tập thể dục đến gym từ đêm hôm trước vậy. Bạn không cần phải suy nghĩ, bạn chỉ cần đi.

Hãy coi danh sách vừa rồi là một danh sách self-help cho lập trình viên. Lập trình là một quá trình sáng tạo, giống như viết lách vậy. Và tôi tin rằng mười mẹo vừa rồi có thể giúp bạn sáng tạo hơn, năng suất hơn và ít gặp khó khăn hơn.

Nguồn: hackernoon

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×