Bảo trì phần mềm là công việc mang tính nghệ thuật và đáng khâm phục

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

Khi đề cập đến cụm từ “bảo trì phần mềm” tới một nhóm lập trình viên thì họ sẽ cảm thấy kinh hãi (cho dù đó là đàn ông hay đàn bà). Bảo trì phần mềm được xem như là công việc lau dọn vậy.

Nhưng có thể đó là một sự mô tả không công bằng.

Bảo trì phần mềm giống như công việc lau dọn vậy.Bảo trì phần mềm giống như công việc lau dọn vậy.

Đọc tiếp >>

Advertisements

Câu chuyện về PING

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

Mọi người đều yêu quý ping. Nó đơn giản và thực dụng. Và nó thực hiện chính xác như cái tên của thiết bị phát hiện tàu ngầm mà nó được truyền cảm hứng. Ping cho bạn biết liệu một máy tính ở xa có đang trả lời một network request hay không.

Câu chuyện về tiện ích PingTiện ích ping được viết bởi Mike Muuss, một nhà khoa học cao cấp tại phòng thí nghiệm & nghiên cứu của quân đội Hoa Kỳ (U.S. Army Research Laboratory). Mike cũng đã viết ra ttcp, cái mà tôi là một fan hâm mộ lớn. Tôi đã sử dụng PC port của ttcp rất nhiều lần để kiểm tra thông lượng mạng.

Đọc tiếp >>

Lầm tưởng về hiệu suất khi làm nhiều dự án cùng một lúc

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

Trong cuốn sách Quality Software Management: Systems Thinking, tác giả Gerald Weinberg đề xuất một quy tắc để tính toán sự lãng phí do phải chuyển đổi dự án:

Theo tính toán của Weinberg, ngay cả khi chỉ bổ sung thêm một dự án vào khối lượng công việc của bạn thì nó cũng gây ra ảnh hưởng hết sức sâu sắc. Bạn sẽ mất đi 20% thời gian của mình. Khi bạn thêm một dự án thứ 3 vào, thì gần một nửa thời gian của bạn sẽ bị lãng phí trong việc chuyển đổi qua lại giữa các dự án.

Năng suất lập trình viên giảm khi phải tham gia nhiều dự án cùng một lúc.Năng suất lập trình viên giảm khi phải tham gia nhiều dự án cùng một lúc.

Đọc tiếp >>

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 >>

Con dao của quân đội Thụy Sĩ hay chuyên gia tổng quát

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

Trong bài viết “Liệu việc viết code có quan trọng?”, tôi đã đề nghị các lập trình viên dành ít thời gian hơn với các công việc kỹ thuật, vì đó là thứ mà họ đã tương đối giỏi, và dành nhiều thời gian hơn để trau dồi các kỹ năng phi kỹ thuật khác mà các lập trình viên có xu hướng thiếu hụt. Một độc giả đã đặt vấn đề với cách tiếp cận như sau:

Tôi không đồng ý với quan điểm về việc nên cải thiện những điểm yếu. Tôi thích quan điểm về việc phát triển tài năng và nhận thức được những điểm yếu của mình. “Biết rõ bản thân mình” không có nghĩa là đi học tất cả mọi thứ và trở thành một Con dao của quân đội Thụy Sĩ (Swiss Army Knife).

Rất dễ để biến đề nghị khiêm tốn của tôi trở thành một ý kiến cực kỳ ngớ ngẩn: hoặc là bạn ngồi viết code suốt ngày, hoặc bạn trở thành một người hoàn toàn không có kỹ năng về kỹ thuật và không bao giờ chạm vào một trình biên dịch nữa. Hoặc có thể bạn dành quá nhiều thời gian để theo đuổi những thú vui liên quan để bạn trở thành một người cái gì cũng biết một tí, nhưng chẳng tinh thông món nào cả. Hay nói cách khác, sẽ trở thành một Con dao của quân đội Thụy Sĩ (Swiss Army Knife).

Hãy trở thành một chuyên gia tổng quát chứ đừng là một Swiss Army Knife.Hãy trở thành một chuyên gia tổng quát chứ đừng là một Swiss Army Knife.

Đọc tiếp >>

Bill Gates và Steve Jobs

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

Nếu bạn chưa từng xem cuộc phỏng vấn lịch sử này giữa Bill Gates và Steve Jobs, thì bạn nên xem. Bạn sẽ thấy hai gã khổng lồ trong ngành công nghiệp máy tính trên sân khấu tương tác với nhau rất là hấp dẫn và đôi khi thậm chí có một chút cảm động.

Bill Gates và Steve JobsBill Gates và Steve Jobs

Đọc tiếp >>