ทักษะและความรับผิดชอบต่างๆของ data engineer
ช่วงนี้ คงจะโพสวนเวียนอยู่กับหนังสือเล่มนี้ จริงๆแล้ว source file แบบฟรีก็มีนะ แต่ไม่ได้เปิดอ่านเลย แต่พอเป็นหนังสือ มันรู้สึกหยิบจับ ขีดเขียนง่ายกว่า
.
จากโพสที่แล้ว สรุปไปในหัวข้อของ maturity ระดับความเชี่ยวชาญของการนำข้อมูลไปใช้ ส่วนโพสนี้ก็จะสรุปต่อเนื่องจาก โพสที่แล้วนี้แหละ อ่านจบไปแล้ว 1 บท ในบทแรก ก็จะมีอยู่ 4 หัวข้อหลัก ซึ่ง maturity ก็เป็น 1 ในหัวข้อของบทแรก
.
สำหรับโพสนี้ จะสรุปในหัวข้อของ ทักษะและความรับผิดชอบต่างๆของ data engineer ในหนังสือกล่าวว่า
.
มีคำถามมากมาย เกี่ยวกับการจะมาเป็น data engineer หลายๆคนอาจจะจะทำงานสายงานอื่นๆ มาแล้วเกิดสนใจที่จะมาเป็น data engineer อาจจะคิดว่าเป็น สายงานที่น่าสนใจ หรือ อาจจะเป็นเพราะตามสถาบันการศึกษาไม่ได้เน้นงานด้านนี้มากนัก ไม่มี learning path ที่ชัดเจน
.
หลังจากที่ได้อ่านหนังสือ Data Engineer Foundation ก็ทำให้เข้าใจมากขึ้นกับสิ่งที่ Data engineer ควรรู้และจำเป็นในการทำงาน
.
หนังสือเล่มนี้ได้แนะนำไว้ว่า สิ่งที่ต้องสร้างให้เป็นนิสัย เลยก็คือ ความเข้าใจในเรื่องของการจัดการข้อมูลและการวิเคราะห์ข้อมูล (data aware) เรื่องของบทบาทหน้าที่ต่างๆ ของผู้ที่เกี่ยวข้องกับงานด้าน Data ภายในองค์กร รวมถึง ทักษะทางเทคนิคและวิธีการแก้ไขปัญหาเชิงวิศวกรรมอีกด้วย
.
นอกจากจะต้องเข้าใจเรื่องที่กล่าวมาข้างต้น แล้ว ในเรื่องของ เทคโนโลยี เครื่องมือที่จะช่วยในการทำงานเพื่อให้เกิด best practice ในการจัดการข้อมูล วิธีการเลือกเครื่องมือ และ ความเข้าใจในเรื่องของ การพัฒนาซอฟต์แวร์, การดูแลระบบ และ โครงสร้างของระบบที่ควบคุมการไหลของข้อมูล ไม่ต่างอะไรกับระบบไฟฟ้า หรือ ระบบท่อน้ำประปา
.
และสิ่งสุดท้าย คือ เก็บข้อมูลความต้องการของเหล่า User ที่ใช้ข้อมูลอยู่บ่อยๆ อย่าง นักวิเคราะห์ข้อมูล Data analyst และ นักวิทยาศาสตร์ข้อมูล Data scientist
.
จะเห็นว่า Data Engineer ไม่ได้ทำหน้าที่เพียงแค่ นั่งหน้าคอม เขียน code เพียงอย่างเดียวเท่านั้น ถ้าจะให้แบ่งบทบาทก็จะแบ่งได้ 2 หน้าที่ที่ต้องรับผิดชอบหลักๆ อยู่ 2 อย่าง คือ ความผิดชอบทางด้าน business และ ความรับผิดชอบทางด้าน Technical
.
ความผิดชอบทางด้าน business (Business Responsibilities)
สิ่งที่ต้องรู้และต้องทำความรับผิดชอบในส่วนนี้ เลยก็คือ
- ต้องมีวิธีการสื่อสาร ให้กับคนทั่วไป หรือ ชาวไอที เข้าใจ ในเรื่องที่เราพยายามจะสื่อสาร
- ต้องรู้วิธีในการ จำกัดขอบเขต และ รวบรวมความต้องการต่างๆ จาก user
- เข้าใจในเรื่องการ การพัฒนาซอฟต์แวร การดูแลระบบ
- เข้าใจในเรื่องของ Project Management ไม่ว่าจะเรื่อง ควบคุมค่าใช้จ่าย ควบคุมเวลา และ ความเสี่ยง
- เรียนรู้อยู่ตลอดเวลา เพราะ สายงานด้านข้อมูล มีการเปลี่ยนแปลงอยู่ตลอดเวลา
โดยสรุปแล้ว ต้องเข้าใจภาพใหญ่ ของธุรกิจตามทั้ง 5 ข้อ
ความรับผิดชอบทางด้าน technical (Technical Responsibilities)
สิ่งที่รู้ในด้านนี้ แน่นอนว่าจะต้อง รู้วิธีการสร้างระบบ รวบถึงวิธีการพัฒนาปรับปรุงให้ดีขึ้นด้วย ตามในรูปภาพปก
จะเห็นว่า flow ตามในรูปภาพ จะถูกแบ่งออกเป็น 2 ส่วน คือส่วนที่ จะต้องในเครื่องมือทางซอฟต์แวร์ในการสร้างขึ้นมา ตั้งแต่ต้นทาง ไปยัง ปลายทาง หรือ เรียกสั้นๆว่า ETL (Extract - Transform - Load) น่าจะคุ้นตากันอยู่บ้าง และในส่วนด้านล่าง อาจจะพอรู้ก็ได้แต่เป็นสิ่งที่ควรจะรู้เอาเป็นพิเศษ เพราะจะทำให้ Data Engineer จะโดดเด่นกว่าคนอื่นๆ เป็นพิเศษ
เครื่องมือทางซอฟต์แวร ที่จะขาดไปไม่ได้เลย ก็คือ การเขียนโปรแกรม เพื่อที่จะสร้าง pipeline ตามภาพขึ้นมาได้ ยังถูกแบ่งออกเป็น ภาษาหลักและภาษารอง ในการทำงานด้านนี้
ภาษาหลักก็ควรจะรู้ในภาษาดังต่อไปนี้
- SQL - เป็นภาษาพื้นฐานที่สุด ของงานด้าน Data เพราะเกี่ยวข้องการ ฐานข้อมูลโดยตรง
- Python - เป็นภาษาขั้นสูง ที่นำมาประยุกต์ใช้งานได้หลายอย่าง ไม่ว่าจะงานทางด้าน data science เขียนเว็บไซต์ และ data tools ต่างๆ
- JVM เช่น Java และ Scala ซึ่งจะมีประสิทธิภาพในเรื่องของ low-level feature กว่าภาษา python
- bash - เป็นภาษาที่ต้องใช้ในการทำงานบน server และ จะใช้บ่อยมากๆในการทำ data pipeline เพราะเกี่ยวข้องกับ server
ภาษารอง ที่ควรจะรู้ ถ้ามีโอกาสและเวลาที่มากพอ อย่างเช่น
- R
- Javascript
- Go
- Rust
- C++
- C#
เพราะว่า เครื่องมือต่างๆ ถูกแบ่งไปตาม องค์กรธุรกิจใหญ่ อย่าง Microsoft ก็จะใช้ C# เป็นต้น
ซึ่งทักษะเหล่านี้ก็จะนำไปใช้ กับ ในโพสถัดไป คือ Data Engineer ทำงานกับใครบ้าง
ส่วนใครอยากอ่านโพสถัดไปต่อ กด Ads เลยยย