RSS

Những sự thật về lập trình ít được biết tới

25 Oct
Vốn kinh nghiệm của một người lập trình đã dạy tôi vài điều về viết phần mềm. Dưới đây là những điều các bạn có thể thấy ngạc nhiên về công việc này:…

1. Một lập trình viên dành khoảng 10-20% thời gian vào việc viết code. Với hầu hết các lập trình viên, trung bình 1 ngày viết được khoảng 10-12 dòng lệnh mà sẽ nằm trong sản phẩm hoàn chỉnh, bất kể trình độ của anh ta ở mức nào. Những lập trình viên tốt dành khoảng 90% thời gian vào việc suy nghĩ, nghiên cứu và thử nghiệm để tìm ra thiết kế tốt nhất. Lập trình viên tồi thì dành 90% thời gian vào việc gỡ lỗi chương trình bằng cách thử thay đổi ngẫu nhiên xem có được không.
“Một người thợ mộc giỏi sẽ yêu cầu tiền công cao gấp vài lần một người thợ trung bình, nhưng một người lập trình giỏi thì đáng giá 10,000 lần so với người trung bình.” – Bill Gates.

2. Một lập trình viên tốt làm việc hiệu quả gấp 10 lần một người trung bình. Một lập trình viên xuất sắc sẽ hiệu quả gấp 20-100 lần. Đây hoàn toàn không phải là phóng đại – những nghiên cứu từ những năm 60 đã khẳng định như vậy. Một lập trình viên tồi không chỉ thiếu hiệu quả trong công việc – anh ta sẽ không chỉ không làm được gì mà còn gây ra vô số rắc rối cho những người khác đi khắc phục.

3. Những lập trình viên xuất sắc dành ít thời gian cho việc viết code – ít ra là với những đoạn code tồn tại tới sản phẩm hoàn chỉnh. Những người dành quá nhiều thời gian viết code thực ra là rất lười biếng, thiếu kiến thức và tự đề cao mình khi không đi tìm những giải pháp đã có cho những vẫn đề cũ. Lập trình viên xuất sắc là người biết tìm hiểu và sử dụng những giải pháp đã có. Những lập trình viên tốt sẽ không sợ việc phải liên tục viết lại các đoạn code của họ để đạt được kết quả như ý. Lập trình viên tồi thì tạo ra các đoạn code thiếu nhất quán, dư thừa, thiếu tổ chức, không theo khuôn mẫu, do vậy rất khó sửa chữa. Thông thường, việc xóa bỏ đoạn code tồi đề viết lại sẽ dễ dàng hơn là cố sửa nó.

4. Giống như tất cả những thứ khác, phần mềm tuân theo luật về entropy (càng nhiều biến đổi thì càng nhanh chuyển hóa). Những thay đổi liên tục sẽ làm cho phần mềm nhanh hỏng, dần mất đi tính toàn vẹn của thiết kế ban đầu. Dù điều này là khó tránh khỏi thì những lập trình viên không đảm bảo và duy trì được tính toàn vẹn của thiết kế phần mềm sẽ  tạo ra những phần mềm nhanh hỏng tới mức nó trở nên vô giá trị trước cả khi nó được hoàn thành. Đây có lẽ là nguyên nhân phổ biến nhất làm cho những phần mềm thất bại. (Nguyên nhân phổ biến thứ hai là tạo ra sản phẩm không đúng với yêu cầu của khách hàng). Những thay đổi trên phần mềm làm chậm tiến độ theo cấp số nhân, vì thế các dự án thường phát sinh rất nhiều thời gian và chi phí trước khi nó bị phá sản hoàn toàn.

5. Một nghiên cứu năm 2004 tìm ra rằng hầu hết cá dự án phần mềm (51%) sẽ thất bại tại một phần chức năng quan trọng. 15% dự án thất bại hoàn toàn, đây là một tiến bộ kể từ năm 1994, khi tỉ lệ là 31%.

6. Mặc dù hầu hết phần mềm được phát triển bởi các nhóm thì công việc này cũng không phải là loại việc chia đều. Thông thường, chỉ có 1 người chịu trách nhiệm thiết kế, những người còn lại trong nhóm thực hiện thiết kế này.

7. Lập trình là công việc vất vả. Nó đòi hỏi sự tập trung tinh thần và trí tuệ lớn. Những lập trình viên tốt suy nghĩ về công việc của họ 24/7. Những đoạn code quan trọng nhất có thể được giải quyết trong khi đang tắm hoặc trong giấc mơ. Vì những việc quan trọng nhất được giải quyết khi không ở bên bàn phím, những dự án phần mềm không thể được đẩy nhanh tiến độ bằng cách tăng thời gian làm việc trong van phòng hay bổ sung thêm người vào một dự án.

Theo RationalMind

Mình sẽ tập ……. Long Rainbow

 
Leave a comment

Posted by on 10/25/2012 in Soft Skills

 

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
%d bloggers like this: