See the original English version of this article here
ในฐานะ Software Developer คุณมักต้องเจอคำถามด้าน Technical แทบจะทุกครั้งในการสัมภาษณ์งาน ดังนั้น Software Developer ทุกคนคงหนีไม่พ้นที่ต้องฝึกฝน Coding Problem Patterns ก่อนการสัมภาษณ์ บทความนี้จึงรวบรวมไว้ให้คุณแล้ว กับ แจกฟรี 20 Coding Problem Patterns สำหรับ Software Developer ซึ่งมีอยู่แล้วใน LeetCode เรามาดูกันเลยว่ามีอะไรบ้าง
ใครก็ตามที่เตรียมตัวสำหรับ Coding Interviews ย่อมรู้จัก LeetCode เป็นอย่างดี อาจเรียกได้ว่าเป็นพื้นที่รวบรวม Coding Interview Questions บนออนไลน์ที่มีขนาดใหญ่ที่สุดเลยก็ว่าได้ เรามาดูกันก่อนว่าคนส่วนใหญ่มักประสบปัญหาอะไรเมื่อใช้ LeetCode
ปัญหาของ LeetCode
ใน LeetCode มีมากกว่า 2,000 Problems ที่ให้คุณได้ฝึกฝน ซึ่งปัญหาที่ใหญ่ที่สุดของ LeetCode คือ มันได้รวบรวม Coding Problems ไว้เยอะมาก แต่ไม่ได้ถูกจัดเรียงเป็นหมวดหมู่อย่างเต็มรูปแบบ ทำให้คนส่วนใหญ่ไม่รู้ว่าจะเริ่มต้นจากตรงไหนหรือควร Focus ตรงส่วนไหนก่อนดี
มันคงดีกว่า ถ้ามีกระบวนการบางอย่างที่สามารถแนะนำและสอน Algorithmic Techniques ที่เพียงพอที่จะทำให้คุณมั่นใจในการสัมภาษณ์ ซึ่งคุณคงไม่อยากฝึกทำโจทย์ตั้ง 500 กว่าข้อแบบไม่มีแนวทาง จริงไหม?
ทางออก ของปัญหา
เทคนิคหนึ่งที่คนส่วนใหญ่มักใช้ ก็คือ การฝึกแก้ปัญหาที่อยู่ใน Data Structure ลักษณะหรือไปในทางที่คล้าย ๆ กัน เช่น เน้นคำถามที่เกี่ยวข้องกับ Arrays จากนั้นก็เป็น LinkedList, HashMap, Heap, Tree หรือ Trie เป็นต้น แม้ว่าสิ่งนี้ อาจจะมีอยู่แล้วในบางองค์กร แต่ก็ยังไม่เหมือนกันซะทั้งหมดทีเดียว เช่น มีคำถามมากมายที่สามารถแก้ไขได้ โดยใช้ HashMaps แต่ยังไงแล้วก็ต้องใช้ Algorithmic Techniques ที่แตกต่างกัน
มันจะดีกว่า ถ้าคุณได้ทำ Question เหล่านั้นซึ่งไม่ใช่แค่ คุณจะได้ฝึกแก้ปัญหาที่อยู่ใน Data Structure ลักษณะเดียวกัน แต่ยังรวมถึง Algorithmic Techniques ที่คล้ายคลึงกันอีกด้วย
และสิ่งที่เจ๋งที่สุด คือ Problem-Solving Patterns อย่าง Sliding Window, Fast and Slow Pointers, Topological Sort เป็นต้น การฝึกในรูปแบบ Patterns ข้างต้นเหล่านี้ จะช่วยให้คุณสามารถพัฒนาความสามารถในการ ‘จับคู่ปัญหาใหม่กับปัญหาที่เคยเจอหรือลองทำมาแล้ว’ สิ่งนี้ไม่เพียงแต่จะทำให้การเตียมพร้อมสำหรับ Coding-Interview นั้นน่าสนุกขึ้น แต่ยังช่วยฝึกฝนคุณให้จัดความคิดเป็นระบบระเบียบมากขึ้นอีกด้วย
Coding Patterns ช่วยเพิ่ม ” ความสามารถในการจับคู่ ‘ปัญหาใหม่’ กับ ‘ปัญหาที่เคยเจอหรือลองทำมาแล้ว’ “
Coding Patterns
ในบทความนี้ได้รวบรวม Coding Problem Patterns ประมาณ 20 รูปแบบ ซึ่งเชื่อว่าสามารถช่วยให้ทุกคนได้เรียนรู้ Algorithmic Techniques และสามารถรู้สึกถึงความแตกต่างได้จริง ๆ สำหรับ Coding Interviews ในครั้งต่อไปของคุณ และเมื่อคุณคุ้นเคยกับ Patterns เหล่านี้แล้ว คุณจะสามารถแก้ปัญหาได้มากและหลากหลายขึ้น เรามาดู 20 Coding Problem Patterns ที่ได้ทำการรวบรวมมาให้คุณแล้ว:
- Sliding Window
- Islands (Matrix Traversal)
- Two Pointers
- Fast & Slow Pointers
- Merge Intervals
- Cyclic Sort
- In-place Reversal of a LinkedList
- Tree Breadth-First Search
- Tree Depth First Search
- Two Heaps
- Subsets
- Modified Binary Search
- Bitwise XOR
- Top ‘K’ Elements
- K-way Merge
- Topological Sort
- 0/1 Knapsack
- Fibonacci Numbers
- Palindromic Subsequence
- Longest Common Substring
หวังว่าบทความ แจกฟรี 20 Coding Problem Patterns สำหรับ Software Developer จะช่วยให้คุณมีแนวทางและเพิ่มความมั่นใจมากขึ้นสำหรับ Coding Interviews ครั้งต่อไป และสุดท้ายนี้ อย่าลืมว่า ทางเลือกที่ดีที่สุดก่อนการสัมภาษณ์ คือ การเตรียมตัวอย่างชาญฉลาด และเรียนรู้การแก้ปัญหาโดย Focus ไปที่ Problem Patterns
ตำแหน่งงาน Software Developer ที่กำลังเปิดรับสมัคร
- Software Developer / Mobile Developer คลิกดูเพิ่มเติม
- Java Software Developer คลิกดูเพิ่มเติม
- Full Stack Developer คลิกดูเพิ่มเติม
- หรือ ดูตำแหน่งงาน IT ทั้งหมด
และสามารถส่ง Resume สมัครงานกับเราได้ที่ https://www.ismtech.net/submit-your-resume และให้ ISM Technology Recruitment เป็นอีกหนึ่งตัวช่วย ให้คุณได้ “ชีวิตการทำงานในแบบที่คุณต้องการ”
ISM เชี่ยวชาญในธุรกิจ IT Recruitment & IT Outsourcing โดยเฉพาะ เปิดทำการมากว่า 30 ปี มีพนักงานทุกสายและทุกระดับทางด้าน IT ที่ได้ร่วมงานกับลูกค้าองค์กรใหญ่ที่มีชื่อเสียงและบริษัทข้ามชาติมากมาย