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

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

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

Hãy tham gia cộng đồng và học hỏi từ những người đi trước để tiết kiệm thời gian và công sức – Phỏng vấn Nguyễn Bá Thành

Anh Nguyễn Bá Thành là người sáng lập và cựu CEO WePlayĐọc bài phỏng vấn của blog Vinacode với anh Nguyễn Bá Thành, là người sáng lập và cựu CEO WePlay, chuyên gia mobile game/app với hơn 5 năm kinh nghiệm startup trong ngành mobile, mentor và business owner của 2 startup mobile app. Để nghe anh chia sẻ về:

  • Cơ duyên nào đưa anh từ một kỹ sư điện tử viễn thông trở thành một lập trình viên game/app di động.
  • Các giai đoạn “code thuê”, “code dạo”, “lập trình viên độc lập” mà anh đã trải qua trước khi đạt được thành công với WePlay.
  • Những mô hình thu tiền trong các ứng dụng và game di động hiện nay và kinh nghiệm để có được mô hình thu tiền tối ưu nhất.
  • Liệu có nên khởi nghiệp cùng với bạn bè và những tiêu chí nào nên cân nhắc để chọn chiến hữu khi làm startup.
  • Cách quản lý thời gian để làm việc hiệu quả và những lời khuyên chân thành dành cho các bạn trẻ muốn khởi nghiệp trong lĩnh vực lập trình di động.

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