[Tâm sự] Những sai lầm và thất bại mà mình từng nếm trải trong 5 năm làm việc – Phần 2

Series gồm 3 phần:

 

Ở phần trước, mình đã kể về những lỗi lầm mình phạm phải khi còn là junior developer ở FPT Software và Aswig Solution.

Trong phần này, mình sẽ kể chuyện về thất bại và sai lầm của mình thời mới đi du học, đi làm bên UK, qua Trung Quốc và đi xin việc nhé!

Vài lời về chuyện du học

Đợt tìm trường du học, mình cũng chịu khó đi tìm hiểu xem đi nước nào thì được. Sing hay Anh hay Mĩ, Úc.

  • Sing thì gần Việt Nam quá
  • Mĩ thì nghe nói là xin Visa khó
  • Úc thì … chê FPT trường mình là trường tư nên các trường ĐH top của họ không nhận bằng.

Vốn có thằng bạn đã từng du học bên UK, sau khi tìm hiểu chương trình học thấy cũng ok, lại may mắn lụm được học bổng hơn 600 củ nên mình quyết định qua đó học luôn!

Tính ra thì, cái bằng Master cũng không giúp lương mình tăng bao nhiêu. Chẳng qua quá trình sống, làm việc ở nước ngoài khiến mình trải nghiệm nhiều hơn, tự lập và chín chắn hơn thôi.

Quá trình học tập tại nước ngoài khiến mình chững chạc hơn nhiều

Lancaster – Lần đầu Code Dạo ở nước ngoài

Qua học ở Lancaster, mình cũng được may mắn vào làm Full Stack Developer cho phòng IT của trường. Chuyện mình phỏng vấn ra sao, làm việc thế nào các bạn xem lại 2 bài trước nhé:

Sai lầm nhẹ, tự tiện … sửa database staging

Do là full-stack nên mình phải làm cả front-end (ứng dụng iLancaster của trường) và back-end (API của ứng dụng) đó.

Đúng ra, mỗi developer sẽ có một database riêng. Tuy nhiên, do các bác IT setup nên cả team dùng chung 1 database staging. Trong quá trình viết API mới, mình cần thêm 1 vài bảng trong database.

Vốn mình tưởng là developer chỉ có quyền đọc/ghi chứ không có quyền modify database này, mình thử kết nối và chạy script migration để thêm bảng. Ai ngờ đâu, script của mình chạy được ok. Table mới được thêm vào, mình lại tiếp tục làm việc.

 

Lát sau, một bạn dev khác báo là code không chạy được vì database changed. Thế là bác Brian – sếp mình, hỏi team: Có ai sửa database không?

Mình thật thà bảo là: Ủa tao sửa database nè. Tao chạy thử script migation xem tao có permission không? Script chạy được nên tao nghĩ là developer được quyền sửa database mà??

Bác Brian chỉ biết … cười trừ, bảo là chỉ có team leader mới được chạy script migration thôi, để tao set lại quyền cho account dev vậy! Cũng may là không có thiệt hại gì to tát.

Bài học rút ra là: Nếu chưa rõ về qui trình, trước khi bạn thay đổi một thứ gì quan trọng trong dự án (database, architecture), nhớ hỏi rõ qui trình nhé!

Nếu chưa rõ về qui trình, trước khi sửa đổi gì quan trọng nhớ thông báo với team trước nhé!

 

Code trước khi confirm requirement, công sức một tuần … đổ sông đổ biển

Học ở UK được 1 năm, theo chương trình, mình có qua Quảng Châu – Trung Quốc để học và thực tập nửa năm, sau đó quay lại UK hoàn thành nốt khóa học. Chuyện cuộc sống, buồn vui ở Trung Quốc thì mình đã có chia sẻ trong series Chuyện Bên Khựa rồi nhé!

Qua bên này, mình vẫn tiếp tục làm việc qua mạng với team ở UK. Mạng thì sida chặn hết Google, Gmail lẫn Skype. Dùng VPN nên tốc độ khá … rùa bò, mình chỉ liên hệ được với team qua email trường là chính.

Đợt đó, mình vẫn đang làm app Digital Tour, ứng dụng giới thiệu các địa điểm tham quan du lịch ở Lancaster. Sếp ra requirement hiển thị và quản lý các event ở gần các địa điểm đó, sử dụng API của Event Brite.

Trao đổi thảo luận qua email khá chậm chạp, được nửa chừng thì … sếp đi nghỉ mất 1 tuần. Chờ cũng lâu nên mình … cắm đầu và code, thêm chức năng quản lý event cho admin, để admin lấy event từ Event Brite, assign vào các địa điểm đó.

Tới khi sếp đi về, demo cho xếp xem thì mình mới ngớ ra là đã… hiểu sai ý sếp. Nếu làm vậy thì mỗi tuần, admin sẽ phải quản lý các event nên rất tốn công, admin mà quên thì event sẽ không được cập nhật luôn.

Sau một hồi thảo luận, mình đổi hướng tiếp cận khác. Khi người dùng ghé thăm một địa điểm, hệ thống sẽ lấy vị trí GPS, gọi API của Event Brite tìm các event gần đó và hiển thị. Tiện cho người dùng, tiện cho admin, lại đỡ tốn công code.

Công sức code một tuần coi như đổ sông đổ bể cả…

Bài học rút ra: Hãy làm rõ requirement trước khi code. Nếu không, bạn sẽ tốn thời gian để làm ra một thứ không đúng ý khách hàng, chả ai muốn dùng. Mọi công sức của bạn sẽ đổ sông đổ bể!

Chuyện tốt nghiệp và tìm việc

Sau khi tốt nghiệp bằng Master, mình trải qua nguyên một quá trình phỏng vấn dài 20 ngày, qua 5 quốc gia, 6 công ty với tổng cộng hơn 10 vòng PV. Các bạn có thể tìm đọc trong Series Code Dạo Trời Tây nhé.

Đợt phỏng vấn này cũng để lại cho mình khá nhiều kinh nghiệm bi thương như:

  • Bị hàng chục công ty từ chối vì không phù hợp (Chắc do không chịu chăm chút CV và cover letter mà cứ gửi đại trà)
  • Rớt phỏng vấn vì … chưa quen viết unit test, viết một hồi code trở nên rối (Đợt phỏng vấn Canva của Úc).

Sau vài kì phỏng vấn gian khổ, cuối cùng mình trở thành Senior Front-end Engineer của Algomerchant (cày cuốc bao lâu giờ mới thành senior), một công ty startup của Singapore.

Tấm hình chụp vội thời mình ghé Đức phỏng vấn. Chụp bâng quơ mà vẫn đẹp trai ngời ngời các bạn ạ!

Tạm kết

Phần 2 này cũng khá là bình lặng nhẹ nhàng. Các bạn chịu khó đón xem phần cuối, về những sai lầm trong công việc hiện tại của mình nhé!

Đây mới là phần bi thương, hấp dẫn và gay cấn nhất series đấy!

Advertisements

5 thoughts on “[Tâm sự] Những sai lầm và thất bại mà mình từng nếm trải trong 5 năm làm việc – Phần 2”

  1. Em khi làm dự án đầu tay cũng bị mắc những sai lầm này xD Nghe qua requirements của khách hàng, nhưng không hỏi và xác nhận kỹ lại, thành ra lúc bàn giao sản phẩm chạy thử, phát sinh ra thêm 1 đống thứ khách yêu cầu mà chưa có. Nhưng âu cũng là kinh nghiệm cả, vậy mới phát triển được chứ anh nhỉ.

    Like

  2. Khi anh Hoàng xin học bổng thạc sĩ trường Lancaster thì có yêu cầu điểm thời phổ thông phải tốt không anh? Hồi phổ thông em học tệ quá nên điểm xấu quắc à 😀 giờ lên đại học em mới quyết tâm “làm lại cuộc đời” không biết có gỡ gạc được gì không.

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s