Lần đầu đi làm
Với một sinh viên vừa mới ra trường như mình, trong đầu lúc nào cũng nghĩ rằng mình sắp tới mình sẽ được làm việc trong các siêu dự án, có độ phức tạp và tầm cỡ! Um đó là mình của 2 năm trước thôi.
Sau tầm 6 tháng vừa học ở trường vừa ôn luyện ở nhà bộ môn ReactJS thần thánh, mình đã vượt qua phòng phỏng vấn cực kỳ căng thẳng kéo dài gần 3 tiếng đồng hồ. Bắt đầu buổi phỏng vấn là các câu hỏi về thuật toán, ÔI MẸ ƠI, …. à không phải vì nó khó đâu các bạn, vì đề được viết bằng tiếng anh.
Ôi đệt, cứ ngỡ rằng sau 3 tháng ôn luyện trên HackerRank thì mình có thể đọc hiểu bất kỳ đề nào chứ! Thế là phải hạ mình van xin anh phỏng vấn dịch giùm, may sao anh chịu và mình bắt đầu làm bài. Vì nó cũng khá dễ nên mình dễ dàng vượt qua, đến vòng phỏng vấn ReactJS mình bị hỏi rất nhiều về kiến thức JavaScript, React State, Props, PureFunction, Redux, bla bla. Có lúc cảm giác cổ đơ đơ không thể cử động được, lời nói ấp a, ấp úng, nhưng cũng cố để nói hết câu trả lời.
Kết thúc buổi phỏng vấn mình cũng trả lời được đâu đó tầm 80%, đi về và đợi kết quả. Một buổi chiều đang ngồi cafe chém gió với thằng bạn trong trường BK thì nhận được cuộc điện thoại thông báo là mình đã đậu phỏng vấn. Mình không chừng chờ nhiều và đáp rằng mai em có thể đi làm luôn.
Ngày đầu tiên đi làm, mình được tham gia vào dự án của ACB, lúc đấy team có 2 anh em làm web, mình và một anh nữa cũng học tự nhiên. Hai anh em làm có vẽ rất ăn ý, mỗi ngày anh kia đều truyền cho mình một ít võ công, lâu lâu sếp dẫn đi nhậu các kiểu.
Buồn thay sau tầm 1 tháng làm chung anh ấy đã quyết định dứt áo ra đi để lại đàn em bơ vơ. Khoảng thời gian ấy mình phải OT khá nhiều vì dự án sắp triển khai mà lại làm có một mình, hằng ngày đều có 1 anh bên ACB rất dễ thương mỗi sáng mua cho mình 1 ly cafe và nhờ mình làm thế này, thế kia đến tối trời lại mời mình đi ăn =)).
Sau một tháng làm 1 mình và chịu nhiều uất ức, mình cảm thấy dự án thì cũng không có gì khó, giống như mình code đồ án ở trường thôi. Team thì thiếu người có kinh nghiệm nên nếu ở đây thì cũng sẽ không làm được gì cao siêu. Mình quyết định chuyển sang một công ty lớn hơn và được vào một team làm dự án khá khủng.
Dự án maintain
Nói dự án maintain cũng không đúng lắm, thật ra nó đang làm các tính năng mới tuy nhiên source base đã có sẵn nên mình chỉ việc lắp ghép vào là xong task thôi. Thời gian đầu mình học hỏi rất nhiều thứ từ dự án từ Stream API, Lambda expression, Spring boot, Grpc etc. Vì là một dự án rất lớn, nên mã nguồn được xây phải nói là rất chuẩn mực, các mẫu thiết kế, cách tổ chức mã nguồn, các thư viện thứ ba etc, tất cả chúng đều được phân tích và chọn lọc khá kỹ trước khi đưa vào dự án.
Thế nhưng càng về sau thì công việc cứ lặp đi lặp lại, đa phần nặng về business nên skills về phân tích yêu cầu của mình cũng tăng lên khá nhiều. Nhưng một điều đáng tiếc là mình thiên về hướng phát triển về technical nhiều hơn nên là mình quyết định tìm một công việc mới phù hợp hơn. Trước lúc đi thì mình gần như là am hiểu rất kỹ dự án hiện tại và nó sẽ là bàn đạp để mình làm tiếp các dự án tiếp theo.
Haha, thanh niên ảo tưởng. Bắt đầu công việc mới cũng là Spring Boot, ReactJS, team mình lúc này vẫn đang trong giai đoạn phát triển nên mã nguồn cũng chẳng có gì phức tạp. Được nước, mình suggest và apply những technical mình đã học được từ dự án cũ. Khi được sếp lớn đồng ý thì mình bắt tay vào làm. Ôi mẹ ơi, lúc trước người ta đã cấu hình các kiểu hết rồi, mình chỉ việc sử dụng nên tưởng chừng như nó đơn giản, đến khi làm lại thì nào là xung đột thư viện, cấu hình không ăn bla bla. Tất nhiên cuối cùng mình cũng hoàn thành nhưng với khá nhiều vết đâm.
Giờ đây với một team RnD đang trong giai đoạn tìm hiểu và phát triển sản phẩm, mình có khá nhiều công việc để làm, có cơ hội thực hành những technical đã sử dụng ở dự án cũ mà mình chỉ được làm ở bề nỗi. Mặc dù biết là sản phẩm đang trong quá trình phát triển nên không thể so bì về với dự án cũ đã phát triển từ rất lâu nhưng bản thân vẫn cảm thấy có chút gì đó hụt hẫng và luôn đặt ra một câu hỏi khi nào dự án của mình mới trở nên phức tạp và chuyên nghiệp như thế đây.
Làm product hay dự án maintain?
Đối với con đường phát triển sự nghiệp từ đầu đến hiện tại của mình cảm thấy rất happy. Trong 2 năm đầu ra trường tham gia vào dự án maintain có quy mô lớn, áp dụng nhiều công nghệ, mình đã thu về rất nhiều các keyword, các mẫu thiết kế, giải pháp và quy trình làm việc. So với khi ra trường công lực mình đã tăng gấp 3 lần đấy. Đến hiện tại khi tham gia vào dự án đang trong quá trình phát triển thì mình lại có cơ hội practice, và research nhiều hơn. Nhưng các bạn biết đấy, sản phẩm đang trong giai đoạn phát triển sẽ có rất nhiều vấn đề cần giải quyết. Các dev cần có kiến thức căn bản tốt và khả năng tự research.
Theo quan điểm cá nhân của mình, trong giai đoạn đầu ra trường nên làm ở những dự án lớn, những dự án maintain để có thể tiếp cận một lượng lớn công nghệ, các triển khai dự án, tổ chức mã nguồn etc. Đến khi cảm thấy đủ thì nên kiếm dự án product đang bắt đầu xây dựng để có nhiều cơ hội thực hành và giải quyết nhiều vấn đề của hệ thống hơn. Còn sau đó nữa thì mình không biết nhé, mới đi làm có 2 năm thôi hà.