สำหรับท่านที่อยากทำงานด้าน Data Science แล้ว ความรู้หลัก ๆ ที่เราต้องรู้ คือ ความรู้ด้านสถิติ และความรู้ด้านโปรแกรมมิ่ง

ปัจจุบันเรามีหลากหลายภาษาโปรแกรมมิ่งให้เลือกใช้ นอกจาก Python & R ที่เราพูดถึงกันบ่อย ๆ แล้ว แอดมินพบว่ายิ่งเรียนไปก็เจอภาษาที่ต้องใช้มากขึ้นเรื่อย ๆ เลยเอามาสรุปให้ฟังเพื่อเป็นประโยชน์กับคนที่กำลังศึกษา Data Science อยู่ครับ

ลิสต์นี้ คือ ภาษาต่าง ๆ ที่ผมได้ใช้ (หรือโดนบังคับเรียน T_T) ในช่วงปีที่ผ่านมาครับ ความเห็นต่าง ๆ ในนี้มาจากประสบการณ์ที่จับมาจริง ๆ ซึ่งบางภาษาได้ใช้อยู่ไม่กี่เดือนครับ มาดูกันเลยว่ามีอะไรบ้าง

1) Python

python-data-science.jpg

ชื่อภาษา Python หมายถึง งูหลาม นั่นเองครับ

Python เป็นภาษาแรกที่แอดเรียนตอนเริ่มหัด Data Science เลย เพราะตอนนั้นลงเรียนคอร์ส Algorithms and Data Structure ครับ หลังจากนั้นก็ใช้เรื่อยมาในวิชา Data Wrangling

ข้อดีของภาษา Python:

  • ภาษาเข้าใจง่าย เหมาะกับมือใหม่
  • เหมาะสำหรับการทำ Data Science มาก เนื่องจากมี Package ดี ๆ อย่าง Pandas (สำหรับ Data Wrangling), Scikit-learn (สำหรับทำ Machine Learning Model), Tensorflow (สำหรับทำ Deep Learning)
  • ไม่ต่างกับภาษาโปรแกรมมิ่งอื่นเท่าไหร่ ทำให้คนที่มาจากสายโปรแกรมเมอร์จะนิยมใช้ Python กัน
  • นำไปใช้ประโยชน์ได้หลากหลาย สามารถนำไปใช้ทำเว็บไซต์, เขียนบอทสั่งงานต่าง ๆ ฯลฯ เพราะฉะนั้นเอาไปเชื่อมกับระบบอื่น ๆ ได้สบาย

ล่าสุดนี้แอดมินเพิ่งดูวีดิโอเรื่องการทำ Data Science ในบริษัท Stripe ซึ่งเป็นบริษัท Payment Gateway ชื่อดังของต่างประเทศ เค้าก็ใช้ Python ทั้งทีมเลยครับ เพราะนำไปขึ้น Production ใช้งานได้เลย

ส่วนถ้าท่านใดสนใจเรียน Data Science ด้วย Python แนะนำอันนี้เลย >> คอร์สวีดิโอ Intro to Data Science by Udacity

2) R

R เป็นภาษาที่ผมเรียนต่อมาจาก Python เพราะไปเรียนคอร์สชื่อ Modelling for Data Analysis แล้วโค้ดทั้งคอร์สเป็นภาษา R หมดเลย T_T นอกจากนั้นได้เรียนคอร์ส Data Analysis Algorithms ซึ่งเป็นพวก Machine Learning ก็ใช้ R เช่นกันครับ

ข้อดีของภาษา R:

  • ภาษาเข้าใจง่าย เหมาะกับมือใหม่ที่อยากทำ Data Science มากกว่า Python อีก เพราะหลาย ๆ คำสั่งที่เป็นด้านสถิติเค้ามีในตัวแล้ว ไม่ต้องใช้ Package เสริม
  • โปรแกรมที่สำหรับเขียน R คือ RStudio ซึ่งดีมาก ๆ มีหน้าต่างโค้ด, หน้าต่างตัวแปร, Console, หน้าต่างพลอต ครบหมดในหน้าจอเดียว ดีถึงขนาดว่า มีคนพัฒนาโปรแกรมคล้าย RStudio ขึ้นมาสำหรับ Python เลยทีเดียว
  • มี Library เสริมดี ๆ มากมาย ไม่ว่าจะเป็น ggplot2 ที่เป็นสุดยอดของ Library สำหรับ Data Visualization ในปัจจุบัน หรือการทำ Machine Learning Model ต่าง ๆ ก็มี Library พร้อม
  • ปัจจุบัน Microsoft สนับสนุนภาษา R เต็มที่ หลังจากซื้อบริษัทที่เป็นคนพัฒนา R ก็ได้ปล่อยตัว Microsoft R Open ซึ่งเป็น R Version ที่รองรับการประมวลผลแบบเร็วสุด ๆ ด้วย Multithreaded

สำหรับท่านใดที่สนใจเรียน R ทางเราเพิ่งแนะนำ 6 แหล่งเรียน R พื้นฐานฟรี สำหรับมือใหม่ (Video, E-Book อังกฤษ & ไทย) กันไปเมื่ออาทิตย์ก่อนครับ

3) Unix

14124901_273649006353497_8860960516488507400_o.jpg

Unix หมายถึงหน้าจอดำ ๆ ตัวหนังสือเขียว ๆ ที่เราเห็นบ่อย ๆ ในหนังแนวแฮคเกอร์นั่นเองครับ ถึงแม้ว่าปัจจุบันจะมีโปรแกรม GUI สวย ๆ คลิก ๆ เสร็จ ออกมามากมาย ก็ยังมีสิ่งหนึ่งที่โปรแกรมสวย ๆ สู้หน้าจอดำ ๆ มีแต่ตัวหนังสือไม่ได้ นั่นก็คือ “ความเร็ว” ในการจัดการไฟล์ข้อมูล

ทีนี้ปัจจุบันเรามีสิ่งที่เรียกว่า Big Data หรือ ข้อมูลจำนวนมหาศาล ซึ่งข้อมูลเยอะมาก ๆ จนใช้โปรแกรมอะไรเปิดก็ค้างหมด เราก็สามารถใช้ประโยชน์จากความเร็วของ Unix ในการเปิดอ่าน / แก้ไขไฟล์ข้อมูลพวกนี้ได้

ส่วนใครอยากศึกษา Unix ก็ไม่ยากเลยครับ สามารถไปอ่านโพส Facebook ที่ผมเคยเล่าให้ฟัง ลิสต์คำสั่ง Unix ต่าง ๆ ที่จำเป็นสำหรับสาย Data ได้เลย

4) Java / Scala

ปัญหาต่อมาของ Big Data คือ ข้อมูลมันเยอะมาก ๆ จนฐานข้อมูลทั่วไปเก็บไม่ไหว และประมวลผล (Data Processing) ก็ไม่ได้ เลยมีสิ่งที่เรียกว่า Hadoop เกิดขึ้นมาเพื่อรองรับข้อมูลจำนวนมหาศาลครับ ซึ่งสร้างมาจากไอเดีย MapReduce ที่ Google เคยเปิดเผยออกมานั่นเอง

และด้วยความที่ Hadoop สร้างอยู่บน Java เลยทำให้ Data Engineer ต้องใช้ Java ในการพูดคุยกับมัน อย่างไรก็ตาม Java เป็นภาษาที่มีกฏเกณฑ์ในการเขียนมากมาย และบางอย่างที่สามารถเขียนได้ง่าย ๆ ในภาษาอื่นก็ต้องเขียนยืดยาวใน Java

หลังจากนั้นจึงมีการพัฒนาภาษาชื่อ Scala เป็น Functional Programming Language ที่ทำงานร่วมกับ Java ได้อย่างสมบูรณ์ แต่สามารถเขียนได้สั้นกว่า และการทำงาน Efficient กว่า

สาเหตุที่ Scala ถูกนำมาใช้กับ Data Science มากขึ้น (บริษัท Stripe ที่พูดถึงด้านบนว่าใช้ Python เค้าก็ใช้ Scala เช่นกัน) เนื่องจากบริษัทในปัจจุบันนิยมใช้ Apache Spark ที่อยู่บน Hadoop เพื่อประมวลผลข้อมูล และภาษา Scala สามารถทำงานกับ Spark ได้เร็วกว่าการใช้ Python หรือ R เชื่อมกับ Spark อีกทีนั่นเองครับ

ช่วงนี้แอดมินกำลังเริ่มเขียน Scala อยู่ ขอฝึกก่อนเดี๋ยวจะมาเล่าให้ฟังกันอีกทีครับ 🙂

5) SQL

codeschool-sql-course.jpg

คอร์ส Try SQL ของ Code School

SQL เป็นภาษาสำหรับดึงข้อมูลจากฐานข้อมูล (Query Language) จะไม่ได้เป็นภาษาโปรแกรมมิ่งเต็มตัว แต่ในการแก้โจทย์ปัญหานี่บางทีเราก็ต้องใช้การคิดไม่น้อยไปกว่าการเขียนภาษาโปรแกรมมิ่งอื่น ๆ เลยครับ

ผมโชคดีว่าเคยพัฒนาหลังบ้านเว็บไซต์มาก่อน เลยต้องเขียน SQL บ้าง แต่ตอนนั้นใช้วิธีเรียนแบบครูพักลักจำ ดูโค้ดคนอื่น ติดตรงไหนก็เปิดตำราหาไปเรื่อย ทีนี้พอมาเรียนปริญญาโทก็เจอคอร์ส Intro to Database ที่สอน SQL ตั้งแต่พื้นฐานจนถึงระดับสูง เลยเพิ่งรู้ว่าภาษา SQL จริง ๆ มันความสามารถเยอะมาก

ปกติแล้วสายงานที่ใช้ SQL จะเป็นสาย Business Intelligence มากกว่าครับ ส่วนสาย Data Science อย่างเราก็รู้ในระดับที่ DUMP ข้อมูลลงฐานข้อมูลเองได้ เขียนแบบเบื้องต้นดึงข้อมูลมาใช้เองได้ ก็ถือว่าโอเคแล้วครับ (ยกเว้นควบงานหลายตำแหน่ง)

ส่วนถ้าต้องการหัด SQL เอง ปัจจุบันก็มีเว็บไซต์สอนฟรีมากมายครับ ลองเริ่มจาก คอร์ส Try SQL ของ Code School ก็เป็นตัวเลือกที่ดีครับ

6) Hive / Pig

Hive กับ Pig เป็นภาษาสำหรับใช้ดึงข้อมูลจากฐานข้อมูล Hadoop ครับ ไว้ใช้กับ Big Data นั่นเอง ถึงหน้าตาภาษาจะไม่เหมือนกัน แต่จุดประสงค์คล้ายกัน เลยจับมารวมไว้ในข้อเดียวครับ

Hive เป็นภาษาที่แทบจะเหมือนกับ SQL เลยครับ คือเราสามารถเขียน “SELECT * FROM …” ได้เลย แต่จะมีข้อจำกัดบางอย่างถ้าเราต้องการเขียนท่าแปลก ๆ เท่าที่ผมเคยเจอมาก็เช่น การเขียน Subquery จะมีลิมิตการใช้งานอยู่เล็กน้อยครับ

ส่วน Pig จะเหมือนเราเขียนภาษาโปรแกรมมิ่งทั่วไปเลย คือ เขียนเป็นคำสั่งทีละบรรทัด เราก็ค่อย ๆ Load ข้อมูล, Filter, Aggregate ฯลฯ ไปเรื่อย ๆ จนได้ข้อมูลที่เราต้องการออกมา

ถ้าเคยเขียน SQL มาแล้วก็แทบไม่ต้องเรียนรู้ Hive เลยครับ เพราะหน้าตาเหมือนกันแทบ 100% ส่วนคนที่มีพื้นฐานโปรแกรมมิ่งมาแล้ว น่าจะถนัดเขียน Pig มากกว่าครับ

7) JavaScript

javascript-data-science.jpg

ขอขอบคุณภาพประกอบจาก udemy.com

มาที่ภาษาสุดท้ายของเรา นั่นคือ JavaScript ภาษาที่เรียกได้ว่าเปลี่ยนโลกการทำเว็บไซต์ในปัจจุบันแบบหน้ามือเป็นหลังมือ

สำหรับในสาย Data Science แล้ว เราจะใช้ JavaScript เพื่อทำ Data Visualization ด้วย D3.js เป็นหลักครับ ข้อดีของการใช้ D3.js คือ เราจะได้พลอต Interactive ที่เอาไปเปิดที่ไหนก็ได้ ไม่ว่าจะเปิดในคอมพิวเตอร์, แท็บเล็ต, หรือมือถือ ก็รันได้หมด

ปัจจุบันหลายบริษัทใช้ D3.js ในการแสดงข้อมูลบนหน้าเว็บไซต์ หรือไม่ก็ใช้ Library อื่นที่ Based on D3.js อีกที ซึ่งเว็บไซต์ที่ทำ Data Visualization ได้ดีที่สุดเว็บหนึ่ง คือ New York Times แต่ละงานอลังการทั้งนั้น เช่น ทายผลการเลือกตั้งอเมริกา (สาเหตุที่งานเค้าอลังการมาก เพราะคนทำ D3.js ทำงานที่ New York Times ครับ)

ใครสนใจอยากอ่านเพิ่มเติมเรื่อง Data Visualization แนะนำให้อ่าน โพส Facebook ที่แอดมินเคยเขียนเรื่อง Data Vis ได้เลยครับ

นอกจากนี้ยังมีภาษา Data Science อื่น ๆ อีกมั้ย

มีแน่นอนครับ ระหว่างที่เขียนบทความนี้อยู่ผมก็กำลังดูวีดิโอจากงาน PyData ที่อเมริกา ที่เค้ากำลังพูดถึงภาษาใหม่สำหรับการทำ Data Science ชื่อว่า Julia กันอยู่เลยครับ เพราะฉะนั้นในอนาคตคงมีของเล่นใหม่ ๆ มาให้เราเล่นกันอีกแน่นอน

นอกจากนั้นก็มีพวกสินค้าที่เสียเงินต่าง ๆ ซึ่งผมจะไม่ได้ใช้ แต่ก็ได้ยินว่าทำ Data Science ได้เช่นกันครับ เช่น MATLAB, SAS

อยากทำ Data Science เรียนภาษาไหนดีที่สุด

สำหรับท่านที่ยังไม่รู้ว่าเริ่มจากภาษาไหนดี แนะนำให้เลือก Python หรือ R เพราะเป็นภาษาที่เติบโตค่อนข้างมากในด้าน Data Science ครับ และมีเครื่องมือ (Library) ต่าง ๆ ให้ใช้มากมาย สามารถแก้โจทย์ด้าน Data ส่วนใหญ่ได้ตั้งแต่ต้นจนจบเลย

ขอให้ทุกท่านมีความสุขกับการเรียน Data Science ครับผม ถ้าลองแล้วติดตรงไหน มาพูดคุยกันได้ที่ Facebook Page Data Science ชิลชิล เลย 🙂

ถ้าบทความนี้มีประโยชน์ ฝากแชร์ให้ท่านอื่น ๆ ด้วยนะครับ 😀
Share on Facebook674Tweet about this on TwitterShare on Google+0Share on LinkedIn4Email this to someone

คุณอยากอ่านบทความแนวนี้อีกมั้ย ?

ลงทะเบียนรับ GrowthBee Newsletter เพื่ออ่านบทความใหม่ ๆ ด้าน Data Science ก่อนใคร !!

เราสัญญาว่าจะไม่มีการแสปมใด ๆ ทั้งสิ้น และคุณสามารถยกเลิกรับข่าวสารตอนไหนก็ได้