Ngh lp trình và s tht ít ngưi
biết
Lập trình là một lĩnh vực mà nếu không phải trong nghề thì thật khó
thấu hiểu những nỗi “trần ai” trong đó. Sau đây, kĩ sư công nghệ
thông tin David Veksler – chủ trang blog The Rational Mind - sẽ chia
sẻ cho chúng ta những sự thật ít ai biết về nghề IT nghề lập trình:
Chỉ 10-20% thời gian của toàn b dự án được các lập trình viên s
dụng để viết code, và bất kể trình độ, mỗi ngày 1 lập trình viên ch
viết trung bình t10-20 dòng code. Skhác biệt giữa tay chuyên và
gà mđó là tay chuyên thì dành 90% thời gian để suy luận, tìm tòi và
thử nghiệm các phương án tối ưu nhất cho mình; còn những gà m
thì dành 90% thời gian để debug, thay đổi vài chỗ trong code, lại
debug và mong đến một lúc nào đó chương trình sẽ hoạt động.
Một lập trình viên tốt cho năng suất gấp 10 một lập trình viên tầm
tầm. Một lập trình viên giỏi có thể còn hơn nữa, 20 cho đến 100 lần
tùy hoàn cảnh. Đây là mt sự thật không hề “gió” và đã được khoa
học chứng minh từ tận những năm 60. Còn một lập trình viên tồi thì
chung quy hiệu suất bằng không – chng làm nên chuyện gì, ngược
lại vẽ ra nhiều vấn đề rối tinh rối mù cho người khác phải bận
tâm sửa hộ.“Một công nhân có kĩ thuật tiện cao siêu có thể giá trị gấp
vài lần một công nhân với kĩ thuật trung bình. Nhưng một lập trình
viên giỏi thì có giá trị gấp 10,000 lần một lập trình viên với trình độ
trung bình.” – Bill Gates
Các lập trình viên giỏi thường không dành nhiều thời gian để code,
trái lại những người code liên tục từ lúc này sang lúc khác lại là
những người lười biếng, vô tâm, kiêu ngạo và ít chịu tìm tòi nhất.
Người lập trình tốt là người biết vận dụng linh hoạt mọi giải pháp
mình tng vận dụng qua cho mọi vấn đề họ gặp phải; người lập trình
tồi là người viết nên nhng đoạn code dài dòng, rắc rối, bố cục lung
tung và khó để chỉnh sửa. Thực ra quẳng hết mớ code hỏng ra ngoài
và bắt đầu lại từ đầu lại là một lựa chọn hữu ích hơn ngồi ì ạch sửa
từng chút một.
Định luật entropy bao hàm mọi vật – entropy là mt hàm biu thị mức
độ hỗn loạn của một sự kiện din ra trong vô số các khả năng ngẫu
nhiên có thể diễn ra. Trong lập trình, thay đổi liên tc sẽ dẫn đến p
vỡ mô hình nguyên bản của thiết kế, dẫn đến sự suy giảm giá trị
phần mềm (software rot). Dẫu biết điều này là không thể tránh khỏi,
song các lập trình viên không nắm bắt được hình mẫu sơ khai của
dự án và biết cách biến nó thành hiện thực sẽ tạo ra những phần
mềm thất bại đến nỗi giá trị đã tiêu hao sạch sẽ kể cả trước khi dự án
hoàn thành, và đây thường là lý do ph biến nhất tạo nên các phần
mềm thất bại (Lí do phổ biến thứ nhì là to ra nhng giá trị mà khách
hàng không cần đến).
Trong năm 1994, 31% các dự án phần mềm sẽ thất bại “sặc gạch” từ
đầu đến chân. Con số này đến năm 2004 thì đã được cải thiện, chỉ
còn 15%, song 51% các d án thì bị thất bại trên phương diện trí
mạng của mình.
Mặc dù hầu hết các phần mềm đều được xây dựng bởi các đội ngũ
chứ không riêng gì ai, nhưng đó cũng không phải là một hoạt động
mang tính dân chủ. Thường thì chỉ có một người duy nhất chịu trách
nhiệm về thiết kế, còn lại cả đội nghĩ cách lấp đầy cách khoảng trống
xuất hiện. Kết cấu này ging với một tổ ong hay kiến nhiều hơn.