Notes & software courses · Free to learn
Aph's Blog
On this page

เลือกภาษาโปรแกรม

👋 อ่านฟรีทั้งหมดบน Aph's Blog — เนื้อหาภาษาไทย ทำตามทีละหน้าใน sidebar ได้เลย หากมีข้อเสนอแนะหรืออยากให้เพิ่มหัวข้อไหน บอกได้เสมอ

ใช้ภาษาที่ถนัดที่สุดในการสัมภาษณ์ ไม่ใช่ภาษาที่บริษัทใช้

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

ภาษาที่นิยมใช้สัมภาษณ์

ภาษาข้อดีในการสัมภาษณ์
Pythonsyntax สั้น มี built-in เยอะ เขียนเร็ว เหมาะกับ algorithm มาก
Javaพิมพ์เยอะกว่า แต่ collections ครบ นิยมในบริษัทใหญ่
JavaScript/TypeScriptเหมาะถ้าสาย frontend/full-stack ระวังเรื่อง async และ number
C++เร็ว มี STL ครบ แต่ต้องระวัง memory และ syntax ยุบยับ
Goเรียบง่าย แต่ standard library ด้าน DS น้อยกว่า ต้องเขียนเองบ่อย
ข้อยกเว้น

ถ้าตำแหน่งระบุภาษาเฉพาะ (เช่นรับ iOS ต้อง Swift) หรือบริษัทขอให้ใช้ภาษาของ stack เขา ก็ต้องทำตามนั้น แต่กรณีทั่วไป algorithm interview เลือกได้อิสระ

สิ่งที่ต้องคล่องในภาษานั้น

  • โครงสร้างข้อมูลพื้นฐาน: array/list, hash map, set, stack, queue, heap
  • การ sort และ custom comparator
  • การวน loop และ recursion อย่างมั่นใจ
  • การจัดการ string (split, substring, แปลงชนิดข้อมูล)

Python idioms ที่ใช้บ่อยในสัมภาษณ์

ถ้าเลือก Python (แนะนำสำหรับ algorithm) ควรคล่อง built-in เหล่านี้ เพราะช่วยให้เขียนสั้นและเร็วในเวลาจำกัด

python
from collections import defaultdict, Counter, deque
import heapq

count = Counter(nums)          # นับความถี่ทันที
graph = defaultdict(list)      # dict ที่ default เป็น list
q = deque([start])             # queue O(1) ทั้งสองหัว
heapq.heappush(h, x)           # min-heap

# เรียงด้วย custom key
items.sort(key=lambda p: (-p[1], p[0]))
# เปิด/ปิด list comprehension และ enumerate
for i, v in enumerate(nums):
    ...
seen = set()                   # ค้นหา O(1)
หลีกเลี่ยงภาษาที่ไม่คล่อง

อย่าเลือกภาษาเพราะ "ดูเท่" หรือคิดว่าบริษัทชอบ ถ้ายังไม่คล่องจริงจะเสียเวลานึก syntax กลางคัน — เลือกภาษาที่เขียนได้ลื่นที่สุดเสมอ