NhaLapTrinh.comNhà Lập Trình
Sự nghiệp lập trình

Học sâu một mảng hay biết rộng nhiều thứ trong nghề lập trình?

Nhiều người làm nghề lâu chọn hình chữ T: sâu một mảng để có giá trị rõ ràng, và rộng đủ để hiểu các mảng xung quanh và làm việc với người khác. Giai đoạn đầu nên đi rộng để tìm mảng mình thích, rồi đào sâu, và thỉnh thoảng mở rộng lại khi công nghệ đổi.

🎙️
📑 Nội dung theo chương
  1. 0:37 Hai cái bẫy ở hai đầu
  2. 1:26 Sâu nghĩa là gì?
  3. 2:12 Rộng để làm gì?
  4. 2:57 Nên đi rộng hay đi sâu trước?
  5. 3:42 Công nghệ mới: chạy theo hay đứng xem?
  6. 4:29 Câu hỏi thường gặp
🔊 Bản audio (lồng nhạc nền)

Nhiều người làm nghề lâu năm chọn một hình dạng giống chữ T: sâu một mảng để có giá trị rõ ràng, và rộng vừa đủ để hiểu các mảng xung quanh và làm việc tốt với người khác. Giai đoạn đầu nên đi rộng để tìm ra mảng mình thật sự thích, rồi đào sâu vào đó, và thỉnh thoảng mở rộng lại khi công nghệ thay đổi.

Chào bạn, đây là Nhà Lập Trình. Nghề này rộng mênh mông: giao diện, máy chủ, cơ sở dữ liệu, điện thoại, dữ liệu, hạ tầng, bảo mật, trò chơi, thiết bị nhúng. Công nghệ mới ra liên tục. Câu hỏi học cái gì tiếp theo làm nhiều người mệt mỏi. Tập này mình không bảo bạn học gì, mà kể một cách nghĩ để tự chọn.

Hai cái bẫy ở hai đầu

Cái bẫy thứ nhất là biết rộng mà nông. Học một chút mảng này, một chút mảng kia, chạy theo mọi công nghệ mới. Hồ sơ có danh sách dài, nhưng khi gặp một vấn đề khó thật sự ở bất kỳ mảng nào, lại không đủ sâu để giải quyết. Người như vậy thường thấy mình dễ bị thay thế, vì làm được mọi thứ ở mức ai cũng làm được.

Cái bẫy thứ hai là sâu mà hẹp. Chuyên một công nghệ rất sâu trong nhiều năm, không nhìn ra ngoài. Khi công nghệ đó hết thời, hoặc công ty đổi hướng, người đó phải bắt đầu lại gần như từ đầu. Họ cũng thường khó làm việc với người ở các mảng khác vì không hiểu mối quan tâm của nhau.

Hai cái bẫy này đều có thật, và ai cũng có thể rơi vào một trong hai tuỳ tính cách. Người tò mò dễ rơi vào bẫy thứ nhất. Người thích ổn định dễ rơi vào bẫy thứ hai.

Hình chữ T là cách cân bằng: thanh ngang là hiểu biết rộng, thanh dọc là chuyên môn sâu.

Sâu nghĩa là gì?

Sâu không có nghĩa là thuộc lòng mọi hàm của một thư viện. Sâu nghĩa là hiểu vì sao nó hoạt động như vậy, bên dưới nó là gì, nó hỏng ở đâu và vì sao. Khi mọi người khác bí, bạn biết nhìn vào đâu.

Người sâu về cơ sở dữ liệu không chỉ viết được truy vấn, mà hiểu cơ sở dữ liệu lưu dữ liệu trên đĩa thế nào, chỉ mục hoạt động ra sao, giao dịch che chắn tới đâu. Nhờ vậy họ giải được những vấn đề hiệu năng mà người khác chỉ đoán mò.

Độ sâu thường đến từ việc gặp và giải quyết nhiều vấn đề thật trong một mảng, qua thời gian. Không có đường tắt. Đọc sách giúp, nhưng chỉ khi kết hợp với việc tự tay xử lý những tình huống khó.

Độ sâu cũng có tính bền. Hiểu sâu nguyên lý của một mảng giúp bạn học nhanh công nghệ mới trong cùng mảng đó, vì nguyên lý bên dưới thay đổi chậm hơn nhiều so với công cụ bên trên.

Rộng để làm gì?

Thanh ngang của chữ T không cần sâu, nhưng cần đủ để làm ba việc. Thứ nhất, hiểu mảng của mình nằm ở đâu trong bức tranh lớn. Người làm giao diện hiểu một chút về máy chủ và cơ sở dữ liệu sẽ thiết kế giao diện ít gây gánh nặng cho phía sau.

Thứ hai, nói chuyện được với người ở các mảng khác. Hiểu mối quan tâm của người làm hạ tầng, người làm bảo mật, người làm sản phẩm, để hợp tác thay vì đổ lỗi cho nhau.

Thứ ba, nhận ra khi nào vấn đề không thuộc mảng của mình, và biết hỏi ai. Rất nhiều thời gian bị mất vì một người cố giải quyết ở mảng mình một vấn đề thực ra nằm ở mảng khác.

Hiểu biết rộng cũng bao gồm những thứ ngoài kỹ thuật: hiểu nghiệp vụ của ngành bạn làm, hiểu người dùng, hiểu cách doanh nghiệp kiếm tiền. Nhiều khi đây là phần tạo ra khác biệt lớn nhất.

Nên đi rộng hay đi sâu trước?

Với người mới, mình nghĩ nên đi rộng trước một thời gian, vài năm đầu. Thử nhiều mảng, làm dự án ở nhiều loại, để biết mình thật sự thích gì. Rất nhiều người chọn mảng từ khi còn đi học vì nghe nói có nhiều việc, rồi làm vài năm mới nhận ra không hợp.

Dấu hiệu bạn đã tìm được mảng của mình: bạn thấy mình tự tò mò tìm hiểu sâu hơn mà không ai bắt, bạn thích đọc về nó cả khi không phải làm, những vấn đề khó ở mảng đó làm bạn hứng thú thay vì mệt mỏi.

Khi đã có dấu hiệu đó, hãy đầu tư đào sâu. Nhận những việc khó trong mảng đó, đọc tài liệu gốc, tìm hiểu tầng bên dưới.

Nhưng đừng dừng lại mãi. Cứ vài năm, nhìn lại xung quanh: mảng của mình đang thay đổi thế nào, có mảng lân cận nào đáng mở rộng. Chữ T không cố định, nó có thể mọc thêm một thanh dọc thứ hai theo thời gian.

Công nghệ mới: chạy theo hay đứng xem?

Công nghệ mới ra liên tục, và luôn có tiếng ồn rằng ai không học sẽ bị bỏ lại. Thực tế, phần lớn công nghệ mới không trụ được lâu, và những cái trụ được thì sẽ còn đó khi bạn cần học.

Cách mình thấy hợp lý: biết về công nghệ mới ở mức đủ để hiểu nó giải quyết vấn đề gì, và nó khác cái cũ ở đâu. Không cần học sâu ngay. Khi nó trở nên phổ biến trong mảng của bạn, hoặc khi công việc thật sự cần, lúc đó học sâu.

Ưu tiên đầu tư vào những thứ thay đổi chậm: nguyên lý mạng máy tính, cơ sở dữ liệu, cách viết mã dễ đọc, cách gỡ lỗi, cách làm việc với người. Những thứ này bạn học một lần, dùng cả sự nghiệp.

Người giỏi nhất mình biết không phải là người biết nhiều công nghệ nhất, mà là người học công nghệ mới nhanh nhất khi cần, vì nền tảng của họ đủ vững để mọi thứ mới chỉ là biến thể của cái đã biết.

Câu hỏi thường gặp

Lập trình viên hình chữ T là gì?

Là người có chuyên môn sâu ở một mảng, như thanh dọc của chữ T, và hiểu biết rộng vừa đủ về các mảng xung quanh, như thanh ngang. Mô hình này giúp vừa có giá trị rõ ràng vừa hợp tác tốt.

Người mới nên chọn chuyên sâu mảng nào?

Nên thử nhiều mảng trong vài năm đầu để tìm mảng mình thật sự thích, dựa vào sự tò mò tự nhiên, thay vì chọn chỉ vì nghe nói có nhiều việc.

Có cần học mọi công nghệ mới không?

Không. Nên biết công nghệ mới giải quyết vấn đề gì, và chỉ học sâu khi nó phổ biến trong mảng của bạn hoặc công việc cần. Ưu tiên nền tảng thay đổi chậm.

Chuyên sâu một công nghệ có rủi ro gì?

Nếu công nghệ đó hết thời hoặc công ty đổi hướng, bạn có thể phải bắt đầu lại. Hiểu sâu nguyên lý bên dưới thay vì chỉ công cụ giúp giảm rủi ro này.

Kiến thức nào trong lập trình bền nhất?

Những nguyên lý thay đổi chậm như cấu trúc dữ liệu, mạng máy tính, cơ sở dữ liệu, cách viết mã dễ đọc, cách gỡ lỗi và kỹ năng làm việc với người.

Cần tư vấn cụ thể cho trường hợp của bạn?

Chúng tôi sẽ liên hệ trong vòng 24 giờ.

Đăng ký tư vấn ngay

Bài viết liên quan

Bạn cần hỗ trợ thêm?

Để lại thông tin, chúng tôi sẽ liên hệ trong 24 giờ.