Đi học và đi làm có gì khác nhau

48

Chào các bạn,

Chủ đề giữa học và làm luôn là chủ đề muôn thuở, nói mãi mà vẫn không hết lời. Vì vậy hôm nay mình xin được đóng góp một chút quan điểm của mình vào cái chủ đề không giới hạn này.

Tính đến thời điểm mình viết bài này, mình đã đi làm được khoảng 1 năm “mấy ngày”. Tuy không nhiều, nhưng cũng đủ để mình nhận ra một số điểm khác nhau cơ bản giữa đi học và đi làm. Mời các bạn cùng theo dõi.

1. Đi học code chạy được là đủ, đi làm code là điều đương nhiên

Đi học bạn chỉ cần tập trung code sao cho chạy, code chạy đồng nghĩa với việc bạn đã tiếp thu được kiến thức trên lớp, vậy là đạt, vậy là được điểm cao. Còn các yếu tố khác như code tối ưu, code dễ bảo trì, code dễ đọc, code sao cho dễ sửa thì là một điều xa xỉ. Thậm chí đi học, code chạy được ra kết quả là 10 điểm, code chạy “gần ra kết quả” cũng được 5 điểm.

Đi làm thì không dễ như thế, code của bạn chạy được là điều đương nhiên. Bởi không ai trả lương cho những dòng code chỉ chạy được “một nửa” cả. Bên cạnh việc code sao cho chạy, thì có một điều quan trọng là code sao để “ANH EM CÒN NHÌN ĐƯỢC MẶT NHAU”. Bạn có thể hiểu câu này theo cả nghĩa đen lẫn nghĩa bóng đều được:

  • Nghĩa đen “Còn nhìn được mặt nhau” tức là mắt của bạn vẫn còn nhìn được, không bị đồng nghiệp đấm cho thâm tím đến mức “không nhìn được”.
  • Nghĩa bóng tức là code của bạn đọc không gây ức chế, tuân theo đúng “chuẩn của team”, sử dụng thuật toán tối ưu, dễ đọc, dễ hiểu, dễ sửa,…

2. Đi học thì sản phẩm là code, đi làm thì sản phẩm… mới là sản phẩm

Nhiều bạn IT thường hiểu lầm rằng “Code chính là sản phẩm”. Nhầm lẫn như vậy là do khi đi học thì code là cái được mang ra để “chấm điểm”, code càng “chạy được” thì điểm càng cao.

Nhưng đi làm, bạn mới chợt nhận ra một điều hiển nhiên rằng “Code chỉ là công cụ”, chỉ là ngôn ngữ mã hóa ý tưởng con người cho máy tính hiểu. Đừng quên mục đích cuối cùng của code là tạo ra sản phẩm giúp giải quyết vẫn đề của người dùng. Nếu bạn có một dự án với source code được tổ chức khoa học, áp dụng chuẩn chỉ các design pattern nhưng không có ai sử dụng thì cũng đâu có ý nghĩa gì nhiều (đương nhiên chỉ áp dụng với các dự án nghiêm túc).

Hãy cùng ghi nhớ câu này nhé:

CODE CHỈ LÀ CÔNG CỤ

3. Đi học thì cân team, đi làm thì team work

Đây là một trong những điều khác biệt nhất. Khi đi học, mỗi khi nhận bài tập làm theo team thì thường là một người cân team, lý do thì mỗi người mỗi khác. Như mình ngày xưa lý do khiến mình ngại team work là:

  • Không có thời gian: Team work đem lại kết quả tốt nhưng lại tốn thời gian, trong khi đi hỏi 10 thằng sinh viên thì 9 thằng kêu bận.
  • Không có nơi họp team: Thư viện trường thì ồn ào, wifi tốc độ thì như rùa bò. Sang phòng nhau thì ngại do “Bát ăn xong chưa rửa; Chăn ngủ dậy không gấp; Chật,…”.

Bạn thấy không, lý do nào cũng “Cự kỳ thuyết phục” như vậy, nên thôi cân team cho nhanh.

Nhưng mà team mình ngày xưa cũng công bằng lắm nha, bài này thằng này cân, thì bài sau thằng khác cân. Cứ như vậy mà xoay vòng.

Nhưng đi làm thì đâu áp dụng vậy được. Khi đi làm, bạn có 8 tiếng mỗi ngày để gặp team với cơ sở vật chất đủ tốt để làm việc thì không có lý do gì để “gánh team” cả. Hơn nữa, “Ba cái đầu thì bằng một Khổng Minh”, team work sẽ đem lại cho bạn cái nhìn khách quan hơn. Có những vấn đề bạn nghĩ rằng mình đã đúng, nghĩ rằng đó là chân lý “đé*” thể nào mà sai được, nhưng khi trình bày cho đồng nghiệp nghe thì bạn lại nhận về một rổ “gạch” (nhưng gạch là để xây dựng, không phải để ném nhau). Hay có những dòng code bạn debug cả tiếng đồng hồ chưa ra, nhưng đồng nghiệp đi qua chỉ liếc mắt cái là đã thấy.

Kể ra như vậy để bạn thấy lợi ích của team work là thế nào. Hơn nữa công việc là vô hạn, trong khi sức người là hữu hạn, không thể lấy cái hữu hạn địch lại cái vô hạn được, vì vậy team work là cách hiệu quả nhất để giải quyết công việc.

4. Đi học thì đi làm thêm, đi làm thì đi học thêm

Đi làm thêm ở đây là làm những công việc như “bồi bàn, bán hàng online, tiếp thị…” những công việc không liên quan tới ngành học, cụ thể là nghành IT. Còn đi học thêm ở đây là đi học lại những kiến thức đã được dạy trong trường.

Những kiến thức mà chúng ta thường phải học lại khi đi làm nhất là các kiến thức giải thuật, cách phân tích yêu cầu khách hàng, cách đặc tả yêu cầu, các mô hình phát triển phần mềm… Nguyên nhân là do thời đi học chúng ta thường không có đủ hoàn cảnh, hoặc chưa đủ trình độ để hiểu:

  • Bạn quan tâm tới giải thuật làm gì trong khi bạn chỉ làm việc với những tập dữ liệu quá nhỏ (dưới 1 triệu).
  • Bạn quan tâm tới yêu cầu khách hàng làm gì trong khi dự án toàn bạn tự nghĩ ra.
  • Tại sao lại phải viết, đọc đặc tả yêu cầu trong khi chính bạn là người nghĩ ra các yêu cầu đó.
  • Tại sao bạn phải quan tâm tới các mô hình phát triển phần mềm, trong khi dự án là của bạn, thành công hay không cũng chẳng ảnh hưởng tới tiền bố mẹ gửi hàng tháng.

Tuy nhiên những điều trên hoàn toàn ngược lại (hoặc phần lớn đều ngược lại) khi chúng ta đi làm:

  • Các sản phẩm hoạt động thực tế thường đặt cao yếu tố tốc độ, nếu bạn không có giải thuật phù hợp, sản phẩm của bạn có thể mất 10s để khởi động.
  • Khi đi làm, yêu cầu là do khách hàng đề ra, nếu không phân tích cẩn thận rất có thể sẽ hiểu lầm ý của họ. Hoặc khách hàng là những người không am hiểu về công nghệ, thường đưa ra những yêu cầu “trên trời”, nếu không sớm nhận ra điều này thì hậu quả sẽ “rất bi thương”.
  • Đặc tả phần mềm giống như một bản vẽ, người code chỉ cần triển khai theo đúng đặc tả, nếu không biết cách đọc, triển khai sai, vậy là sai hết.
  • Khi đi làm, các dự án đều được đầu tư thời gian và tiền bạc rất nghiêm túc, vì vậy ai cũng muốn nó thành công và đạt được kết quả gì đó. Nếu không có mô hình phát triển cụ thể, thì sẽ rất khó trong việc quản lý yêu cầu, quản lý con người, quản lý tiến độ của dự án, khiến dự án thất bại – Kết quả là “xôi hỏng bỏng không”, tiền mất, thời gian mất.

5. Đi học lấy kiến thức, đi làm kiếm tiền

Khi đi học, kiến thức là cái quan trọng nhất. Đôi khi chúng ta chịu bỏ hàng giờ, thậm chí cả ngày để giúp ai đó với mục đích là… thu lại kinh nghiệm, kiến thức. Nhưng khi đi làm thì khác, bạn sẽ bị xoáy vào cuộc sống, khi mà tiền không phải là tất cả nhưng bạn cũng không thể sống thiếu nó. Giữa việc giúp thằng bạn thân fix cái bugs để nhận lại kinh nghiệm kèm một lời khen từ nó, với việc giúp một vị khách fix cái bugs và nhận về $100, bạn sẽ chọn cái nào?

Vấn đề liên quan tới $$$ thì hơi nhạy cảm, mình gợi ra như vậy, bạn tự suy nghĩ để thấy rõ sự khác nhau nhé.

6. Đi học, học kém thì trượt môn. Đi làm, làm kém vẫn có lương tháng

Đây cũng là một trong những điều khác nhau cơ bản giữa học và làm. Đi học, bạn trượt môn thì chắc chắn là học lại, coi như bạn “làm lại từ đầu”, phải đầu tư lại thời gian và công sức. Nhưng khi đi làm, nếu bạn làm kém thì cùng lắm là ăn chửi, mặc dù cuối tháng vẫn có lương – nghĩa là bạn vẫn được trả công cho sự yếu kém, nhưng thường nó là tháng lương cuối cùng của bạn.


Tạm kết

Chắc là vẫn còn nhiều điều cần phải nói lắm đấy. Nhưng thôi, tạm dừng nhiêu đây thôi. Khi mình nghĩ được gì thêm thì mình sẽ chia sẻ tới bạn ở phần 2 nhé. Với 6 điều mình chia sẻ trên, hy vọng sẽ giúp bạn có thêm góc nhìn về việc “học và làm khác gì nhau”.

Chúc bạn thành công, hẹn gặp lại.