Gợi ý "Bản đồ" lộ trình học Data Engineer trong 2024
Làm Data Engineer không khó nhưng cũng không hề dễ dàng
NỘI DUNG:
I - Chia sẻ về con đường bản thân trải qua để dần trở thành Data Engineer
II - Cần sự đam mê, kiên trì, kiên nhẫn
III - Gợi ý tấm bản đồ trở thành Data Engineer “chân chính”
III.1 - “Bản đồ” hướng dẫn để trở thành một Data Engineer
III.2 - Mô tả và cách đọc “Bản đồ"
Some tips và Kết
OK! LET’S GO
Kỹ sư Dữ liệu - Data Engineer (DE) là làm gì? Mình đọc được trên Linkedin bài viết này, trong đó tác giả có giải thích ý này rất rõ ràng và mang tính phổ quát, mình trích dẫn lại như sau:
“Data engineering is the intersection of security, data management, DataOps, data architecture, orchestration, and software engineering.
A Data Engineer manages the data engineering lifecycle, beginning with getting data from source systems and ending with serving data for use cases, such as analysis or machine learning.”
I - Chia sẻ về con đường bản thân trải qua để dần trở thành Data Engineer (DE)
01: Trải nghiệm đầu tiên là quãng thời gian thực hiện nhiệm vụ xây dựng các luồng dữ liệu thu thập dữ liệu từ hơn 20 end-points về tại một nơi lưu trữ trung tâm. Hệ thống thực thi xử lý dữ liệu mình phải dùng là MS SQL Server - cả 20 end-points và lưu trữ trung tâm đều cùng hệ thống này. Để lập lịch cho các jobs đổ dữ liệu về thì thời điểm này mình mày mò dùng MS SQL Server Agent, các jobs lúc này được đóng gói (SQL) trong các Stored Procedures và trigger bởi SQL Server Agent. Dữ liệu tổng hợp về được transform (Procedured) ghi vào các bảng đích và export ra thành file report khi cần.
Thật ra ở thời gian này mình cũng chưa có thực sự hiểu nhiều về kỹ thuật dữ liệu hay học Data Engineer nói chung và thậm chí còn chưa biết rõ về các loại Data Model như Kimball/Inmon, chỉ đơn giản là tổng hợp dữ liệu về và “cook” cho nó ra báo cáo, dashboard. Thế thôi.02: Trải nghiệm tiếp theo là làm Data Warehouse (DWH) phục vụ Business Intelligence (BI), may mắn là team lúc đó nhỏ nên được trải nghiệm End-to-End ETL từ raw sources cho đến cả phần dashboard/reporting cho một ông lớn ngành F&B. Việc ETL khá đơn giản nhờ vào platform có sẵn (Holistics).
Việc học làm Data Engineer bắt đầu có đầu tư hơn ở thời gian này. Tổ chức kiến trúc DWH cũng chưa có phức tạp - so với các trải nghiệm ở thời gian sau này - nhưng tại thời điểm đó thì hết sức ý nghĩa với mình và thực sự mình đã học được rất nhiều từ đây. Giai đoạn này giúp mình hình thành các khái niệm chuẩn chỉnh hơn về hình mẫu của một DWH là như thế nào, data pipeline trong ETL/ELT nó ra sao, rồi Data Model như nào để phục vụ hiệu quả hệ thống BI. Mình bắt đầu tiếp xúc nhiều hơn với Linux, Python, Cloud Services (Google Cloud Platform), Bigquery, Google Cloud Storage, Postgres, Data Modeling, tìm hiểu về mô hình Kimball/Inmon, học mindset làm dashboard BI hiệu quả hơn, thêm một vài APIs, một chút AWS S3 và một chút chút về Machine Learning (ML) - công ty cho khóa học offline.03: Trải nghiệm tiếp nữa là vận hành các data pipeline được ETL bằng tool ODI (Oracle), rồi được tham gia team phát triển data platform về real-time data pipeline (streaming), được dấn thân học và trực tiếp thực hành làm nhiều với Spark, Kafka, Nifi, dbt, form mẫu chuẩn chỉnh về Data Lake, Lakehouse, bắt đầu học và ứng dụng nhiều hơn về Docker, Kubernetes, làm việc nhiều hơn với các nguồn dữ liệu khác như MySQL, Oracle, MongoDB, Elasticsearch…
Thật sự có quá nhiều trải-nghiệm-cực-kỳ-giá-trị trong giai đoạn này - Giai đoạn mình được tiếp xúc và làm việc với hệ thống xử lý dữ liệu lớn hơn hẳn trước đây rất nhiều (cái mà ở các nơi khác khó có cơ hội để thực hành bởi chi phí hệ thống rất cao) và quan trọng nữa đây là hệ thống real-time data pipeline.
Cũng thật may mắn và biết ơn vì mình đã được join một team mà anh em nào cũng rất giỏi về tech, từ sếp đến lính và luôn sẵn sàng sharing - một không khí cực kỳ mở mang. Mình học từ các anh em rất nhiều, những bạn đồng nghiệp giỏi nhất mà mình từng được làm việc cùng trong mảng data engineering.0x: Và các trải nghiệm tiếp sau này ở các dự án “freelance” và cả “owner” với vai trò là Data Solution Architect và Developer phát triển Data Platform, Data Warehouse, BI…
Tranh thủ quảng cáo chút là bên nào cần Product/Triển khai về Real-time Data Lake/Data Warehouse có thể liên hệ mình nhé.
…TẤT CẢ ĐỀU CHO NHỮNG TRẢI NGHIỆM RẤT ĐẸP… mình tin rằng ở bất kỳ một bến đỗ nào (công ty/dự án) đều luôn có một vài thứ hay ho mà mình sẽ học được kể cả không phải chỉ có về tech mà còn có thể là business domains, management skills và cả kỹ năng nhậu sao cho đúng cũng cần phải học và thực hành.
II - Cần sự đam mê, kiên trì, kiên nhẫn
Thực tế phũ phàng
Mình đã từng có một thời gian ngắn (2 năm) tham gia giảng dạy các khóa về mảng data và các kỹ năng cần thiết liên quan tại một vài trung tâm và nhận thấy không ít anh/chị/bạn học viên kể cả dân IT hoặc tay ngang sau một thời gian tham gia thị trường công việc liên quan đến mảng data như Data Analyst - DA, Data Engineer - DE, Data Scientist - DS thì cảm thấy “chán” vì thực tế không được như kỳ vọng hào nhoáng mà thị trường “bơm thổi” đợt 2019 - 2021 (về tính chất công việc, môi trường, mức thu nhập và điểm sáng trong career path).
Cũng có người đã bỏ nghề, quay lại với chuyên môn cũ hoặc chuyển sang nhóm ngành mới. Nhưng cũng có người tới hiện tại vẫn còn theo đuổi và đang tiến triển tốt công việc trong ngành data (như DA, DE, DS) hoặc ứng dụng các kỹ năng đã học được về mảng data vào nghiệp vụ chuyên môn hàng ngày (Banking, Business Analyst, Finance,…) - họ đang dần hái những quả ngọt nhờ vào sự kiên trì, nỗ lực, luôn tiếp tục nâng cấp kiến thức-kỹ năng.
Con đường theo đuổi để học Data Engineer hay bất kỳ nhóm ngành nghề, công việc chuyên môn gì đi nữa thì đều luôn cần sự đam mê, yêu thích, kiên trì, nỗ lực và kiên nhẫn. Đặc biệt trong mảng công việc liên quan đến tech như mảng Data Engineering thì sẽ luôn cần phải learning và update kiến thức liên tục nếu không thì rất có thể chúng ta sẽ dậm chân tại chỗ, mà dậm chân tại chỗ khi người khác đang đi thì cũng đồng nghĩa là bạn đang dần bị thụt lùi.
III - Gợi ý tấm bản đồ trở thành Data Engineer “chân chính”
III.1 - “Bản đồ” hướng dẫn để trở thành một Data Engineer
Giống như trên con đường tự tu tập (kiến thức, rèn luyện và tâm linh - làm DE cũng có tâm linh thiệt đó nha - đôi khi “Code run but I don’t know why” - thề!), mỗi người sẽ có cho mình một con đường riêng phù hợp với bản thân, bối cảnh môi trường - xã hội nhưng chung quy lại cuối cùng các con đường đều đang hướng tới các đích đến tốt đẹp mà ta mong muốn.

Nên với tấm “Bản đồ” này, để đón nhận cởi mở thì mong các bạn hãy xem đó như là một-trong-những sự đề xuất tham khảo HAY là một-trong-những phương pháp hướng dẫn đường đi HAY là một-trong-những lộ trình trở thành Data Engineer. Nếu thấy hợp lý, phù hợp với bối cảnh bản thân - môi trường (học tập và làm việc) thì có thể chọn áp dụng thử. Các bạn có thể hoàn toàn đi theo một vài tấm “Bản đồ” khác thích hợp với bối cảnh bản thân hơn thì cũng đều tốt. Miễn là ở đó chúng ta lĩnh hội được những nền tảng kiến thức, kỹ năng và quan trọng là được thực hành để phát triển con đường Data Engineer của mình.
III.2 - Mô tả và cách đọc “Bản đồ"
III.2.1 - Mô tả “Bản đồ”
Bản đồ Data Engineer ở trên sẽ có các khối (các khối có thể là ngôn ngữ code, frameworks, platforms, tools,…) mình đánh dấu phân biệt bằng màu sắc như sau:
Màu Xanh-lam: những thứ cơ bản mà newbie nên học.
Màu Hồng: thể hiện các bộ công cụ (tools) có sẵn (tính năng như các phần màu Xanh-lam) của một số nhà cung cấp dịch vụ.
Màu Xanh-lá-cây và màu Vàng: các phần nâng cao chúng ta nên tìm hiểu thêm
Màu Cam: thể hiện các bộ công cụ có sẵn (tính năng như các phần màu-Xanh-lá-cây) của một số nhà cung cấp dịch vụ
Phía trên cùng có các hình tròn trắng: thể hiện các milestones tương ứng mà chúng ta đang đi qua.
Phía bên trái ngoài cùng: thể hiện minh họa các data sources phổ biến mà chúng ta nên thực hành.
OK rứa thôi! Giờ cách đọc nè
III.2.2 - Cách đọc “Bản đồ”
Các bạn đọc từ trái sang phải và theo thứ tự ưu tiên các khối màu sắc như sau:
Màu Xanh-lam —> Màu Hồng —> Màu Xanh-lá-cây —> Màu Cam
Riêng màu Vàng chúng ta có thể linh hoạt chèn vào giữa đoạn nào cũng được…tùy hoàn cảnh, tùy hứng:
Để bắt đầu, chúng ta nên tìm hiểu về các khối màu Xanh-lam trước (tự code scripts), tương ứng với xử lý dữ liệu Batch Processing
HOẶC màu Hồng (nếu bạn/công ty bạn dùng tools có sẵn)
Sau đó một thời gian đã hiểu, thực hành và nắm về Batch Processing thì chúng ta có thể bước thêm trang mới nâng cao hơn về Real-time Processing tương ứng các khối màu Xanh-lá-cây (tự code scripts)
HOẶC Màu Cam (nếu bạn/công ty bạn dùng tools có sẵn)
Chèn vào đâu đó ở các bước trên các khối kiến thức màu Vàng tùy tình hình thực tế mà các bạn đã và đang trải qua.
Khi trình đã lên nhiều, đã tích lũy được kha khá kiến thức nền tảng và kinh nghiệm thực hành - thực chiến data engineering các kiểu, chúng ta có thể nghĩ đến việc tìm hiểu thêm về MLOps (khối ngoài cùng bên phải).
Mình có 1 post về case study về thực hành build hệ thống MLOps cơ bản, các bạn có thể tham khảo bài viết tại đây —> MLOps tối thiểu cho Production
Some tips:
Các kênh tham khảo hiệu quả: Youtube (các anh Ấn Độ thần thánh), Medium, Stackoverflow, reddit.com, Datacamp, Udemy, Linkedin (vừa kiến thức chuyên môn vừa tham khảo thêm cơ hội việc làm :))) ), …
Sẽ là rất may mắn khi gặp được đúng chân nhân làm sư phụ.
Hãy thử nghiệm thực hành với những loại nguồn dữ liệu (data sources) đơn giản, phổ biến trước (Postgres, MySQL, Excel/CSV).
Thử nghiệm viết scripts (Python, Scala,…) dịch chuyển dữ liệu từ một nguồn sang một nguồn khác (ví dụ: kéo dữ liệu 1 table từ MySQL sang lưu ở Postgres).
Thử nghiệm các mode ghi dữ liệu vào nguồn đích (write full, write incremental, write update,…).
Thử nghiệm transform dữ liệu đơn giản.
Thử nghiệm thiết lập tự động hóa các bước ở trên (Cronjob, Orchestration tools).
DE nhưng business mindset vẫn đóng vai trò quan trọng không thể thiếu nếu muốn phát triển career path.
OK, fine. Hi vọng tấm “Bản đồ” trên có thể mang lại hữu ích phần nào đó cho các bạn trẻ đang muốn chọn bước trên hành trình để trở thành Data Engineer. Tất nhiên mình và các bạn đều biết rằng còn có rất nhiều thứ khác (platform, ngôn ngữ, framework, tools,…) đã và đang có trên thị trường tương ứng với từng khối-màu mà mình không thể đưa hết vào để minh họa trên bản đồ - bản chất thì mình cũng chưa thể/không thể kinh qua hết tất thảy phần lớn các frameworks/platforms/tools đang có trên thị trường - mình chọn đưa vào những thứ mà mình từng biết/từng trải/từng đi qua/từng vấp ngã/từng loạng quạng và từng phải tự học đi học lại, tự thực hành nhiều lần.
Và ít nhất mình tin là “Bản đồ” này sẽ giúp các bạn không bị lạc lối giữa “một rừng” thứ mà bản thân không biết/không rõ/không chắc chắn sẽ nên chọn tìm hiểu gì, theo thứ tự như nào theo lộ trình thời gian để không bị “ngợp” và “chán” ở giữa đường.
Rồi một ngày, chúng ta đều sẽ là những DE thực thụ, kiếm sống chân chính và vẫn không quên tiếp tục tìm hiểu các thứ công nghệ mới hay ho liên quan đến chuyên môn của một Data Engineer.
THANK YOU!
Gia Nguyễn
Đọc xong muốn chuyển qua học DE quá a ơi
You might wanna update the source of the image. It's from an awesome book called "Fundamentals of Data Engineering" by Joe Reis and Matthew Housley. As explained in the source linkedin post you did add. Great post though!