Hiệu ứng Dunning Kruger và sự ảo tưởng sức mạnh mà lập trình viên nên tránh

Đã có bao giờ bạn cảm thấy mình giỏi hơn hẳn đồng nghiệp hoặc bạn bè cùng trang lứa chưa?

Đã bao giờ bạn cảm thấy cái ngôn ngữ/framework này “dễ òm”, mình học một tí là được chưa?

Đã bao giờ bạn cảm thấy mình đã “nắm chắc 100%” một ngôn ngữ lập trình nào đó chưa?

Nếu đã từng có lần cảm thấy những điều trên, xin chúc mừng bạn! Bạn đã mắc phải hiệu ứng Dunning Kruger rồi đấy!

Trong bài này, chúng ta cùng mổ xẻ về nguyên nhân, triệu chứng, hậu quả của thứ này nhe. Bạn nào bị thì nhớ đọc kĩ để phòng tránh nhé!

Hiệu ứng Đun Ning Rút Gơ là cái quái gì thế?

Hiệu ứng Dunning Kruger này có một cái tên cúng cơm là Ảo Tưởng Sức Mạnh. Hiệu ứng này cho thấy những người dốt thường hay có sự tự tin thái quá về khả năng của bản thân.

Nguyên nhân là vì … do họ dốt nên họ không thể nhận thức được là mình biết ít/biết sai đến mức nào? Nói nôm na là: Những thằng ngu thường không biết mình ngu, cho đến khi bị đời vả sml.

Ảnh minh họa cho hiệu ứng Dunning Krugger

Các bạn có thể nhìn hình trên là hiểu ngay!

Khi chưa biết gì, chúng ta không hề tự tin về khả năng của mình. Tuy nhiên, khi chỉ mới biết chút xíu kiến thức (đỉnh của đường màu đỏ), ta rất dễ dàng ngộ nhận là mình biết hết, biết rất nhiều.

Đến khi bắt đầu học hỏi thêm, hay khi bị đời vả sml, ta mới dần tỉnh ngộ và có cái nhìn đúng đắn hơn về khả năng thực sự của bản thân.

Hậu quả của việc Ảo Tưởng Sức Mạnh?

Tất nhiên, không phải rảnh rỗi mà mình viết bài về hiệu ứng này!

Trong quá trình trò chuyện, nhiều bạn sinh viên/mới ra trường cũng có một số triệu chứng của hiệu ứng này. Chính bản thân mình cũng từng mắc chứng Ảo Tưởng Sức Mạnh luôn. Hiệu ứng này có những hậu quả vô cùng nguy hiểm!

Stephen Hawking từng có một câu nói rất hay

The greatest enemy of knowledge is not ignorance; it is the illusion of knowledge

Tạm dịch: Kẻ thù lớn nhất của tri thức không phải là không biết; mà là sự ảo tưởng về tri thức

Khi ảo tưởng về sức mạnh của mình, bạn sẽ dễ dàng bị sự tự tin che mắt. Bạn sẽ không nhận ra được những thứ mình chưa biết, vì ngỡ rằng mình đã giỏi, đã rành, đã nắm hết rồi!

 

Để mình kể cho các bạn nghe, chính mình cũng từng bị như vậy!

Mình có từng viết bài giải thích về callback, promise trong JSasync/await với JavaScript. Do vậy mình khá tự tin về kiến thức JS của bạn thân.

Tuy vậy, trong một kì phỏng vấn tréo nghoe, mình bị bắt phải tự implement promise chuẩn A+ từ đầu và … không làm được sau 60 phút (Chả hiểu sao cũng pass vòng đấy, thật không thể tin nổi). Đấy, nhục mặt chưa!

Nếu cứ tự tin thái quá về kiến thức mình đã có, các bạn hãy cẩn thận, có này bị hiện thực vả cho sml như mình đấy nhé!

Mỗi khi nghe bạn sinh viên nào hỏi: Em đã học XONG C, XONG C#, XONG Java, mình lại quăng cho bạn tấm hình này

Làm sao để không bị “ảo tưởng sức mạnh”?

Liều thuốc tốt nhất để chữa bệnh ảo tưởng sức mạnh chính là … kiến thức, là luôn luôn học hỏi.

Nhìn biểu đồ bên dưới, các bạn sẽ thấy là càng biết nhiều, sự tự tin-tự kiêu của bạn sẽ giảm đi. Đến một lúc nào đó, khi đã có kinh nghiệm và kiến thức, sự tự tin sẽ dần quay trở lại.

Càng biết nhiều, chúng ta lại càng bớt tự kiêu

Ví dụ nhé, khi mới học front-end, các bạn sẽ tưởng nó chỉ có HTML/CSS/JS thuần. Học sơ 3 thứ này, bạn cho rằng mình đã thành thục front-end.

Thế nhưng, nếu chịu khó đào sâu thêm một chút, bạn sẽ biết nó còn có nguyên 1 hệ sinh thái npm, build tool, framework, best practice.

Hoặc khi học back-end, bạn tưởng chỉ cần biết mô hình MVC, biết 1 framework, biết cách viết SQL query là xong. Những kiến thức này là đủ để bạn phỏng vấn xin việc.

Tuy nhiên, khi lên vị trí senior, lên tầm architectect, các bạn sẽ biết back-end developer còn phải hiểu cách config webserver, setup load balancer, set index cho database.

Với các hệ thống lớn, ta phải tìm hiểu về load balancer, scaling, availability  v…v

Thiết kế hệ thống triệu người dùng chưa bao giờ là chuyện đơn giản

 

Như mình đây nè, mặc dù mình chỉ mới học sơ sơ về docker, chỉ đủ kiến thức để chém gió sơ sơ với bạn bè. Thế nên mình cũng nghĩ, docker với container dễ òm, có cái gì phức tạp đâu mà học lắm thế!

Sau khi nhận ra hiệu ứng này, mình mới tự xét lại kiến thức bản thân, tự nhận ra rằng mình mới chỉ hiểu những thứ cơ bản như: cách dockercontainer hoạt động, cách tạo dockerfile.

Vẫn còn rất nhiều thứ mình phải học!

Tìm hiểu sâu hơn, mới thấy mình còn chưa biết cách dùng docker-compose để các container làm việc với nhau, security cho container, chưa biết cách deploy docker lên cloud…

Docker và những người bạn

Kết

Suy cho cùng, tự tin là một phẩm chất tốt. Nó sẽ giúp bạn dễ thành công hơn, được sếp và đồng nghiệp tin tưởng hơn.

Tuy nhiên, sự tự tin phải đi kèm với năng lực. Quá tự tin khi kiến thức chỉ hơn số 0 một chút thì chẳng khác gì thùng rỗng kêu to hay ếch ngồi đáy giếng.

Do vậy, khi cảm thấy mình quá giỏi, biết quá nhiều, nắm quá kĩ kiến thức, hãy tự xem xét lại bản thân xem mình có bị dính hiệu ứng Dunning Kruger này không nhe! Nếu bị thì nhớ làm theo những lời khuyên của mình để phòng chống nha!

Còn bạn thì sao? Bạn có thấy bạn học, đồng nghiệp hay sếp của mình mắc phải hiệu ứng này không? Nếu có thì hãy chia sẻ với mọi người trong mục comment nhé!

15 thoughts on “Hiệu ứng Dunning Kruger và sự ảo tưởng sức mạnh mà lập trình viên nên tránh”

  1. sau năm 75 anh ít khi nào tin vào sự thật nữa, mọi sự đều do tinh thần ảo tưởng mà ra.

    Like

  2. hồi năm 1 cũng ảo tưởng vì đã biết code trong khi bạn bè còn ngồi bấm game, cho đến khi làm freelancer và bị vã sml :((

    Like

  3. Haha :v em đọc cái cap là thấy mình trong bài này rồi 😀 Khắc phục ngay thôi… =.=

    Like

  4. Cũng từng đọc một bài tương tự trên HBR, sự tự tin sẽ quay trở lại nhưng với mình chưa biết đến bao giờ 🙂

    Like

  5. Vừa đọc vừa xem lại bản thân. Chắc là mình cũng dính chút chút.

    Về cái Promise/A+, nếu cho mình 1 giờ thì may ra đủ để hiểu hết Requirements của nó, chứ chưa nói gì đến implement.

    Like

  6. em thì ngược lại cơ :< bạn bè học 1 thì em học 2 , nhìn code họ viết mà sao thấy hay thế nhỉ , chả bao giờ tự code được , toàn lấy code người ta về ngẫm đi ngẫm lại mới hiểu

    Like

  7. Mình sau khi làm dev sau nhiều năm, lúc này mình muốn đổi công ty nên nộp đơn xin việc ở vài nơi, xin hẳn vào vị trí senior dev. Sau khi pv 2-3 công ty, thì mình mới tỉnh ra là mình chỉ hơn junior dev 1 chút 😀
    Thật là đau đớn và nhục cái mặt.
    Đợt apply thứ 2, chỉ chọn những vị trí dev. và đi pv trong tâm trạng… sao cũng được, miễn là nó chịu nhận mình làm có tiền là được rồi… tại vì cũng đang đói… hì hì.

    Liked by 1 person

  8. Bản thân mình cũng đã/đang mắc hiệu ứng này, nhưng mức độ biểu hiện không như người đồng nghiệp nào đó:
    Chẳng có tí kiến thức gì trong đầu, tự nhận là senior, trong khi 1 dòng code không biết, architect cũng không biết nốt luôn :))
    Trình độ không có, chuyên chế requirement để anh em làm mệt nghỉ (tự OT) xong đập đi làm lại. Khách hàng nói gì còn ko rõ, lười lấy require, hoặc ngại lấy. Luôn tỏ ra hiểu biết uyên thâm, nhưng trong đầu rỗng tuếch, được cái thói nâng bi nên sếp ưu ái.

    Like

Leave a comment