ฝึกแก้โจทย์ LeetCode จำเป็นหรือไม่จำเป็น!? - LearnAlgorithm
March 31, 2025
|
5 mins read

ฝึกแก้โจทย์ LeetCode จำเป็นหรือไม่จำเป็น!?

ทำไมหลาย ๆ บริษัทถึงใช้ LeetCode ในการสัมภาษณ์งาน? การฝึก LeetCode ยังจำเป็นอยู่หรือไม่อย่างไร? และถ้าคำตอบคือ “ไม่” ควรจะฝึกอะไรดี?

ฝึกแก้โจทย์ LeetCode จำเป็นหรือไม่จำเป็น!?

Introduction

ช่วงเดือนที่ผ่านมามีข่าวนึงที่หลายคนค่อนข้างพูดถึงกันเยอะมากใน X (prev Twitter) เรื่องมีอยู่ว่ามีหนุ่มจาก Columbia university คนนึงเขาทำ AI tool สำหรับโกง coding interview ขึ้นมา

พอได้ internship offer ที่ Amazon พี่แกก็เอา video ที่ตัวเองอัดไว้ตลอด interview process มาแชร์ลง twitter พร้อมกับ reject offer แบบเท่ ๆ ไปหนึ่งทีจนเกิดเป็น viral ขึ้นมา

ยังไงก็ตามประเด็นเรื่อง LeetCode เป็นเรื่องที่หลายคนพูดถึงกันมานานละ ว่าการเอา LeetCode มาใช้ใน coding interview มันเหมาะสมไหม? แล้วการฝึกทำโจทย์ LeetCode มีความจำเป็นมากน้อยแค่ไหน?

สำหรับในบทความนี้เราเลยอยากถือโอกาสยกเรื่องนี้มาชวนพูดคุยกันหน่อย

ฝึกแก้โจทย์ LeetCode จำเป็นหรือไม่จำเป็น!?”

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

“จำเป็นสำหรับอะไร?”

ถ้าหากมีคนถามว่า “ฝึก LeetCode จำเป็นสำหรับคนที่ฝึกเขียนโปรแกรมไหม?” ก็อาจจะต้องบอกว่าไม่ได้จำเป็นขนาดนั้น (ส่วนตัวเรายังเชื่ออยู่ว่าการสร้าง project เป็นวิธีการเรียนรู้ที่ดีที่สุด — เพราะนอกจากจะได้ฝึกใช้ tool ได้ฝึกการแก้ปัญหาในเชิง technical แล้ว ยังช่วยให้เห็น bigger context อื่น ๆ อีกด้วย)

…แต่ในขณะเดียวกันก็ไม่ได้ไร้ประโยชน์สักทีเดียว

  • คนที่พึ่งเริ่มเขียนโปรแกรมใหม่ ๆ การได้แก้โจทย์ง่าย ๆ อาจจะช่วยฝึกวิธีคิด (problem-solving process) ได้ฝึก technique ต่าง ๆ เฉพาะด้านเช่น two pointers หรือ sliding windows รวมไปถึงช่วยให้ใช้เครื่องมือหรือภาษาที่เขียนได้คล่องขึ้น
  • หรือคนที่มีประสบการณ์แล้ว อาจจะใช้ LeetCode ข้อที่ยากขึ้นเป็น puzzle เพื่อฝึก observation/reasoning skills หรือเพื่อให้เป็นการประยุกต์ใช้ algorithm ที่รู้อยู่แล้วให้กว้างขึ้น ในข้อจำกัดหรือ constraints ที่มันจำกัดมาก ๆ

อย่างไรก็ตามในบทความนี้เราอยากจะชวนคุยในอีกบริบทนึงที่ว่า “ฝึกแก้โจทย์ LeetCode จำเป็นหรือไม่ สำหรับการใช้สมัครงาน?”

ทำไม LeetCode ถึงถูกใช้ในการสัมภาษณ์งาน?

ถ้าถามว่า LeetCode-style interview มาจากไหน ก็ต้องตอบว่าจริง ๆ แล้วมันก็เป็น filter mechanism อย่างนึงนั่นหละ ไม่ต่างอะไรกับการสอบเข้ามหาลัยดัง ๆ แบบนั้นเลย

หนึ่งในเป้าหมายสำคัญอย่างหนึ่งของการจ้างคนเข้ามาทำงานก็คือ “จ้างคนที่เหมาะสมกับงาน” ลองคิดภาพเล่น ๆ ว่าถ้าเราเปิดบริษัทขึ้นมาของตัวเอง เราก็คงจะออกแบบวิธีการคัดคน based-on งานหรือปัญหาที่บริษัทเราแก้ใช่ไหมหละครับ

ทุกอย่างก็คงจะผ่านไปด้วยดี แต่ลองคิดภาพว่าบริษัทของเราเกิด popular มาก ๆ จนมีคนสมัครเข้ามาวันละเป็นพัน ๆ คน คำถามก็คือ “เราจะ handle คนสมัครจำนวนมาก ๆ ได้ยังไง?”

สิ่งนึงที่ทำได้ก็คือ “การกรองคนออก” และสิ่งนั้น (จากที่ Google ได้ทำการลองผิดลองถูกต่าง ๆ นา ๆ) ก็คือการฝึกแก้โจทย์ algorithm จนกลายเป็น LeetCode-style interview (หรือพวก quiz, online-test ต่าง ๆ) นั่นเอง

ปัญหาเกิด

ฟังดูก็เหมือนทุกอย่างก็จะดูดี แต่ไม่รู้ถึงจุดไหนไม่รู้ LeetCode-style interview เริ่มกลายเป็น standard ในการคัดคนไปซะงั้น หลาย ๆ ที่ adopt มาใช้โดยที่ไม่ได้ตั้งคำถามกับมันว่าเราจะวัดอะไร และมันเหมาะสมกับเนื้องานที่เราทำจริง ๆ รึป่าว

จนบางทีมันก็ gone too far ไป เช่นแบบโยนโจทย์ LeetCode medium/hard ให้ทำภายในเวลา 30 นาที หรืออะไรแบบนั้น ทั้ง ๆ ที่งานจริง ๆ อาจจะเป็นแค่งานง่าย ๆ ที่ไม่ได้จำเป็นต้องแก้โจทย์ยากขนาดนั้น

(และส่วนตัวเราเชือว่าการโจทย์แก้โจทย์ยากภายใน 30 นาทีได้ มันไม่ได้วัดได้ว่าใครแก้ปัญหาเก่ง แต่วัดว่าใครจำได้มากกว่ากัน)

พอทุกอย่างมันมาทางนี้มันเลยมีกระแส “Grind LeetCode” ขึ้นมา ที่ทุกคนเอาเวลาเป็นเดือน ๆ ไปฝึก LeetCode กันเอาเป็นเอาตาย แทนที่จะเอาเวลาไปทำโปรเจคหรือแก้ปัญหาที่มันเกิดขึ้นในโลกจริง ๆ

แล้วยิ่งในยุค AI นี่ยิ่งง่ายใหญ่ เพราะจากเดิมที่เราต้องพยายามทำโจทย์หลาย ๆ แบบ และจำแนวข้อสอบ พอมี AI มันตอบแทนเราได้หมดแล้ว ดูได้จาก coding interview cheating tool ที่งอกมาเป็นดอกเห็ด (แล้วถ้าไปดูดี ๆ จะเห็นว่า MRR หรือ “monthly recurring revenue” ของ tool พวกนี้ไม่ใช่น้อย ๆ เลย)

เราควรจะทำยังไงต่อไปดี?

วิธีการแรกก็คือ “ฝึกต่อไป” ดังที่ได้กล่าวไปแล้วว่าการฝึก LeetCode มันก็มีประโยชน์ของมัน เราเองก็ได้อะไรจากการฝึก LeetCode ในช่วงเรียนมหาลัย หรือช่วงที่ตอนเริ่มกลับมาทำโปรเจคนี้ใหม่ ๆ

หรืออีกวิธีการนึงคือ “ออกจากระบบ LeetCode และเลือกทางที่แตกต่าง”

build project, contribute OSS, referral system

Chun Rapeepat

Rapeepat Kaewprasit (Chun)

คน ๆ หนึ่งที่ชื่นชอบในการสร้าง การทำธุรกิจ และการได้ลองทำอะไรใหม่ ๆ ไปเรื่อย ๆ