programmer-coder
สำหรับคนที่อยากจะเริ่มเรียนการเขียนโปรแกรม
ปัญหาแรกๆ ที่พบเจอ หรือ ถามหาคือ
จะเริ่มอย่างไรดี ?
จะเริ่มจากที่ไหนดี ?
หรือหนักหน่อยก็ถามว่าหว่าง A กับ B อะไรดี ?

ในการเริ่มต้นนั้น มีให้ 2 ทางเลือกคือ

  1. ต้องการเริ่มตั้งแต่ศูนย์ แล้วนับ 1, 2, 3 เหมือนการเติบโตของต้นไม้ที่ค่อยๆ แตกกิ่งก้านสาขาไป
  2. ต้องการแบบทางลัด หรือ แบบกึ่งสำเร็จรูป เหมือนกับการคุณไปเดิน shopping ใน IKEA ประมาณนั้น เพื่อหาสิ่งที่เราต้องการ หรือ ใกล้เคียงมาใช้ หรือ แก้ไขต่อไป

เช่นถ้าคุณต้องการสร้างระบบ web application ขึ้นมา
คุณจะสร้างระบบขึ้นมาเอง
หรือคุณจะใช้ WordPress หรือ Drupal

คำถาม
คุณจะเลือกทางไหน ?
คำตอบ จะเป็นเส้นทางที่คุณจะเริ่มทำการเรียนรู้

แล้วจะเริ่มศึกษาจากที่ไหนดีล่ะ ?

ในปัจจุบันมีแหล่งข้อมูลมากมายทาง internet เช่น

  • CodeAcademy.com
  • Code.org
  • LearnCodeTheHardWay.org
  • CodeSchool
  • Udemy

และที่อื่นๆ อีกมากมาย

แต่ส่วนใหญ่จะเริ่มจาก Copy-And-Paste จาก Google หรือ StackOverflow มาซะมากกว่า !!

ต่อมาจะเริ่มมีข้อสงสัยว่า แล้ว Coder, Programmer และ Developer มันแตกต่างกันอย่างไร ?

มันเป็นคำถามสุด classic ที่ถูกถามบ่อยมากๆ
และมันก็ตอบยากมากๆ เสียด้วย
ลองไปดูชื่อตำแหน่งของแต่ละคนสิ …

ดังนั้นลองมาดูกันว่าทั้ง 3 ชื่อนี้มันแตกต่างกันอย่างไร
ผมไปเจอรูปที่น่าจะอธิบายความแตกต่างได้ชัดเจนพอสมควรจาก Hanselman.com

Screen Shot 2558-05-13 at 8.04.59 AM

เขาอธิบายไว้ว่า

Coder

เป็นกลุ่มคนที่เขียน code ได้
แต่ไม่รู้ว่ามันทำงานอย่างไร
รู้เพียงแต่ว่า มันทำงานได้นะ …

กลุ่มนี้มันคุ้นๆ นะ เหมือนออกแนว Copy-And-Paste programming หรือเปล่า ?

โดยที่ Cowboy coder กล่าวไว้ว่า
cowboy-coder

Programmer

เป็นกลุ่มคนที่เขียน code ได้เป็นอย่างดี
เข้าใจ algorithm ในการแก้ไขปัญหาต่างๆ เป็นอย่างดี
แต่ส่วนใหญ่จะทำงานคนเดียว
และคุยกับคนอื่นๆ ไม่รู้เรื่องเท่าไร

Programmer (n) แปลว่า
Screen Shot 2558-05-13 at 9.00.03 AM

แสดงด้วยรูปน่าจะชัดเจนยิ่งขึ้น ว่าคนรอบข้างคุณคิดว่า programmer เป็นอย่างไร ?

Screen Shot 2558-05-13 at 8.57.33 AM

Developer

แน่นอนว่าต้องเขียน code ได้เป็นอย่างดี
เข้าใจพวก algorithm ต่างๆ เป็นอย่างดีเช่นกัน
แต่เข้าใจระบบ และ เครื่องมือต่างๆ มาก
รวมทั้งรู้ และ เข้าใจภาษาโปรแกรมมากกว่าภาษาเดียว

ที่สำคัญ มักทำงานกับคนอื่น หรือเป็นทีมได้ดี
และคุยกับคนอื่นๆ ด้วยภาษามนุษย์รู้เรื่อง
ซึ่งเรื่องการพูดคุย และ ติดต่อสื่อสาร เป็นทักษะสำหรับการทำงานร่วมกัน

ดังนั้นลองกลับมามองตัวเองสิว่า
เราเป็น Coder หรือ Programmer หรือ Developer กันแน่