อยากเป็น Data Engineer ต้องรู้ภาษาอะไรบ้าง

Data Engineer คืออาชีพที่กำลังเป็นที่ต้องการมากที่สุดในช่วง 2-3 ปีที่ผ่านมา Google Trends (worldwide) แสดงจำนวนการค้นหาคำนี้เติบโตขึ้นประมาณสองเท่าระหว่างเดือน ม.ค. 2020 – มิ.ย. 2022

อ้างอิงจาก Glassdoor (มิ.ย. 2022) เงินเดือนเฉลี่ยของ data engineer ที่ประเทศอเมริกา ประสบการณ์ 0-1 ปีอยู่ที่ $113,149 USD ต่อปี หรือประมาณ 3.6 ล้านบาท 🤑

ข้อมูลการค้นหา Data Engineer จาก Google Trends Worldwide
ข้อมูลการค้นหา Data Engineer จาก Google Trends Worldwide

แล้ว Data Engineer ทำหน้าที่อะไร และต้องมีทักษะอะไรติดตัวบ้าง? บทความนี้แอดเขียนรีวิว + สรุปเนื้อหาบางส่วนจากหนังสือ Fundamentals of Data Engineering (2022) เขียนโดย Joe Reis และ Matthew Housley มาให้ลองอ่านกัน

ถ้าใครอยากมาสาย data engineering หนังสือเล่มนี้ห้ามพลาดเลยครับ อ่านสนุกมาก เป็น must-read data books ประจำปี 2022 ของแอดแล้ว (เพิ่งวางขายเดือน มิ.ย. ที่ผ่านมา)

Table of Contents

What is Data Engineering?

Data Engineering คืออะไร?

ถ้าเราค้นหา exact phrase ว่า “What is data engineering?” ในเดือน มิ.ย. 2022 จะเจอผลลัพธ์ส่งกลับมามากถึง 162,000 เว็บ ถึงแม้ว่า data engineering จะเป็น hot topic แต่นิยามของมันยังมีความสับสนอยู่พอสมควร

Joe & Matt เขียนคำนิยามของ data engineering ไว้ดังนี้

Data engineering is the development, implementation and maintenance of systems and processes that take raw data and produce high-quality, consistent information that support downstream use cases, such as analytics and machine learning.

Joe Reis and Matthew Housley

มาลองดูเป็นส่วนๆ data engineering คือการออกแบบและพัฒนา ดูแลระบบและขั้นตอนต่างๆในการเปลี่ยนข้อมูลดิบ [raw data] ให้กลายเป็น information เพื่อใช้ต่อในงาน [downstream] analytics และ machine learning

Data engineering คือการผสมผสานกันของหลายๆองค์ความรู้ (domains) ประกอบด้วย data management, data architecture, orchestration, security, DataOps และ software engineering

ส่วน Data Engineer ก็คือตำแหน่งที่ต้องทำงานทั้งหมดในนิยามด้านบน ในหนังสือจะเรียกว่าการจัดการ Data Engineering Lifecycle

พออ่านหนังสือเล่มนี้ คือรู้เลยว่า data engineering ไม่ใช่งานง่ายๆ 555+ (ตามค่าตัวเลย)

หัวข้อถัดไปมาทำความเข้าใจคอนเซ็ปต์เรื่อง data engineering lifecycle ที่เป็นหัวใจสำคัญของงาน data engineering กันครับ

Data Engineering Lifecycle

Data engineering lifecycle คือ framework การทำงาน data engineering แบบครบทุกมิติ (holistic view) โดยแบ่งเป็น 5 stages หลักคือ

  • Generation
  • Storage
  • Ingestion
  • Transformation
  • Serving

เริ่มตั้งแต่ [data] generation >> การจัดเก็บข้อมูลใน storage >> ไปจนถึงการทำ ingestion >> transformation >> และ serving ส่งต่อไปที่ downstream use cases เช่น analytics, machine learning และ business applications

Data engineering lifecycle diagram โดย Joe Reis และ Matthew Housley
Data Engineering Lifecycle (2022) โดย Joe Reis & Matt Housley

ใน diagram จะเห็นว่าด้านล่างของ lifecycle ถูกเสริมด้วยคอนเซ็ปต์เรื่อง Undercurrents ที่ Joe & Matt ให้นิยามว่า “Critical ideas across the entire lifecycle” ประกอบด้วย

  • Security
  • Data Management
  • DataOps
  • Data Architecture
  • Orchestration
  • Software Engineering

Joe & Matt ให้ความเห็นว่างานของ data engineer ถ้าให้เขียนอธิบายแบบเป๊ะๆคือการจัดการ data engineering lifecycle ชื่อตำแหน่งในอนาคตถ้าเปลี่ยนเป็น “Data Lifecycle Engineer” อาจจะเหมาะสมกว่า 😝 (แต่แอดว่าเรียก DE เหมือนเดิมดีแล้ว สั้นกว่า 555+)

Data Maturity

ความซับซ้อนของ data engineering lifecycle จะขึ้นอยู่กับ data maturity ขององค์กรนั้นๆ โดย data maturity แปลสั้นๆว่า ระดับความสามารถขององค์กรในการนำข้อมูลมาใช้ให้เกิดประโยชน์ -> data utilization, capabilities และ integration across business

The level of data engineering complexity within a company depends a great deal on the company’s data maturity

Joe Reis and Matthew Housley

Joe & Matt เสนอ Data Maturity ในหนังสือ แบ่งได้เป็น 3 ระดับ ตั้งแต่องค์กรที่เพิ่งเริ่มทำด้าน data [stage 1] เริ่มขยาย data infrastructure และ architecture [stage 2] ไปจนถึงนำ data มาใช้ได้อย่างมีประสิทธิภาพเป็นองค์กรแบบ data-driven [stage 3]

  • Starting with Data
  • Scaling with Data
  • Leading with Data
Data maturity model
Data Maturity Model ในหนังสือของ Joe & Matt

Joe & Matt บอกว่าพวกเค้าได้เห็น data teams หลายๆที่มาถึงก็จะโดดไปทำ machine learning projects เลยทั้งๆที่ระบบการจัดการข้อมูลต่างๆในองค์กรยังไม่พร้อม (without a solid data foundation/ architecture) อ่านแล้วก็เห็นภาพตัวเองเลยครับ 555+

Skills of Data Engineer

Data Engineering เป็นทักษะที่ค่อนข้างใหม่ ในปัจจุบันยังหา formal training ได้ค่อนข้างยาก แอดหา online bootcamp ที่สอนเรื่องนี้เจอน้อยมากเมื่อเทียบกับเรื่อง general data science ทั่วไป

Joe & Matt บอกว่าจากประสบการณ์ของพวกเขา ได้เห็นหลายคนส่วนใหญ่ที่ pivot career มาเป็น data engineer จะย้ายมาจากงานที่ใกล้เคียงกัน เช่น software engineering, BI/ ETL developer, database administration หรือจาก data science

Skills หลักของ data engineer คนหนึ่งๆจะมีสองเรื่องคือ Data + Technology และหน้าที่ความรับผิดชอบของ data engineer จะแบ่งเป็น business และ technical ดังนี้

Business Responsibilities

  • Communication
  • Understand Business Requirements
  • Understand The Cultural Foundations of Agile, DevOps and DataOps
  • Control Cost
  • Learn Continuously

ตรงนี้แอดมองว่าเป็น business skills ที่ data engineer ต้องทำได้ => ทักษะด้านการสื่อสาร ทำงานกับ internal/ external stakeholders การทำความเข้าใจ requirements เรียนรู้วัฒนธรรม agile + DevOps ควบคุมค่าใช้จ่าย และเรียนรู้เทคโนโลยีใหม่ๆตลอดเวลา

IMDb - Silicon valley series
ขอบคุณภาพจาก series – Silicon Valley

ส่วนความรับผิดชอบด้าน technical คือการจัดการแต่ละ stage ของ lifecycle

Technical Responsibilities

  • Generation
  • Storage
  • Ingestion
  • Transformation
  • Serving

Tip – Joe & Matt ให้คำแนะนำเวลาเลือกเทคโนโลยีมาใช้ ว่าควรเลือก tech stack ที่ช่วยเพิ่มคุณค่าให้กับองค์กรและลูกค้าของเราได้ดีที่สุด ไม่ต้องไปใช้ตามบริษัทใน Silicon Valley ก็ได้ 55+ ยิ่งอ่านยิ่งสนุก วางไม่ลงเลยเล่มนี้ 55+

Programming Languages

ถึงแม้ว่าทุกวันนี้จะมีบริการและเครื่องมือใหม่ๆ off-the-shelf products ที่ช่วยให้งาน data engineering ไม่ยากเหมือนสมัยก่อน แต่ Joe & Matt ยังแนะนำว่า data engineer ทุกคนควรฝึกเขียน code ให้ชำนาญ (เข้าใจ ใช้เป็น best practice)

Joe & Matt แบ่งภาษาสำหรับงาน data engineering ออกเป็นสองกลุ่มคือ primary vs. secondary โดยภาษากลุ่มแรกที่เป็น primary languages ใช้กันทุกวันมีอยู่ 4 ภาษาคือ

  • SQL
  • Python
  • JVM languages เช่น Java/ Scala
  • Bash หรือ PowerShell

เรียนแค่ Python ไม่พอหรอแอด ทำไมต้องเรียน Java/ Scala เพิ่มด้วย?

เพราะว่า big data frameworks ส่วนใหญ่ใช้ Java และ Scala ในการพัฒนาขึ้นมา ตัวอย่างเช่น Apache Spark ที่ใช้กันอย่างแพร่หลายในปัจจุบันก็ถูกพัฒนาขึ้นมาด้วยภาษา Scala

Secondary languages ที่ data engineer ควรเรียนรู้เพิ่มเติม เช่น R, JavaScript, Go, Rust, C/C++, C# และ Julia

Focus on the fundamentals to understand what’s not going to change.

Joe Reis and Matthew Housley

ภาษาที่สองจะขึ้นอยู่กับบริษัทที่เราไปทำงานด้วย (tech stacks) หรือการทำงานกับ domain-specific data tools เช่น Microsoft Azure Ecosystem จะนิยมใช้ C# และ PowerShell เป็นหลัก หรือ JavaScript สำหรับการทำงานบน cloud data warehouse

📑 สำหรับเพื่อนๆที่อยากอ่าน Data Engineering Foundation แบบเต็มๆ ลองอ่านบทความ Data Engineering for Everyone (DataCamp) ที่แอดเขียนสรุปไว้ได้นะครับ

Two Types of Data Engineer

Joe & Matt แบ่ง data engineer ออกเป็น type A และ B ตามเนื้องานที่ทำ

  • Type A: [Abstraction] จัดการ data engineering lifecycle ด้วย off-the-shelf products, managed services, tools
  • Type B: [Build] สร้าง data tools และพัฒนาระบบ data systems ที่สร้างคุณค่าและช่วยเพิ่มความสามารถในการแข่งขันให้กับบริษัท

บริษัทที่เพิ่งเริ่ม stage 1 ของ data maturity ควรเริ่มจากการจ้าง data engineer type A เพื่อเข้ามาวางโครงสร้าง (foundation) ก่อนจะหา type B มาเสริมทีมเพื่อตอบโจทย์อื่นๆต่อไป ส่วนใหญ่ data engineer type B จะอยู่ในบริษัทที่มี data maturity ใน stage 2-3

data engineering is upstream process
Upstream to downstream

ถ้าองค์กรเรายังไม่มี data engineering foundation ที่ดี อย่าคาดหวังว่าจะได้เห็น data science/ analytics use-cases ดีๆเลย

ตัวผู้เขียนทั้ง Joe & Matt เรียกตัวเองว่า “Recovering Data Scientists” ถูกส่งไปทำโปรเจ็ค data science สุดท้ายต้องนั่งทำแต่งาน data engineering เขียน pipeline ทั้งวัน (เห็นภาพอีกแล้ว 555+)

อ่านมาถึงตรงนี้ ทุกคนน่าจะได้เห็นภาพใหญ่ของการทำงานเป็น data engineer และ skills ที่ต้องมี (ทักษะกว้างมาก จะเป็นลม 555+) ถ้ายังไม่รู้จะเริ่มยังไง ลองดูคอร์สเรียนฟรี SQL + Python ของเราได้เลยครับ สนุกมาก ยั๊งงง

Meet The Authors

เพื่อนๆที่สนใจงาน data engineering หนังสือ Fundamentals of Data Engineering เล่มนี้คือตอบโจทย์เลย แอดอ่านแล้วได้ความรู้เยอะมาก ⭐⭐⭐⭐⭐ เต็ม 10 ไม่หัก 555+

ถ้าใครมี O’Reilly subscription อยู่แล้วก็กดเข้าไปอ่านได้เลย หรือถ้าอยากซื้อ e-book แอดแนะนำบน Google Play Books ราคาแค่ 500 กว่าบาท ถูกกว่าซื้อบน Kindle คุ้ม!

Joe Reis & Matthew Housley ผู้เขียนหนังสือ Fundamentals of Data Engineering
Joe & Matt ผู้เขียนหนังสือ Fundamentals of Data Engineering (2022)

ถ้าใครอยากติดตาม Joe Reis และ Matthew Housley เพื่ออ่านอัพเดทใหม่ๆในงานสาย data engineering ตามไป follow ได้เลยที่ LinkedIn ด้านล่างนะครับ

👏 ไว้แอดอ่านจบแล้ว เดี๋ยวมาเขียนรีวิวฉบับเต็มให้อ่านอีกที รอติดตามได้เลยครับทุกคน

One response to “อยากเป็น Data Engineer ต้องรู้ภาษาอะไรบ้าง”

Leave a Reply