Những bài học cuộc sống mà mình rút ra từ việc học code

412

Bài viết được sự cho phép của tác giả Phạm Bình

  5 bài học quí giá về việc phát triển ứng dụng iOS
  3 bài học xương máu mà mỗi Product Manager đều phải trải qua.

I. Không có gì là mãi mãi

Mình mới bước chân vào con đường lập trình này chưa được bao lâu, nhưng chỉ xét riêng khía cạnh phát triển web, trong vòng 5 năm (2015 – 2020) qua đã có nhiều sự thay đổi đáng kể:

  • Javascript được sử dụng nhiều hơn: do sự nâng cấp của các trình duyệt, cũng như sự ra đời của NodeJS, khiến cho javascript có thể được sử dụng cả ở backend lẫn frontend.
  • Các trang web chú trọng nhiều cho giao diện mobile: Bây giờ làm gì còn ai không sử dụng smartphone cơ chứ, nên một trang web cũng cần phải được tối ưu cả cho mobile nữa.
  • Frontend phát triển mạnh: Sự ra đời của hàng loạt các frontend framework như vue, angular, reactjs đã khiến cho các frontend developer thời nay không chỉ là “biết cắt giao diện từ photoshop” nữa, họ cũng phải quan tâm tới giải thuật, tới cấu trúc dữ liệu không kém cạnh gì các backend developer.

Và còn nhiều sự thay đổi khác nữa…

Chứng kiến sự thay đổi trên, mới thấy rằng, quả đúng là “không có gì là mãi mãi”, mọi thứ xung quanh ta luôn không ngừng thay đổi. Và nếu không bắt kịp với sự thay đổi đó, chúng ta sẽ sớm thành những “người tối cổ hiện đại”.

“Không có gì là mãi mãi” cũng nhắc nhở mình phải luôn biết cách làm mới kiến thức, làm mới bản thân, đừng ngủ quên khi thấy bản thân đã làm tốt ở thời điểm hiện tại. Bởi bạn làm tốt hôm nay, đâu có nghĩa là bạn sẽ làm tốt ngày mai.

II. Sẵn sàng thay đổi để phù hợp

Cũng vì “không có gì là mãi mãi”, nên việc thay đổi để phù hợp là điều “tất lẽ dĩ ngẫu” nếu bạn không muốn bị bỏ lại phía sau.

Lúc mới học lập trình, thật sự mình rất ngại học cái mới, dù hiểu rằng cái mình biết đã cũ và không còn được trọng dụng ở giai đoạn hiện tại, nhưng vì một lý do nào đó mà mình vẫn không chịu học. Có thể là do mình lười, hoặc công nghệ mình biết mới chỉ đang ngấp ngoải mà chưa thật sự chết, làm mình không có động lực để học cái mới hơn.

Một câu chuyện nhỏ, xàm xí nhưng có thật với mình.

Ngày trước, codeigniter là một php framework được nhiều người sử dụng bởi nó đáp ứng được hầu hết các tác vụ web lúc bấy giờ. Đương nhiên, mình không thể bỏ qua một hot trend công nghệ như thế được, mình đã tìm hiểu về codeigniter và thích nó ngay lập tức. Nhưng chỉ sau 2 năm, đúng vào giai đoạn các website có sự phát triển vượt bậc, codeigniter có vẻ không còn phù hợp với các dự án web phức tạp, và một framework khác nổi lên có tên là Laravel – được mọi người ca ngợi là “ngon, đẹp, mạnh mẽ”, nhưng mình lại chẳng thèm quan tâm.

Việc mình không để ý đến Laravel, không phải vì codeigniter vẫn đủ mạnh mẽ. Thực chất, mình đã nhận ra một số điểm hạn chế của nó, nhưng vì ngại học cái mới nên mình vẫn tiếp tục sử dụng trong một thời gian dài (chừng 1 năm tiếp theo).

Rồi một ngày cuối tuần, vì muốn giết thời gian nên mình thử tìm hiểu về Laravel xem sao. Thì ôi, nó quá ngon, nó giải quyết về các vấn đề mà mình đang gặp ở thằng codeigniter. Lúc đó mới thấy bản thân sao ngu quá, sao không tìm hiểu sớm hơn thì đã tiết kiệm bao nhiêu thời gian.

Và đó là bài học đầu tiên cho mình thấy cái giá của việc ngại thay đổi.

Câu chuyện trên vốn không có gì to tát, chỉ là việc học một framework mới, thế nhưng khi nghĩ rộng ra, mới thấy rằng việc ngại thay đổi để trở nên tích cực hơn sẽ chỉ ngăn cản việc bạn phát triển mà thôi.

III. Cái gì cũng có điểm mấu chốt

Cái này thì mình học được qua việc fix bug (sửa lỗi phần mềm).

Để có thể fix được bug, trước tiên mình cần phải tìm được nó, hiểu nó và tái hiện được nó. Việc tìm bug có thể khó dễ tùy trường hợp, nhưng đặc điểm chung của công việc này là “dò từng bước một”, dò đến bao giờ tìm thấy nơi phát sinh bug thì thôi.

Và sau nhiều lần tìm bug, nhất là các trường hợp bug liên hoàn bug, từ bug A dẫn tới bug B, từ bug B dẫn tới bug C,… Khiến mình nhận ra rằng thường có một bug quan trọng gây ra các bug còn lại, mà khi fix được bug đó, các bug khác cũng tự động biến mất. Các bug như vậy được mình coi là “điểm mấu chốt” của vấn đề.

Thực tế, “điểm mấu chốt” không chỉ xuất hiện dưới dạng bug của phần mềm, mà “điểm mấu chốt” tồn tại trong tất cả các sự vật, sự việc, sự kiện trong cuộc sống.

Hôm nay tôi đi làm muộn.

– Vậy tại sao tôi lại đi muộn? Vì tắc đường.
– Vậy tại sao lại tắc đường? Là vì tôi đi làm vào giờ cao điểm?
– Tại sao tôi lại đi làm vào giờ cao điểm, sao không đi sớm hơn? Vì tối qua tôi ngủ muộn, nên dậy muộn.
– Tại sao tôi tối qua tôi ngủ muộn? Vì tối qua tôi cố xem nốt bộ phim yêu thích.

Vậy điểm mấu chốt của việc đi làm muộn là do tối qua cố xem nốt bộ phim. Vì nếu không cố xem nốt phim, thì sẽ không xảy ra các sự kiện sau đó, dẫn tới việc bị đi làm muộn.

Có một phương pháp tên là 5 why (5 câu hỏi tại sao) để giúp bạn tìm ra điểm mấu chốt dễ dàng hơn.

Nếu bạn không vừa lòng với bất kỳ điều gì trong cuộc sống, thì hãy thử suy nghĩ và tìm ra điểm mấu chốt. Sau đó giải quyết điểm mấu chốt đó, rồi bạn sẽ thấy cuộc sống dễ dàng hơn nhiều.

IV. Sống có mục tiêu và kế hoạch

Làm bất kỳ công việc gì cũng cần có kế hoạch, làm phần mềm cũng vậy. Trước khi bắt đầu triển khai một tính năng mới, thường có kế hoạch và mục tiêu rất rõ ràng:

  • Mục đích của tính năng sắp tới là gì?
  • Để hoàn thiện tính năng này, cần trải qua các bước nào?
  • Thời gian để hoàn thiện là bao lâu?
  • Sẽ có bao nhiêu người tham gia?
  • Khi nào thì bắt đầu, khi nào thì kết thúc?

Việc phải lập kế hoạch trước khi làm việc cũng đã tạo cho mình thói quen lập kế hoạch cho cuộc sống:

  • 5 năm nữa mình sẽ là ai?
  • Để đạt được mục tiêu 5 năm, thì mỗi năm, mỗi ngày mình phải làm gì?
  • Có bao nhiêu khó khăn, bao nhiêu điểm mấu chốt cần phải giải quyết để đạt được mục tiêu.
  • Làm sao để đo lường là mình vẫn đang thực hiện đúng?

Sống có mục tiêu và kế hoạch giúp mỗi ngày mình biết phải làm gì, biết việc gì nên làm, việc gì không nên làm, biết được bản thân mình đang nằm ở đâu, và mình phải cố gắng như thế nào vào ngày mai. Sau cùng, sống có mục tiêu và kế hoạch khiến mình cảm thấy cuộc đời này có ý nghĩa, bớt vô vị và tẻ nhạt.

V. Lời kết

Còn rất nhiều thứ khác nữa mà mình học được từ code, nhưng tạm thời kết thúc ở đây vì bài viết cũng hơn một nghìn từ rồi. Hẹn gặp lại các bạn ở phần tiếp theo. Mà nếu bạn cũng có những bài học hay rút ra được từ việc học lập trình, thì đừng ngại chia sẻ ở phần bình luận nhé.

Chào tạm biệt.

Bài viết gốc được đăng tải tại phambinh.net

Có thể bạn quan tâm:

Xem thêm các việc làm Developer hấp dẫn tại TopDev

Báo cáo bài viết vi phạm bản quyền>>