Lập trình viên nên thuộc lòng triết lý KISS và YAGNI

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

Những quan điểm của kỹ sư Rico (hiện đang làm việc cho Microsoft) về một chủ đề gần như rất thân thuộc đối với tôi:

Tôi không nghĩ rằng có ai đó lại có thể đưa bất kỳ kết luận nào về tốc độ thực thi của phần mềm trong bài viết của tôi trên blog Performance Tidbits. Nếu tôi có thể tóm tắt lại lời khuyên của mình trong bài viết đó trong chỉ một vài từ thì nó sẽ là “đừng sử dụng các đặc trưng OOP mà bạn không cần đến.”

Điều này không phải nói rằng bạn nên tránh xa các hàm ảo, kế thừa, hoặc những đặc trưng khác của các ngôn ngữ lập trình hiện đại. Mà thực ra chúng không những chỉ mang lại sự rõ ràng và khả năng bảo trì mà chúng cũng cải thiện cả về tốc độ thực thi nữa. Nhưng, cũng rất thường xuyên, tôi quan sát thấy rằng người ta viết code của họ theo một cách rối rắm trong khi có một mô hình đơn giản hơn rất nhiều mà vẫn mang lại hiệu quả tương đương và tốc độ thực thi còn nhanh hơn. Dù cho bạn có sùng bái phong cách lập trình nào đi chăng nữa thì tôi nghĩ bạn sẽ đồng ý rằng ngôn ngữ càng trừu tượng và phức tạp thì không giúp ích gì cho thiết kế của bạn – thay vì mỗi đặc trưng phức tạp sẽ tạo ra rất nhiều tiêu cực thì nên bằng một cách nào đó chuyển thành tích cực hơn với những lợi ích như là sự rõ ràng, dễ bảo trì, tốc độ thực thi nhanh, và nhiều vấn đề khác.

Vì vậy khi tôi nói những câu kiểu như “đừng sử dụng một delegate nếu tính đa hình thông thường đã có thể làm được” thì ý tôi không phải là bạn nên tránh xa các delegate, mà ý tôi là bạn nên không sử dụng chúng nếu không thấy cần thiết.

Khi bạn viết code thì hãy viết theo cách đơn giản nhất có thể.Khi bạn viết code thì hãy viết theo cách đơn giản nhất có thể.

Đọc tiếp >>

Advertisements

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

Những lập trình viên giỏi cần phải đặt mông xuống

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

Tôi mới tìm thấy đoạn trích này, và cũng giống như Wes, tôi nhớ là mình đã từng đọc nó, nhưng không thể nhớ chính xác đã đọc nó ở đâu:

Software Architect giỏi phải thực sự viết code nguyên mẫu cho sản phẩm, chứ không chỉ đơn giản là ngồi vẽ các UML diagramSoftware Architect giỏi phải thực sự viết code nguyên mẫu cho sản phẩm, chứ không chỉ đơn giản là ngồi vẽ các UML diagram

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

Làm thế nào để không trở thành một Rockstar Programmer

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

Những chỉ trích của Tom về nội dung bài viết của tác giả Mikael Grey, Làm thế nào để trở thành một Rock Star Programmer, khởi đầu cũng đầy hy vọng:

Không có cái gì gọi là Rockstar Programmer cả!Không có cái gì gọi là Rockstar Programmer cả!

Đọc tiếp >>

Từng bước để trở thành một lập trình viên giỏi

Bài viết được dịch từ blog Simple Programmer

Lời bàn của Vinacode:

Như trong bài viết “Tự học lập trình trong 10 năm” của Giáo sư Norvig thì chúng ta đã biết rằng để trở nên tinh thông bất cứ lĩnh vực gì thì ai cũng phải cần tối thiểu 10,000 giờ tập luyện (tương đương khoảng 10 năm). Nhưng bạn có thể nói rằng điều đó chẳng cần kết quả nghiên cứu của các nhà khoa học thì bạn cũng biết. Vấn đề ở đây là 10 năm là một quãng thời gian rất dài, và với 10 năm đó thì có thể đã “vật đổi sao dời” hay người còn kẻ mất. Điều quan trọng là làm sao duy trì được động lực làm việc và học tập trong một quãng thời gian dài như vậy?

Đúng vậy, để có thể duy trì được động lực trong một quãng thời gian dài như vậy thì bạn phải hình dung ra được một big picture (tạm gọi là bức tranh lớn) của mình trong tương lai. Liệu bạn sẽ làm gì và ở đâu trong 10 năm tới? Hay còn gọi là phải đặt ra được mục tiêu cụ thể.

ly-tieu-longHôm nay chúng ta sẽ đọc một bài viết của tác giả John Sonmez về cách từng bước làm thế nào để trở thành một lập trình viên giỏi. Hy vọng với một hướng dẫn từng bước kiểu step-by-step này sẽ giúp một số bạn newbie có thể áp dụng và định hướng tương lai sau này.

“Tôi không sợ những kẻ tập một lần 10.000 cú đá, tôi chỉ sợ những kẻ tập 10.000 lần một cú đá.” ~ Huyền thoại võ thuật Lý Tiểu Long

Tôi phải làm thế nào để từng bước trở thành một lập trình viên xuất sắc?Tôi phải làm thế nào để từng bước trở thành một lập trình viên xuất sắc?

Đọc tiếp >>

10 Bí quyết để trở thành một lập trình viên giỏi

Bài viết được dịch từ blog của Ashish Arya

“Một lập trình viên giỏi là một người luôn luôn nhìn cả hai phía trước khi băng qua con đường một chiều.” ~ Doug Linder

Là một lập trình viên phần mềm làm việc trong ngành công nghiệp IT, thì thứ tạo ra động lực để chúng ta đến nơi làm việc mỗi ngày là những niềm vui và đam mê trong công việc lập trình. Nhưng để cho công việc đó trở nên là một niềm vui thích và đam mê vĩnh cửu thì một trong những điều bạn cần phải học là bám sát vào những thứ căn bản để giúp bạn trở thành một lập trình viên giỏi.

Không phải là tôi đang ghi ra một câu thần chú để bạn có thể theo đó mà trở thành một lập trình viên giỏi, mục đích của tôi là tạo ra một danh sách những bí quyết hữu ích, những điều mà tôi đã học và áp dụng trong ngành công nghiệp này để có thể đạt được khá nhiều kết quả tuyệt vời. Thực ra không có định nghĩa chính xác thế nào là một lập trình viên giỏi cả, nhưng ở đây chúng ta muốn nói đến những kiểu lập trình viên mà đã phát triển ra những giải pháp IT tuyệt vời và góp phần làm cho cả ngành công nghiệp này phát triển.

Tôi phải làm gì để trở thành một lập trình viên xuất sắc?Những bí quyết nào giúp tôi trở thành một lập trình viên giỏi?

Đọc tiếp >>

10 Bí quyết để tự học một công nghệ mới

Bài viết được dịch từ Tutsplus.com

Chúng ta đang sống trong một thời đại vô cùng hấp dẫn. Chưa bao giờ kiến thức lại rẻ và có sẵn với số lượng lớn đến như vậy (nếu không muốn nói là miễn phí). Nói chung, việc dạy và học đã dịch chuyển từ các giảng đường đại học sang các blog và các khóa học trực tuyến, gồm các video hướng dẫn và các diễn đàn thảo luận. Có nhiều nguồn tài nguyên phong phú trên Internet như vậy, không có lý do nào để bạn biện minh cho việc không nhảy vào học ngay. Tuy nhiên, với một số lượng dồi dào nguồn kiến thức như vậy, việc tìm ra những tài liệu phù hợp trở thành một trở ngại. Trong bài này, tôi sẽ phác thảo ra một quy trình đơn giản để bắt đầu việc học của bạn.

“Mặc dù gợi ý của tôi gắn liền với lĩnh vực phát triển phần mềm, nhưng những nguyên tắc này chắc chắn cũng sẽ phù hợp với các lĩnh vực khác.”

1. Vượt qua sức ì của bản thân

Để học được một công nghệ mới thì việc vượt qua sức ì để thực hiện những bước đầu tiên là vô cùng quan trọng.Bạn nên thực hiện những bước rất nhỏ để vượt qua sức ì của bản thân.

Đọc tiếp >>

Bí quyết khởi nghiệp thành công từ nhà sáng lập gốc Việt của Linked Senior

Bài viết được dịch từ blog của ITviec.com

Thông tin thêm về Mr. Vũ và công ty Linked Senior của anh:

Linked Senior là sản phẩm do Mr. Vũ và một người bạn sáng lập, cung cấp một phương tiện giải trí dành cho người già tại Mỹ (chủ yếu tại các nhà dưỡng lão). Sản phẩm này là một hệ thống kết hợp giữa phần cứng và phần mềm. Phần cứng gồm một thiết bị giống như màn hình TV có cảm ứng, giúp người già (thường bị hạn chế về thị giác và cử động do vấn đề tuổi tác) có thể tương tác chọn lựa để download các cuốn sách nói, nhạc, thông tin… về một thiết bị giống như một chiếc máy nghe nhạc MP3 (có thiết kế chuyên biệt cho người già dễ sử dụng). Người dùng cắm thiết bị MP3 này vào cái máy có màn hình TV cảm ứng kia để tải các thông tin giải trí.

Herve Vu Roussel (Vũ) là đồng sáng lập và là CTO (Giám đốc công nghệ) của Linked Senior, một startup thành công ở thị trường Mỹ, được các tờ báo danh tiếng CNNWashington Post đánh giá cao. Gần đây, Vũ đã quay về Việt Nam và bắt đầu xây dựng một công ty khác cho riêng mình.

Bạn hãy đọc bài phỏng vấn này để hiểu được cuộc hành trình của Vũ để xây dựng nên một công ty trị giá nhiều triệu đô-la từ con số 0, quan điểm của anh về những yếu tố khiến cho một startup thành công hay thất bại, và những lời khuyên chân thành của anh dành cho cộng đồng công nghệ tại Việt Nam.

Chúng tôi yêu Linked Senior!Chúng tôi yêu Linked Senior!

Đọc tiếp >>