Mình rút ra được những bài học gì sau 4 năm làm lập trình viên | Phần 2

Thứ sáu, ngày 3 tháng 9 năm 2021

Đây là bài viết cuối cùng trong loạt bài mình chia sẻ những kinh nghiệm của bản thân trong quá trình mình trở thành một lập trình viên như bây giờ. Trong bài viết này, mình không chỉ nếu ra những sai lầm mà còn chia sẻ những khó khăn, cách mình cải thiện bản thân trên quãng đường 4 năm đó.

Áp dụng triệt để kiến thức được học vào công việc

Mình từng nghe có rất nhiều bạn sinh viên thường hay phàn nàn rằng tại sao lại học môn này, tại sao không học kiến thức kia. Rồi học môn này ra trường có để làm gì đâu hay sẽ không bao giờ dùng đến nó để kiếm tiền.

Theo mình, đó là một quan điểm sai lầm. Tất nhiên không phải môn nào cũng hữu ích 100% nhưng ít nhiều, nó có ích.

Hãy hình dung bạn bị rơi xống một hòn đảo, bạn muốn chúa trời trao cho bạn con dao hay cái nhà? Nếu đấng toàn năng đó trao cho bạn con dao, tất nhiên bạn sẽ không thể có cái nhà ngay được mà bạn phải mất công chặt cây, đẽo gỗ rồi mới làm nhà. Hơn thế, với con dao, bạn có thể đi kiếm thức ăn, trồng trọt, bảo vệ khỏi lũ thú dữ,.... Đây chính là sự linh hoạt khi bạn có một con dao.

Còn với một ngôi nhà có sẵn, bạn không thể tự mở rộng căn nhà của mình, không thể biết sinh tồn khỏi lũ thú hoang, không thức ăn và không gì cả. Thậm chí, khi ngôi nhà duy nhất của bạn hỏng, bạn cũng chẳng thể sửa nổi, đó thật là một sự gò bó.

Tương tự như quan điểm của các bạn, tại sao mình nói quan điểm đó là sai lầm. Ở trường, các thầy cô tra cho bạn những nền tảng để bạn phát triển sau này chứ các thầy cô không đảm bảo bạn chỉ cầm nó và ra ngoài xã hội lượm tiền.

Trong toán học, bạn có thể thấy rõ ràng là: bạn không thể hiểu được phép nhân nếu bạn không hiểu phép cộng. Hay cao xa hơn một xíu, bạn không hiểu đạo hàm thì bạn cũng không hiểu mạng neron trong trí tuệ nhân tạo hoạt động ra sao.

Khi đi làm, các bạn có thể làm web, làm game, trí tuệ nhân tạo,... các bạn vẫn cần học toán, vẫn cần học cấu trúc dữ liệu và giải thuật, mạng máy tính,...

Nếu bạn chỉ setup một website quản lí nội dung chạy bằng wordpress, những kiến thức đó có thể bạn không cần. Nhưng nếu bạn phát triển một hệ thống linh hoạt hơn một website quản lí nội dung, những gì bạn học thực sự rất hữu ích.

Ví dụ đơn giản, bạn có thấy cây danh mục sản phẩm của tiki, shopee có giống với cấu trúc cây trong môn cấu trúc dữ liệu và giải thuật không? Hay ngày xưa, khi các bạn học cấp 3, bạn còn nhớ về tính đơn điệu của hàm số không, có thấy bài toán tìm cực đại cực tiểu ngày xưa có mối liên quan chặt chẽ tới thuật toán backpropagation nổi tiếng trong lĩnh vực trí tuệ nhân tạo không? :smile:

Có rất nhiều bạn cũng có suy nghĩ rằng chỗ nào không biết thì đã có google hay stack overflow. Tất nhiên, điều đó chỉ đúng một phần. Với những kiến thức chuyên sâu, các lập trình viên dày dạn kinh nghiệm sẽ không chỉ cho bạn tận nơi, bạn nhiều khi sẽ phải vận dụng những kiến thức hàn lâm ở trường học để hiểu câu trả lời của họ hay những gì họ chia sẻ.

Đây có lẽ là bài học đắt giá nhất mà mình muốn khuyên các bạn, rằng: hãy tập trung học những kiến thức ở trường học và hơn thế, đừng học vì điểm số hay bằng giỏi mà học bằng sự tò mò của bản thân, học vì công việc sau này của bạn sẽ cần đến nó.

Rèn luyện tư duy giải quyết vấn đề và mở rộng kiến thức hằng ngày

Tư duy giải quyết vấn đề là khả năng xử lí những vấn đề xảy ra trong suốt thời gian làm việc của bạn. Nếu bạn có một tư duy tốt, tất nhiên đó là điểm cộng trong mắt nhà tuyển dụng. Vậy là sao để rèn luyện điều này?

  • Bạn có thể lên các trang luyện về giải thuật như hackerrank hay codeforce để rèn luyện tư duy thuật toán.
  • Đọc code của những dự án nổi tiếng trên github.
  • Vận dụng hiểu biết của bản thân để cài đặt lại các công nghệ mà bạn sử dụng.
  • Tìm hiểu những vấn đề trong dự án của team bạn, cố gắng tìm kiếm vấn đề tồn tại trong nó để cải thiện.
  • Đọc blog của những lập trình viên có nhiều kinh nghiệm, học thêm các kiến thức trên các nền tảng MOOC như Coursera hay edx.

Nói thật là mình đã bỏ dở việc học đại học của mình (có vài lí do cá nhân :smile:) nên mình đã cố gắng hoàn thành các khóa học trên Coursera đề bù lại, các bạn có thể tham khảo chương trình học của mình ở đây nhé MOOC course.

Ngoài ra, mình thường sử dụng cách 2 và 3 để trau dồi kiến thức trong lĩnh vực của mình vì mình cảm thấy nó là 2 phương pháp toàn diện để mình có thể nâng cao kiến thức hơn.

Dữ liệu là quan trọng

Mình biết có rất nhiều bạn mới ra trường thường mơ hồ về quan điểm này vì các bạn thường chỉ biết code nên các bạn sẽ có xu hướng tập trung vào code nhiều hơn.

Nhưng bạn nên có suy nghĩ rằng: code là cái cuốc chim còn dữ liệu là quặng vàng. Bạn chỉ dùng cuốc chim để tìm và khai thác vàng thôi. Để mình lí giải cho các bạn điều này.

Dữ liệu là tri thức phản ánh chính xác hành vi của người dùng khi họ sử dụng sản phẩm của bạn. Bạn có thể hiểu khách hàng được bao nhiêu thì bạn sẽ biết họ cần gì để đáp ứng, từ đó tăng cao doanh thu của công ty.

Lấy ví dụ các sàn thương mại điện tử, dữ liệu về khách hàng như nhóm sản phẩm nào hay mua, thời gian nào lượng người mua tăng cao, với nhóm khách hàng này họ thường mua gì? Từ các thông tin đó, bạn sẽ biết mình cần phải điều hướng nguồn hàng ra sao, chiến lược kinh doanh như thế nào để có thể tối ưu lợi nhuận mang lại.

Hơn nữa, code là của bạn và công ty, có thể lấy lại dễ dàng khi mất đi. Ngược lại, dữ liệu là của người dùng nên nếu mất đi, bạn không thể lấy lại được.

Mình từng suýt làm sai lệnh dữ liệu trong team và làm anh leader phải toát mồ hôi mới cứu lại được nên đó có lẽ là bài học nhớ đời của mình khi đi làm ở công ty công nghệ :smile:.

Sắp xếp công việc hợp lí, tập trung khi đang làm việc

Sắp xếp là phương pháp giúp cho các thuật toán làm việc hiệu quả đáng kinh ngạc, đơn giản nhất là thuật toán tìm kiếm nhị phân. Tương tự, việc sắp công việc sao cho hợp lí giúp con người làm việc hiệu quả hơn.

Bản thân mình cũng chưa làm được việc này thật tốt nhưng dù sao đây cũng là lời mình muốn khuyên để các bạn có một ngày làm việc hiệu quả nhất có thể.

Thêm vào đó, sự tập trung là điều thực sự cần thiết khi làm bất cứ việc gì. Mình thường thấy có rất nhiều người vừa làm việc vừa lướt facebook, youtube, instagram hay chat với bạn bè.

Việc mất tập trung có thể dẫn đến một ngày làm việc kém hiệu quả, sinh ra nhiều bug khi code và do đó, bạn sẽ mất nhiều thời gian và sức lực để hoàn thành một công việc cho dù đó là công việc nhỏ nhặt.

Hãy đọc sách mỗi khi bạn cảm thấy rảnh rỗi hoặc chán nản với code

Công việc trong ngành IT cực kì áp lực và không thể tránh khỏi những lúc bạn cảm thấy chán nản và trống rỗng. Việc code quá nhiều cũng sẽ làm bạn như đang lạc vào thế giới của những dòng chữ, các con số, màn hình và logic. Lúc này, chúng ta cần thứ gì đó hoàn toàn khác biệt để quên đi những thứ đó.

Đối với mình, sách không chỉ thay đổi môi trường trong đầu khi đó mà nó giúp mình cảm thấy tốt hơn, hiểu biết được mở rộng hơn. Mình khuyên các bạn nếu có đọc sách để giải toả căng thẳng do coding, đừng đọc sách kĩ thuật hay ít nhất là đừng đọc thứ gì liên quan tới lập trình. Các bạn có thể ra hiệu sách, tìm những cuốn về chủ đề phiêu lưu, tâm lí học, xã hội học hoặc ngôn tình nếu bạn thích :smile:.

Mình thì thường chọn các sách về chủ đề triết học và tâm linh, nó hoàn toàn khác hẳn với coding thì nó sẽ càng giúp bạn bớt căng thẳng hơn, từ đó, bạn có thể dễ dàng quay trở lại công việc mà không còn thấy áp lực.

Đến đây, mình xin dừng chuỗi bài chia sẻ của mình về những điều mình rút ra sau khi đã trải qua 4 năm bước chân vào ngành IT, hi vọng với những chia sẻ này, các bạn có thể tìm được những điều có ích cho bản thân và sự nghiệp.