[Sách Hay] Những điều tâm đắc nhất của tôi trong cuốn sách “Lập trình & Cuộc sống”

Từ khi bắt đầu sự nghiệp lập trình ở công ty thì thú thật là tôi không có thói quen đọc sách về lập trình, vì lúc đó internet đã quá mạnh mẽ, cái gì cũng có, tìm kiếm rất nhanh. Bất cứ khi nào tôi vướng mắc một vấn đề gì đó, với vốn tiếng Anh đọc và viết khá tốt của mình thì chỉ cần một vài phút hay thậm chí là vài chục giây tìm kiếm trên Google là tôi đã có hàng tá các câu trả lời hữu ích trên StackOverflow, hoặc source code để tham khảo trên GitHub. Do đó tôi không nghĩ mình cần phải đọc một cuốn sách nào đó đến hàng trăm trang mà không biết có bao nhiêu kiến thức trong đó thực sự hữu dụng đối với tôi. Những cuốn sách về lập trình hiếm hoi mà tôi đọc là mấy cuốn cơ bản hồi còn học Đại Học như: ngôn ngữ lập trình C++, Visual C++ 6.0, Cấu trúc dữ liệu và Giải thuật, Hệ điều hành, Kỹ thuật Vi xử lý.

Nhưng mọi thứ đã thay đổi khi trong một lần lang thang internet vài năm trước tôi bắt gặp quảng cáo về cuốn sách Clean Code của tác giả Robert Cecil Martin, tôi đọc thử một phần trong đó và thực sự bị cuốn hút bởi cuốn sách đó. Tôi cảm nhận thấy những kiến thức trong cuốn sách đó sẽ thực sự hữu dụng với tôi, nó sẽ khiến tôi khác biệt hơn so với các đồng nghiệp khác. Nếu tôi chỉ search internet để tìm kiếm những giải pháp kỹ thuật cho những vấn đề của mình thì tôi sẽ rất khó tiếp cận được những kiến thức kiểu như vậy. Những kiến thức trong cuốn sách này không phải kỹ thuật cao siêu về một ngôn ngữ hay một Framework, công nghệ nào đó mà nó là kiến thức dạy bạn về tư duy, về phương pháp, về chân lý trong lập trình. Vào thời điểm đó cuốn sách này chưa có bản PDF lậu tràn lan trên internet như hiện nay và tôi đã bỏ ra đến hơn $35 để mua cuốn này trên Amazon, đó là một quyết định thực sự khó khăn, rất tiếc tiền. Nhưng sau khi đọc cuốn sách đó tôi cảm thấy số tiền mình bỏ ra rất đáng, cuốn sách rất hay và tôi áp dụng được nhiều điều vào công việc thực tế. Từ đó tôi đã cố gắng đọc thêm một số cuốn sách khác (tôi down sách free trên internet chứ không mua như lần đầu nữa) như Code Complete 2 (Tác giả Steve McConnell),  Coders at Work (Tác giả Peter Seibel), The Pragmatic Programmer (nhiều tác giả)… nhưng do tôi đọc song song nhiều cuốn và không liên tục nên tôi chưa đọc xong cuốn nào trong đó cả.

Gần đây tôi đang tạo cho mình thói quen đóc sách, mỗi ngày tôi đi làm thì có đến 3 giờ đồng hồ tôi ngồi trên xe ô tô đưa đón của công ty. Trước đây tôi thường dùng 3h đó để lướt facebook, đọc báo 24h, ngủ hoặc vật vờ nhưng riết cũng chán. Tôi quyết định mình sẽ thay đổi, 3 tiếng đó thì ngoài ngủ ra tôi sẽ đọc sách, tôi đã mua và đọc một số cuốn sách giấy về lập trình khá thú vị trong đó có cuốn Lập trình và Cuộc sống – Một cuốn sách của Nhà xuất bản Thanh Niên được dịch giả Hồ Sỹ Hùng dịch lại từ các bài viết của Jeff Atwood (Đồng sáng lập diễn đàn StackOverflow thần thánh) trên Blog codinghorror của ông. Có thể nói đây là lần thứ 2 tôi đọc cuốn sách này (lần đầu là đọc các bài viết riêng lẻ trên vinacode.net). Tôi phải nói rằng đây là cuốn sách rất đáng để đọc mặc dù có nhiều chỗ dịch sang tiếng Việt khá lủng củng và không diễn đạt hết ý tác giả, giọng điệu của Jeff Atwood thì khá là cực đoan và có nhiều ý kiến mà tôi không đồng tình. Tuy nhiên trong cuốn sách này cũng có khá nhiều luận điểm mà tôi cảm thấy rất tâm đắc và đồng tình sâu sắc, tôi nghĩ mình nên tổng hợp lại chúng và chia sẻ cho nhiều anh em LTV cùng tham khảo, vì chúng thực sự hữu ích.  Ngay sau đây tôi sẽ chia sẻ về những điều tâm đắc đó. Chú ý: các câu trích từ sách có thể không đúng nguyên văn (vì một số từ tôi nghĩ nên dịch khác đi) nhưng ý chính thì chắc chắn là không thay đổi.

Muốn pro, hãy bớt sử dụng chuột

    Dùng các phím tắt hầu như luôn hiệu quả hơn là rê chuột loanh quanh để trỏ và click các ứng dụng trên máy tính theo cách của bạn – nhưng bạn sẽ chẳng bao giờ học được chúng nếu bạn vẫn giữ lấy thói quen sử dụng chuột để làm tất cả các công việc của mình. Hãy dừng sử dụng chuột một lát, chống lại việc chọn cách dễ dàng cùng với con chuột, và ép buộc bản thân bạn phải học ít nhất một phím tắt mới mỗi ngày. Vâng, điều đó sẽ khiến bạn phải làm thêm một chút việc. Nhưng bù lại nó sẽ trả công rất hậu hĩ: bạn sẽ tốn ít thời gian hơn vì không phải di chuyển chuột vòng quanh, và có nhiều thời gian hơn để hoàn thành công việc.

Lập trình và Cuộc sống

Khi mới lập trình tôi luôn sử dụng chuột để làm các công việc như: di chuyển con trỏ giữa những dòng lệnh hoặc trên cùng một dòng lệnh, về đầu dòng hay cuối dòng, lựa chọn (bôi đen) một đoạn code… và tôi thấy chuyện đó quá bình thường mà chẳng ảnh hưởng gì cả. Cho đến khi tôi bắt đầu để ý và quan sát cách những đồng nghiệp có kinh nghiệm của mình làm việc đó, họ hầu như không cần sử dụng đến chuột mà chỉ dùng bàn phím. Ấn tượng đầu tiên mà tôi cảm thấy là “quá pro” và “thật nguy hiểm”, từ đó tôi dần dần học những phím tắt (hotkeys) và áp dụng vào khi code, tốc độ code nhanh đáng kể. Tôi nghĩ rằng các bạn cũng nên làm điều này giống tôi. Tất cả các tools hay IDE mà bạn đang dùng như Notepad++, Visual Studio, Eclipse, …đều có phím tắt hết, chỉ cần chịu khó mày mò và search Google một chút bạn sẽ học được chúng thôi.

Code không dùng đến nữa thì nên xoá quách nó đi

    Nếu bạn có một đoạn code mà bạn không cần đến chút nào nữa, thì nên xóa quách nó đi hơn là để nó ở trạng thái disabled: nhằm giảm bớt nhiễu và sự không chắc chắn. Một trong những kẻ thù lớn nhất của một lập trình viên là nhiễu và sự không chắc chắn trong code của anh ta, bởi vì chúng ngăn cản anh ta có thể làm việc với nó hiệu quả hơn trong tương lai.
    Một đoạn code ở trong trạng thái disabled sẽ là nguyên nhân của sự không chắc chắn. Nó tạo ra những câu hỏi trong tâm trí của những lập trình viên khác khi họ đọc đoạn code đó:
    – Tại sao đoạn code đó trước đây lại được viết như vậy nhỉ?
    – Tại sao cách viết mới này lại tốt hơn vậy ta?
    – Liệu mình có nên chuyển nó lại kiểu viết cũ không nhỉ?
    – Mình sẽ quyết định thế nào đây?
    Nếu câu trả lời cho một trong những câu hỏi trên là quan trọng để người ta phải biết, thì bạn hãy viết một comment mô tả về nó. Đừng để cho các đồng nghiệp của bạn phải khổ sở đoán già đoán non.


Lập trình và Cuộc sống

Thi thoảng hãy tạm dừng code để học những thứ mới mẻ khác

    Các lập trình viên thường đã là các tay giỏi viết code rồi. Đó là lý do tại sao mà họ lại chọn để trở thành một nhà phát triển phần mềm. Việc viết thật nhiều code thì chỉ là bạn đang đào sâu hơn vào một kỹ năng mà bạn đã đặc biệt chuyên sâu rồi. Cái mà tôi đang đề xuất đó là chúng ta hãy dành ít thời gian để viết code đi và dành nhiều thời gian hơn để phát triển các kỹ năng trong những lĩnh vực khác mà có thể bổ sung cho những kỹ năng coding của chúng ta. Hãy trở thành một người viết lách tốt hơn. Hãy trở thành một người diễn thuyết tốt hơn. Hãy cải thiện những kỹ năng mềm của bạn. Hãy tham gia đóng góp tích cực vào cộng đồng. Cố gắng dành một chút thời gian để nói chuyện với con người thay vì cứ luôn ôm cứng lấy trình biên dịch. Đó là cách để có thể phân biệt bản thân bạn ra khỏi những tay đồng nghiệp xoàng xĩnh của bạn. Và đó cũng là cách để bạn trở thành một nhà phát triển phần mềm giỏi hơn.
    Dĩ nhiên, đây không phải là một trò chơi theo kiểu được cái này thì mất cái kia. Bạn có thể có được cả hai mục tiêu. Về mặt lý tưởng, bạn viết code trước, và sau đó bạn viết và nói về phần code đó theo một cách mà truyền cảm hứng và làm sáng tỏ cho những người khác. Nhưng chúng ta không có một số lượng thời gian vô tận phải không nào? Vì vậy nếu bạn phải lựa chọn giữa việc viết code và viết về code, thì hãy nhớ vế nào của phương trình trên là quan trọng hơn – và hãy tìm cách cân đối sao cho phù hợp.


Lập trình và Cuộc sống

Kỹ năng trình bày và viết tài liệu là rất quan trọng

    Sự khác nhau giữa một lập trình viên trung bình và một lập trình viên vĩ đại không phải là bao nhiêu ngôn ngữ lập trình mà họ biết, nó cũng không phải là họ thích Python hay Java hơn, mà là liệu họ có thể truyền đạt những ý tưởng của họ hay không. Bằng cách thuyết phục những người khác, họ sẽ nhận được lực đòn bẩy. Bằng cách viết ra những comment và các đặc tả kỹ thuật một cách rõ ràng, họ cho phép những lập trình viên khác có thể sử dụng và làm việc với code của mình mà không phải viết lại nó. Nếu thiếu điều này thì code của họ sẽ trở nên vô giá trị. …Có rất nhiều dòng code tuyệt vời và hữu ích đã bị chôn vùi ở một nơi nào đó trên sourceforge mà không ai sử dụng, bởi vì nó được tạo ra bởi những lập trình viên không có khả năng viết tốt lắm, vì vậy không có ai biết cái mà họ đã hoàn thành và những dòng code sáng chói của họ sẽ bị héo mòn, tàn úa theo thời gian.

Lập trình và Cuộc sống

Thực sự là như vậy. Tôi có biết một số người rất giỏi về kỹ thuật, giỏi code, giỏi về việc đưa ra giải pháp, họ giỏi hơn tôi khá nhiều về mặt này (mặc dù tôi cũng không tồi chút nào, hihi) nhưng họ lại gặp khó khăn trong việc viết ra những tài liệu design, tài liệu giải thích về kỹ thuật để cho đồng nghiệp và khách hàng có thể hiểu được. Về mặt này thì tôi làm tốt hơn họ nhiều, và tôi luôn tự hào về điều đó. Lập trình theo quan điểm của cá nhân tôi cũng như chơi bóng đá vậy, là một bộ môn mà phải chơi tập thể, phải làm việc nhóm vì chẳng ai có thể code solo một mình từ đầu đến cuối và làm hết tất cả mọi việc từ coding, testing, deploy, maintain,… Chính vì vậy một khả năng viết tài liệu tốt, trình bày tốt để cho người khác có thể hiểu ý tưởng của mình là rất cần thiết và quan trọng. Nó là một yếu tố tạo ra sự khác biệt giữa các lập trình viên, nhưng hãy để nó đứng số 2 vì tôi vẫn tin rằng đối với một LTV thì kỹ năng code và đưa ra giải pháp vẫn là quan trọng số 1. Chính vì vậy việc viết blog đối với tôi lúc này chỉ là phụ, tôi chỉ dành một phần thời gian nhỏ để viết blog, công việc chính của tôi vẫn là tham gia vào việc phát triển phần mềm thực tế trong các dự án, bởi vì nếu không làm thật mà chỉ ngồi viết thì sẽ thật giả dối và sáo rỗng.

Các công ty không coi trọng lập trình viên rồi sẽ phải trả giá, hãy chọn nơi chúng ta thực sự muốn làm việc

    Cuộc đời quá ngắn ngủi để cứ ngồi tại một công việc mà bạn không được làm những thứ bạn muốn, nơi bạn không thích thú với cả chính bản thân mình. Và chưa hết, ở chỗ tôi đang làm, tôi đã trở thành một gã mất hết hy vọng trong tình yêu với tất cả những thứ máy tính và phần mềm, làm việc tại một công ty nơi phần mềm bị xem như là một món hàng hóa, một trung tâm phí tổn, một con quỷ thiết yếu.
    Một người bạn của tôi làm việc tại một công ty đã chứng kiến một cuộc “dứt áo ra đi” lớn của các lập trình viên. Những người giỏi nhất rời đi trước, và những người trung bình cũng đi theo. Ở công ty chỉ còn lại những người đi làm theo giờ hành chính để lĩnh lương và chẳng cảm thấy tự hào gì về cái mà họ đang xây dựng cả. Công ty giờ đây lãnh hậu quả mà họ tự chuốc lấy: một team toàn những tay coder trình độ thấp. Còn những người từ thuở ban đầu, đầy nhiệt huyết và hoài bão đã rời đi hết rồi.
    Các công ty xem các lập trình viên là “những thứ hàng hóa và những tay thợ lành nghề mức thấp” đã phải chịu số phận bi đát và chỉ còn lại những tay lập trình viên có trình độ trung bình ở lại với họ.
    Công bằng mà nói, đó chỉ là phần bong bóng ở phía trên. Công việc ở đó cũng thú vị, nhưng có một điều quá rõ ràng: phần mềm không phải là dòng máu chảy trong huyết quản của tổ chức đó. Xu hướng gia công phần mềm sang các nước thuộc thế giới thứ ba đang treo lơ lửng trên đầu. Mặc dù những đồng nghiệp của tôi cũng có trình độ, nhưng không ai trong số họ có một nỗi ám ảnh với phần mềm như tôi. Đam mê của tôi là phần mềm và mọi thứ xung quanh nó, và đam mê này thì không có ai để cùng chia sẻ cả.
    Tôi quyết định phải thay đổi điều đó. Các công ty sẽ không còn có khả năng lựa chọn tôi từ một loạt những ứng viên giống nhau nữa. Thay vì đó, tôi sẽ lựa chọn các công ty mà tôi tôn trọng, những công ty có thể chia sẻ cùng tôi cái đam mê về phần mềm. Với trên 30 năm tuổi cùng với sự khôn ngoan, tôi không còn để cho những cơ hội ngẫu nhiên quyết định con đường sự nghiệp của mình nữa. Tôi sẽ chọn nơi mà tôi muốn làm.


Lập trình và Cuộc sống

Hãy dũng cảm hỏi những câu hỏi tưởng như ngu ngốc

    Tôi thường xuyên thây các lập trình viên rất ngại đặt các câu hỏi cơ bản vì họ sợ người khác cho là ngu ngốc. Có lẽ đó là cái văn hoá sĩ diện hão trong giới lập trình viên chúng ta. Việc có đủ can đảm để hỏi những câu hỏi cơ bản, trớ trêu thay, lại là một dấu hiệu của những lập trình viên giỏi nhất mà tôi đã từng làm việc với họ.

Lập trình và Cuộc sống

Trong một cuộc họp hay một buổi thảo luận nào đó của team về kỹ thuật, về quy trình hay về bất cứ chủ để gì, nếu bạn không hiểu một vấn đề nào đó hãy mạnh dạn nói ra mình không hiểu và mình cần được giải thích. Có thể những người khác cũng không hiểu giống bạn, thậm chí có nhiều trường hợp thằng trình bày cũng dell hiểu, chỉ là họ không dám nói ra mà thôi. Hoặc câu hỏi ngu của bạn tự nhiên sẽ trở nên nguy hiểm, hoặc nếu câu hỏi đó có ngu thật thì cũng chẳng có gì phải xấu hổ vì làm gì có ai biết mọi thứ ngay từ đầu, không hiểu mà cứ gật gù giả bộ hiểu thì rất tai hại.

Hãy mài sắc lưỡi cưa của bạn

    Mài sắc lưỡi cưa là một thành ngữ để ám chỉ bất cứ việc gì bạn làm mà không phải làlập trình, nhưng cần thiết, (trên lý thuyết) làm cho bạn trở thành một lập trình viên giỏi hơn. Nó xuất phát từ cuốn sách Bảy Thói Quen Của Người Thành Đạt của tác giả Covey.
    “Có một người tình cờ gặp một tay thợ đốn gỗ ở trên núi. Anh ta dừng lại và quan sát người thợ đốn gỗ, xem người thợ đang luýnh quýnh cưa một cái cây rất to. Anh để ý thấy rằng người thợ đốn gỗ đó đang làm việc rất khó nhọc, cứ cưa đi cưa lại, mà không tiến triển thêm được chút nào. Người ngoài cuộc để ý thấy rằng người thợ đốn gỗ đang sử dụng một cái cưa không được sắc lắm. Vì vậy, anh ta nói với người thợ gỗ rằng, “Xin lỗi ông, nhưng tôi không thể không nhận thấy rằng ông đang làm việc rất vất vả với cái cây đó, nhưng không đi đến đâu cả.” Người thợ đốn gỗ trả lời cùng với những giọt mồ hôi nhỏ tong tong trên trán, “Vâng… tôi biết. Cái cây này dường như đang gây rắc rối cho tôi.” Người đứng ngoài trả lời rằng, “Nhưng ông thợ gỗ này, cái cưa của ông thì đã rất cùn đến nỗi nó không thể cắt qua bất cứ cái gì được nữa.” “Tôi biết”, người thợ gỗ đáp lại, “nhưng tôi quá bận rộn trong việc cưa này đến nỗi chẳng còn chút thời gian nào để mài cái cưa của tôi cả.”
    Dĩ nhiên, cách tốt nhất để tiến bộ trong bất cứ việc gì đó là phải làm nó thường xuyên nhất có thể. Nhưng nếu bạn cứ cắm đầu cắm cổ vào việc coding mà không có thời gian để bàn luận, nghĩ suy, hoặc nghiên cứu, thì bạn đang thực ra chẳng tiến lên phía trước được chút nào cả. Bạn phải đấu tranh để có một sự cân bằng giữa trau dồi nghề nghiệp của bạn và nghĩ về cách làm thể nào để trau dồi nghề nghiệp của bạn.
    Scott Hanselman có một số ý tưởng vững chắc vào những cách để khuyến khích các thành viên trong đội phát triển phần mềm của bạn mài sắc những lưỡi cưa của họ. Và có một cách rất hiển nhiên, đó chính là việc bạn đang làm ngay lúc này: đọc các blog về lập trình. Ý tôi không phải là blog này, mà là bất kỳ một blog nào có chất lượng. Nếu bạn giữ cho mình có một tinh thần cởi mở, thì bạn có thể mài sắc lưỡi cưa của mình theo cách này, như Reginald Braithwaite đã ghi chú:
    “…chúng ta chiến thắng nếu chúng ta có thể tìm thấy chỉ một thứ trong đó mà khiến chúng ta trở thành những lập trình viên giỏi hơn. Bạn biết đấy, tất cả chúng ta cần từ một bài viết blog là: sẽ là một thắng lợi lớn nếu có một thứ gì đó hay ho trong một bài viết. Thậm chí, sẽ là một thắng lợi lớn nếu chúng ta đọc một trăm bài viết và học được thêm một điều mới mẻ và có giá trị.”


Lập trình và Cuộc sống

Chia sẻ với anh em một số website/blog công nghệ để anh em mài lưỡi cưa nhé👇

👉 Các trang nước ngoài (tiếng Anh)
https://tech-news.co: Trang tin tức công nghệ, chuyên về mobile, internet, khoa học y tế và công nghệ sinh học.
https://waitfeed.com : Trang tổng hợp từ nhiều nguồn các tin tức về game, điện thoại di động, máy tính, film ảnh
https://www.technowize.com : Tạp chí công nghệ chuyên về phần cứng, phần mềm ứng dụng, điện toán đám mây, dữ liệu lớn,…
http://news.ycombinator.com : Các bài viết về đủ các thể loại từ các tutorial lập trình (C/C++, Database, …) đến kỹ thuật hacking, tiền kỹ thuật số,…
https://blog.computationalcomplexity.org : Blog về các chủ đề khoa học máy tính, giao diện hơi lởm nhưng nội dung tốt
https://blog.codinghorror.com : Blog của Jeff Atwood là một chuyên gia công nghệ tại Mỹ, anh là người sáng lập và kiêm Giám đốc điều hành (CEO) của trang web hỏi đáp uy tín Stack Overflow và cũng là đồng sáng lập của Stack Exchangevà Discourse.
https://www.pcworld.com : Trang tin tức công nghệ rất nổi tiếng về phần cứng, phần mềm, bảo mật,… Giao diện đẹp, tin tức cập nhật liên tục
https://www.quantamagazine.org : Tạp chí về khoa học máy tính, toán học, vật lý, sinh học.

👉 Các trang tiếng Việt
http://genk.vn/ : Trang thông tin dành cho tín đồ công nghệ, cung cấp cho bạn những thông tin mới nhất về công nghệ và thế giới Internet,tin tức sản phẩm công nghệ mới
http://ictnews.vn/ : Trang tin tức công nghệ hàng đầu Việt Nam, tin nhanh về công nghệ thông tin và truyền thông, đánh giá sản phẩm, thế giới di động, thị trường …
https://techtalk.vn/ : Trang web cho dân lập trình, đầy đủ các vấn đề về công nghệ và tâm sinh lý coder
http://www.pcworld.com.vn/ : Phiên bản tiếng Việt của https://www.pcworld.com

Nghề lập trình là nghề “học nữa, học mãi”

“Nghề lập trình thì bạn phải tập xác định rằng phải học, học nữa, học mãi: toàn bộ nghề nghiệp của bạn sẽ là một chuỗi dài không ngừng nghỉ của việc học một ít công nghệ mới, hết cái này đến cái khác. Cứ mỗi 10 năm lĩnh vực phát triển phần mềm lại tự phát minh lại bản thân nó, và do đó công việc học của chúng ta cứ phải tiếp tục.”

“…việc nhúng bản thân bạn trong những công nghệ mới thì chỉ đơn thuần là bạn đang chạy nhanh như bạn có thể để ở cùng một chỗ. Để đến được một nơi nào khác, thì bạn phải chạy nhanh gấp đôi tốc độ đó. Nghĩa là bạn phải học về các chủ đề mà sẽ không bị lạc hậu trong vòng 5 năm tới: đó là nhân tố con người và thiết kế kiến trúc phần mềm.”


Lập trình và Cuộc sống

Mình xin trích lại một đoạn mà mình đã viết trong bài Nghề lập trình không hề màu hồng để nói thêm việc học: “Các kiến thức, công nghệ trong ngành IT rất nhanh lạc hậu, vì vậy trong ngành này không tiến là lùi, đứng yên là bị lạc hậu và sẽ bị đào thải. Ngành lập trình chúng tôi làm theo dự án, hết dự án này đến dự án khác, với outsourcing thì dự án sau có thể chả liên quan gì đến dự án trước. Mỗi khi bắt đầu dự án mới, các LTV luôn luôn phải học tập những kiến thức mới, công nghệ mới, thậm chí là ngôn ngữ mới. Và việc học ở đây chủ yếu tự học chứ không có thầy dạy như hồi đi học, phải học từ khách hàng, học từ internet, học từ các bậc đàn anh, những người có kinh nghiệm trong nghề. Mình từng nghe chém ở đâu đó là 80% kiến thức của nhân loại viết bằng tiếng Anh, bởi vì tiếng Anh là ngôn ngữ có vốn từ vựng về kỹ thuật phong phú nhất, việc dịch các tài liệu kỹ thuật từ tiếng Anh sang các ngôn ngữ khác thường không thể truyền tải hết nội dung và hay mắc sai sót. Vì vậy, để tự học được thì các bạn hãy trau dồi khả năng tiếng Anh của mình, nhất là kỹ năng đọc nhé.”

Cần ít nhất 10 năm để đạt được sự tinh thông và thành công trong bất cứ lĩnh vực nào

    “Các nhà nghiên cứu đã chỉ ra rằng cần ít nhất 10 năm để đạt được sự tinh thông trong bất cứ một lĩnh vực nào, từ đánh cờ, sáng tác âm nhạc, lập trình máy tính, hội họa, chơi piano, bơi lội, chơi tennis, hoặc thu được kết quả trong lĩnh vực tâm lý học hay hình học. Điều quan trọng ở đây là phương pháp thực hành: không chỉ là việc lặp đi lặp lại đơn thuần, mà còn phải thử thách chính mình bằng những nhiệm vụ khó khăn vượt quá khả năng hiện tại của bản thân, thử nghiệm nó, phân tích đánh giá hiệu suất của mình trong và sau quá trình rèn luyện, sửa chữa bất cứ sai lầm nào. Cứ như vậy, lặp đi lặp lại.
    Và lịch sử đã chứng minh không thể có con đường tắt nào khác: dù cho đó là Mozart, thần đồng âm nhạc ở tuổi lên 4, cũng phải mất hơn 13 năm sau mới sáng tác ra những kiệt tác âm nhạc. Trong một thể loại khác, ban nhạc The Beatles dường như từ chỗ vô danh leo thẳng lên vị trí số 1 bằng một loạt các bài hát đứng top #1 và xuất hiện tại các buổi trình diễn Ed Sullivan trong năm 1964. Nhưng họ cũng đã phải cặm cụi chơi nhạc tại những phòng trà nhỏ ở Liverpool và Hamburg từ những năm 1957, mặc dù họ đã tạo được sự thu hút từ rất sớm, nhưng thành công lớn đầu tiên của nhóm là Sgt. Peppers, album được phát hành vào năm 1967.”


Lập trình và Cuộc sống

Nói một cách văn vẻ và triết lý kiểu rởm đời thì thành Rome không phải được xây dựng trong một ngày mà phải mất đến hơn 1 triệu ngày. Bạn cần phải chăm chỉ, kiên trì, khiêm tốn và học hỏi. Nếu làm được, bạn sẽ không thể tránh được sự thành công.

Luôn có người biết nhiều hơn bạn

    Dù bạn có “cao thủ” đến mức nào đi chăng nữa, thì sẽ có ai đó luôn biết nhiều hơn bạn. Mỗi một người nào đó đều có thể dạy bạn một vài bí kíp mới nếu bạn hỏi họ.

Lập trình và Cuộc sống

Thiên ngoại hữu thiên, nhân ngoại hữu nhân – Bên ngoài bầu trời có bầu trời khác, người tài có người tài hơn. Đừng tỏ thái độ vênh váo khi bạn biết một cái gì đó mà người khác không biết, vì ngược lại sẽ có những thứ mà bạn chưa biết trong khi người ta lại rất rõ. Và nếu bạn không biết một điều gì đó mà người khác biết thì điều đó không có nghĩa là bạn kém hơn họ, chẳng qua là bạn chưa học hoặc chưa quan tâm đến cái đó mà thôi. Hãy giữ thái độ khiêm tốn và học hỏi ngay cả với những người ít kinh nghiệm hoặc bạn cho là kém hơn mình, bạn sẽ học được kiến thức từ họ và nhận được sự tôn trọng từ họ.


    Trên đây là một số điều đúc kết nho nhỏ của mình từ cuốn sách “Lập trình và Cuộc sống”. Hy vọng các bạn có thể áp dụng phần nhỏ nào đó vào công việc và cuộc sống của mình nhé. Hẹn gặp lại ở các bài viết khác.

 

— Phạm Minh Tuấn (Shun) —