Làm sao để trở nên viết giỏi mà không cần phải viết

Bài viết được dịch từ blog Coding Horror

Tôi cần phải thú nhận rằng: theo một nghĩa nào đó, tôi sáng lập ra trang web Stack Overflow là để đánh lừa những lập trình viên đồng nghiệp của mình.

Trước khi bạn trở nên giận dữ vì điều này, hãy để tôi giải thích thêm.

Trong 6 năm qua, tôi đã có một niềm tin sâu sắc rằng việc trở thành một lập trình viên giỏi có rất ít thứ phải làm với lập trình. Vâng, công việc này cần một chút kỹ năng kỹ thuật và sự kiên trì. Nhưng thậm chí nhiều hơn thế, nó cần các kỹ năng truyền thông đúng đắn:

Sự khác biệt giữa một lập trình viên bình thường và một lập trình viên giỏi không liên quan đến bao nhiêu ngôn ngữ lập trình mà họ biết, và nó cũng không phải việc họ thích Python hay Java. Mà đó là liệu họ có thể truyền đạt ý tưởng của mình hay không. Bằng cách thuyết phục những người khác, họ có được lực đòn bẩy. Bằng cách viết ra những comment và đặc tả kỹ thuật, họ làm cho các lập trình viên khác hiểu được code của họ, có nghĩa là các lập trình viên khác có thể sử dụng và làm việc với code của họ thay vì phải viết lại nó. Thiếu mất điều này, code của họ là vô giá trị.

Kỹ năng viết lách là rất quan trọng đối với một lập trình viên.Kỹ năng viết lách là rất quan trọng đối với một lập trình viên.

Đọc tiếp >>

Vấn đề những con thỏ nhảy múa

Bài viết được dịch từ blog Coding Horror

Trong một thời đại mà thế giới được kết nối như hiện nay, việc bảo vệ người dùng khỏi chính họ là điều khó khăn hơn rất nhiều so với trước đây. Có một điều là, việc tin tưởng hoàn toàn là không thể. Vì có những con thỏ đang nhảy múa:

Những con thỏ nhảy múa.Những con thỏ nhảy múa.

Đọc tiếp >>

Trở thành một người chỉ giỏi công nghệ là chưa đủ

Bài viết được dịch từ blog Coding Horror

Tôi đã không nhận ra Dan Appleman đã viết blog trở lại! Trong một bài viết gần đây của mình, ông đã đưa ra một quan điểm tuyệt vời liên quan đến những bài viết gần đây của tôi về sự chênh lệch kỹ năng trong lập trìnhhãy làm tốt công việc của mình: đôi khi những thứ không liên quan đến kỹ thuật lại làm cho bạn trở thành một lập trình viên giỏi hơn so với một người nào đó ở Ấn Độ. Đừng bao giờ đánh giá thấp sức mạnh của các kỹ năng mềm:

Những kỹ năng về con người cũng quan trọng như các kỹ năng về kỹ thuật.Những kỹ năng về con người cũng quan trọng như các kỹ năng về kỹ thuật.

Đọc tiếp >>

Các quy tắc đọc mã ASCII cho lập trình viên

Bài viết được dịch từ blog Coding Horror

Là lập trình viên, chúng ta phải thường xuyên làm việc với rất nhiều ký tự bàn phím mà người bình thường hiếm khi phải dùng đến và họ không phải suy nghĩ nhiều về chúng:

$ # % {} * [] ~ &

Ngay cả những ký tự được sử dụng khá thường xuyên trong văn bản hàng ngày — như dấu gạch ngang, dấu ngoặc, dấu chấm, và dấu hỏi — có ý nghĩa hoàn toàn khác nhau trong các ngôn ngữ lập trình.

Đâu là quy tắc phát âm các ký tự ASCII cho lập trình viên?Đâu là quy tắc phát âm các ký tự ASCII cho lập trình viên?

Đọc tiếp >>

Hãy làm cho code nhỏ hơn

Bài viết được dịch từ blog Coding Horror

Trừ khi bạn lên núi tu trong mấy năm qua, còn nếu không thì có lẽ bạn đã nghe nói về trò game Katamari Damacy. Gameplay của nó chẳng gì khác hơn là lăn một quả bóng cuộn qua các đồ vật để cho kích thước quả bóng ngày càng tăng lên. Đó thực sự là tất cả những gì bạn cần phải làm. Bạn bắt đầu bằng cách lăn lên những thứ nhỏ như que diêm, tấm lót, đinh ghim, v.v… Khi quả bóng trở nên lớn hơn, bạn sẽ lăn nó qua các đồ vật lớn hơn. Và cứ thế, cuối cùng quả bóng Katamari của bạn trở nên quá lớn để bạn lăn qua các thành phố, ngọn núi, đám mây khác– cuối cùng là toàn bộ các hành tinh. Nó mang lại niềm vui không ngờ, và hoàn toàn mê hoặc.

Sau khi tôi chơi được một thời gian, tôi nhận ra rằng Katamari Damacy là một trò game về sự mở rộng quy mô của cuộc sống.

Cảnh trong trò game Katamari Damacy.Cảnh trong trò game Katamari Damacy.

Đọc tiếp >>

Lập trình viên và đầu bếp

Bài viết được dịch từ blog Coding Horror

Từ một cuộc phỏng vấn với Ron Jeffries:

Lý do nhà bếp bừa bộn không phải bởi vì căn bếp đó được thiết kế tồi, mà bởi vì chúng ta đã không lau chùi và dọn dẹp các bát đĩa sau mỗi bữa ăn.

Michael Feathers gần đây đã đăng một bài viết khá thú vị về quan niệm của các đầu bếp chuyên nghiệp trong việc giữ cho môi trường làm việc luôn gọn gàng sạch sẽ:

Một điều khác mà tôi thích về cuộc thi Vua Đầu Bếp đó là cách mà các đầu bếp được đánh giá. Có nhiều thứ hơn chứ không phải chỉ là việc đánh giá thông thường. Trong suốt quá trình các đầu bếp chế biến món ăn, ban giám khảo sẽ đi quan sát từ hết bếp này sang bếp khác, và ghi chú các chi tiết vào một cuốn sổ tay. Một trong những tiêu chí là các đầu bếp luôn phải giữ cho bếp của mình được gọn gàng. Hãy tưởng tượng là.. môi trường làm việc sạch sẽ.. Ban giám khảo sẽ quan sát để chắc chắn rằng các đầu bếp rửa sạch chén bát và các dụng cụ ngay sau khi sử dụng. Nếu các đầu bếp không làm như vậy, thì vâng, họ sẽ bị trừ điểm.

Lập trình viên giỏi và đầu bếp giỏi có nhiều điểm giống nhauLập trình viên giỏi và đầu bếp giỏi có nhiều điểm giống nhau

Đọc tiếp >>

Phương pháp lập trình tốt nhất hiện nay

Bài viết được dịch từ blog Coding Horror

Một trong nhiều bình luận phổ biến cho bài viết Lập trình viên Ferengi như sau:

Từ những gì tôi có thể thấy, vấn đề “lập trình viên quá ràng buộc vào các quy tắc” là hầu như không quan trọng bằng vấn đề “nhiều lập trình viên thực sự không có một manh mối gì trong việc phát triển phần mềm cả.” Đa số các lập trình viên không tiếp xúc quá nhiều với các design pattern, SOLID, hoặc agile, hay waterfall… Họ thường dùng giải pháp mì ăn liền như những tay cao bồi trong một môi trường hoàn toàn hoang dã, sử dụng kiểu kéo thả đơn giản, hướng dữ liệu (data driven), các kỹ thuật kiểu lập trình VB.

Phương pháp lập trình tốt nhất hiện nay là gì?Phương pháp lập trình tốt nhất hiện nay là gì?

Đọc tiếp >>

Học nghề lập trình phần mềm

Bài viết được dịch từ blog Coding Horror

Trong bài viết “Dạy lập trình hiện nay rất tệ: Tại sao chúng ta cần quay lại cách đào tạo 1.000 năm về trước”, Rob Walling đã đưa ra một lý lẽ để thuyết phục ngành giáo dục nên từ bỏ kiểu đào tạo truyền thống thiên về lý thuyết và chuyển qua đào tạo theo hình thức học nghề.

Học lập trình phải kết hợp giữa lý thuyết và thực hànhHọc lập trình phải kết hợp giữa lý thuyết và thực hành

Đọc tiếp >>

Lập trình viên Ferengi

Bài viết được dịch từ trang web Coding Horror

Có một chút ồn ào gần đây về một số bình luận của Joel Spolsky trên podcast của chúng tôi:

Tuần trước, tôi có nghe một podcast trên trang web Hanselminutes, trong đó Robert Martin nói về các nguyên tắc SOLID trong phát triển phần mềm. (Nó là một thuật ngữ rất dễ tìm kiếm trên Google!) Đó là về thiết kế hướng đối tượng và họ gọi là thiết kế agile, nhưng thực ra không phải là như vậy. Đó là các nguyên tắc để làm thế nào thiết kế các class của bạn, và các class đó sẽ làm việc như thế nào. Khi tôi lắng nghe họ, thẳng thắn mà nói, tôi có cảm giác rằng tất cả họ đều có vẻ như có lối suy nghĩ về lập trình cực kỳ quan liêu xuất phát từ tâm trí của những người chưa từng viết thật nhiều code.

Bạn có phải là một lập trình viên Ferengi?Bạn có phải là một lập trình viên Ferengi?

Đọc tiếp >>

Liệu tồi hơn có thực sự tốt hơn?

Bài viết được dịch từ blog Coding Horror

Ngày nay bạn có thể nghĩ rằng Steve Martin là một danh hài bẩm sinh– nhân vật trung tâm của những bộ phim tuyệt vời như ParenthoodFather of the Bride. Nhưng không phải lúc nào cũng như vậy. Sự nghiệp của Steve đã tiến những bước dài vào đầu những năm 80. Tại thời điểm đó, tôi không nghĩ có bất kỳ danh hài nào khám phá ra những góc cạnh hài hước theo cách giống như Steve Martin đã làm. Tôi mãi mãi sẽ nhớ về cuốn sách Cruel Shoes như một xúc cảm tuổi niên thiếu. Đó là một bộ sưu tập các truyện ngắn rất kỳ lạ. Ở tuổi non trẻ đó, tôi chắc chắn chưa từng bao giờ đọc bất cứ điều gì giống như nó. Thật khó để giải thích. Bạn hãy tự đọc và cảm nhận. Dưới đây là nội dung đầy đủ một truyện ngắn cùng tên Cruel Shoes (tạm dịch là đôi giày ác nghiệt):

Trong lập trình phần mềm: liệu tồi hơn có phải là tốt hơn?Trong lập trình phần mềm: liệu tồi hơn có phải là tốt hơn?

Đọc tiếp >>