ลักษณะสำคัญของ JavaScript ที่ Java Developer ควรรู้

เวลาผมสัมภาษณ์งาน Java Developer หากผู้สมัครอ้างว่าเขียน JavaScript ได้คล่อง ผมมักจะถามคำถามนี้เสมอ

อะไรคือลักษณะสำคัญของ JavaScript ที่ Java Developer ควรรู้

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

ผู้สมัครที่ดี ควรจะเข้าใจว่าสองภาษานี้แตกต่างกันโดยสิ้นเชิง  แล้วอธิบายข้อแตกต่างตามหัวข้อข้างล่าง (ไม่จำกัดอยู่แค่นี้)

  1. Interpreted vs. Compiled
  2. Dynamic typing vs Static typing
  3. Prototype vs Class-based
  4. Function vs Block scope
  5. Global variable กับ IIFE
  6. Passing function and Closure
  7. “this” variable behaves differently
  8. == vs ===

ในบล็อคถัดๆไป ผมจะค่อยๆไล่แต่ละหัวข้อแบบลงลึกครับ

จากประสบการณ์ ผู้สมัครน้อยคนมากที่สามารถตอบได้เกินสามข้อแรก โดยส่วนตัว คนที่อธิบายได้ถึง 4-6 ข้อ ผมจะให้ผ่านในระดับที่เข้าใจภาษาพอที่จะทำงานได้ แต่คนที่อ้างว่าเป็นระดับ expert และเขียน JavaScript มาเกินหนึ่งปี ถ้าผมบอกคีย์เวิร์ดในแปดหัวข้อนี้แล้วไม่สามารถอธิบายได้ ผมจะผิดหวังมากๆ

ทำไมคำถามพวกนี้ถึงสำคัญ?

การเข้าใจถึงภาษาที่ตนเองใช้เป็นอย่างดี เป็นตัวชี้บอกคุณภาพของโปรแกรมเมอร์ครับ

Java โปรแกรมเมอร์หลายๆคนมักจะเถียงว่า เรื่องเหล่านี้เป็นเรื่องจุกจิก ไม่มีความจำเป็นที่จะต้องรู้ก็เขียน JavaScript ได้  ถ้าอยากรู้ แค่หาใน StackOverflow ก็เจอแล้ว

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

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

  1. #1 by Nid on July 21, 2016 - 11:29 am

    ตอนนี้ยังทำงาน nl ไหมคะ รัฐไหน บริษัทอะไรดีไหมคะ
    มีเบอร์โทรไหมคะ. ใช้lineไหมคะ.
    พี่ใช้line. :nidpy. พอสะดวกมาทักได้ไหมคะ

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: