Tầm quan trọng của việc đọc sách đối với lập trình viên

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

Lời bàn của Vinacode:

Bài viết này là của tác giả Douglas Reilly viết vào năm 2006 (trước khi ông mất bởi căn bệnh ung thư). Mình thấy bài viết này khá hay, nội dung bàn về tầm quan trọng của việc đọc sách đối với lập trình viên, mình xin dịch lại bài viết này. Qua đây ta cũng thấy rằng để viết được một cuốn sách thì các tác giả cũng rất vất vả, có khi đóng cửa ngồi viết cả năm trời, nhưng nhuận bút cũng chẳng là bao so với mức sinh hoạt bên Mỹ (chỉ vài đô-la cho mỗi cuốn được bán ra). Bởi vậy khi bạn có điều kiện thì cũng nên mua sách có bản quyền để ủng hộ họ nhé!

Tất cả các lập trình viên thường xuyên phải học về những công nghệ mới, các sản phẩm và phương pháp phát triển phần mềm mới. Bạn hãy nhớ lại về dạng phần mềm mà mình đã viết khoảng 5 hoặc 10 năm về trước. Nếu bạn đã theo nghề phát triển phần mềm đủ lâu, thì bạn sẽ không nghi ngờ gì về việc mình đang làm việc trên các hệ thống hoàn toàn khác xa những thứ mà mình đã làm trước đây. Khoảng 5 năm về trước, lúc đó tôi đang sử dụng Active Server Pages (ASP) và VBScript để phát triển các trang web cho một công ty dotcom. Ngày nay, tôi làm việc cơ bản là dựa trên ASP.NET sử dụng C#, và đôi khi cũng kết hợp một chút lập trình Windows Forms. Việc chuyển từ ASP cổ điển sang ASP.NET là một sự thay đổi khá lớn. ASP là một công nghệ dạng markup-oriented (nghĩa là code và các thẻ HTML trộn lẫn với nhau trong một file), kèm theo sự bừa bộn của các thẻ định dạng, ngược lại ASP.NET là một công nghệ kiểu control-oriented (sử dụng các control) cho phép bạn phát triển RAD (Rapid Application Development) – thậm chí bây giờ ASP.NET 2.0 đã ra đời.

Hình 1: Những cuốn sách do tôi viết.Hình 1: Những cuốn sách do tôi viết.


Câu hỏi đặt ra là: Làm thế nào để giữ cho kỹ năng của bạn luôn được cập nhật? Bạn sẽ chuẩn bị như thế nào cho bản thân và những kiến thức mà mình sẽ làm việc trong 5 năm sắp tới? Trong phần 1 của loạt bài viết này, tôi đã nói về vai trò quan trọng của những buổi hội thảo và trong phần 2 là nói về vai trò của các diễn đàn công nghệ. Ở đây, tôi chuyển sang bàn luận về những cuốn sách và vai trò của chúng trong việc giúp cho lập trình viên có thể luôn cập nhật được những kiến thức mới nhất.

Tại sao bạn nên đọc sách?

Trong kỷ nguyên của Internet như hiện nay, nơi mà mọi dạng thông tin có thể phân phát tới màn hình của bạn với chỉ một cú click chuột trên Google, nhiều người đã nói về việc những cuốn sách truyền thống đang chết dần đến nơi. Tuy nhiên, theo tôi và nhiều người giống như tôi, sách vẫn là nguồn tài liệu sống còn cho việc học. Tôi có một sự quan tâm rất lớn vào những cuốn sách phát triển phần mềm. Hình 1 cho thấy “điện thờ“ trong phòng khách của tôi, một chồng 5 cuốn sách mà tôi đã viết (4 cuốn do tôi viết một mình và 1 cuốn còn lại tôi là đồng tác giả).

Hình 2 cho thấy một trong số các kệ sách ở tầng hầm trong văn phòng làm việc của tôi. Tôi xếp những cuốn sách của mình theo cách mà bà xã tôi gọi là “Hệ thống nhị phân của ông Dougie”, một hệ thống mà các cuốn sách được sắp theo các thể loại chung, bắt đầu bằng ASP và ASP.NET, sau đó là VB và C#, kéo theo bởi thể loại Database và kết thúc là các cuốn sách về hệ điều hành Windows.

Hệ thống nhị phân của ông DougieHình 2: “Hệ thống nhị phân của ông Dougie”

Nói tóm lại, tôi có rất nhiều sách. Tôi yêu sách. Sách là một cái gì đó rất có giá trị đối với tôi, cả với tư cách là một tác giả cũng như một độc giả. Với tư cách là một tác giả, tôi chưa từng bao giờ thử từ bỏ công việc hàng ngày của mình. Tôi không nghĩ rằng khoản tiền nhuận bút dành cho tác giả những cuốn sách lập trình ngày nay (thường là khoảng 10% tổng doanh thu, hoặc tương đương 5% giá của cuốn sách, hay khoảng $2 đến $2,5 đô-la cho mỗi cuốn được bán ra) có thể bù lại được khoảng thời gian và công sức mà họ đã bỏ ra. Nhưng phải nói rằng, viết sách đã cho phép tôi đi qua được rất nhiều cánh cửa mà có thể không một ai khác có thể mở ra cho mình.

Qua những phần tiếp theo đây, tôi sẽ nói về những mặt lợi thế của sách như là một tài nguyên để học, và sau đó xem xét về một số lý do phổ biến phản đối việc đọc sách.

Sách thì xác thực và tương đối lâu dài

Có rất nhiều lý do tại sao sách không bị lỗi thời, thậm chí là ở trong kỷ nguyên của Internet. Lý do đầu tiên đó là, không giống như những nguồn tài nguyên trực tuyến, cái mà có thể hôm nay còn nhưng ngày mai đã biến mất, một cuốn sách sẽ mang lại cho bạn một nguồn thông tin chắc chắn và nó sẽ có sẵn cho bạn dùng ngay khi bạn tìm kiếm trên kệ sách của mình. Đã bao nhiêu lần mà bạn còn nhớ về một bài viết trên blog hoặc diễn đàn nào đó có thể giải quyết một vấn đề mà bạn đang phải đối mặt, nhưng sau đó bạn lại không thể nào mà tìm lại được trang web đó? Thậm chí cùng với sự trợ giúp của Google, điều này đã xảy ra với tôi rất nhiều lần mà tôi không có thể nhớ hết được. Nhưng khi tôi nhớ về một chủ đề mà mình đã đọc được trong một cuốn sách nào đó, thì tôi hiếm khi gặp phải vấn đề trong việc tìm chính xác cuốn sách chứa giải pháp cho nó (đặc biệt là với “Hệ thống nhị phân của ông Dougie” tại nơi làm việc).

Sách thì đáng tin cậy

Trong khi bạn chắc chắn có thể tìm thấy nhiều ngoại lệ, nhưng theo kinh nghiệm của tôi thì hầu hết các cuốn sách đều được viết tốt và có mức độ nghiên cứu ở mức chấp nhận được. Bởi tại thời điểm mà sách đến tay bạn đọc thì nó cũng qua tay từ 3 đến 4 người, cả những người chỉnh sửa về mặt công nghệ và ngôn ngữ làm việc trên cuốn sách đó. Bản thân tôi cũng đã từng là technical review (người rà soát lại nội dung sách về mặt kỹ thuật) cho một số cuốn sách, và trong một vài trường hợp thì tôi chỉ là một trong nửa tá người làm cùng vai trò đó. Một số nhà xuất bản có chất lượng cao hơn các nhà xuất bản khác và chắc chắn bạn sẽ nhận ra điều này bằng trải nghiệm của riêng mình. Những bài viết nghèo nàn về nội dung và ngữ nghĩa ở trên các blog và diễn đàn thì không phải là quá phổ biến, nhưng vẫn có những ví dụ như vậy ở ngoài kia. Trái lại các cuốn sách hiếm khi hoàn toàn là một chủ đề dở.

Bạn có thể tưởng tượng một cuốn sách kinh điển giống như cuốn The Mythical Man-Month của tác giả Fred Brooks xuất hiện trên web không? Thế còn về cuốn sách gối đầu giường của hầu hết các lập trình viên dày 900 trang là Code Complete của Steve McConnell thì sao? Nếu bạn là một lập trình viên mà vẫn chưa đọc những cuốn sách này thì bạn nên chạy, chứ đừng chỉ đi, đến ngay tiếm sách gần nhất.

Sách có thể đọc ở bất cứ đâu

Như bạn có thể hình dung từ bài viết gần đây của tôi, “Từ một người sống sót sau căn bệnh ung thư: Một chỉ dẫn cho các lập trình viên phần mềm,” tôi đã dùng một phần thời gian rất lớn trong phòng khám của các bác sĩ và các bệnh viện. Tôi đã được chữa trị tại một trong những bệnh viện tốt nhất thế giới về căn bệnh của mình. Dịch vụ chăm sóc thì rất chu đáo, và họ đã giữ cho tôi được sống và tương đối khỏe mạnh lâu hơn là tôi có quyền để mong đợi. Chỉ có một điều nhỏ là, họ thường xuyên để tôi phải chờ đợi. Bởi vậy tôi khắc phục khó khăn đó (việc tốn thời gian để chờ đợi bác sĩ) thành một điều tích cực, bằng cách luôn luôn mang theo một vài cuốn sách bên người, vì vậy tôi có một cái gì đó để đọc trong lúc chờ đợi.

Ngày nay, với mạng Internet thì bạn có thể đọc hầu như bất cứ đâu. Tuy nhiên, các màn hình hiện nay, dù cho chúng có chất lượng tuyệt hảo, thì cũng không thể thay thế cho các trang giấy in được. Khi tôi chỉnh sửa nội dung cho cuốn sách của mình hoặc của những người khác, tôi thường in ra từng chương một để rà soát trên giấy. Có một cái gì đó về các trang giấy in mà các màn hình không thể có được. Điều này đặc biệt đúng đối với các thiết bị di động, giống như các notebook hoặc PDA.

Sách mang lại cho bạn một “Bức Tranh Lớn”

Khi SQL Server 2005 được Microsoft phát hành, một thay đổi quan trọng từ SQL Server 2000 trở nên hiển nhiên. Đọc một cuốn sách hay về sản phẩm mới đó giúp tôi học được rất nhiều về những điều mà tôi cần phải biết về nó.

Thế còn với những công nghệ mới khác thì sao? Khi tôi cần hiểu về Service Oriented Architecture (kiến trúc hướng dịch vụ) hoặc Refactoring, tôi có xem một vài blog và những tài nguyên trực tuyến khác, nhưng tôi học được nhiều nhất là từ các cuốn sách mà mình đọc.

Khi bạn cần học về một công nghệ mới sâu hơn, sách cũng đưa ra nhiều chi tiết hơn là bạn có thể tìm được sự thuận tiện trên web. Ví dụ, cuốn sách giới thiệu về Web Forms của tôi gần đây gộp rất nhiều thông tin lại với nhau như ASP.NET, HTML và Cascading Style Sheets (CSS). Thậm chí là chỉ một cuốn sách mỏng thôi cũng đã chứa nhiều thông tin hơn là một bài viết trên web.

Những lý do phản đối việc đọc sách

Với tất cả những ích lợi của sách như đã đề cập phía trên, nên tôi rất ngạc nhiên về một kết quả khảo sát gần đây tại trang web Programmers Heaven, khoảng 70% lập trình viên có ít hơn 20 cuốn sách về lập trình, bao gồm khoảng 20% những người chỉ có ít hơn 3 cuốn sách. Tại sao điều này lại xảy ra nhỉ?

“Sách thì rất đắt đỏ”

Rất nhiều lập trình viên cho rằng sách thì khá đắt đỏ. Với tư cách là một tác giả, và là một người đã biên tập nhiều cuốn sách, tôi có thể nói với bạn một điều rằng có rất nhiều công việc phải làm để có được một cuốn sách, từ ý tưởng ban đầu của tác giả cho tới khi nó nằm trên các kệ sách tại các cửa hàng. Ngoài ra, có một số các trang web bán sách cho lập trình viên với mức giảm giá khá lớn. Tôi thường mua sách tại Amazon.com, bn.com và Bookpool.com và một số nơi khác và hiếm khi mua lầm phải một cuốn sách tồi. Tôi cũng thử mua một số cuốn sách từ các tiệm sách gần nhà, một phần là để ủng hộ và giúp họ duy trì tiệm sách đó. Một số cuốn sách, của những tác giả hoặc nhà xuất bản nổi tiếng thì tôi tin tưởng đến mức sẽ mua ngay thậm chí chưa hề đọc nội dung bên trong, nhưng đối với phần lớn các cuốn sách thì việc xem qua chúng tại các cửa hàng là một khâu khá quan trọng.

Bao nhiêu thời gian mà một cuốn sách có thể tiết kiệm cho bạn trong một hợp đồng có giá trị. Lấy tôi làm ví dụ chẳng hạn, nếu tôi có thể tiết kiệm cho khách hàng của mình một tiếng đồng hồ bởi việc mua một cuốn sách, thì tôi sẽ tiết kiệm cho vị khách đó khoảng tầm $50 đô-la hoặc có thể nhiều hơn nhiều. Thậm chí nếu tôi chỉ sử dụng vài chương trong cuốn sách đó (vì có một số cuốn sách mà tôi chỉ sử dụng có 2 chương hoặc ít hơn), thì cũng đáng giá để sở hữu cuốn sách nếu tiết kiệm thời gian cho tôi và giúp tôi nắm rõ về công nghệ mới mà mình cần hiểu để sử dụng.

“Tôi không có thời gian để đọc sách”

Không phải mọi cuốn sách về lập trình đều được thiết kế để đọc từ đầu đến cuối. Một số cuốn thì thích hợp là sách để tham khảo khi cần. Đọc một vài chương, hoặc thậm chí là một phần của chương có thể cũng mang lại nhiều hiệu quả nếu bạn thử áp dụng vào công việc của mình những kiến thức mà sách đề cập đến. Như lập trình viên nổi tiếng Tom Kyte có viết trong một bài blog gần đây của anh, bạn phải tìm thời gian để học những kiến thức này. Bởi vì phần mềm thì ngày càng phức tạp với rất nhiều tác vụ được tự động hóa, bạn phải tìm ra thời gian để có thể nắm được những kiến thức mà sẽ tiếp tục khiến bạn trở nên có giá trị đối với ông chủ của mình. Nếu bạn là một lập trình viên và bạn muốn mình luôn cập nhật kiến thức công nghệ mới nhất trong chặng đường dài, thì các cuốn sách chắc chắn là một yếu tố quan trọng nhất.

“Sách thì cồng kềnh nên không dễ mang theo bên mình”

Đây là lời than phiền mà tôi nghe được từ nhiều người nhất – đặc biệt là những người làm công việc tư vấn thường phải di chuyển khá nhiều: chỉ đơn giản là quá cồng kềnh để mang theo một vài cuốn sách dày cộp bên mình.

Tuy nhiên, các trang web như O’Reilly’s Safari, cũng như là một số trang bán sách truyền thống khác thường đưa ra phiên bản điện tử của các cuốn sách. Với công nghệ hiện đại này, một phiên bản điện tử của một cuốn sách có thể ra lò trước một tháng hoặc thậm chí sớm hơn để phiên bản giấy có thể đến các kệ sách tại các hiệu sách địa phương. Thường thì những cuốn sách điện tử này cũng đi qua cùng quy trình kiểm duyệt và chỉnh sửa như là các cuốn sách giấy vậy.

“Công nghệ thay đổi quá nhanh để sách có thể bắt kịp”

Sách bây giờ thì xuất bản nhanh hơn rất nhiều so với trước đây. Khoảng thời gian từ lúc ký hợp đồng và cung cấp chương cuối cùng trong cuốn sách mà tôi viết gần đây nhất thì chỉ khoảng 3 tháng rưỡi. Trong khi cuốn sách đầu tiên của tôi (được viết khoảng 10 năm về trước) là khoảng 1 năm kể từ lúc ký hợp đồng đến lúc bàn giao bản thảo. Các nhà xuất bản cũng luôn giữ cho nội dung luôn được cập nhật, vì thế nếu bạn mua một cuốn sách có nhiều tái bản thì các bản cập nhật cũng thường có sẵn cho bạn, đặc biệt nếu bạn mua một cuốn sách đang ở phiên bản beta.

Một điều nữa là, bạn có thể tránh được sự lạc hậu về công nghệ bằng cách lựa chọn những cuốn sách thuộc dạng “kinh điển” như là, The Mythical Man-Month của tác giả Fred Brooks, Code Complete của Steve McConnell, hay Patterns of Enterprise Application Architecture của Martin Fowler. Những cuốn sách này thì rất hay từ 2 năm về trước và nó vẫn rất có giá trị trong 5 năm tới.

Làm thế nào để lựa chọn được sách tốt

Có một số cách để xác định xem liệu một cuốn sách nào đó có phù hợp với bạn hay không. Nếu bạn đang tìm kiếm một cuốn sách để giúp bạn hoàn thành một tác vụ nào đó, thì việc lướt qua mục lục của cuốn sách sẽ cho bạn biết được nhanh chóng rằng liệu tác giả đó có viết về vấn đề mà bạn đang tìm kiếm hay không. Thường thì mục lục sẽ được cung cấp trực tuyến trên trang web của một số trang bán sách như Amazon.

Việc đọc thử các chương mẫu thì cũng là một cách khác để xem liệu một cuốn sách nào đó có phù hợp với bạn hay không. Bạn có thể cảm nhận được cái phong cách viết của tác giả, cũng như là nội dung mà cuốn sách chuyển tải có tốt hay không. Có nhiều code minh họa không? Hay là không có đoạn code nào cả? Tác giả có viết theo lối viết hóm hỉnh mà bạn ưa thích hay không?

Tôi khuyến khích bạn nên cẩn thận xem qua những đánh giá và bình luận về cuốn sách trên trang web bán sách Amazon.com. Trong tất cả các trang web bán sách thì Amazon tiếp tục có nhiều đánh giá hơn hẳn những trang web bán sách khác. Đừng chỉ tập trung vào phần đánh giá theo sao, mà bạn hãy đọc những nhận xét thực sự và có thể là những đánh giá khác nhau của cùng một độc giả. Tôi thường nghi ngờ những cuốn sách mới được phát hành mà đã có những nhận xét và đánh giá 5 sao. Những đánh giá trên Amazon thì thường tùy thuộc vào kỹ năng tạo mạng lưới của tác giả và độ nhiệt tình của những bạn bè, người thân của anh hoặc cô ta, và họ thường đánh giá tốt cho những cuốn sách đó. (Bởi vậy tôi hoàn toàn tránh việc nhờ người đánh giá về cuốn sách do mình viết). Nếu cuốn sách có khoảng 20 lời nhận xét và được chấm điểm trung bình là 5 sao thì đều là những cuốn sách tốt.

Kết luận

Nghề của bạn cũng chính là công việc làm ăn của bạn. Sẽ rất tuyệt vời nếu ông chủ của bạn quan tâm đến việc phát triển nghề nghiệp và cập nhật kiến thức cho bạn, nhưng thực tế là các ông chủ hầu như không làm điều đó. Hiện tại thì các cuốn sách là một cách thức hiệu quả để nâng cao kỹ năng hiện tại của bạn và học thêm những điều mới với một mức giá thấp nhất. Thậm chí nếu bạn chỉ mua và đọc một cuốn sách mỗi tháng, thì tôi nghĩ rằng hầu hết các lập trình viên sẽ nhận ra đó một sự đầu từ tuyệt vời cho tương lai.

Các bài viết liên quan:

Về tác giả bài viết:

Douglas ReillyCuối cùng thì Douglas Reilly cũng là chủ của Access Microsystems Inc., là một công ty phát triển phần mềm nhỏ chuyên xây dựng ứng dụng bằng ASP.NET và cho thiết bị di động, thường sử dụng SQL Server làm cơ sở dữ liệu. Ông mất vào cuối năm 2006 vì căn bệnh ung thư, đó là một sự mất mát lớn đối với cộng đồng SQL Server nói riêng cũng như cộng đồng công nghệ nói chung.

Advertisements

13 comments on “Tầm quan trọng của việc đọc sách đối với lập trình viên

  1. Thật sự thì sách công nghệ thông tin tiếng việt chưa đủ chất lượng trong khi trình độ ngoại ngữ chưa cao. Mình rất thích đọc sách nhưng thật sự rất khó để tìm.

Trả lời

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s