,

Overthinker Coding Logic


มีคำถามสนุกๆมาให้ลองหาคำตอบไปด้วยกันค่ะ ก่อนเลื่อนลงไปอ่านบทความนี้ ลองคิดเล่นๆกันนะคะว่า 


“ทำไมคนที่ชอบคิดแบบตรรกะ ถึงเขียนโค้ดไม่ได้?” 


ตรรกะ (Logic) คืออะไร : หลักหรือวิธีคิดที่มีเหตุมีผล ชัดเจน และเป็นระบบ เช่นใช้สำหรับ

  • แยกแยะว่าอะไร จริง/เท็จ
  • วิเคราะห์ปัญหาอย่างมีระบบ
  • อธิบายความสัมพันธ์ของแนวคิดต่างๆ

ทำไมการเขียนโปรแกรมต้องใช้ตรรกะ?

การเขียนโปรแกรมต้องใช้ ตรรกะ ก็เพราะว่า คอมพิวเตอร์ไม่เข้าใจอารมณ์ หรือความคลุมเครือแบบมนุษย์

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

ในทางทฤษฎีแล้วคนที่เขียนโปรแกรมได้ดี จึงควรเป็นคนที่มีตรรกะที่ดี

แต่ๆว่ามนุษย์ไม่ใช่คอมพิวเตอร์ มนุษย์เราซับซ้อนกว่านั้นมาก มนุษย์ที่มีตรรกะที่ดี อาจจะเขียนโปรแกรมไม่ได้เลยก็ได้


ลองถาม AI ดูซักนิดว่าคิดว่ายังไงกับคำถามนี้

Some Logical is perfectionist

อย่างที่เกริ่นไปข้างบน ตรรกะจำเป็นสำหรับโปรแกรมมิ่ง แต่โค้ดดิ้งมันยุ่งยากมากกว่า จะใช้ภาษาอะไรดี Framework ล่ะ หรือไป API ดี คู่มือก็อ่านยาก คนให้ requirement พูดภาษาโปรแกรมเมอร์ไม่ได้ โปรแกรมเมอร์ไม่เข้าใจธุรกิจ โปรแกรมพังแบบดีบัคตรงไหนดี คนที่ตรรกะจ๋ามากๆ บางครั้งต้องการความชัดเจนแบบตรงไปตรงมา ความซับซ้อน ตัวเลือกที่มากมายข้างบน มักจะทำให้คนกลุ่มนี้หมดแรง

พวกตรรกะเยอะๆ บางทีก็คิดเยอะเกิน (overthinking)

กลุ่มนี้บางทีก็คิดเป็นภาพใหญ่ คิดมาก เช่น หิวข้าว แต่คิดว่ากินอะไร วัตถุดิบซื้อที่ไหน ร้านไหนถูกกว่ากัน แคลฯเกินมั๊ย รูปต้องสวย  จานต้องสวย กินเสร็จต้องเก็บล้างยังไง กับบางคนแค่เปิดตู้เย็น เจอข้าวผัดกระเพราะ ยัดใส่ไมโครเวฟก็ได้กินอิ่มเหมือนกัน

Coding ≠ Math

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

Syntax อิหยังวะ มันคืออีกภาษา

ด้วยความคิดเยอะของพวกตรรกะจ๋าๆ พอต้องมานั่งเรียนรู้ “ภาษา” ใหม่ๆ ที่ไวยากรณ์หรือ syntax เป็นโลกอีกใบ บางครั้งก็ไม่ได้ตรงไปตรงมา แถมยังเปลี่ยนโคตรเร็ว ต้องลองผิดลองถูกตลอดเวลา คนคิดเยอะก็เครื่องรวนได้ง่าย


มาลองดูคำตอบจากการสัมภาษณ์เพื่อนๆของเรากัน

Director of Product management

“จริงๆตอนเขียนโค้ดก็ชอบนะ สนุกดี แต่ถ้าต้องมานั่งโค้ดทุกวัน run แล้วก็ debug มันเป็น routine ที่เราไม่ถนัด อยากทำอะไรที่มันได้มุมมองกว้าง ปะติดปะต่อ product ในมุมมองที่เป็น global มากกว่า”

Senior Specialist

“ตอบยาก ถ้าให้คิดเร็วๆ ว่าบางคนชอบแกะชอบแก้ แต่ไม่ชอบสร้างนะ เหมือนคนซ่อมรถ กับคนสร้างรถ ก็ไม่เหมือนกัน คนซ่อมรถต้องมีลอจิก คนสร้างรถต้องมีภาพในหัวแล้วค่อยๆ ประกอบร่างจากสิ่งที่ไม่มีอยู่ มันใช้ลอจิกเหมือนกัน แต่เวลาลงมือทำมันคนละฟีลเลย”

PHD teacher

มองว่าคงขาดแรงจูงใจในการเรียนรู้เลยอ่ะครับ ถ้าเขาใช้ logic ได้ แสดงว่าเขาก็น่าจะมี potential ที่จะ code แล้วนะครับ 😅

คุณแม่ลูกสอง ภรรยาเจ้าของ software house

เพราะว่ามันต้องใช้เวลาในการอ่าน ทำความเข้าใจลอจิก นี่พี่ทำแป้ป ๆ ลูกเรียก ทำแป้ปๆ ต้องไปทำกับข้าว กลับมาอีกวันลืม 555


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

สรุปว่าคุณได้คำตอบรึยังคะ ว่าทำไมคนที่ตรรกะเจ๋งๆบางคนถึงเขียนโปรแกรมไม่ได้??

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *