ผมเรียน JavaScript อย่างไร

4 ปีที่แล้ว project ที่ผมทำมีการเปลี่ยนแปลงครั้งใหญ่คือเปลี่ยนจาก Java Applet มาเป็น JavaScript Ajax API ตามก้นชาวบ้านชาวช่องที่เลิกเขียน Applet กันไปเป็นปีๆ แล้ว

การเปลี่ยนครั้งนั้นนับว่าครั้งใหญ่เพราะทุกคนทั้ง dev, qa และ support ไม่มีใครรู้ JavaScript หรือ Ajax เลย ทาง dev และ qa นั้นนำร่องไปก่อนอยู่หลายเดือนกว่าที่ผมจะมีเวลาว่างไปศึกษามัน blog นี้ก็จะมาเล่าให้ฟังว่าผมศึกษา JavaScript ผ่านทาง API ตัวนั้นยังไง

  1. dev ให้ source code ของ api และ test page (version beta ทั้งคู่) มา
  2. qa สอนผมลง ajax server (เขียนด้วย c++), วิธี set environment ต่างๆ
  3. dev บอกผมว่าให้ใช้ firebug (สมัยนั้นยังไม่ support chrome) จับ network มาดู message ที่วิ่งระหว่าง server และ client
  4. ผมอ่าน source code, ลอง debug ทีละบรรทัดด้วย firebug และลองใช้ console.log ไล่ flow ของ code
  5. ผมลองแก้ code ต่างๆ เพื่อดูว่ามันจะทำงานยังไง
  6. syntax ไหนไม่เข้าใจว่าทำไม dev เขียนแบบนี้ก็ลอง google ดู ถ้ายังไม่เข้าใจก็ถาม dev ว่าทำไมเขียนแบบนี้ (วะ)
  7. พอ api ออก version production dev ก็สอนผมใช้เวบ jsbeautifier เพื่อ decomplie minify code

ส่วนพวก business logic ต่างๆ (ไม่เกี่ยวกับ syntax code) ส่วนใหญ่ก็ถาม dev เอาครับ มีบ้างที่มันซับซ้อนจน dev/qa ต้องทำเป็น powerpoint สอนทั้งทีมเลยก็มี

หลักๆ จะเห็นว่าวิธีการคือมีคนโยน code มาให้ –> ลองเล่น –> สงสัยก็ถาม มาตั้งแต่ version beta วิธีการนี้คงทำให้ผมพอที่จะเขียน code และแก้ไขปัญหาลูกค้าที่ใช้ JavaScript API ตัวนี้ได้ แต่ถามว่าเข้าใจ JavaScript ลึกๆ ไหม ก็ต้องตอบว่าไม่เลยครับ – -”

ถาม: ทำไมไม่เขียน CoffeeScript ครับ
ตอบ: ควย Code ที่ dev เขียนและลูกค้าใช้งานเป็น JavaScript เฟ้ย

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 )

Google photo

You are commenting using your Google 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 )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.