Đừng cắm mặt vào dùng Công nghệ, hãy hiểu nó!

Xin bắt đầu bài viết bằng một câu chuyện nho nhỏ về hai thanh niên tên Sơn và tên Tùng.
Ngày xửa ngày xưa, Sơn và Tùng là đôi bạn thân học cùng Đại Học. Thuở ra trường, do có khả năng, cả hai được nhận vào một công ty làm C#, sử dụng ASP.NET MVC. Câu chuyện bắt đầu từ đó.

𝗛𝗮𝗶 𝗰𝗮́𝗰𝗵 𝘁𝗶𝗲̂́𝗽 𝗰𝗮̣̂𝗻 𝘃𝗮̂́𝗻 đ𝗲̂̀ – 𝗵𝗼̣𝗰 𝗰𝗵𝗼 𝘅𝗼𝗻𝗴 𝗵𝗮𝘆 𝗵𝗼̣𝗰 𝗸𝗶̃
Để học ASP.NET MVC, Sơn ra CodeDạoX học, lên mạng xem thêm các clip tiếng Việt về ASP.NET. Nhờ làm theo hướng dẫn, sau một tháng Sơn đã thành thạo những task cơ bản, hoàn thành công việc được giao.
Mỗi lần gặp task phức tạp hoặc có lỗi, Sơn lại lên stackoverflow xem cách giải quyết. Thấy mình làm được việc, Sơn nghĩ mình đã biết đủ rồi, không cần học thêm gì nữa.

Tùng thì không vội vàng học công nghệ mà tìm hiểu thật kĩ về ngôn ngữ C# và mô hình MVC. Sau đó Tùng thì lại lên Pluralsight học, tìm đọc các sách chuyên sâu về ASP.NET của Apress.
Tùng không chỉ code theo hướng dẫn, mà còn tìm hiểu kĩ nền tảng của ASP.NET: route-mapping thế nào, view được hiển thị ra sao, các HTML Control sẽ được khởi tạo như thế nào.

Hai năm sau, ASP.NET dần nâng cấp lên các phiên bản mới.
Sơn bắt đầu hụt hơi khi không theo kịp những thay đổi của công nghệ, gặp bug lạ là bó tay, code chậm không optimize được.
Trong khi đó, do đã nắm vững bản chất công nghệ, Tùng dễ dàng áp dụng những chức năng mới. Tùng còn nhanh chóng học thêm về Ruby on Rails, Django nhờ đã nắm vững cơ chế hoạt động của mô hình MVC.

Nửa năm sau, bố của Sơn thấy Sơn đi code hoài tội quá, cho Sơn 2 tỷ để mở công ty. Công ty thành công rực rỡ, Sơn có xe xịn, nhà cao, vợ đẹp con ngoan. Còn Tùng vẫn ngày ngày đi code dạo và viết blog, làm vlog kiếm tiền tã sữa.

Qua câu chuyện này, chúng ta rút ra được hai bài học:

  • Bài học thứ nhất: Giỏi code đến mấy cũng không bằng nhà giàu, may mắn và gặp thời.
  • Bài học thứ hai: Để trở thành một lập trình viên giỏi thật sự, ta phải nắm rõ bản chất vấn đề, hiểu bản chất công nghệ/ngôn ngữ của mình đang sử dụng.

𝗧𝗮̣𝗶 𝘀𝗮𝗼 𝗽𝗵𝗮̉𝗶 𝗻𝗮̆́𝗺 𝗯𝗮̉𝗻 𝗰𝗵𝗮̂́𝘁 𝘃𝗮̂́𝗻 đ𝗲̂̀?
Hiện nay, nhiều bạn sinh viên thích học lập trình theo kiểu chưa học bò đã lo học chạy: Nhắm mắt nhắm mũi chọn một công nghệ, lao đầu vào các khoá học trên mạng, code theo hướng dẫn để code ra một sản phẩm gì đấy.
Cách học code tốt nhất chính là… tự tay code. Ưu điểm của phương pháp học này là các bạn được code ngay, tạo ra được sản phẩm. Điều này làm bạn có hứng thú hơn so với việc ngồi học lý thuyết nhàm chán.

Tuy nhiên, cách học này cũng dễ làm bạn… tự tin thái quá, nghĩ rằng mình đã biết hết. Điều này dễ dẫn đến việc cắm đầu cắm đít code theo hướng dẫn mà không hiểu rõ cách code hoạt động, không hiểu bản chất công nghệ mình sử dụng.
Để làm lái xe giỏi, bạn không cần phải biết cách động cơ xe hoạt động, cấu tạo của cần lái, vô lăng. Tuy nhiên, làm lập trình viên mà không hiểu về công nghệ mình dùng, ngôn ngữ mình code, bạn sẽ gặp nhiều khó khăn khi làm những task phức tạp, khi gặp bug lạ, khi cần thiết kế hay tối ưu code.

Hãy như Tùng ở câu chuyện trên. Hiểu rõ bản chất vấn đề, bạn có thể dễ dàng chuyển đổi qua lại giữa nhiều công nghệ, tự tin giải quyết các vấn đề phức tạp.
Đó cũng là lý do mà trong các trường đại học, các thầy cô thường khuyến khích các bạn code tay để hiểu vấn đề, thay vì dùng ngôn ngữ này/công nghệ nọ.

Đ𝘂̛̀𝗻𝗴 𝘃𝗼̣̂𝗶 𝗵𝗼̣𝗰 𝗳𝗿𝗮𝗺𝗲𝘄𝗼𝗿𝗸!!
Tình trạng này mình đã gặp khá nhiều. Có vài bạn đi làm, vì nhu cầu công việc nên phải học ngay một công nghệ nào đấy (Laravel, AngularJS, …). Các bạn cắm đầu vào học ngay công nghệ để làm được việc.
Các framework này đã hỗ trợ tận răng nên học khá dễ dàng, học một thời gian các bạn đã làm được những task đơn giản, hoàn thành việc được giao.

Tuy nhiên, điều này lại khá tai hại. Kiến thức chỉ có phần ngọn mà không có phần gốc, không có nền tảng sẽ dễ dàng lung lay.
Khi gặp những task phức tạp, tìm không ra hướng dẫn, các bạn dễ bó tay. Khi gặp những con bug đểu, nằm sâu trong framework, bạn cũng không biết cách sửa.
Lúc này, bạn chỉ giống như một thợ code, code như cái máy chứ không hiểu rõ công việc mình đang làm.

Lời khuyên mình muốn dành cho các bạn là: Chịu khó học bò trước khi học chạy. Nắm vững bản chất của ngôn ngữ mà công nghệ mình sử dụng, đơn cử như:

  • PHP còn chưa vững thì đừng đú Laravel hay CodeIgniter.
  • Có mần AngularJS, jQuery hay React thì cũng nên học kĩ JS trước
  • Muốn code Android thì phải hiểu rõ Java/Kotlin.
  • Làm ứng dụng di động bằng React-Native, hãy hiểu JS, hiểu React trước khi bắt đầu code theo hướng dẫn.
    Vậy làm sao để nắm được bản chất công nghệ, hãy đọc phần cuối nhé!

𝗟𝗮̀𝗺 𝘀𝗮𝗼 đ𝗲̂̉ 𝗻𝗮̆́𝗺 đ𝘂̛𝗼̛̣𝗰 𝗯𝗮̉𝗻 𝗰𝗵𝗮̂́𝘁 𝗰𝗼̂𝗻𝗴 𝗻𝗴𝗵𝗲̣̂?
📚 Chịu khó đọc nhiều sách: Các sách công nghệ thường viết kĩ về lý thuyết, có cấu trúc hơn là các video hay khoá học. Đọc thể loại sách này khá là chán, các bạn nên kết hợp đọc sách + xem video + code.
Mình khuyên các bạn học C# nên đọc C# in Depth, học JavaSscript thì nên đọc series You don’t know JS, học NodeJS thì nên xem khoá học Understanding NodeJS. Mỗi ngôn ngữ đều có những cuốn sách nền tảng khá hay.
😋 Luôn luôn đói ăn, luôn luôn ngu học: Đây là một câu danh ngôn của Steve Jobs được mình độ chế lại. Đừng nghĩ rằng mình đã giỏi, đã biết tất cả mà hãy luôn cho rằng mình ngu, chưa biết gì nên phải học hỏi. Hãy giữ cho mình một sự tò mò, muốn tìm hiểu bản chất vấn đề.
😱 Đừng “sợ” thư viện và framework: Các thư viện/framework này thật là chỉ là “code người ta”, code do developer khác viết. Hầu như chúng đều có source code trên github.
Các bạn chỉ cần lên github mở source code ra xem là biết có gì trong đó thôi. Bản thân mình cũng từng mở xem source code của vài cái library JS, nhiều cái bên trong code cũng ngu chết mẹ.
📹Làm blog/vlog hoặc tutorial: Chia sẻ kiến thức của mình cho người khác cũng là một cách khá hay. Để viết một bài blog hay tutorial, bạn sẽ phải tìm hiểu kĩ về bản chất công nghệ, về những thứ liên quan trước khi viết. Do vậy mình viết blog nhiều là vì lợi ích của mình đấy, không phải các bạn đâu hihi.

Còn các bạn thì sao? Các bạn có nghĩ rằng mình nên nắm vững bản chất công nghệ không, hay chỉ cần hiểu để làm được việc là được rồi? Cùng đưa ý kiến trong phần bình luận nhé.

Nguồn: toidicodedao.

Notify of
guest
0 Bình luận
Cũ nhất
Mới nhất Được quan tâm nhất
Inline Feedbacks
View all comments
0
Ghé rồi thì chuyện phiếm chút nha bạn hiền ...x