5 lỗi thường gặp ở lập trình viên khi đi làm

Bài viết này rút kết từ kinh nghiệm bản thân mình cũng như từ những đồng nghiệp mà mình quan sát được. Hy vọng trên đường đời tấp nập, đầy phong ba bão táp của “dân tech”, các bạn sẽ chậm lại 1 nhịp để xem mình có đang đi vào vết xe đổ của người khác hay không nhé.

1. Muốn “refactor” code

Một nguyên tắc đầu tiên của dân lập trình đó là “nếu code nó đang chạy tốt thì đừng thay đổi chúng”. Mình thường thấy dự án chạy được 1 khoảng thời gian thì anh em có xu hướng muốn cải tiến lại hoặc khi có người rời dự án và người khác vào thay thế thì cũng sẽ muốn refactor ngay.

Đúng là code xấu và hiệu suất chưa tốt thì cần cải tiến là điều tất nhiên. Tuy nhiên, thời điểm nào mới là cần thiết vì có khi góc độ business, người dùng vẫn có thể dụng được. Thế nên thường anh em hay táy máy chân tay refactor theo cảm tính, vừa tốn thời gian, vừa phát sinh bug không cần thiết mà cũng chưa chắc việc cải tiến đó mang lại hiệu quả cho business như mong đợi. Vậy nên chỉ refactor khi thực sự cần thiết hoặc bạn có thời gian cho phép để thực hiện.

2. Tập trung quá nhiều vào tech

Thường anh em làm tech cũng hay mắc phải lỗi này, gọi nôm na đó là anh em thích múa kiểu đao to búa lớn. Phải áp dụng những tech stack thời thượng, những kiến trúc hệ thống mới nhất các kiểu hay nghĩ đến việc hệ thống sẽ phải chịu tải hàng nghìn, hàng triệu người dùng như thế nào,… sẽ rất có thể dẫn tới câu chuyện “dùng dao mổ trâu để giết gà”.

Tất nhiên nghĩ xa cho hệ thống là điều cần thiết nhưng nó cần được thống nhất được với business. Không phát triển được người dùng phần mềm thì dù hệ thống bạn tải được hàng triệu người dùng cũng như không. Bản thân mình cũng đã từng mắc sai lầm như vậy, bỏ công bỏ sức của anh em ra làm kịch liệt nghĩ rằng lên hệ thống sẽ “cool ngầu” nhưng cuối cùng số lượng người dùng sử dụng không đạt như kì vọng. Hay mình từng có 1 team để làm 1 dự án riêng, mọi người cứ thích nghĩ quá xa, lựa chọn công nghệ, rồi rào trước đón sau khi có người dùng các kiểu để rồi sản phẩm chết từ trong trứng nước.

3. Ảo tưởng sức mạnh

Mình thường thấy nhiều anh em làm 1 tech stack nào sẽ có xu hướng “tôn sùng” nó 1 cách thái quá, cho rằng cái mà anh em áp dụng là vô địch thiên hạ, những công nghệ, ngôn ngữ khác là lạc hậu, yếu kém hơn.

Ví dụ bản thân mình làm PHP là chủ yếu, mình vẫn đang làm việc với Go, NodeJS nhưng mình chưa từng chê bai những công nghệ và ngôn ngữ khác. Thế nhưng nhiều người lại kì thị PHP 1 cách khá cực đoan rồi cho rằng PHP sẽ chết các kiểu. Mình cho rằng việc chê bai nó hơi tào lao xíu, bởi mỗi công nghệ, ngôn ngữ tồn tại là có lý do của nó. Khi bạn không thích công nghệ đó không có nghĩa là bạn có quyền bắt người khác phải giống bạn. Trong khi mình đã kiếm rất nhiều tiền từ PHP cũng như hiện tại nó vẫn còn được sử dụng rộng rãi.

Đừng quá ảo tưởng và tập trung vào mặt công nghệ mà quan trọng ở từng giai đoạn, từng thời điểm, nó hỗ trợ thế nào cho việc bạn vận hành hệ thống, mang lại giá trị cho người dùng, cho sản phẩm. Mình nghĩ không nên quá cứng nhắc bản thân mình với 1 công nghệ nào cả mà hãy tập trung vào việc đánh giá tổng quát, so sánh ưu điểm nhược điểm của từng công nghệ, ngôn ngữ sẽ giúp các bạn lựa chọn được cái nào phù hợp để áp dụng cho dự án của mình.

4. Dễ bị cuốn hút bởi dự án mới

Anh em có xu hướng thích lao vào dự án mới để làm hơn vì không phải khổ sở maintain với đống code cũ, có thể sẽ được áp dụng những công nghệ mình thích, làm mọi thứ ngay từ đầu thật thú vị, được làm với những yêu cầu mới đầy hứa hẹn và hấp dẫn hơn. Đại loại là bị cuốn hút bởi những thứ mới mẽ nhưng hãy cố gắng giữ mình chậm lại 1 xíu để xem dự án đó có thực sự phù hợp với mình hay không.

Ngoài ra, mình nghĩ vấn đề cốt lõi nằm ở năng lực của bạn chứ không phải dự án mới hay cũ. Nếu bạn không có khả năng tổ chức hệ thống tốt thì sớm muộn thôi, hệ thống mới cũng sẽ trở nên rối như tơ vò thôi.

5. Nhảy việc quá nhiều

Mình không có thống kê chi tiết nhưng theo quan sát từ bạn bè, mình cho rằng tỉ lệ nhảy việc ở nhân sự lập trình viên rất cao, đặc biệt những anh em còn trẻ thích bay nhảy. Một trong những lý do mình hay nghe đó là công ty mới trả lương cao hơn, nhiều benefit hơn.

Tất nhiên mình không phê phán vì đó là quyền và lựa chọn của các bạn. Thế nhưng cần cân nhắc thật kĩ trước khi nghỉ việc đó là bạn đã làm đủ lâu để hiểu sâu và có kinh nghiệm với việc vận hành hệ thống hay chưa? Hoặc đừng để CV bạn phải nhảy việc quá nhiều sẽ làm cho nhà tuyển dụng họ sẽ phải e dè khi tuyển dụng bạn.

Mình đã từng bị đánh rớt ở vòng phỏng vấn cuối của 1 cty ở Sing vì lý do mình làm nhiều dự án cùng thời điểm và cty cho rằng mình không phải là người làm chính cho những dự án đó.

Một lý do khác nữa là nếu bạn không làm đủ 1 thời lượng nhất định và bạn vẫn chưa lên chức ở 1 vị trí cao hơn thì có khả năng sang cty khác bạn cũng sẽ bắt đầu xây dựng lại từ đầu.

Trên đây là những biểu hiện mình thường thấy khi đi làm, nó có thể đúng hoặc chưa đúng đối với bạn nhưng mình hy vọng nó sẽ giúp ích được cho các bạn khi đứng giữa ngã 3 đường cần đưa ra sự lựa chọn tốt nhất cho mình.

Nếu bạn có bổ sung thêm biểu hiện gì thì comment bên dưới để chúng ta cùng thảo luận nhé ;)

I’m a software engineer. I love programming, writing & sharing. https://about.trandinhthi.com

I’m a software engineer. I love programming, writing & sharing. https://about.trandinhthi.com