คำถามสัมภาษณ์งานด้านเทคโนโลยีโฆษณา (AdTech) ที่ใช้ SQL และ Python: คู่มือฉบับสมบูรณ์

การปรับปรุงครั้งล่าสุด: 8 2026 เมษายน
  • การสัมภาษณ์ทางเทคนิคในอุตสาหกรรมเทคโนโลยีโฆษณาจะเน้นทักษะ SQL ระดับกลาง, Python พร้อมไลบรารี pandas และทักษะการวิเคราะห์
  • จำเป็นอย่างยิ่งที่จะต้องเชี่ยวชาญคำสั่ง JOIN, GROUP BY, ซับควอรี และฟังก์ชัน Window ทั้งใน SQL และคำสั่งที่เทียบเท่าใน pandas
  • การเข้าใจตัวชี้วัดการประเมินโมเดล เช่น ความแม่นยำ, F1 หรือ ROC-AUC จะเพิ่มคุณค่าให้กับบทบาทด้านการวิเคราะห์ขั้นสูง
  • การเตรียมตัวที่มีประสิทธิภาพนั้นต้องผสมผสานทฤษฎี การฝึกปฏิบัติจริงหลายๆ ครั้ง และการเรียนรู้ที่จะอธิบายเหตุผลออกมาดังๆ

คำถามสัมภาษณ์งานด้านเทคโนโลยีโฆษณาเกี่ยวกับ SQL และ Python

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

ข่าวดีก็คือ การสัมภาษณ์ทางเทคนิคไม่ใช่เรื่องมหัศจรรย์: โดยทั่วไปแล้วจะเกี่ยวข้องกับ SQL, Python และการประเมินโมเดลเป็น หลัก หากคุณเข้าใจพื้นฐานอย่างถ่องแท้ ฝึกฝนด้วยแบบฝึกหัดในโลกแห่งความเป็นจริง และเรียนรู้ที่จะอธิบายเหตุผลของคุณ คุณจะมีข้อได้เปรียบอย่างมากเหนือผู้สมัครคนอื่นๆ

เหตุใดการสัมภาษณ์ทางเทคนิคจึงน่ากลัว (และวิธีลดความกังวล)

พารามิเตอร์ปัญญาประดิษฐ์
บทความที่เกี่ยวข้อง:
พารามิเตอร์ของปัญญาประดิษฐ์และวิธีที่พารามิเตอร์เหล่านั้นกำหนดรูปแบบโมเดล

ในการสัมภาษณ์งานด้านนักวิเคราะห์ข้อมูลหรือผู้จัดการผลิตภัณฑ์ในอุตสาหกรรมเทคโนโลยีโฆษณา การสัมภาษณ์ทางเทคนิคโดยทั่วไปจะผสมผสานคำถามเชิงแนวคิดเข้ากับการฝึกปฏิบัติจริงคุณอาจถูกขอให้Wอธิบายการทำงานของคำสั่ง SQL หรือแก้ปัญหาทางธุรกิจที่เกี่ยวข้องกับข้อมูลแคมเปญโฆษณาแบบโปรแกรมมิก

โดยทั่วไป คุณจะได้รับการประเมินในสามด้าน ได้แก่ทักษะ SQL ระดับกลาง (JOIN, GROUP BY, ซับควอรี, ฟังก์ชัน Window), ทักษะ Python ที่เน้นการประมวลผลข้อมูล (pandas, การทำความสะอาดข้อมูล, การรวมข้อมูล, การผสานข้อมูล) และความสามารถในการตีความผลลัพธ์และสื่อสารสิ่งที่ค้นพบพวกเขาไม่ได้มองหาผู้เชี่ยวชาญด้านวิทยาศาสตร์ข้อมูลระดับสูง แต่กำลังมองหาคนที่สามารถทำงานกับข้อมูลได้อย่างมีประสิทธิภาพและน่าเชื่อถือ

ข้อผิดพลาดทั่วไปที่ผู้สมัครหลายคนมักทำคือ การมุ่งเน้นไปที่การท่องจำไวยากรณ์และลืมฝึกฝนแบบฝึกหัดที่สมบูรณ์ซึ่งคล้ายกับแบบฝึกหัดที่คุณจะพบในแพลตฟอร์มต่างๆ เช่น HackerRank, StrataScratch หรือแบบทดสอบภายในของบริษัทเอง เป้าหมายของคุณควรเป็นการมาถึงการสัมภาษณ์โดยที่ได้แก้โจทย์และสคริปต์ที่คล้ายกันมาแล้วหลายสิบชุด

ระดับความรู้ SQL เป็นสิ่งจำเป็นในงานสัมภาษณ์ด้านเทคโนโลยีโฆษณาและนักวิเคราะห์ข้อมูล

สำหรับตำแหน่งนักวิเคราะห์ในแวดวงเทคโนโลยีโฆษณาหรือการตลาดดิจิทัล บริษัทต่างๆ คาดหวังว่าคุณจะมีความเชี่ยวชาญในSQL แบบคลาสสิก : การดึงข้อมูลจากหลายตาราง การรวม การจัดกลุ่ม การกรอง และการสร้างตัวชี้วัดที่เป็นประโยชน์ พวกเขาจะไม่ต้องการทักษะการบริหารจัดการฐานข้อมูล แต่คุณควรจะคุ้นเคยกับการเขียนคำสั่งค้นหาข้อมูลที่ซับซ้อนปานกลาง

โดยทั่วไป การทดสอบจะประกอบด้วยคำสั่งค้นหาที่ผสมผสานINNER JOIN, LEFT JOIN, ตัวกรองด้วยเงื่อนไข WHERE, การรวมข้อมูลด้วย GROUP BYและเงื่อนไขบางอย่างในการรวมข้อมูลโดยใช้เงื่อนไข HAVING จากนั้น ในส่วนที่ซับซ้อนขึ้นเล็กน้อย มักจะเห็นการใช้ซับควอรีและฟังก์ชัน Windowสำหรับการจัดอันดับ ผลรวมสะสม และการเปรียบเทียบแถว

ในวงการเทคโนโลยีโฆษณา คุณอาจต้องตอบคำถามทางธุรกิจอย่างเช่น "แคมเปญไหนมีอัตราการคลิก (CTR) ดีกว่าค่าเฉลี่ยของอุตสาหกรรม?" หรือ "ผู้เผยแพร่โฆษณารายใดมียอดการแสดงผลลดลงเมื่อเทียบกับเดือนที่แล้ว?" การแก้ปัญหาเหล่านี้อย่างมีประสิทธิภาพมักต้องอาศัยความเข้าใจพื้นฐานเกี่ยวกับซับเควรีที่สัมพันธ์กันและฟังก์ชันหน้าต่าง

คำถามพื้นฐานเกี่ยวกับ SQL ที่พบบ่อย (และวิธีตอบ)

การสัมภาษณ์งานด้านเทคนิคที่เกี่ยวข้องกับข้อมูลเกือบทุกครั้งจะมีคำถามเกี่ยวกับทฤษฎี SQL พื้นฐาน อยู่ด้วย จุด ประสงค์ไม่ใช่เพื่อจับผิด แต่เพื่อตรวจสอบให้แน่ใจว่าคุณมีพื้นฐานความรู้ที่แข็งแกร่ง

หนึ่งในคำถามที่พบบ่อยที่สุดคือความแตกต่างระหว่างWHERE และ HAVINGวิธีอธิบายที่ชัดเจนที่สุดคือ WHERE จะกรองแต่ละแถวก่อนที่จะจัดกลุ่มในขณะที่ HAVING จะกรองกลุ่มที่ได้ทำการรวมกลุ่มแล้วคุณอาจกล่าวเพิ่มเติมได้ว่าเงื่อนไขที่เกี่ยวข้องกับฟังก์ชันการรวมกลุ่ม (COUNT, SUM, AVG เป็นต้น) ควรอยู่ใน HAVING ไม่ใช่ WHERE

คำถามคลาสสิกอีกข้อคือ ประเภทของJOINมีอะไรบ้าง และควรใช้แต่ละประเภทเมื่อใด: INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN และในบางกรณี CROSS JOIN หรือ self-join ในการวิเคราะห์ข้อมูล LEFT JOIN ถูกใช้กันอย่างแพร่หลายเมื่อคุณต้องการเก็บรักษาชุดข้อมูลหลักทั้งหมด (เช่น ผู้ใช้ทั้งหมด) แม้ว่าจะไม่มีระเบียนที่เกี่ยวข้องในตารางรอง (เช่น การซื้อ) ก็ตาม

ตัวอย่างของคำสั่ง SQL พื้นฐานและตรรกะของคำสั่งเหล่านั้น

เพื่อให้คุณเห็นภาพระดับ "ขั้นต่ำที่เหมาะสม" คุณควรจะสามารถเขียนคำสั่ง SQL จากความจำได้ เช่นการเลือกคอลัมน์เฉพาะ การกรองแถว และการจัดเรียงผลลัพธ์ในระดับพื้นฐานมาก ๆ คำถามทั่วไปได้แก่ วิธีการดึงคอลัมน์ทั้งหมดจากตาราง วิธีการเลือกเฉพาะบางคอลัมน์ หรือวิธีการใช้ชื่อแทน (alias) ที่อ่านง่ายกับ AS

นอกจากนี้ ยังมักถูกถามเกี่ยวกับการใช้คำสั่ง WHERE ที่มีเงื่อนไขหลายข้อร่วมกัน เช่น AND, OR และ NOT หรือวิธีการใช้ตัวดำเนินการเปรียบเทียบ (<, <=, >, >=, =) สำหรับทั้งค่าตัวเลขและวันที่ บริษัทหลายแห่งให้ความสำคัญกับ ตัวกรองค่า ว่าง (NULL)ซึ่งการใช้เครื่องหมายเท่ากับอย่างเดียวไม่เพียงพอ จำเป็นต้องใช้ IS NULL หรือ IS NOT NULL เพิ่มเติม

อีกหนึ่งวิธีคลาสสิกคือการกรองข้อความโดยใช้คำ สั่ง LIKEและรูปแบบโดยใช้สัญลักษณ์ตัวแทน % และ _ ตัวอย่างเช่น คุณสามารถค้นหาแคมเปญที่มีชื่อประกอบด้วยคำเฉพาะ หรือผู้ใช้ที่มีที่อยู่อีเมลลงท้ายด้วยโดเมนเฉพาะ สิ่งสำคัญคือต้องอธิบายว่าLIKE '%text%'ค้นหารูปแบบดังกล่าวได้ทุกที่ในสตริง

สุดท้ายนี้ ส่วนพื้นฐานนี้โดยทั่วไปจะครอบคลุมวิธีการอัปเดตข้อมูลด้วยคำสั่ง UPDATEและการกรองแถวที่จะแก้ไขด้วยคำสั่ง WHERE รวมถึงวิธีการลบแถวด้วยคำสั่ง DELETE FROMโดยใช้เงื่อนไขที่ชัดเจน สิ่งสำคัญคือคุณต้องเน้นย้ำถึงความสำคัญของการใช้เงื่อนไข WHERE ที่เฉพาะเจาะจงเสมอ เพื่อหลีกเลี่ยงการลบข้อมูลครึ่งหนึ่งของตารางโดยไม่ตั้งใจ

คำสั่งค้นหาขั้นกลาง: GROUP BY, HAVING, คำสั่งค้นหาย่อย และ UNION

เมื่อคุณก้าวพ้นระดับจูเนียร์ไปแล้ว บริษัทเกือบทุกแห่งจะเริ่มให้ความสำคัญกับทักษะของคุณในการใช้คำสั่งGROUP BY, ฟังก์ชันการรวมข้อมูล และตัวกรองบนข้อมูลรวมร่วมกับคำสั่ง HAVINGนี่คือสิ่งที่คุณจะใช้ทุกวันในการสร้างรายงานประสิทธิภาพสำหรับแคมเปญ กลุ่มเป้าหมาย และชิ้นงานโฆษณา

  HTML 5 คืออะไร: บทนำฉบับสมบูรณ์

หลักการทำงานเป็นดังนี้: GROUP BY จะจัดกลุ่มแถวตามคอลัมน์หนึ่งหรือมากกว่า และคุณสามารถใช้SUM, COUNT, AVG, MIN และ MAX กับกลุ่มเหล่านี้ เพื่อคำนวณค่าต่างๆ ส่วน HAVING จะใช้เพื่อเก็บเฉพาะกลุ่มที่ตรงตามเงื่อนไข เช่น ลูกค้าที่มียอดขายสูงกว่าเกณฑ์ที่กำหนด

อีกหนึ่งประเด็นที่พบได้บ่อยคือซับเควรี (subqueries) ซึ่งเป็นเควรีที่อยู่ภายในเควรีอื่น โดยมักใช้ในการกรองข้อมูลตามค่าที่คำนวณได้ในขั้นตอนก่อนหน้า เช่น การเลือกกลุ่มลูกค้าที่มียอดขายสูงกว่าค่าเฉลี่ยทั่วโลก หรือแคมเปญที่มีจำนวนการแสดงผลสูงกว่าเปอร์เซ็นไทล์ที่ 90

คุณมักจะถูกถามถึงความแตกต่างระหว่างUNION และ UNION ALL UNION จะรวมชุดผลลัพธ์สองชุดที่มีโครงสร้างเดียวกันและลบข้อมูลที่ซ้ำกันออก ในขณะที่ UNION ALL ทำเช่นเดียวกัน แต่จะเก็บทุกแถวไว้ แม้ว่าจะมีข้อมูลซ้ำกันก็ตาม ในการวิเคราะห์ข้อมูล คุณมักจะเลือกใช้ UNION ALL เนื่องจากเหตุผลด้านประสิทธิภาพและเพราะคุณต้องการเก็บรักษาบันทึกทั้งหมดไว้เหมือนเดิม

ฟังก์ชัน Window: ก้าวกระโดดครั้งต่อไปใน SQL

ฟังก์ชัน Window ได้กลายเป็นมาตรฐานในการทดสอบทางเทคนิคในระดับหนึ่ง โดยเฉพาะอย่างยิ่งสำหรับบทบาทที่เกี่ยวข้องกับเทคโนโลยีโฆษณา ซึ่งจำเป็นต้องวิเคราะห์แนวโน้มในช่วงเวลาต่างๆ การจัดอันดับแคมเปญ หรือยอดรวมการลงทุน

แนวคิดหลักคือ ฟังก์ชัน Window จะคำนวณค่าบนชุดของแถวที่เกี่ยวข้องกับแถวปัจจุบันแต่จะไม่รวมผลลัพธ์เหมือนกับคำสั่ง GROUP BY กล่าวอีกนัยหนึ่ง คุณยังคงเห็นแต่ละแถวแยกกัน แต่จะมีค่าเฉลี่ยที่คำนวณจาก "หน้าต่าง" ของข้อมูลควบคู่ไปด้วย

รูปแบบการใช้งานทั่วไปคือการใช้ฟังก์ชัน (SUM, AVG, RANK เป็นต้น) ตามด้วย OVER และภายใน OVER ให้กำหนดพาร์ติชัน (PARTITION BY) และลำดับ (ORDER BY) ตัวอย่างเช่น การคำนวณอันดับยอดขายตามพนักงานขาย หรือจำนวนการแสดงผลสะสมต่อวัน

หากคุณต้องการแสดงให้เห็นถึงความเชี่ยวชาญ คุณควรทำความคุ้นเคยกับฟังก์ชันต่างๆ เช่นRANK, DENSE_RANK, ROW_NUMBER, LAG และ LEADฟังก์ชันเหล่านี้มีประโยชน์มากสำหรับการจัดอันดับแคมเปญตามประสิทธิภาพ การเปรียบเทียบแต่ละช่วงเวลากับช่วงเวลาก่อนหน้า หรือการระบุความผันแปรปีต่อปีของตัวชี้วัดหลัก

CTE, ผลรวมสะสม และค่าเฉลี่ยเคลื่อนที่

ในการสัมภาษณ์งานยุคใหม่ ความสามารถในการอ่านโค้ด SQL ของคุณเป็นสิ่งที่ได้รับการประเมินค่าสูงมาก นั่นเป็นเหตุผลที่คุณมักจะถูกถามเกี่ยวกับCommon Table Expressions (CTEs) CTE นั้นโดยพื้นฐานแล้วเป็นตารางชั่วคราวที่มีชื่อ ซึ่งกำหนดด้วยคำสั่ง WITH และมีอยู่เฉพาะในระหว่างการประมวลผลคำสั่ง SQL เท่านั้น

CTE (Common Table Expression) ใช้สำหรับแบ่งคำสั่งค้นหาที่ซับซ้อนออกเป็นบล็อกเชิงตรรกะและนำผลลัพธ์ระหว่างกลางกลับมาใช้ใหม่ ตัวอย่างเช่น คุณอาจคำนวณตัวชี้วัดรายวันต่อแคมเปญใน CTE ก่อน จากนั้นในคำสั่งค้นหาหลัก คุณจะทำการรวบรวมหรือกรองข้อมูลเพิ่มเติมจากผลลัพธ์นั้น

อีกหนึ่งแบบฝึกหัดที่พบได้บ่อยมากคือการคำนวณผลรวมสะสมโดยใช้ฟังก์ชัน SUM เป็นฟังก์ชันหน้าต่าง ในสภาพแวดล้อมของเทคโนโลยีโฆษณา เป็นเรื่องปกติที่จะถูกขอให้แสดงผลรวมของการแสดงผล การคลิก หรือการใช้จ่าย เพื่อดูว่าแคมเปญมีประสิทธิภาพอย่างไรเมื่อเวลาผ่านไป

ในทำนองเดียวกันนี้ก็มีค่าเฉลี่ยเคลื่อนที่ซึ่งใช้ฟังก์ชัน AVG เป็นฟังก์ชันหน้าต่างกับกรอบแถวที่เลื่อนไป (ตัวอย่างเช่น สองวันที่ก่อนหน้าและวันที่ปัจจุบัน) นี่เป็นวิธีง่ายๆ ในการปรับข้อมูลอนุกรมเวลาให้เรียบและตรวจจับแนวโน้มโดยไม่ต้องพึ่งพาค่าสูงสุดรายวันมากนัก

ระดับความรู้ Python ที่จำเป็นสำหรับนักวิเคราะห์ข้อมูล

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

โดยทั่วไป การทดสอบ Python จะเน้นไปที่การดำเนินการต่างๆ เช่นการอ่านข้อมูลจากไฟล์ CSVการตรวจสอบค่าว่างและประเภทคอลัมน์ การกรองแถว การสร้างคอลัมน์ใหม่ การรวมข้อมูลโดยใช้ groupby และการเชื่อมต่อระหว่าง DataFrame ในหลายกรณี รูปแบบการเขียนจะเกือบเหมือนกับส่วนของ SQL แต่เขียนในรูปแบบของ pandas

ในการทดสอบสำหรับนักวิเคราะห์นั้น ไม่ค่อยมีกรณีที่ต้องสร้างโมเดลที่ซับซ้อนขึ้นมาเองตั้งแต่เริ่มต้น แต่พวกเขาอาจให้ความสำคัญกับความสามารถของคุณในการเชื่อมต่อกับ scikit-learnเพื่อฝึกฝนโมเดลพื้นฐาน และเหนือสิ่งอื่นใด คือความรู้ของคุณเกี่ยวกับตัวชี้วัดพื้นฐานในการวัดประสิทธิภาพของโมเดลนั้น

การดำเนินการพื้นฐานของ pandas ที่คุณควรเชี่ยวชาญ

เพื่อให้การทำแบบฝึกหัดเกี่ยวกับข้อมูลด้วย Python สำเร็จลุล่วง คุณต้องมีความเชี่ยวชาญในการดำเนินการพื้นฐานกับ DataFrame ขั้นตอนแรกมักจะเป็นการโหลดไฟล์โดยใช้`read_csv`และสำรวจโครงสร้างของไฟล์ด้วยวิธีการต่างๆ เช่น `head()`, `info()` หรือ `describe()`

ส่วนที่เกี่ยวกับการจัดการค่าว่างมักจะปรากฏอยู่ด้วย เช่น การนับจำนวนค่าว่างในแต่ละคอลัมน์ด้วย isnull().sum() การตัดสินใจว่าจะลบทั้งแถวหรือคอลัมน์ด้วย dropna() หรือเติมค่าที่หายไปด้วย fillna() ตัวอย่างเช่น โดยใช้ค่าเฉลี่ยหรือค่ามัธยฐานของคอลัมน์นั้น

สำหรับตัวกรอง คุณจะต้องสร้างเงื่อนไขบนคอลัมน์ตัวเลขหรือคอลัมน์เชิงหมวดหมู่ เช่น การเลือกยอดขายที่สูงกว่าจำนวนที่กำหนด หรือแถวที่ตรงตามเงื่อนไขหลายอย่างโดยใช้ & และ | สิ่งสำคัญคือต้องรู้วิธีเขียนdfโดยไม่ลังเล

คำอธิบายของคำสั่ง`groupby`ใน pandas มักจะรวมอยู่ด้วยเสมอ เนื่องจากมันเทียบเท่ากับคำสั่ง `GROUP BY` ใน SQL โดยตรง คุณสามารถจัดกลุ่มตามคอลัมน์หนึ่งหรือหลายคอลัมน์ แล้วใช้ฟังก์ชันการรวม เช่น `sum`, `mean`, `count` เป็นต้น ไวยากรณ์ `groupby('column').agg()` นั้นสำคัญมาก

การเชื่อมต่อและการผสานระหว่าง DataFrame

เช่นเดียวกับการเชี่ยวชาญคำสั่ง JOIN ใน SQL การเชี่ยวชาญpd.merge ก็เป็นสิ่งจำเป็นใน pandas เช่นกัน บริษัทต่างๆ จะต้องการดูว่าคุณรู้วิธีการรวมชุดข้อมูลที่มีคีย์ร่วมกันหรือไม่ ตัวอย่างเช่น ตารางผู้ใช้กับตารางเหตุการณ์หรือการซื้อ

ฟังก์ชัน merge รับ DataFrame สองตัวที่จะรวมเข้าด้วยกัน คอลัมน์หลัก (on) และประเภทการรวม (how) ซึ่งสามารถเป็น 'left', 'right', 'inner' หรือ 'outer' ได้เช่นเดียวกับใน SQL ในการวิเคราะห์ข้อมูล การรวมแบบ left join ส่วนใหญ่ใช้ เพื่อรักษาชุดข้อมูลหลักและเพิ่มคุณลักษณะหรือตัวชี้วัดจากตารางรอง

  ทุกอย่างเกี่ยวกับอินสแตนซ์ในการเขียนโปรแกรม

ในการสัมภาษณ์ ควรกล่าวถึงรายละเอียดต่างๆ เช่น จะเกิดอะไรขึ้นเมื่อมีคีย์ซ้ำกันทั้งสองฝั่ง หรือวิธีการจัดการกับความขัดแย้งของชื่อคอลัมน์กับคำต่อท้ายพารามิเตอร์ สิ่งนี้แสดงให้เห็นถึงวุฒิภาวะที่สูงขึ้น

คำถามเกี่ยวกับ Python ทั่วไปที่เน้นเชิงทฤษฎีมากกว่า

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

หนึ่งในหัวข้อที่ปรากฏซ้ำๆ คือการจัดการหน่วยความจำอัตโนมัติใน Python ซึ่งใช้ฮีปส่วนตัวที่ผู้ใช้ไม่สามารถเข้าถึงได้โดยตรง และตัวเก็บขยะ (garbage collector) ที่รับผิดชอบในการปล่อยวัตถุที่ไม่มีการอ้างอิงอีกต่อไป

นอกจากนี้ ยังมักถูกขอให้เปรียบเทียบPython กับ Javaไม่ใช่เพื่อตัดสินว่าใครเป็นผู้ชนะ แต่เพื่อแสดงให้เห็นว่าคุณเข้าใจความแตกต่าง: Python มีความยืดหยุ่นมากกว่า มีไวยากรณ์ที่กระชับกว่า เหมาะสำหรับการสร้างต้นแบบและวิทยาศาสตร์ข้อมูล ในขณะที่ Java มักจะครองตลาดในองค์กรขนาดใหญ่และสภาพแวดล้อมที่มีประสิทธิภาพสูง

คำถามทั่วไปอื่นๆ มักเกี่ยวข้องกับนิพจน์แลมบ์ดา (ฟังก์ชันนิรนามสำหรับการดำเนินการง่ายๆ) กระบวนการ pickling/unpickling สำหรับการแปลงวัตถุเป็นไบต์และการเรียกใช้ หรือความแตกต่างระหว่างลิสต์และทูเพิล ซึ่งลิสต์สามารถเปลี่ยนแปลงได้และกำหนดด้วยวงเล็บเหลี่ยม ในขณะที่ทูเพิลไม่สามารถเปลี่ยนแปลงได้และกำหนดด้วยวงเล็บ

แนวคิดสำคัญเพิ่มเติมเกี่ยวกับ Python ที่ควรนำไปใช้ในการสัมภาษณ์งาน

เป็นเรื่องปกติที่จะถูกถามว่าจะลบหรือคัดลอกอ็อบเจ็กต์ใน Python ได้อย่างไร โดยปกติแล้ว การอธิบายว่าคุณสามารถใช้คำสั่ง `del` เพื่อลบการอ้างอิง และการคัดลอกแบบตื้นทำได้ด้วย `copy.copy()` ในขณะที่การคัดลอกแบบลึกต้องใช้ `copy.deepcopy()` ก็เพียงพอแล้ว

อีกแนวคิดหนึ่งที่อาจปรากฏขึ้น โดยเฉพาะในโปรไฟล์ด้านแบ็กเอนด์ คือสิ่งที่เรียกว่า " เอฟเฟกต์กองสุนัข" (dogpile effect ) ซึ่งอธิบายถึงสถานการณ์ที่ผู้ใช้หรือกระบวนการจำนวนมากโจมตีทรัพยากร (เช่น เว็บไซต์หรือแคช) ในเวลาเดียวกัน ทำให้ระบบเกิดความแออัด

ในส่วนที่เกี่ยวข้องกับระบบนิเวศ คุณอาจพบคำถามเกี่ยวกับฐานข้อมูลที่สามารถใช้กับ Python ได้วิธีที่เหมาะสมที่สุดคือการกล่าวถึงฐานข้อมูลยอดนิยมบางตัว เช่น MySQL, PostgreSQL, SQLite, MongoDB และ Oracle และระบุว่าโดยทั่วไปแล้ว Python สามารถทำงานร่วมกับฐานข้อมูลเชิงสัมพันธ์และ NoSQL ได้หลากหลายประเภทเป็นอย่างดี

สุดท้ายนี้ มักมีคำถามที่ง่ายกว่าเกิดขึ้น เช่น วิธีการเรียงลำดับพจนานุกรมโดยใช้การเรียงลำดับตามรายการ เนมสเปซคืออะไรและใช้เพื่ออะไร (การเชื่อมโยงชื่อกับวัตถุในขอบเขตที่แตกต่างกัน) หรือวิธีการเริ่มกระบวนการย่อยโดยใช้โมดูล subprocess พร้อมฟังก์ชันต่างๆ เช่น run() หรือ Popen()

ตัวชี้วัดสำหรับการประเมินโมเดลใน Python: สิ่งที่คุณควรรู้ขั้นต่ำ

แม้ว่าตำแหน่งนักวิเคราะห์หลายตำแหน่งจะไม่ต้องการให้คุณออกแบบสถาปัตยกรรมเรียนรู้เชิงลึก แต่โดยทั่วไปแล้วคุณควรคุ้นเคยกับตัวชี้วัดพื้นฐานสำหรับการประเมินโมเดลการจำแนกประเภทโดยเฉพาะอย่างยิ่งหากบทบาทนั้นเกี่ยวข้องกับผลิตภัณฑ์ข้อมูล การระบุแหล่งที่มาของแคมเปญ หรือการตรวจจับการฉ้อโกงในอุตสาหกรรมเทคโนโลยีโฆษณา

จุดเริ่มต้นคือเมทริกซ์ความสับสน (confusion matrix ) ซึ่งสรุปความสำเร็จและความล้มเหลวของตัวจำแนกแบบไบนารีหรือแบบหลายคลาส ในกรณีไบนารี จะแบ่งออกเป็นผลบวกจริง (TP) ผลลบจริง (TN) ผลบวกเท็จ (FP) และผลลบเท็จ (FN) ความเข้าใจอย่างถ่องแท้ในสี่หมวดหมู่นี้เป็นสิ่งสำคัญ

จากเมทริกซ์ จะได้ค่าตัวชี้วัดต่างๆ เช่นความแม่นยำซึ่งวัดเปอร์เซ็นต์ของการทำนายที่ถูกต้องจากทั้งหมดความเที่ยงตรง (TP / การทำนายที่ถูกต้อง) และการเรียกคืนหรือความไว (TP / ผลบวกจริง) ตัวชี้วัดสองตัวหลังนี้มีความสำคัญอย่างยิ่งเมื่อจำนวนคลาสไม่สมดุลกัน

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

ตัวชี้วัดขั้นสูงอื่นๆ: ROC-AUC, logloss, Jaccard และอื่นๆ

สำหรับตำแหน่งงานที่มีองค์ประกอบด้านวิทยาศาสตร์ข้อมูลหรือการวิเคราะห์การตลาดที่เข้มข้นกว่า บริษัทต่างๆ จะพิจารณาว่าคุณเชี่ยวชาญตัวชี้วัดขั้นสูง เช่นROC-AUC หรือไม่ ซึ่งเป็นตัวชี้วัดพื้นที่ใต้เส้นโค้ง ROC และสะท้อนถึงความสามารถของแบบจำลองในการจำแนกกลุ่มต่างๆ

เส้นโค้ง ROC แสดงความสัมพันธ์ระหว่างอัตราการตรวจพบที่ถูกต้อง (recall) และอัตราการตรวจพบที่ผิดพลาด (1 – specificity) สำหรับเกณฑ์การตัดสินใจที่แตกต่างกัน แบบจำลองที่สุ่มจะอยู่บนเส้นทแยงมุม ในขณะที่แบบจำลองที่ดีจะอยู่ใกล้กับมุมบนซ้าย ยิ่งพื้นที่ใต้เส้นโค้งมีขนาดใหญ่เท่าใด ความสามารถในการจำแนกก็จะยิ่งดีขึ้นเท่านั้น

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

พวกเขาอาจถามคุณเกี่ยวกับดัชนี Jaccardซึ่งใช้วัดความคล้ายคลึงกันระหว่างสองชุดข้อมูล โดยคำนวณจากขนาดของส่วนที่ตัดกันหารด้วยขนาดของส่วนที่รวมกัน ดัชนีนี้ใช้ในการประเมินตัวจำแนกประเภท การแบ่งส่วน และระบบแนะนำ เป็นต้น

ในบางบริบท จะมีการกล่าวถึงแผนภูมิแสดงผลลัพธ์(gain and lift charts ) ซึ่งแสดงให้เห็นว่าคุณสามารถดึงดูดกลุ่มเป้าหมายได้กี่เปอร์เซ็นต์ โดยใช้เพียงส่วนหนึ่งของประชากร (ตัวอย่างเช่น ผู้ใช้ 20% แรกที่ได้รับการจัดอันดับโดยโมเดลของคุณ) แผนภูมิเหล่านี้ใช้กันอย่างแพร่หลายในด้านการตลาดเพื่อตัดสินใจว่าจะกำหนดเป้าหมายใครก่อน

Kolmogorov-Smirnov, สัมประสิทธิ์ Gini และการประเมินเชิงลึก

หากบริษัทให้ความสำคัญอย่างมากกับการให้คะแนนหรือแบบจำลองความเสี่ยง ตัวชี้วัดต่างๆ เช่น สถิติ Kolmogorov-Smirnov (KS)อาจปรากฏขึ้นซึ่งใช้วัดระดับการแยกตัวระหว่างการกระจายของคะแนนบวกและคะแนนลบ

ค่า KS ที่ใกล้เคียง 100 (ในรูปเปอร์เซ็นต์) แสดงว่าแบบจำลองสามารถแยกประชากรทั้งสองกลุ่มได้อย่างสมบูรณ์แบบ ในขณะที่ค่าที่ใกล้เคียง 0 หมายความว่าแบบจำลองไม่สามารถแยกแยะได้ดีไปกว่าการเดาสุ่ม ในทางปฏิบัติ แบบจำลองในโลกแห่งความเป็นจริงมักมีค่าอยู่ระหว่างค่าเหล่านี้ และจะถูกนำมาเปรียบเทียบกันเพื่อเลือกแบบจำลองที่ดีที่สุด

  Brackets IDE: คู่มือฉบับสมบูรณ์ — ประวัติ การติดตั้ง ส่วนขยาย และประโยชน์ของโปรแกรมแก้ไขโค้ดยอดนิยมตัวหนึ่ง

ค่าสัมประสิทธิ์ Giniเป็นอีกหนึ่งตัวชี้วัดที่ได้มาจาก ROC-AUC โดยใช้สูตร Gini = 2 × AUC – 1 เป็นที่นิยมอย่างมากในด้านสินเชื่อและการประกันภัย และยังตีความได้ว่าเป็นมาตรวัดความไม่เท่าเทียมกัน กล่าวคือ ยิ่งค่า Gini สูงเท่าไร ความสามารถของแบบจำลองในการกระจุกตัวของผลบวกที่แท้จริงไว้ที่คะแนนสูงก็จะยิ่งมากขึ้นเท่านั้น

ในการสัมภาษณ์ขั้นสูง คุณอาจถูกขอให้Sอธิบายวิธีการนำตัวชี้วัดเหล่านี้ไปใช้ใน Python โดยใช้scikit-learn (เช่น confusion_matrix, accuracy_score, roc_auc_score, f1_score…) และให้แสดงความคิดเห็นว่าคุณจะใช้แต่ละตัวเมื่อใด ขึ้นอยู่กับลักษณะของปัญหาและความไม่สมดุลของคลาส

วิธีการเรียบเรียงคำตอบของคุณระหว่างการสัมภาษณ์ทางเทคนิค

นอกเหนือจากโค้ดที่คุณเขียนแล้ว ผู้สัมภาษณ์ยังให้ความสำคัญกับวิธีคิดและวิธีการอธิบายของคุณเป็น อย่างมาก คำตอบที่เรียบเรียงไม่ดีอาจทำให้คุณดูอ่อนประสบการณ์กว่าที่เป็นจริง แม้ว่าคุณจะรู้คำตอบที่ถูกต้องก็ตาม

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

ตัวอย่างเช่น หากมีคนถามคุณว่า CTE ใช้ทำอะไร คุณอาจบอกว่ามันคือซับเควรีชั่วคราวที่มีชื่อ ซึ่งช่วยปรับปรุงความอ่านง่ายของเควรีที่ซับซ้อน เพิ่มเติมว่าคุณใช้มันเมื่อคุณต้องการนำผลลัพธ์ระดับกลางมาใช้ซ้ำหลายครั้ง และกล่าวถึงว่าในบางกรณีอาจใช้ซับเควรีแบบซ้อนกันแทนได้ แม้ว่าจะดูไม่ชัดเจนเท่าก็ตาม

การคิดออกมาดัง ๆก็เป็นสิ่งสำคัญเช่นกันหากคุณติดขัด อย่านิ่งเงียบ: จงพูดออกมาว่าคุณกำลังพยายามทำอะไร ข้อมูลที่คุณขาดคืออะไร และข้อสมมติฐานที่คุณกำลังตั้งคืออะไร การทำเช่นนี้จะช่วยให้ผู้สัมภาษณ์เห็นกระบวนการคิดของคุณ และบางครั้งอาจให้เบาะแสหรือคำชี้แจงเพิ่มเติมที่ทำให้คุณดำเนินการต่อได้ง่ายขึ้น

ข้อผิดพลาดที่พบบ่อยที่สุดในการสัมภาษณ์ข้อมูลทางเทคนิค

ผู้สมัครจำนวนมากถูกคัดออกไม่ใช่เพราะขาดทักษะ SQL หรือ Python ที่เพียงพอ แต่เป็นเพราะการเตรียมตัวที่ไม่ดีและการสื่อสารที่ผิดพลาดจึงเป็นสิ่งสำคัญที่จะต้องตระหนักถึงข้อผิดพลาดทั่วไปเหล่านี้เพื่อหลีกเลี่ยง

ประการแรกคือการท่องจำโดยไม่เข้าใจการรู้ไวยากรณ์ของ RANK หรือฟังก์ชันแลมบ์ดาจะไม่เกิดประโยชน์มากนักหากคุณไม่สามารถอธิบายได้ว่าในกรณีใดที่คุณจะใช้เครื่องมือเหล่านั้น หรือทำไมจึงดีกว่าทางเลือกอื่นๆ

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

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

สุดท้ายนี้ ควรหลีกเลี่ยงวิธีการ "เขียนโค้ดเกินความจำเป็น" คือการสร้างโซลูชันที่ซับซ้อนโดยไม่จำเป็น ในเมื่อคำสั่งหรือสคริปต์นั้นอาจจะง่ายกว่า ในสภาพแวดล้อมการทำงานจริง สิ่งที่สำคัญคือความชัดเจน การบำรุงรักษา และประสิทธิภาพไม่ใช่โซลูชันที่ซับซ้อนเหมือนปริศนา

แผนเตรียมความพร้อมอย่างเข้มข้นภายในสองสัปดาห์

หากคุณมีเวลาจำกัดก่อนการสัมภาษณ์ คุณสามารถวางแผนแบบย่อที่ครอบคลุมสามส่วนสำคัญ ได้แก่ SQL, Python พร้อมไลบรารี pandas และการประยุกต์ใช้งานจริง คุณอาจไม่สามารถทำปาฏิหาริย์ได้ภายใน 14 วัน แต่คุณจะมีความเชี่ยวชาญในระดับที่น่าพอใจและมีความมั่นใจในระดับที่เหมาะสม

ในช่วงสองสามวันแรก ควรเน้นไปที่SQL ระดับเริ่มต้นถึงระดับกลาง : ทบทวนไวยากรณ์พื้นฐาน, JOINs, GROUP BY, ซับควอรี และฟังก์ชัน Window ที่ใช้บ่อยที่สุด ควรจัดเวลาทั้งในการอ่านตัวอย่างและเขียนคิวรีของคุณเอง

ในขั้นตอนที่สอง ให้เน้นที่pandas : การโหลดข้อมูล การทำความสะอาด การกรอง การจัดกลุ่ม การรวมข้อมูล และการสร้างภาพข้อมูลอย่างรวดเร็วด้วย matplotlib หรือ seaborn คุณไม่จำเป็นต้องสร้างแดชบอร์ดที่ซับซ้อน แต่คุณต้องสามารถจำลองการแปลงข้อมูลแบบเดียวกับที่ทำใน SQL ได้ใน Python

จากนั้นให้จัดสรรเวลาหลายวันเพื่อฝึกฝนทักษะการเขียนโค้ดบนแพลตฟอร์มต่างๆเช่น HackerRank หรือคลังโค้ดสำหรับสอบสัมภาษณ์ทางเทคนิค เป้าหมายคือการทำความคุ้นเคยกับรูปแบบ ข้อจำกัดด้านเวลา และความกดดันในการเขียนโค้ดในสภาพแวดล้อมที่ควบคุมได้

สุดท้าย ลองฝึกจำลองการสัมภาษณ์แบบเต็มรูปแบบ สักหนึ่งหรือสองครั้ง : ใช้ชุดข้อมูลสาธารณะ ถามคำถามทางธุรกิจที่สมเหตุสมผล แก้ปัญหาเหล่านั้นด้วย SQL หรือ Python และอธิบายเหตุผลทั้งหมดของคุณออกมาดัง ๆ ตั้งแต่การสำรวจเบื้องต้นไปจนถึงข้อสรุปสุดท้าย

ด้วยการผสมผสานที่ดีระหว่างการทบทวนทฤษฎี การฝึกฝนแบบมีผู้แนะนำ และแบบฝึกหัดที่สมจริง คุณจะพร้อมสำหรับวันสัมภาษณ์ด้วยพื้นฐานที่แข็งแกร่งในด้านSQL ระดับกลาง Python สำหรับการวิเคราะห์ข้อมูล และตัวชี้วัดโมเดลซึ่งเป็นสิ่งที่บริษัทส่วนใหญ่ในด้านเทคโนโลยีโฆษณาและการวิเคราะห์ข้อมูลคาดหวังที่จะเห็น