Mindset changes for learning to code effectively
Học lập trình là một hành trình mà nhiều người mơ ước bắt đầu nhưng thường gặp phải những thách thức dọc đường. Con đường trở thành một nhà phát triển phần mềm không chỉ về các hướng dẫn và lựa chọn ngôn ngữ lập trình đúng. Nó cũng bị ảnh hưởng nhiều bởi tâm lý và cách tiếp cận trong học tập. Trong bài viết này, chúng ta sẽ khám phá một số thay đổi tư duy có thể cải thiện đáng kể cách bạn học lập trình và phát triển bản thân như một kỹ sư phần mềm.
Dù bạn bắt đầu từ con số không hay đã từng thử sức với lập trình, những nguyên tắc này có thể góp phần vào cả phát triển kỹ thuật và phát triển cá nhân của bạn.
Focus on practice, not theory
Bắt đầu video thảo luận về sự thay đổi tư duy đầu tiên
Sự thay đổi tư duy đầu tiên và có lẽ quan trọng nhất là tập trung vào thực hành thay vì lý thuyết. Người diễn giả bắt đầu bằng việc chia sẻ cách họ ban đầu hiểu sai "quy tắc 10.000 giờ". Quy tắc này nói rằng để thành thạo một kỹ năng, bạn cần dành 10.000 giờ cho nó. Là một lập trình viên mới vào nghề, họ nghĩ rằng điều này có nghĩa là đọc sách, xem hướng dẫn, và tiêu thụ càng nhiều thông tin lý thuyết càng tốt trong những giờ đó. Tuy nhiên, sau đó họ nhận ra đây là điều không hiệu quả.
Thay vào đó, họ ủng hộ phương pháp "10.000 dòng mã". Tư duy này đánh giá cao việc lập trình và xây dựng dự án hơn là tiêu thụ thông tin thụ động. Bằng cách tích cực viết mã, ngay cả khi ban đầu không hiệu quả và dễ mắc lỗi, bạn sẽ cải thiện liên tục. Với mỗi cột mốc - ví dụ, mỗi nghìn dòng mã - kỹ năng của bạn trở nên sắc bén hơn.
Lập trình, họ lập luận, là một nghề thủ công, giống như làm mộc, chơi một nhạc cụ hay vẽ tranh, hơn là việc học các lĩnh vực thông tin dày đặc như luật hoặc tài chính. Sự thành thạo đến từ việc tạo ra và hoàn thiện, chứ không đơn giản là ghi nhớ các khái niệm.
Hơn nữa, việc tập trung vào thực hành giúp tránh bẫy nổi tiếng mang tên "địa ngục hướng dẫn". Địa ngục hướng dẫn xảy ra khi người học liên tục làm theo hướng dẫn mà không áp dụng kiến thức vào các dự án thực tế, khiến họ không chuẩn bị tốt để tự xây dựng. Nếu video này nhận được một số lượt thích nhất định, người diễn giả hứa hẹn sẽ tạo một hướng dẫn riêng để thoát khỏi địa ngục hướng dẫn.
Ego is the enemy
Tránh quyết định do ego thúc đẩy trong quá trình học tập
Sự thay đổi tư duy quan trọng tiếp theo là nhận ra rằng ego là kẻ thù của bạn. Khi người diễn giả bắt đầu học lập trình, cái tôi của họ đã thúc đẩy họ cố gắng thực hiện những dự án đầy tham vọng như tạo ra một bản sao Facebook hoặc một bản sao Reddit. Đồng thời, họ đã gạt bỏ những dự án cơ bản, như xây dựng các trang web công thức đơn giản bằng HTML và CSS. Những điều này có vẻ "thấp hơn họ"—cái tự mãn của họ khăng khăng rằng họ đã sẵn sàng cho các chủ đề nâng cao.
Tư duy này là một trở ngại. Họ thừa nhận rằng nếu họ bỏ qua cái tôi của mình và bắt đầu từ những điều cơ bản, họ sẽ tiến bộ nhanh hơn rất nhiều và trở thành một lập trình viên có năng lực trong thời gian ngắn hơn. Những dự án cơ bản, mặc dù dường như đơn giản, là rất cần thiết cho việc hiểu các nguyên tắc chính và phát triển các kỹ năng cần thiết cho các ứng dụng phức tạp.
Bài học ở đây là khiêm tốn. Như một người mới vào nghề, việc chấp nhận trình độ kỹ năng hiện tại là rất quan trọng. Việc thành thạo những điều cơ bản không chỉ cần thiết—mà còn vô giá. Nền tảng đó cho phép bạn giải quyết các vấn đề phức tạp hơn với sự rõ ràng và tự tin.
Get comfortable with being uncomfortable
Về sự cần thiết phải trở nên thoải mái với sự không chắc chắn trong lập trình
Trong kỹ thuật phần mềm, sự không chắc chắn là một phần trong lĩnh vực này. Sự thay đổi tư duy ở đây là chấp nhận cảm giác không thoải mái và xem đó như một phần của quá trình học tập, thay vì là một trở ngại. Người diễn giả nhấn mạnh rằng như một lập trình viên chuyên nghiệp, bạn sẽ không bao giờ biết mọi thứ, và điều đó là hoàn toàn ổn.
Vai trò của bạn như một lập trình viên là trở thành một "người quản lý thông tin." Bạn có thể không có tất cả các câu trả lời ngay lập tức, nhưng bạn được kỳ vọng sẽ giải quyết các vấn đề trong lĩnh vực của bạn. Điều này thường liên quan đến việc nghiên cứu, thử nghiệm và tìm kiếm giải pháp—một quá trình mà tự nhiên bao gồm những khoảnh khắc nghi ngờ hoặc bối rối.
Thay vì chống lại sự khó chịu này, họ gợi ý rằng bạn nên đón nhận nó. Xem mỗi thách thức như một cơ hội để phát triển và học hỏi điều gì đó mới. Tư duy này biến những cuộc đấu tranh không thể tránh khỏi của lập trình thành một phần thú vị của quá trình. Khi bạn cảm nhận cảm giác không thoải mái đó, đó là dấu hiệu cho thấy bạn đang mở rộng ranh giới của mình, cải thiện và mở rộng khả năng của mình.
Ví dụ, khi đối mặt với những khái niệm hoặc nhiệm vụ không quen thuộc, đừng để sự bối rối ban đầu làm bạn nản lòng. Hãy xem đó như một cơ hội thú vị để làm sâu sắc thêm kiến thức và chuyên môn của bạn. Sự thay đổi tư duy này không chỉ làm cho hành trình trở nên thú vị hơn mà còn khuyến khích sự kiên cường—một phẩm chất quan trọng cho bất kỳ lập trình viên nào.
You will never master programming
[Không có hình ảnh nào cho phần này ở 357 giây video.]
Sự thay đổi tư duy cuối cùng được thảo luận là nhận ra rằng bạn sẽ không bao giờ thực sự "thành thạo" lập trình. Người diễn giả chỉ ra rằng những nhà phát triển đầy khát khao, đặc biệt là những người mới bắt đầu, thường chú tâm vào ý tưởng "thành thạo" một ngôn ngữ hoặc khái niệm trước khi chuyển sang. Họ có thể dành quá nhiều thời gian để hoàn thiện sự hiểu biết của mình về một chủ đề nhất định, chẳng hạn như CSS flexbox, trước khi cố gắng xây dựng điều gì đó với nó. Cách tiếp cận này là thiếu sót.
Cách học tốt hơn là theo từng bước. Bắt đầu bằng cách học những điều cơ bản, sau đó áp dụng chúng vào các dự án. Ví dụ, khi học một khái niệm mới, như flexbox, thay vì cố gắng hiểu mọi sắc thái ngay từ đầu, hãy sử dụng nó trong các dự án. Với việc áp dụng lặp lại, sự hiểu biết của bạn sẽ sâu sắc hơn theo thời gian. Lập trình là một nghề thủ công, và sự thành thạo đến từ thực hành liên tục, thử nghiệm và lặp đi lặp lại.
Điều quan trọng là, khi bước vào ngành, bạn không bị kỳ vọng phải là một "bậc thầy". Đối với lập trình viên cấp junior, các công ty tìm kiếm những cá nhân có kiến thức cơ bản, sẵn sàng học hỏi và kiên trì để phát triển. Cố gắng "thành thạo" các kỹ năng lập trình trước khi nộp đơn xin việc là không cần thiết và không hợp lý. Người diễn giả trấn an những nhà phát triển đầy khát khao rằng ngành công nghiệp đánh giá cao sự linh hoạt và sự hăng hái học hỏi hơn là việc thành thạo một cách toàn diện các khái niệm lập trình cụ thể.
Những lập trình viên giỏi, họ nhấn mạnh, không bao giờ ngừng học hỏi. Họ ôm lấy quá trình lặp lại: xây dựng các dự án, tìm kiếm phản hồi và cải thiện liên tục. Việc tìm kiếm sự thành thạo là một hành trình không ngừng, và chính hành trình đó là nơi mà sự phát triển thực sự nằm ở.
Conclusion: Adopt the right mindset for coding success
Hành trình học lập trình không phải là một đường thẳng—nó tràn đầy những khúc quanh, ngã rẽ và những trở ngại thỉnh thoảng. Tuy nhiên, việc áp dụng đúng tư duy có thể tạo ra sự khác biệt trong thành công của bạn.
Key takeaways:
- Prioritize practice over theory: Tập trung vào việc viết mã và xây dựng dự án thay vì dành quá nhiều thời gian tiêu thụ nội dung thụ động.
- Check your ego at the door: Bắt đầu từ những điều nhỏ và tập trung vào các dự án cơ bản trước khi đối mặt với những cái phức tạp.
- Embrace discomfort: Xem sự bối rối và những thách thức như là những cơ hội để phát triển thay vì là trở ngại.
- Let go of the idea of mastery: Tập trung vào việc học hỏi liên tục và xây dựng thay vì chú tâm vào việc hoàn thiện các khái niệm trước khi hành động.
Những thay đổi tư duy này không chỉ làm cho việc học lập trình hiệu quả hơn mà còn phát triển tính kiên nhẫn, kiên trì và khả năng phục hồi — những phẩm chất mà mọi lập trình viên vĩ đại đều có. Dù bạn chỉ mới bắt đầu hay đã ở trong cuộc chiến, việc áp dụng những nguyên tắc này có thể tăng tốc hành trình của bạn như một nhà phát triển phần mềm.
Bắt đầu từ những điều nhỏ, giữ thái độ khiêm tốn, và nhớ rằng: mỗi dòng mã bạn viết là một bước gần hơn để đạt được mục tiêu của bạn.