Liệu kỹ năng viết có quan trọng hơn lập trình?

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

Một bài blog wikipedia không chính thức có tên là Tương Lai Của Mã Nguồn Mở 5 Năm Về Trước tạo ra một so sánh thú vị giữa tỉ lệ sử dụng hệ điều hành Linux và tỉ lệ sử dụng bách khoa toàn thư mở Wikipedia.

Liệu kỹ năng viết có quan trọng hơn lập trình?Liệu kỹ năng viết có quan trọng hơn lập trình?

Đọc tiếp >>

Code tốt nhất là không code chút nào cả

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

Rich Skrenta viết rằng code chính là kẻ thù của chúng ta.

Code thì rất dở. Mó mục nát. Nó yêu cầu phải được bảo trì theo định kỳ. Nó có nhiều bug mà cần phải được phát hiện. Những đặc trưng mới nghĩa là code cũ đã bị điều chỉnh. Bạn càng có nhiều code, thì càng có nhiều chỗ để cho các bug trú ẩn. Thời gian checkout và biên dịch sẽ lâu hơn. Và một nhân viên mới sẽ cần thời gian lâu hơn để có thể hiểu được hệ thống của bạn. Nếu bạn phải tái cấu trúc nó thì sẽ có rất nhiều thứ phải thay đổi.

Code được tạo ra bởi các kỹ sư. Để tạo ra nhiều code hơn thì yêu cầu nhiều kỹ sư hơn. Các kỹ sư có chi phí truyền đạt là n^2, và tất cả phần code mà họ đã bổ sung vào hệ thống trong khi mở rộng khả năng của nó thì cũng làm tăng toàn bộ phí tổn. Bạn nên làm bất cứ điều gì có thể để tăng năng suất của những lập trình viên riêng lẻ thông qua code mà họ viết. Bớt đi những đoạn code làm cùng công việc giống nhau. Số lượng lập trình viên phải thuê sẽ ít đi. Chi phí truyền thông trong tổ chức cũng sẽ giảm đi rất nhiều.

Thực ra code tốt nhất là không code một chút nào cả!Thực ra code tốt nhất là không code một chút nào cả!

Đọc tiếp >>

Kỹ năng lập trình bớt tệ hơn sau mỗi năm

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

Bài viết tổng hợp về điểm mạnh yếu các ngôn ngữ lập trình của Steve Yegge thì, theo như ông ta đã chỉ ra rằng, nó chẳng tốt cũng chẳng phải là hoàn thiện, nhưng thực sự nó là một trong những bài blog có giá trị nhất mà tôi đã đọc trong năm nay. Tôi sẽ tóm tắt một đoạn cho bạn: theo như Steve thì ngôn ngữ lập trình Ruby là sự kết hợp của những đặc trưng tốt nhất của các ngôn ngữ khác như Perl, Smalltalk, Python, và Lisp vào trong một chiếc túi có sức mạnh vô địch, và nó cũng tránh được những thiếu sót trong khi thiết kế mà các ngôn ngữ khác đã gặp phải trước đó.

Bạn phải liên tục học hỏi để nâng cao kỹ năng lập trình sau mỗi năm.Bạn phải liên tục học hỏi để nâng cao kỹ năng lập trình sau mỗi năm.

Đọc tiếp >>

Chúng ta là những người đánh máy trước, lập trình viên thứ nhì

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

Bạn có nhớ trong một bài viết tuần trước tôi có nói rằng lập trình thì cũng chỉ là viết?

Tôi đã sai. Như một độc giả đã bình luận rằng, nó thì thậm chí còn đơn giản hơn điều đó.

[Điều này] làm tôi nhớ lại khoảnh khắc mình trở thành nhân vật Dilbert trong truyện cười nổi tiếng một ít năm về trước, khi ông chủ (dĩ nhiên là không rành về kỹ thuật) của tôi đã bình luận rằng ông ta chẳng bao giờ hiểu nổi tại sao lại phải mất nhiều tháng trời để phát triển một phần mềm. “Dù gì thì”, ông ta nói, “nó chỉ là ngồi gõ bàn phím thôi mà.”

Giống như mấy cái đồng hồ hỏng, thậm chí mấy vị quản lý đầu hói cũng phát biểu đúng một lần mỗi ngày. Lập trình thì chỉ là gõ chữ.

Kỹ năng gõ nhanh là một trong những kỹ năng quan trọng nhất của nghề lập trình viên.Kỹ năng gõ nhanh là một trong những kỹ năng quan trọng nhất của nghề lập trình viên.

Đọc tiếp >>

Có một thứ mà mọi kỹ sư phần mềm đều nên biết

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

Tôi là một fan hâm mộ Steve Yegge, vì vậy thật là một vinh hạnh lớn khi mời được Steve Yegge nói chuyện trong một podcast gần đây trên Stack Overflow. Tuy nhiên, có một điều mà tôi không thể đoán trước được, đó là một chủ đề đặc biệt theo kinh nghiệm của Steve tại Google và Amazon cứ tiếp tục lặp đi lặp lại:

Nếu có một thứ mà tôi có thể dạy cho mọi kỹ sư, thì đó là cách làm thế nào để tiếp thị.

Không phải là làm thế nào để gõ, không phải là làm thế nào để viết, không phải là làm thế nào để thiết kế một ngôn ngữ lập trình, mà là tiếp thị.

Tiếp thị mà một trong những kỹ năng quan trọng nhất mà một lập trình viên nên biết.Tiếp thị mà một trong những kỹ năng quan trọng nhất mà một lập trình viên nên biết.

Đọc tiếp >>

Tạm gác lại “cái tôi” trong lập trình: Bạn không phải là công việc của bạn

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

Khái niệm về việc tạm gác lại “cái tôi” trong lập trình, được mô tả bởi Johanna Rothman:

Hai mươi lăm năm về trước, Jerry Weinberg đã xuất bản cuốn sách The Psychology of Computer Programming (Tâm lý học của công việc lập trình máy tính). Tôi đã khám phá ra cuốn sách đó vào năm 1977, và tôi đã quyết định rằng mình muốn làm việc như một kỹ sư phần mềm tạm gác lại “cái tôi”, tất nhiên là không phải giống như một tay DJ (làm việc chỉnh và trộn nhạc) trên radio.

Tạm gác lại “cái tôi” trong lập trình xuất hiện khi một nhóm các đồng nghiệp kỹ thuật sử dụng hình thức review ngang cấp một cách thường xuyên để tìm những khuyết điểm trong phần mềm đang ở giai đoạn phát triển. Mục tiêu ở đây là để mọi người có thể tìm thấy những sai sót, bao gồm cả tác giả, không phải để chứng minh rằng sản phẩm đó là không có sai sót. Mọi người trao đổi các sản phẩm đang trong quá trình phát triển đó để review lẫn nhau, cùng với sự mong đợi rằng các tác giả sẽ tạo ra nhiều lỗi, và những người reviewer sẽ tìm thấy nhiều lỗi. Bất kỳ ai cuối cùng cũng học được từ những sai lầm của bản thân họ và của những người khác. Đó là lý do tại sao nó được gọi là lập trình mà không có “cái tôi”. “Cái tôi” của tôi thì không gắn với cái “hoàn hảo” hoặc “không hoàn hảo” của sản phẩm mà tôi làm ra. “Cái tôi” của tôi thì chỉ gắn với những nỗ lực của tôi để làm công việc theo cách tốt nhất mà tôi biết, và học được từ những sai lầm của chính tôi, chứ không phải là kết quả đầu tiên trong công việc của tôi.

Trong công việc bạn nên gác lại 'cái tôi' để nhắm đến mục tiêu chung của cả nhóm.Trong công việc bạn nên gác lại ‘cái tôi’ để nhắm đến mục tiêu chung của cả nhóm.

Đọc tiếp >>

Lập trình viên giỏi hãy bớt sử dụng chuột

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

Một trong những cách nhanh nhất để nâng cao năng suất của bạn khi làm việc trên máy tính đó là hãy tập trở thành một lập trình viên dạng lính đặc công: nghĩa là hãy ngừng sử dụng chuột. Khi bạn ngừng việc sử dụng chuột cho mọi thứ, thì bạn sẽ bắt buộc bản thân phải học những phím tắt. Jeremy Miller đã gọi đây là bước đầu tiên để có thể lập trình nhanh hơn. Tôi hoàn toàn đồng ý với điều đó.

Bạn hãy hạn chế sử dụng chuột để lập trình được nhanh hơn.Bạn hãy hạn chế sử dụng chuột để lập trình được nhanh hơn.

Đọc tiếp >>

Chênh lệch kỹ năng trong lập trình

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

Tôi chắc chắn không phải là lập trình viên giỏi nhất thế giới. Đầu tiên tôi xin nói với bạn rằng có vô số lập trình viên ngoài kia giỏi hơn tôi. Nhưng có một điều là: trong suốt 10 năm làm việc với tư cách là một lập trình viên chuyên nghiệp, thì tôi có thể liệt kê ra những lập trình viên thực sự giỏi mà mình đã làm việc cùng trên chỉ một bàn tay. Tôi biết điều này thì khá thất vọng, nhưng tôi xin phép được nói rằng: có một điều gì đó kỳ cục về nghề nghiệp của chúng ta mà dẫn đến một sự chênh lệch sâu sắc khác thường trong các kỹ năng.

Có một sự chênh lệch kỹ năng rất lớn giữa các lập trình viên đang làm việc.Có một sự chênh lệch kỹ năng rất lớn giữa các lập trình viên đang làm việc.

Đọc tiếp >>

Làm thế nào để thuê một lập trình viên

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

Thực ra không có gì là bí mật trong việc tuyển dụng các lập trình viên cả. Nhưng tôi có thể chia sẻ lời khuyên về một vài kỹ thuật mà tôi đã thấy nó hiệu quả, và tôi sẽ viết về chúng sau đây vì cá nhân tôi đã thử áp dụng trong nhiều năm qua.

Làm thế nào để tuyển dụng được một lập trình viên giỏi?Làm thế nào để tuyển dụng được một lập trình viên giỏi?

Đọc tiếp >>