Là một nhà phát triển phần mềm, bạn làm cách nào để mài sắc lưỡi cưa của mình?
Mài sắc lưỡi cưa là một thành ngữ để ám chỉ bất cứ việc gì bạn làm mà không phải là lập trình, nhưng cần thiết, (trên lý thuyết) làm cho bạn trở thành một lập trình viên giỏi hơn. Nó xuất phát từ cuốn sách 7 Thói Quen Của Người Thành Đạt của tác giả Covey.
Có một người tình cờ gặp một tay thợ đốn gỗ ở trên núi. Anh ta dừng lại và quan sát người thợ đốn gỗ, xem người thợ đang luýnh quýnh cưa một cái cây rất to. Anh để ý thấy rằng người thợ đốn gỗ đó đang làm việc rất khó nhọc, cứ cưa đi cưa lại, mà không tiến triển thêm được chút nào. Người ngoài cuộc để ý thấy rằng người thợ đốn gỗ đang sử dụng một cái cưa không được sắc lắm. Vì vậy, anh ta nói với người thợ gỗ rằng, “Xin lỗi ông, nhưng tôi không thể không nhận thấy rằng ông đang làm việc rất vất vả với cái cây đó, nhưng không đi đến đâu cả.” Người thợ đốn gỗ trả lời cùng với những giọt mồ hôi nhỏ tong tong trên trán, “Vâng… tôi biết. Cái cây này dường như đang gây rắc rối cho tôi.” Người đứng ngoài trả lời rằng, “Nhưng ông thợ gỗ này, cái cưa của ông thì đã rất cùn đến nỗi nó không thể cắt qua bất cứ cái gì được nữa.” “Tôi biết”, người thợ gỗ đáp lại, “nhưng tôi quá bận rộn trong việc cưa này đến nỗi chẳng còn chút thời gian nào để mài cái cưa của tôi cả.”
Dĩ nhiên, cách tốt nhất để tiến bộ trong bất cứ việc gì đó là phải làm nó thường xuyên nhất có thể. Nhưng nếu bạn cứ cắm đầu cắm cổ vào việc coding mà không có thời gian để bàn luận, nghĩ suy, hoặc nghiên cứu, thì bạn đang thực ra chẳng tiến lên phía trước được chút nào cả. Bạn phải đấu tranh để có một sự cân bằng giữa trau dồi nghề nghiệp của bạn và nghĩ về cách làm thể nào để trau dồi nghề nghiệp của bạn.
Scott Hanselman có một số ý tưởng vững chắc vào những cách để khuyến khích các thành viên trong đội phát triển phần mềm của bạn mài sắc những lưỡi cưa của họ. Và có một cách rất hiển nhiên, đó chính là việc bạn đang làm ngay lúc này: đọc các blog về lập trình. Ý tôi không phải là blog này, mà là bất kỳ một blog nào có chất lượng. Nếu bạn giữ cho mình có một tinh thần cởi mở, thì bạn có thể mài sắc lưỡi cưa của mình theo cách này, như Reginald Braithwaite đã ghi chú:
Cái mà chúng ta làm thì như thế này: chúng ta đọc một bài blog, đọc hết thứ này đến thứ khác mà chúng ta đồng ý, và nếu chỉ có một thứ trong đó không hợp với góc nhìn cá nhân của chúng ta, chúng ta yêu cầu một sự sửa chữa. Nếu luận điểm của bài viết đó xung đột với những định kiến của chúng ta, chúng ta buộc tội tác giả là một thằng ngu. Thành thật mà nói, chúng ta chẳng được như một người bán hàng. Chúng ta sẽ bỏ cuộc ngay lần đầu tiên khi mà bị một ai đó không đồng ý với chúng ta.
Cái mà tôi đề nghị là chúng ta hãy bắt chước những người bán hàng. Khi chúng ta đọc một bài viết, hoặc một cuốn sách, hoặc xem xét một ngôn ngữ lập trình mới,hãy giả sử rằng một số hoặc thậm chí là hầu hết các phần của nó sẽ không có gì mới cả. Hãy giả sử rằng chúng ta sẽ hoàn toàn ghét cay ghét đắng một số thứ trong đó. Nhưng bạn cũng hãy nhìn vào những lợi ích nó mang lại cho chúng ta:chúng ta chiến thắng nếu chúng ta có thể tìm thấy chỉ một thứ trong đó mà khiến chúng ta trở thành những lập trình viên giỏi hơn.
Bạn biết đấy, tất cả chúng ta cần từ một bài viết blog là: sẽ là một thắng lợi lớn nếu có một thứ gì đó hay ho trong một bài viết. Thậm chí, sẽ là một thắng lợi lớn nếu chúng ta đọc một trăm bài viết và học được thêm một điều mới mẻ và có giá trị.
Nếu bạn đang tìm kiếm những blog về lập trình tốt để mài sắc lưỡi cưa của bạn (hoặc ít nhất là để khêu gợi tính tò mò về trí tuệ của bạn), thì tôi biết có 2 trang web tổng hợp link về lập trình rất tuyệt vời mà có thể giúp bạn tìm thấy chúng.
Đầu tiên là trang Hacker News, trang này tôi đánh giá nó rất cao.
Hacker News là “con đẻ” của Paul Graham, vì vậy nó có phần nào đó ảnh hưởng bởi sở thích của ông ta trong quỹ khởi nghiệp Y Combinator về những thông tin startup nói chung. Paul rất nghiêm túc trong việc quản lý nội dung trên trang đó, vì vậy ông đã bổ sung thêm một hình thức để các thành viên bình chọn theo kiểu của mạng xã hội Digg, có một âm mưu bí mật trong việc chọn các biên tập viên để ngồi thủ công loại bỏ những post không phù hợp. Điều quan trọng hơn, những trao đổi trên trang web đó về các bài viết thì tương đối liên quan, với rất ít nội dung spam linh tinh.
Một trang khác là mục lập trình tại mạng xã hội Reddit. Những thảo luận ở đây thì lộn xộn hơn, với sự hoang dã của bất cứ thứ gì nhạy cảm, và chỉ được lọc bởi hình thức bình chọn up hoặc down của cộng đồng. Nhưng mà nó cũng tương đối đáng tin cậy để bạn có thể nhảy vào những link tuyệt vời nói về những sở thích đặc biệt của các lập trình viên.
Dĩ nhiên, việc đi mài cưa quá nhiều, hoặc mài cưa một cách ngẫu nhiên mà không có mục đích, thì có thể trở thành một hình thức khác của sự trì hoãn. Nhưng một lập trình viên mà hoàn toàn không cảm thấy thích thú với việc này một chút nào cả thì đó là một dấu hiệu cảnh báo đỏ lớn. Như Peter Bregman đã giảng giải, ám ảnh có thể trở thành một điều tốt:
Người ta thường thành công không chỉ bởi những cá tính khác thường của họ mà bởi chính bản thân họ. Những nỗi ám ảnh là một trong những tín hiệu tuyệt vời nhất của thành công. Việc hiểu một nỗi ám ảnh của ai đó và bạn sẽ hiểu được động cơ tự nhiên thúc đẩy anh ta. Thứ mà sẽ giúp anh ta đi đến tận cuối trái đất này.
Sẽ là rất tốt nếu bạn có một chút ám ảnh về việc mài sắc lưỡi cưa của mình, nó nghĩa là tích cực post link và thảo luận về các bài viết lập trình trên, trang Hacker News.
Bạn có những cách nào khác để làm sắc lưỡi cưa của bạn, với tư cách là một lập trình viên? Hãy chia sẻ ở phần bình luận phía dưới nhé!