Làm việc online từ xa không còn quá xa lạ với mỗi chúng ta, đặc biệt là những người làm trong lĩnh vực công nghê. Ngoài ra, việc có thể chủ động thời gian, thu nhập cao, được sống gần gia đình, không phải bon chen ở các thành phố lớn là những điều mà ai cũng mong muốn. Hơn nữa, ở Việt Nam nếu như có thể làm từ xa cho các công ty đa quốc gia và nhận lương theo mức lương bên đó thì cuộc sống có thể còn tốt hơn là sang nước ngoài làm việc trực tiếp.
![](https://vinalinux.com.vn/wp-content/uploads/2024/01/image-11.png)
Tuy nhiên, làm việc tại nhà cũng đặt ra không ít thách thức và đòi hỏi trình độ cao.
Để đạt được trình độ như vậy ngoài chuyên môn chính, chúng ta cần phải chuẩn bị những gì?
Đã làm lập trình thì kỹ năng về ngôn ngữ lập trình, về loại công nghệ mà chúng ta theo đuổi là những thứ bắt buộc mà ai cũng hiểu là phải có. Tuy nhiên khi làm việc với những team đa quốc gia, các thành viên có thể đến từ khắp nơi trên thế giới. Không thể tránh được là sự chênh lệch về múi giờ, văn hoá và ngôn ngữ. Lúc đó chúng ta sẽ gặp thêm những khó khăn khác so với khi làm việc tại các công ty nội địa.
Trong bài viết này, tôi sẽ đưa ra một số kỹ năng khác ngoài chuyên môn chính mà tôi cảm thấy hữu ích khi làm việc theo mô hình làm từ xa.
- Điều đầu tiên cần lưu ý là kỹ năng tiếng Anh, một yếu tố quan trọng khi làm việc theo mô hình từ xa.
Mặc dù giao tiếp bằng tiếng Anh có thể là một yêu cầu trong nhiều công ty địa phương, thường sẽ có sự hỗ trợ từ Project Manager (PM) hoặc đồng nghiệp người Việt, khi gặp khó khăn có thể trao đổi bằng tiếng Việt đề nhờ họ giúp đỡ. Tuy nhiên, khi làm việc theo mô hình toàn cầu, chúng ta sẽ phải tự lực cánh sinh. Tất cả mọi vấn đề phát sinh trong công việc chúng ta đều phải trao đổi với đồng nghiệp là người nước ngoài để tìm cách giải quyết. Và nếu không thể giao tiếp bằng tiếng anh sẽ gây ra không ít những bất tiện, rào cản trong quá trình làm việc
- Sử dụng Git.
Khi làm việc tại các công ty đa quốc gia, ta thường phải tham gia vào những dự án lớn và phức tạp. 1 sản phẩm có thể có vài chục đến hàng trăm mã nguồn chi nhánh khác nhau. Mã nguồn được rất nhiều nhà phát triển cùng tham gia đóng góp nên nhiều khi khó hình dung ra được mối liên hệ đan xen giữa các luồng phát triển mã nguồn. goài việc giúp chúng ta cam kết phần mã nguồn theo đúng quy định của dự án, Git còn giúp chúng ta đọc hiểu mã code của người khác dễ dàng hơn. Ta có thể biết được dòng code này được thêm vào từ yêu cầu nào, được thêm vào trong hiện trạng mã nguồn ra sao… Khi dự án phức tạp và có nhiều người cùng phát triển, muốn đọc hiểu được thì bắt buộc phải sử dụng Git một cách thành thạo.
- Devops cơ bản.
Trong các dự án phát triển phần mềm theo mô hình quốc tế thì hệ thống cơ sở hạ tầng thường sẽ đặt tập trung 1 chỗ .Mọi người sẽ làm việc từ xa và hội tụ vào đó. Đôi khi lỗi phát sinh có thể không phải do mã nguồn mà là đến từ yếu tố môi trường. Nếu như chúng ta làm việc trong các công ty bản địa, thì chúng ta có thể hỏi đúng người đồng nghiệp có chuyên môn về Devops như sửa lỗi build package, cài đặt môi trường máy chủ. Tuy nhiên ở các team đa quốc gia do tính chuyên môn hoá cao nên đôi lúc không thể biết chính xác ai là người phụ trách việc đó. Hoặc nhiều khi chúng ta cũng không dám khẳng định chắc chắn lỗi đó là của họ hay của chúng ta. Chưa kể việc lệch múi giờ nên khi gửi yêu và đợi họ xử lý cũng mất tương đối thời gian. Do vậy chúng ta cũng nên chủ động trong việc điều tra nguyên nhân, khoanh vùng lỗi. Những kỹ năng cơ bản về devops như sửa lỗi build mã nguồn mở, cài đặt môi trường làm việc, debug những lỗi liên quan đến môi trường, hạ tầng…. Vì vậy kỹ năng là yếu tố tiên quyết để chúng ta chủ động hơn trong công việc.
- Những ngôn ngữ phụ như shell script, makefile, automake, perl, python… cũng nên nắm được, ít nhất là ở mức độ đọc hiểu.
Vì chúng được dùng để build những dự án lớn hoặc có thể trong việc chúng ta phải đọc hiểu mã code của những ngôn ngữ này để làm được phần việc của mình.
- Kỹ năng làm việc nhóm, giao tiếp, xử lý tình huống phát sinh.
Trong công việc thì chắc chắn sẽ phải có vấn đề phát sinh mà chúng ta không thể tự mình giải quyết. Do rào cản về ngôn ngữ, văn hoá và địa lý nên chúng ta cần giỏi trong những kỹ năng như trình bày vấn đề, giao tiếp và xử lý tình huống phát sinh một cách hợp lý. Nhiều người chuyên môn tuy giỏi những những kỹ năng tương tác với những thành viên khác vẫn còn nhiều hạn chế.
Nhìn chung thì khi chuyển sang làm việc theo mô hình quốc tế yêu cầu người lập trình viên phải làm tốt những kỹ năng chuyên môn thuộc dạng phụ trợ, thiên hướng về full stack nhưng có thể vẫn phải nắm sâu được về kĩ năng chính của mình. Để làm việc trong môi trường quốc tế đòi hỏi không ít những kỹ năng, tuy nhiên vẫn phải giỏi về 1 chuyên môn chính nào đó.
Vậy làm sao để bản thân mình trở nên hoàn thiện?
Đầu tiên, mỗi người lập trình viên cần thiết lập tư duy của mình, trong đầu phải suy nghĩ đây là những kỹ năng cần thiết, gần như bắt buộc phải học. Khi đó thì mỗi khi trong công việc có vấn đề liên quan phát sinh, chúng ta sẽ cố gắng hiểu cặn kẽ và học được từ đó, thay vì cố gắng giải quyết cho xong vì nó không phải là kỹ năng quan trọng với ta.
Ngoài ra, phải luôn chủ động, làm việc nhóm tốt và tuân thủ đúng theo quá trình. Phải hoàn thiện bộ 3 kĩ năng chính là chuyên môn, ngoại ngữ và kỹ năng mềm dùng trong công việc. Khó khăn là điều không tránh khỏi nhưng nó góp phần khiến chúng ta ngày một trưởng thành hơn.