รีวิวคอร์ส_SQL Fundamentals - DataCamp

รีวิวคอร์ส SQL Fundamentals ของ DataCamp : ก้าวแรกสู่ Data Science

อยากเริ่มต้นเข้าสู่สาย Data Science เขียนโค้ด SQL ไว้ใช้สำหรับดึงและวิเคราะห์ข้อมูล ขอแนะนำคอร์ส SQL Fundamentals ของ DataCamp เรียนจบ 21 ชั่วโมง 5 คอร์สย่อย ใช้ทำงานจริงได้ทันที!

ทำไมถึงเรียน SQL?

ก่อนอื่นขอเล่าที่มาว่าทำไมซิสซึ่งทำงานสาย campaign marketing ถึงมาเรียนภาษา SQL แล้วนำไปใช้กับงานได้ยังไงบ้าง

ซิสรู้จัก SQL ครั้งแรกตอนทำงานที่ LINE MAN ในทีม Campaign Marketing ที่นั่นเป็น data-driven organization ใช้ข้อมูลตัดสินใจแทบทุกอย่าง การจะสร้างแคมเปญต้องวิเคราะห์ข้อมูลหลายอย่างประกอบกัน เช่น ข้อมูลของ users, ข้อมูลของ restaurants, และข้อมูลของ drivers เป็นต้น

การเลือกเฉพาะข้อมูลที่เราต้องการออกมาจากฐานข้อมูลมหาศาลต้องเขียนโค้ด SQL ในการดึงออกมา

ตัวอย่าง SQL query กับ output

โดยทั่วไปแล้วการจัดการฐานข้อมูลและดึงข้อมูลเป็นหน้าที่ของทีม Data หรือ BI (business intelligence) โดยจะสร้าง data dashboard ไว้ให้ทีมอื่นๆ เข้าไปดูข้อมูลที่ต้องการได้เลย หากต้องการข้อมูลเพิ่มเติมหรือสร้าง dashboard ใหม่สำหรับวิเคราะห์ข้อมูลแคมเปญนั้นๆ ต้องขอให้ทีม Data ช่วยทำให้ เนื่องจากทุกทีมต่างพึ่งพาข้อมูลในการตัดสินใจ ทีม Data ก็มีคนจำกัด ดังนั้นการจะขอข้อมูลใหม่ๆ จึงใช้เวลาพอสมควร

เมื่อเทียบ SQL กับภาษา R และ Python ที่เคยเรียนพื้นฐานมาบ้าง SQL ดูง่ายที่สุด ไม่ซับซ้อนมาก และเข้าใจความหมายได้ง่าย เช่น

SELECT column_name
FROM table_name
ORDER BY ordered_column DESC;

หากรู้สูตรพื้นฐานของ Excel หรือ Google Sheets อยู่แล้วจะเข้าใจได้ไวขึ้นด้วย เพราะหลักการคิดและสูตรคล้ายกัน เช่น

สูตรGoogle SheetsSQL
หาค่าเฉลี่ย (average)average(values)AVG(values)
นับข้อมูล (count)count(values)COUNT(values)
เงื่อนไข (if clause)ifs(
condition1, value1,
condition2, value2,
condition3, value3)
CASE 
WHEN condition1 THEN value1    
WHEN condition2 THEN value2
     ELSE value3 END

ดังนั้นซิสจึงได้เริ่มเรียน SQL ค่ะ ในการทำงาน Marketing ซิสใช้ SQL เฉพาะดึงข้อมูลที่ต้องการเท่านั้น แล้วนำข้อมูลไปทำ data analysis และ data visualization ต่อบน Google Sheets, Power BI และ Tableau (การเลือก BI tools ขึ้นอยู่กับแต่ละบริษัทเลยค่ะ)

จากการสัมภาษณ์งานสาย digital marketing ช่วงนี้ หลายๆ บริษัทถามถึงสกิล SQL ด้วย ถ้าทำได้จะถูกพิจารณาเป็นพิเศษ (ดีนะยังไม่ถึงขั้น Python หรือ R เหลืองานไว้ให้ business analyst, data engineer ทำบ้างเถอะ 😂)



DataCamp Introduction

สำหรับคนที่ไม่มีพื้นฐานการเขียนโค้ดมาก่อนเลย ขอแนะนำ DataCamp อย่างยิ่งค่ะ จุดเด่นที่ชอบมีดังนี้

1. เรียนไปตามลำดับได้ง่ายๆ ด้วย Skill Tracks และ Career Tracks : มือใหม่หัดเขียนโค้ดอาจจะสับสนว่าจะจัดคอร์สเรียนยังไงดี ถ้าอยากจะเป็น data scientist/data engineer/programmer… ควรจะเรียนภาษาอะไรบ้าง? ควรจะรู้อะไรบ้าง? ทาง DataCamp ได้เลือกคอร์สและจัดลำดับมาให้เรียบร้อยค่ะ 

2. ได้ Certification และเก็บสะสมค่า XP : ทุกคอร์สจะได้รับใบ Certification สามารถแชร์ลงบน LinkedIn และแพลตฟอร์มอื่นๆ เพื่อแสดงการเติบโตทางความรู้ของเราได้ ส่วนค่า XP (experience point) จะได้รับทุกครั้งที่เรียนจบแต่ละบท หรือจากการทำแบบฝึกหัด เหมือนกับการเล่นเกม ทำเควส แล้วได้รับค่าประสบการณ์ ถือเป็นกำลังใจและแสดงถึงความก้าวหน้าในการเรียนค่ะ

3. ฝึกการนำไปใช้งานจริงด้วย Real-World Projects : เช่น สร้างแผนภาพเทรนด์ COVID-19 ด้วยภาษา R หรือวิเคราะห์ข้อมูลตัวละคร  Game of Thrones ด้วย Python เป็นต้น

4. มีแอปพลิเคชั่น เรียนบน devices ไหนก็ได้ : สามารถเลือกเรียนบนคอม, มือถือ หรือแท็บเล็ตได้ตามสะดวก

5. มีซับไทยแล้วนะ! : DataCamp เพิ่งเพิ่มซับไทยเข้ามาปี 2022 นี่เอง สงสัยคนไทยเรียนเยอะขึ้นมากแน่ๆ แต่เหมือนเป็น MTL (machine translation) มีทั้งอ่านซับแล้วเข้าใจขึ้นกับอ่านแล้วงงกว่าเดิม 😂 อย่างไรก็ตาม ภาษาอังกฤษก็ฟังง่ายค่ะ ผู้สอนออกเสียงชัด หากฟังไม่ทันก็สามารถปรับความเร็ววิดีโอได้

รีวิวคอร์ส SQL Fundamentals

เนื้อหา

นี่เป็นคอร์สพื้นฐานของ SQL เริ่มต้นจากศูนย์ เหมาะสำหรับผู้เริ่มต้น ไม่มีพื้นฐานมาก่อนเลยก็เรียนได้สบายๆ ค่ะ เนื้อหาเริ่มตั้งแต่แนะนำว่า SQL คืออะไร ไปจนถึงการฝึกเขียนคำสั่งดึงข้อมูล วิเคราะห์ และจัดการฐานข้อมูลเบื้องต้น ประกอบด้วย 5 คอร์สย่อยดังนี้

  1. Introduction to SQL : แนะนำ SQL, คำสั่งพื้นฐานในการดึงข้อมูล, คำนวณ (aggregate functions) , การจัดการฐานข้อมูลเบื้องต้น เช่น  MySQL, SQL Server, และ PostgreSQL
  2. Joining Data in SQL : เชื่อมข้อมูล 2-3 ตารางเข้าด้วยกัน
  3. Intermediate SQL : คำสั่งจัดการข้อมูลที่ซับซ้อนขึ้น เช่น สร้างเงื่อนไขกรองข้อมูล (CASE WHEN),  Subqueries, Nested queries เป็นต้น
  4. PostgreSQL Summary Stats and Window Functions : ranking, range, window functions และ pivot
  5. Functions for Manipulating Data in PostgreSQL : วิธีดูชนิดข้อมูล, คำนวณเวลา, เปลี่ยนรูปแบบข้อมูลตัวอักษร เช่น เชื่อมคำด้วย CONCAT(), เปลี่ยนข้อความเป็นพิมพ์ใหญ่ด้วย UPPER() และวิธีค้นหาข้อมูล (full-text search)

สไตล์การเรียน

รูปแบบการเรียนของ DataCamp คือ เรียนเนื้อหา ▶ ฝึกเขียนโค้ด ▶ เรียนเนื้อหา ▶ ฝึกเขียนโค้ด … วนลูปไปจนจบคอร์สค่ะ

✦ แบบทดสอบก่อน-หลังเรียน : แม้จะไม่บังคับ แต่แนะนำให้ลองทำแบบทดสอบก่อนเรียนค่ะ พอเรียนจบก็จะมีให้ทำแบบทดสอบหลังเรียนอีกรอบ ทำให้เห็นพัฒนาการของเราอย่างชัดเจน

วิดีโอเนื้อหา : ยาว 2-5 นาที สั้น กระชับ เนื้อล้วนๆ จึงไม่น่าเบื่อและแบ่งเวลาเรียนวันละนิดได้

แบบฝึกหัด : ฝึกเขียนโค้ด โจทย์จากสถานการณ์จริง เช่น วิเคราะห์ว่าสินค้าใดขายดีที่สุด, ร้านอาหารขายดีที่สุดในวันไหนของสัปดาห์, คำนวณค่าเฉลี่ยเงินเดือนของแต่ละตำแหน่ง เป็นต้น สามารถเปิดดูคำใบ้ได้หากต้องการ

✦ Daily practice : ทบทวนความรู้ได้ทุกวันด้วย Daily practice แต่ละเซตมีโจทย์ 5 ข้อ มีทั้ง multiple choices และเขียนโค้ด 

Highly Recommended!

เรียนจบปุ๊บใช้ทำงานได้จริงค่ะ อย่างที่เกริ่นไปข้างต้น เป้าหมายการเรียน SQL ของซิสคือใช้ดึงข้อมูลที่ต้องการจาก database ที่มีข้อมูลมหาศาล ซึ่งทีม Data จัดระเบียบฐานข้อมูลไว้อย่างดีแล้ว การดึงข้อมูลออกมาจึงไม่ได้ซับซ้อนมาก ความรู้จากคอร์ส SQL Fundamentals ของ DataCamp จึงครอบคลุมเป้าหมายการใช้งาน

ที่จริงเรียนจบ 2 คอร์สย่อยแรกคือ Introduction to SQL กับ Joining Data in SQL ก็ใช้ทำงานจริงได้แล้ว มีบ้างที่ run code แล้ว error ต้องพึ่งพาทีม Data ช่วยแก้โค้ดให้ แต่โดยรวมแล้วกระบวนการทำงานไวขึ้นมากค่ะ สามารถเลือกหยิบใช้ข้อมูลได้ตามต้องการเพื่อมาทำแคมเปญการตลาดได้อย่างรวดเร็ว ไม่ต้องกรอกฟอร์มต่อคิว

ข้อจำกัด

  • คอร์สนี้จะไม่รวมถึงเรื่องซอฟต์แวร์ของ SQL เช่น MySQL, SQL Server, และ PostgreSQL
  • บางวิดีโอสั้นกระชับเกินไปจนไม่เข้าใจ ต้องไปหาข้อมูลเพิ่มเติมบน Google เอง
  • แบบฝึกหัดเป็นเติมคำในช่องว่างมากกว่าให้เขียนโค้ดเองทั้งหมด ข้อดีคือประหยัดเวลา แต่ในการทำงานจริง ส่วนใหญ่เราต้องเขียนโค้ดเองตั้งแต่ต้น จึงควรฝึกเขียนเองทั้งหมดให้ชิน แนะนำให้ฝึกทำโจทย์เองเพิ่มเติมที่ Hacker Rank ค่ะ

Certificate

หน้าตาใบ Certificate ค่า เนื่องจากเป็น Certificate ที่ได้จากการเรียน จึงอาจไม่มีผลต่อการสมัครงานมากเท่ากับ Certificate ที่ได้จากการสอบ แต่สามารถเก็บเป็น Portfolio แชร์บน LinkedIn แสดงให้เห็นถึงพัฒนาทักษะการเขียนโค้ดของเราได้ค่ะ

Study Note

หากต้องการสมัครงานสาย Data Engineer หรือ Business Analyst แนะนำให้สร้าง Profile และเก็บโค้ดที่ได้ฝึกจาก DataCamp หรือโค้ดที่ฝึกเองไว้บน GitHub เป็น Portfolio ค่ะ

ส่วนตัวซิสใช้ Notion ในการจดโน้ตค่ะ สุดยอดแอปแห่งการจัดการชีวิต ฮ่าๆ ทั้งแพลนนิ่ง, จดโน้ต, to-do list, calendar, แทร็กงาน รวมถึงจดโน้ต coding ได้ 

สามารถแชร์ลิงค์ให้คนอื่นดูได้ ตัวอย่าง study note คอร์ส SQL Fundamentals ของซิสค่ะ แม้ Notion จะไม่ใช่แพลตฟอร์มสากลสำหรับสร้างโปรไฟล์ด้าน coding แต่ถ้าไม่ได้มุ่งจะทำงานสาย Data หรือ Programming เพียวๆ ซิสว่าใช้ Notion จดโน้ตก็สะดวกดีค่ะ เพราะมันเชื่อมกับตารางชีวิตประจำวันได้ 



เคล็ดลับการเรียน Coding ด้วยตัวเอง

1. ไม่จำเป็นต้องเพอร์เฟคและเข้าใจทุกอย่าง : ถ้าเรียนในคอร์สแล้วไม่เข้าใจ ให้หาอ่านข้อมูลเพิ่มเติมใน Google ถ้าอ่านแล้วยังไม่เข้าใจอีก แนะนำให้โน้ตเรื่องที่งงไว้ แล้วไปเรียนบทต่อไปเลยค่ะ บางครั้งหากเราไม่เข้าใจทฤษฎี การฝึกทำโจทย์บ่อยๆ จะทำให้เราเข้าใจคอนเซปต์ไปเอง

อย่างตอนเรียนคอร์สย่อยที่ 3 Intermediate SQL ซึ่งคอร์สยาว 4 ชั่วโมง ซิสใช้เวลาเรียนเป็นเดือน! เพราะมัวแต่พยายามทำความเข้าใจทุกโค้ด พยายามจำให้ได้ทุกอย่าง เสียเวลา 2-3 ชั่วโมงไปกับโจทย์ข้อเดียว (หาข้อมูลแล้วออกทะเล) ทำโจทย์ข้อเดียวก็หมดแรงแล้ว กลายเป็นว่าเรื่องที่เคยงงๆ ในคอร์สที่ 3 พอไปเรียนคอร์สที่ 4 และทำโจทย์บ่อยๆ ก็เข้าใจขึ้นมาเอง

2. วางแผนการเรียนเพื่อความต่อเนื่อง : เพื่อไม่ให้ค่าสมัครต้องสูญเปล่าและต้องกลับมาเริ่มต้นใหม่ทุกครั้ง (ซึ่งซิสผ่านมาแล้ว 🥺) แนะนำให้วางแผนการเรียนก่อนสมัครค่ะ เช่น รายชื่อคอร์สเรียน, จำนวนคอร์ส, วันและเวลาที่เรียน วิธีนี้จะช่วยให้เราเรียนได้อย่างต่อเนื่อง

ปีที่แล้วซิสสมัคร DataCamp แบบรายปี สมัครช่วง Black Friday ได้ราคาถูกที่สุดแล้ว จำราคาที่แน่นอนไม่ได้ แต่อยู่ในช่วง 2,000 – 3,000 บาท คุ้มมาก! แต่การสมัครรายปีก็เป็นดาบสองคมของคนผลัดวันประกันพรุ่งแบบเราเช่นกัน ฮ่าๆ สุดท้ายได้เรียนจริง 4 เดือนค่ะ ถึงจะครอบคลุมความรู้พื้นฐานที่ต้องการแล้ว แต่ก็เสียดายเหมือนกัน

ปีนี้เลยเปลี่ยนมาสมัครรายเดือนแทน ยิ่งเรียบจบไว ยิ่งจ่ายน้อย ใช้ความประหยัดเป็นแรงผลักดัน 😂  รวมถึงจัดตารางเรียนรายเดือนไว้ล่วงหน้า วิธีนี้ช่วยให้เรียนได้อย่างต่อเนื่องได้ค่ะ

3. ร่วมสนุกไปกับคอมมูนิตี้ #100DaysOfCode : แฮชแท็กนี้เป็นแหล่งรวมตัวของคนที่เรียน coding บน Twitter ค่ะ ภาษาโปรแกรมมิ่งอะไรก็ได้ มีทั้ง SQL, R, Python, Java Script, HTML และอีกมากมาย โดยแต่ละคนจะแชร์ progress ในแต่ละวันจนครบ 100 วัน เป็นอีกวิธีที่ที่ช่วยผลักดันให้เราเรียนอย่างต่อเนื่องและเชื่อมต่อกับคนอื่นๆ ที่กำลังเรียน coding เหมือนกันค่ะ