Một cái cốc muốn nhận được những giọt nước (tri thức), nó biết nó phải đứng thấp hơn những thứ đổ nước (ấm, phích) cho nó.
Đây là một tư tưởng mình tâm đắc mỗi khi đi làm ở một môi trường mới.
Như tiêu đề bài viết, ở bài này mình sẽ chia sẽ những gì mình phải đối mặt sau khi ra trường qua đó giúp nhiều bạn khác có cái nhìn khách quan hơn đối với những công việc không phải là chuyên môn sở thích, để cuối cùng trở về làm đúng chuyên môn. Đây là bài viết đâu tiên của mình hi vọng được các bạn đón nhận.
Tóm tắt một chút về mình
Mình tóm tắt qua về mình một chút, bản thân mình học CNTT BK ra trường với tấm bằng loại giỏi, học chuyên ngành về Computer Science, những năm tháng đại học thì có sở thích tìm hiểu về AI, Deep. Hiện tại mình đang làm về Java Developer tại công ty của ông chú Viettel. Đến đây thì có thể hiểu mình đã làm trái ngành cũng được.
Tốt nghiệp xong thì tranh thủ thời gian rảnh ngồi học lại ML vì lúc đó phỏng vấn tạch Vin AI Bigdata, do cuối năm cuối mình tập chung làm đồ án tốt nghiệp hơn dần tới khả năng code thuật toán của mình hơi tệ. Mình cũng hơi buồn nhưng điều đó cũng nhanh qua đi vì nếu mình dành nhiều thời gian cho việc ôn thuật toán thì kết quả chắc chắn sẽ khả quan hơn. Cùng lúc đó mình cũng phỏng vấn tạch ở Viettel Cyber Security với vị trí AI Engineer. Cú tạch double sau khi ra trường khiến mình lo lằng rất nhiều.
Mình vẫn tiếp tục ngồi ở nhà ôn lại Machine Learning cũng những áp lực về tài chính, vì khi đó mình phải đi mượn tiền để trang trải cuộc sống, thì đúng một ngày nào đó mình nhận được một cuộc gọi phỏng vấn của Vietttel. Kết quả là mình đã pass sau nhiều lần vượt qua vòng tiếng anh .
1 Những ngày đầu bỡ ngỡ
Bản thân mình luôn giữ vừng lập trường, quan điểm khi làm việc: "Đuổi theo đam mê, thành công sẽ theo đuổi bạn" - mình rút được ra điều này từ bộ phim Three Idiots và "be your best, they can't ignore you".
Sau khi nhận việc mình mới biết là mình làm vị trí Java Developer các bạn à, cám giác khá hụt hãng nhưng mình không còn con đường nào khác lúc này, cần đi làm để còn trả nợ. Thật may mắn vì mình gặp được một người anh hết lòng, nhân đây mình cũng cảm ơn anh Phạm Bình Thiên Triều BK K59 đã giúp đỡ em rất nhiều trong thời gian khó khăn đó.
1.1 Chủ động chuẩn bị cho những thách thức mới
Vậy là từ giây phút này mình đã biết là mình làm trái ngành cmnr rùi, huhu, làm sao đây - mình tự nhủ;,nhưng thầm nghĩ giai đoạn đầu mấy khi mọi chuyện được như ý muốn, mình bắt đầu gần như bằng con số 0.
Trước đó mình học Computer Science nên mình không có code web nhiều, kiến thúc còn đọng lại chỉ là những sự mơ hồ của môn Lập Trình Hướng Đối Tượng đã từ lâu đi vào dĩ vãng, mình lên kế hoạch ôn lại Java - dựa vào slide thầy Trịnh Thành Trung đã dậy hồi năm 3 đại học, mình học lại HTML, CSS trên freecodecamp. Vì được join vào dự án thực tế luôn, nên mình cũng phải đồng thời đọc hiểu code và nắm được một số luồng cơ bản để fixbug.
Đoạn này mình mất tầm 2 tuần để có thể ổn ổn lại được.
1.2 Dự án thực tế đầu tiên
Thời đi học mình thường chủ tâm học nhiều hơn, nên có thể coi đây là một dự án chính thức đầu tiên của mình, nó là một con ERP code bằng Framewok ZK, cổ lỗ sĩ rất nhiều so với các framework đang thịnh hành hiện nay như Angular, Vuejs ... Nhiệm vụ của mình là fixbug cùng anh Triều.
Thời gian fixbug là khoảng thời gian vô cùng quý giá đối với mình, mình tận dụng thời gian này để vừa ôn lại kiến thức vừa vừa fixbug luôn, thời gian đầu khá vất vả, mình thường phải làm quá giờ đến tầm 7h giờ tối để đáp ứng công việc
Về con ZK này thì cũng không có quá nhiều thứ để nói, ngoài việc fixbug ngày qua ngày như cái máy thui :v. Đến tầm này thì mình cũng khá quen với công việc
2 Cơ hội và thách thức mới
Sau giai đoạn 1 khoảng vài tháng mình cảm thấy làm tiếp với con ZK này không còn hấp dẫn mình nữa nhưng đam mê về AI vẫn còn nhưng không phải lúc để trở lại, mình chuyển sang một đơn vị mới vẫn của ông chú Viettel, mình vẫn làm Java Developer nhưng khoảng vài tuần nữa mình sẽ trên con đường trở lại chính mình.
Mình nghĩ đây là phần có thể quan trọng có thể nhiều bạn sẽ rút kinh nghiệm được từ mình. Vì dự án mình làm là bắt đầu gần như từ con số 0 với cả mình và cả dự án luôn.
2.1 Chủ động chuẩn bị
Đây là một dự án ERP, xác định ban đầu là Backend dùng Spring Boot, FrontEnd dùng Angular, Database dùng MariaDB. Hầu như toàn cái mới ngoài trừ logic SQL là mình còn chút ít và tự tin nhất nhưng vẫn cần phải ôn lại chút về procedure, function, trigger ...
Giai đoạn đầu dự án, nói chung chưa có gì áp lực, mình cũng được anh Project Manager tạo điều kiện cho làm quen vì toàn cái mới với mình. Mình mất khoảng 2 tuần để dạo qua một lượt về Spring Boot theo hướng dẫn tại blog loda.me. Dĩ nhiên là học framework thì phải học công cụ đi kèm, các tip, trick ... Với BackEnd thì mình dùng Intelliji khá là chắc kèo là nó ngon thôi rồi luôn, bạn nào làm Java thì nên dùng cái này, với con ZK mình làm với Netbeans, còn này bình thường thì chỉ tạo được 1 instance thôi, muốn tạo thêm thì phải làm thêm 1 vài thao tác nữa ở đây link, nhưng với Intelliji thì không còn là vấn đề.
Về Angular thì con nay tương đối phức tạp, mình cưỡi ngựa xem hoa là phần nhiều, vì chưa thấm được cái logic của nó, bản thân mình cũng không code Javascript bao giờ, nhưng cũng may là ban đầu mình chỉ phải làm BackEnd thôi.
Mình mất khoảng 1 tuần đến 1,5 tuần liền để ôn lại về Database và Angular. À, nhắc lại một chút, việc của mình không chỉ là việc tự học mấy cái trên, kéo theo đó vẫn có mục tiêu ngày, mục tiêu tuần để demo cho PM nữa, mình chỉ tranh thủ học thôi.
2.1 Cuộc chiến chính thức bắt đầu
Sau khi ổn ổn một chút rồi thì việc của mình trong con ERP kia là làm chức năng xuất báo cáo, hiện tại thì mình vẫn đang tiếp tục làm nó nhưng cơ bản là đã xong, còn tùy thuộc vào sự thay đổi, yêu cầu mới thôi. Mình dùng postman để test API, nếu bạn nào chưa biết nha, Navicat là app để mình connect tới Database - đây là app phải trả phí nhưng dùng rất là ưng luôn.
Lúc đầu thì khá stress vì mình chưa có kiến thức nào về phần này, cộng với đồng nghiệp thì không được như anh Triều nên mình xác định luôn từ đầu là phải tự thân vận động thôi, không nhờ cậy được gì. Mình dùng Apache POI và JasperReport cho việc xuất excel, nếu bạn nào đang làm có thể tham khảo, hiện tại thì mình cũng không biết còn cái khác không và cái khác ưu nhược gì với cái này.
Về Aapache POI mình thấy con này có rất nhiều hướng dẫn trên youtube luôn, cơ bản một trang excel nó những gì thì con này đều hỗ trợ hết, còn về con JasperReport thì nó hơi lằng nhằng một chút. Hai con này mục đích trong dự án của mình đều dùng để xuất báo cáo dạng excel (con JasperReport có thể xuất nhiều báo cáo dạng khác nữa).
Về sự khác nhau cơ bản của 2 con POI và JasperReport, JasperReport nó là dạng xuất báo cáo theo template, nghĩa là mình phải thiết kế một cái mẫu report sẵn rồi từ đó đổ dữ liệu vào nó, có hai cách đổ mình đã làm, thứ nhất là mình đổ bằng connection để nó tự kết nối với Database và query ra dữ liệu, thứ hai là mình đỗ dữ liệu trực tiếp luôn, mình lấy dữ liệu thông qua repository.
Tạm kết
Bài việt cũng khá dài rồi, chẳng biết có ai đọc không nữa. Hôm qua mình đau đầu nên ngủ sớm, sáng này dậy lúc 3h không có gì làm, ngồi tranh thủ viết tí, rồi tập thể dục.
Chắc là mình sẽ chia sẻ kình nghiệm làm con ERP này với những thứ mình tự học thông qua một bài việt khác. Hiện tại mình cũng khá happy vì sắp tới mình không làm con này nữa mà sẽ chuyển sang làm một vài dự án liên quan đến Camera AI.
Về mức lương của mình so với bạn bè đồng trang lứa thì nó cũng không cao, khoảng từ 10-20 tr. Hiện tại mình đã trả hết nợ và đã đón mẹ mình lên HN ở, cơm ăn ba bữa, điều hòa mát rưỡi mỗi tối. Điều ước mình đã mong muốn từ lâu.
Cám ơn các bạn đã đọc, đừng nói những lời đắng cay cho mình nha. See you again!
Mình vẫn hay trêu đùa với đồng nghiệp, áp lực tạo lên kim cương nên các bạn nào đang áp lực thì cũng đừng quá bi quan nha, ánh sáng nới cuối đường hầm.