Big Data có thật sự “toàn năng” và các cơ hội nghề nghiệp trong tương lai?

451

Về diễn giả

  • Anh Cảnh Trần (Calvin Canh Tran) hiện đang Senior Data Engineer tại Grab Finance Group (Singapore)
  • Anh tốt nghiệp đại học ở Việt Nam và có khoảng thời gian 1 năm làm việc với tư cách là PHP developer.
  • Sau đó sang Singapore để học thạc sĩ về Data Science. Sau khi tốt nghiệp thạc sĩ, anh là việc ở vị trí Data Scientist được khoảng 2.5 năm. Về sau nhận ra bản thân không hợp với công việc đó nên chuyển sang làm Data Engineer. Đến hiện tại anh đã làm việc ở vị trí Data Scientist đã được 4 năm.

Sự chuyển giao giữa các vị trí công việc có gây ra khó khăn nào cho anh không?

Thật sự là có khó khăn, như lúc đầu phỏng vấn làm Data Engineer mình không đạt nhiều lần. Sau khi chuyển qua lĩnh vực này mình phải học thêm rất nhiều và hầu hết là tự học vì 2 lĩnh vực này thật sự rất khác nhau, mình phải mất khá nhiều thời gian để trở nên thuần thục.

Tìm việc làm data analyst lương cao cho bạn

Bộ skillset cơ bản và nâng cao của một Data Engineer gồm những gì?

Bộ skillset cơ bản cần có gồm Python, Scala và Spark. Đây hầu như là các kỹ năng đáp ứng toàn bộ yêu cầu công việc của Data Engineer. Sau đó kỹ năng nâng lên dần sẽ phụ thuộc vào từng công ty như ngân hàng thì sẽ cần học thêm adopt vì họ sẽ sử dụng những hệ thống máy chủ và các aplluter tự build.

Ngược lại, những công ty thiên về startup công nghệ Grab, Gojek thì bắt buộc phải biết trên Cloud. Cloud tốt nhất vẫn là Amazon Web Service vì là sản phẩm lâu đời nhất, đó là những kỹ năng cần thêm cho các Data Engineer ở bậc cao. Còn ở vị trí cấp cao hơn nữa như quản lý thì còn phụ thuộc vào vị trí và công việc ở công ty để có thể biết mình nên học thêm những tools khác và một số kiến thức nữa.

Trong mảng Payment thì cần add-in thêm những kỹ năng gì?

Về cơ bản thì công việc Data Engineer ở ngành nào cũng giống nhau hết, kể cả finance cũng vậy. Còn về nghiệp vụ riêng thì có thể bên lĩnh vực tài chính, data sẽ đòi hỏi tính bảo mật cao hơn rất nhiều nên phải có nhiều hệ thống bảo mật data hơn nên mình nghĩ có lẽ nó cũng không liên quan nhiều đến kỹ năng mình cần có.

Công việc hàng ngày của một Senior Data Engineer khác biệt gì so với Junior Data Engineer?

8 tiếng 1 ngày của Junior sẽ là ngồi code và xem task, còn đối với senior thì chỉ có 6 tiếng là thật sự nhìn vào màn hình, còn lại 2 tiếng là để meeting và present. Junior và Mid-level của Data engineer thường sẽ làm việc theo task cũng như phân công thêm của lead, trong khi đó Senior phải đưa ra các quyết định, ví dụ như khi nhiều stakeholder hay user cùng yêu cầu một vấn đề thì không thể yêu cầu tất cả junior cùng làm việc mà phải xây dựng một tool để hỗ trợ chỉ cần chạy một lần là có thể phục vụ cho toàn bộ các user hoặc stakeholder. Senior sẽ là người đưa ra những quyết định như thế, mình sẽ phải chịu trách nhiệm nhiều hơn, quyết định sai lầm có thể ảnh hưởng rất lớn đến nghiệp vụ và công việc của công ty.

Anh có thể chia sẻ các career path liên quan đến data được không ạ?

Hiện tại có 3 lĩnh vực chính liên quan đến data gồm: Scientist với ML Engineer, Data Engineer và Data Analyst.

  • Data Scientist đa số là những bạn có kiến thức về data science và machine learning để xây dựng mô hình dữ liệu giúp dự đoán và phân loại.
  • Data Engineer thì sẽ xây dựng một hệ thống tổng hợp lưu trữ và trình xuất dữ liệu. Đây chính là những người tạo nền tảng, chuẩn bị dữ liệu sẵn cho Data Scientist và Data Analyst sử dụng dữ liệu đó.
  • Data Analyst chịu trách nhiệm phân tích để tìm hiểu insight, record để báo cáo cho sếp. Đây là 3 hướng chính của data career path.

Người làm về data (cụ thể là data engineer) có phải vững về business mindset hay chỉ cần giỏi về công nghệ, cách làm công nghệ?

Data engineer nếu xét ở 3 cấp độ high level thì junior và mid-level sẽ không cần có business mindset vì đa số là task có sẵn và họ lấy task qua những buổi như retro meeting,… để trình sếp.

Nhưng senior level thì bắt buộc phải biết về business vì khi làm việc với data analyst và các stakeholder của công ty finance hay marketing chẳng hạn, hai bên chắc chắn sẽ có sự khác biệt về mặt chuyên môn. Thế nên mình cần có thêm các kiến thức business để hiểu được yêu cầu này như thế nào, giải quyết và đưa ra các giải pháp cho phù hợp.

Ví dụ họ yêu cầu một data transaction, mình cần phải biết transaction đó họ sử dụng để làm gì và khi inject transaction đó từ nguồn khác vào, mình phải làm thế nào. Sau khi nó vào data warehouse thì cấu trúc, bố cục của nó ra sao để stackholder có thể sử dụng và phụ trách theo phần việc của họ.

Quy trình phỏng vấn của anh khi apply vào Grab như thế nào?

Đầu tiên mình phải làm Hacker Rank ở nhà khoảng 1 tiếng rưỡi, sau khi pass vòng này khoảng 80%, mình vào vòng face to face. Ở vòng face to face đầu tiên mình gặp 2 bạn, bạn đầu tiên sẽ yêu cầu mình giải thuật toán trên bảng trắng, sau đó hỏi về system design.

Sau khi pass vòng này mình mới được gặp trực tiếp data team và được các bạn data engineer phỏng vấn. Vòng này mất khoảng 2 tiếng với các câu hỏi xoay quanh data engineer để nắm được kỹ năng của mình. Cuối cùng mới gặp Hiring Manager để thương lượng lương. Tổng cộng có 4 vòng phỏng vấn để vào Grab.

Anh có kinh nghiệm hay tips gì khi đi phỏng vấn để chia sẻ cùng mọi người không?

Ở bài test đầu tiên, các bạn phải tự chuẩn bị vì bài này sẽ làm ở nhà, chủ yếu là phải luyện tập nhiều hơn để quen với các bài test. Ở vòng face to face các kiến thức đa phần nghiêng về những gì mình đã học ở đại học như cấu trúc dữ liệu và giải thuật, system design. Những kiến thức này đều là kiến thức chuẩn và hầu như là Backend, Frontend hay Data Engineer đều có liên quan, nhưng Data Engineer chỉ cần tập trung nhiều hơn vào phần của mình.

Các bạn Data Engineer đa phần hay mắc lỗi là kể rất nhiều các tools nhưng đối với nhà tuyển dụng, họ chỉ quan tâm đến kiến thức mà ứng viên có. Vì mỗi công ty sẽ có một bộ tool khác nhau và mình bảo đảm là ở Grab, Gojek hay Uber các bộ tool này hoàn toàn khác nhau, tại vì đã phần tool được công ty tự xây dựng chứ không xài opensource. Nên việc bạn kể rất nhiều tool nó không chứng minh được là bạn giỏi mà chỉ chứng minh bạn là user xài được tool đó, nên chủ yếu là các bạn sẽ được hỏi sâu về những kiến thức nền. Chính những kiến thức này sẽ cho biết năng lực của bạn đến đâu và khi vào team bạn có adapt được với team hay không.

Thứ 2 là các viết rất nhiều tool mình sử dụng vào CV, khi nhà tuyển dụng hỏi họ đều dựa vào những gì bạn viết trong CV, có những tool bạn chỉ xài vài lần nên khi được hỏi sẽ không hiểu rõ về nó, như vậy sẽ bị mất điểm trong mắt nhà tuyển dụng. Để chuẩn bị cho phỏng vấn tốt nhất mình nghĩ vẫn là các bạn nên biết về các kiến thức nền, về data engineer và tự tin đi phỏng vấn thì sẽ thành công hơn việc chỉ chăm chú vào tools.

Theo em được biết ở Việt Nam, ngành data vẫn còn khá “non trẻ”. Anh có thể chia sẻ về “gap” (khoảng cách) giữa Việt Nam và thế giới (như ở Singapore) hay không?

Mình nghĩ là có khác nhau vì quá trình mình làm Data Engineer, Data Scientist mình cũng nắm trong tay một số data và mình phát hiện ra là gap lớn nhất nằm ở số lượng data.

Singapore đã bắt đầu lĩnh vực này từ lâu nên có số lượng data lớn, còn ở Việt Nam khi bắt đầu công nghệ 4.0 thì mọi người mới nghĩ đến việc thu thập data nên sẽ chậm hơn về mặt data, mà data càng nhiều mình sẽ càng mạnh hơn về mặt insight.

Do đó mình nghĩ chỉ cần 2 năm nữa thôi là số lượng data của Việt Nam sẽ đủ lớn để ngành data phát triển và các công ty sẽ tập trung vào ngành data nhiều hơn và đương nhiên số lượng tuyển dụng về data cũng tăng lên. Vì mình thấy hầu như các công ty bên Singapore đều có một team về data rồi.

Vậy theo anh cơ hội và thách thức để phát triển ngành data này tại Việt Nam như thế nào?

Mình nghĩ cơ hội sẽ rất nhiều vì tất cả các công ty đều tuyển, nhưng thách thức mình đã nhìn thấy, kể cả các công ty ở Việt Nam tuyển dụng là yêu cầu tuyển dụng khá là cao trong khi ngành data ở Việt Nam chưa được đào tạo bài bản.

Đa số các khóa học mình xem qua trên mạng đều tập trung vào các tools chứ không tập trung vào nền tảng như ở Singapore. Đại học Quốc gia Singapore hiện đã có riêng một ngành đào tạo về data science, kể cả bậc cử nhân cũng có nên khi vào đó bạn sẽ được đào tạo kiến thức nền bài bản hơn do đó mình nghĩ đây vẫn là thách thức lớn nhất, nhiều khi trình độ đầu ra không đáp ứng được yêu cầu tuyển dụng.

Mình thấy đa số các Data Scientist đa số ít nhất là phải có bằng master, tiến sĩ cũng rất nhiều, hầu như sẽ không tuyển các bạn cử nhân mới ra trường. Ở Việt Nam mình thấy cũng có một số bạn làm Data Scientist khi vừa ra trường nên mình nghĩ đó là sự khác nhau giữa 2 nước.

Quan điểm cá nhân mình nghĩ data ở Việt Nam hiện tại chưa cần quá advance, chưa cần các bạn thiên về nghiên cứu nên một cử nhân vẫn có thể xây dựng model, mô hình dữ liệu. Còn bên Singapore họ cần nghiên cứu nhiều hơn nên các bạn vào đây sẽ không cần xây dựng mô hình dữ liệu hoặc xài những công cụ có sẵn.

Hiện tại làm việc với data, anh đang sử dụng ngôn ngữ lập trình, công nghệ nào là chủ yếu? Anh có recommend các bạn “đi tắt đón đầu” một ngôn ngữ nào không?

Hiện tại mình thấy Python vẫn đang được sử dụng nhiều nhất, sau đó đến Scala, tùy theo nhu cầu. Khi viết một file play và nghĩ nó sử dụng một số code đã có sẵn bên user thì mình dùng Python vì có thể chia sẻ với Stakeholder hay user để họ đọc và hiểu. Còn khi tự viết cho cá nhân thì mình dùng Scala vì nó sẽ tối ưu hóa cho spatjob nhiều hơn Python. Mà 2 ngôn ngữ này hiện tại đã là ngôn ngữ cũ rồi nên với các bạn mới vào nghề nên đi từ cơ bản, chậm mà chắc chứ đừng vội vàng dùng tool hay xài UI.

Hiện tại có các khái niệm như data base, data warehouse, data lake, data mart, anh có thể giúp các bạn phân biệt được chứ?

Data base là hệ quản trị cơ sở dữ liệu được dùng cho hệ thống web, mobile lưu trữ thông tin của người dùng, thông tin hệ thống.

Data lake dùng để chứa raw data, dữ liệu thô, được dùng cho việc phân tích.

Sau đó, data warehouse cùng là dữ liệu để báo cáo và phân tích nhưng nó đã qua xử lý. Thông thường dữ liệu từ data base sẽ được đưa vào data lake thành raw data, rồi từ data lake chuyển vào data warehouse sau khi đã xử lý để cho một số nhu cầu nhất định của user.

Còn data mart là một kiểu mô hình thu nhỏ của data warehouse. Ở một số công ty không có data warehouse mà có nhiều data mart khác nhau, họ gom tất cả những data đó lại gọi là data warehouse nên nó chỉ là những khái niệm.

Ví dụ có yêu cầu từ analyst cần một transaction data về vay tiền thì profile của người vay tiền sẽ vào data base để lấy những profile đó bỏ vào data lake thành raw data. Sau khi có data lake rồi mình sẽ làm việc với stakeholder và user để biết họ cần những thông tin gì mình mới process các data bỏ vào data warehouse. Từ datawarehouse sẽ để cho stakeholder và user viết sql lấy ra và sử dụng theo mục đích của họ.

Ngoài những khái niệm nêu trên, liệu còn điều gì anh nhận thấy phần lớn những người không chuyên về lĩnh vực này đang hiểu sai?

Mình bổ sung thêm một chút là thật sự nhiều khi không cần data warehouse. Ví dụ user yêu cầu cần data để làm report thì nó quá đơn giản, không cần process nhiều mình có thể đọc trực tiếp trên data lake và tạo report luôn, đây là thực tế khi làm việc.

Vấn đề thứ 2 có một khái niệm mà mọi người dễ nhầm lẫn là Big Data. Rất nhiều người nghĩ rằng big data toàn năng, chỉ cần có big data rồi mình bỏ data vào thì cái gì cũng chạy được nhưng thực tế big data nó chỉ là một khái niệm nói về dữ liệu quá lớn mà database cũ không chứa hết được nên mới chuyển sang một hệ thống khác lớn hơn và gọi nó là big data thôi. Nó chỉ là nơi chứa dữ liệu và mình vẫn phải thực hiện các công việc khác. Nhiều người cứ nhầm lẫn big data làm được nhiều việc cả quản lý hành chính,… nhưng thật ra nó không làm được gì hết.

Anh có lời khuyên nào cho các bạn Junior Data Engineer không ạ?

Mĩnh vẫn khuyên các bạn trước mắt nên tập trung vào kiến thức nền tảng và tốt nhất thì các bạn nên có những project tự làm để nâng cao kỹ năng của mình lên. Vì nhiều khi đi làm bạn sẽ sử dụng những công cụ có sẵn của công ty thì lúc đấy các bạn chỉ biết thôi chứ không thể hiểu được công việc mình đang làm là cái gì.

Sau đó khi làm việc bạn phải luôn đặt ra cho bản thân một câu hỏi là công việc mình đang làm có giải quyết được gì cho business hay không, như vậy các bạn mới nhanh lên vị trí senior. Vì senior là những người sẽ đưa ra quyết định và hiểu vấn đề của business, nên các bạn đừng chỉ chăm chăm hoàn thành các task mà hãy cố gắng hiểu thêm về nó, như vậy sẽ giúp ích rất nhiều cho con đường công việc sau này của mình.

Xem thêm các việc làm it hấp dẫn tại Topdev.vn