#1 tech recruiter in thailand

Meta Skills ที่ Software Engineer ควรมี

See the original English version of this article here

บทความนี้เขียนขึ้นโดย Doug Arcuri ซึ่งเขาจะมาบอกถึง Meta Skills ที่ Software Engineer ควรมี โดยถ่ายทอดจากความรู้ที่ได้จากหนังสือและประสบการณ์ของเขา แม้ในบทความจะเจาะจงสำหรับ Software Engineer แต่คนไอทีใน Field อื่นๆ ก็สามารถนำไปใช้งานได้เช่นกัน

หลายคนคงเคยได้ยินคำว่า Hard skills หรือ Soft skills มาบ้างแล้ว แต่อาจยังไม่คุ้นกับ Meta skills กันสักเท่าไหร่ Meta skills เป็นความเชื่อเรื่องการเรียนรู้ตลอดชีวิต ความสามารถในการรับมือกับความไม่แน่นอน ความสามารถในการเปิดรับความรู้ใหม่ๆ โดยไม่ยึดติดกับความรู้เดิมๆ ซึ่งมีความสำคัญตั้งแต่อดีตและต่อไปในอนาคต ซึ่งจะเห็นว่า ทักษะนี้มันเข้ากับยุคปัจจุบันที่มีการเปลี่ยนอย่างรวดเร็วเป็นอย่างมาก

มีทักษะเฉพาะใดบ้างที่ Software Engineer ควรฝึกฝน

ในความคิดเห็นของเขา ถ้ามองถึงในภาพรวมทั้งหมด ก็สามารถพูดได้ว่า เป็นการฝึกฝนในเรื่อง Correctness และ Pattern Recognition ซึ่งนี่เป็นทักษะที่ค่อนข้างเฉพาะทางสำหรับคนที่เป็น Software Engineer ซึ่งเรามาดูรายละเอียดกันว่าทำไมถึงเป็นทักษะเหล่านี้

Correctness

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

ความถูกต้องในแง่มุมของ Engineering จะมองถึงว่า เราจะทำให้ วิธีการเพื่อให้ Solution สำหรับธุรกิจสามารถถูกแก้ไขได้อย่างต่อเนื่องด้วยความน่าเชื่อถือสูง ได้อย่างไร มันเป็นเรื่องความสมดุลของกลยุทธ์ (designing) และกลวิธี (execution) ซึ่งเรื่องนี้คุณสามารถดูได้ในบทที่ 4 Writing Correct Programs ของหนังสือ Programming Pearls

“การทำให้ Code ง่ายและไม่ซับซ้อน ถือเป็นกุญแจสำคัญสำหรับเรื่อง ความถูกต้อง – Jon Bentley”

Pattern Recognition

Pattern recognition หรือ การรู้จำแบบ นำไปสู่แนวคิดของการ Reuse เพื่อแบ่ง Code ออกเป็นส่วนๆ เราต้องสังเกตดูว่ามีอะไรที่มีความซ้ำซ้อน หรือมองหาส่วนที่จะนำมา Reuse และ Refactor code ส่วนที่มีความซับซ้อน มันเป็นสิ่งที่ Software Engineer ทำได้ดี เพราะพวกเขาใส่ใจในรายละเอียดเหล่านั้นอย่างระมัดระวัง และพยายามลดความซับซ้อนเหล่านั้นลง

Pattern recognition ถูกกล่าวถึงอย่างมากมายใน Community และมี Source มากมายที่จะสามารถอ่านเทคนิคของพวกเขา จุดเริ่มต้นที่ Doug ได้เรียนรู้เกี่ยวกับทักษะนี้อยู่ในบทที่ 2 The Evils Of Duplication ของหนังสือ The Pragmatic Programmer

“ทำให้ง่ายต่อการ Reuse, DRY — Don’t Repeat Yourself – Andrew Hunt และ Dave Thomas”

A Teachable Moment

คำถามที่น่าสนใจต่อไปคือ แล้วจะสอนทักษะเรื่อง Correctness กับ Pattern Recognition ได้อย่างไร ซึ่งแน่นอนว่าเป็นสิ่งที่สอนกันได้

ค้นหาหนังสือข้างต้น กำหนด Environment และทำงานโดยแสดงตัวอย่าง กำหนดความคาดหวังของการเรียนรู้และฝึก Meta skills เหล่านี้ในขณะที่ส่งมอบ Value ให้กับธุรกิจ คำถามคือ ทำไม? คำตอบคือ ความซับซ้อน นี่คือการลงทุนที่ดีที่สุดในการเรียนรู้ทักษะการปรับสมดุลของความซับซ้อน มันยังส่งผลให้ Engineer มีความมั่นใจมากขึ้นเรื่อยๆ อีกด้วย

หนังสืออีกเล่มที่น่าสนใจเป็นหนังสือของอาจารย์ของมหาวิทยาลัย Stanford ที่สอนเกี่ยวกับเรื่องทักษะเหล่านั้น และได้เขียนหนังสือออกมาเล่มหนึ่ง คือ A Philosophy Of System Design ซึ่งแนะนำให้อ่านบทที่ 13

“วิศวกรมักจะเน้นเรื่องรายละเอียด เราชอบสิ่งที่มีรายละเอียดและสามารถจัดการมันได้ดีมาก นี่เป็นสิ่งสำคัญสำหรับการเป็น Engineer ที่ดี แต่ Software Designers ที่ยอดเยี่ยมสามารถขยับออกห่างจากรายละเอียดและนึกถึง System ในระดับที่สูงขึ้น – John Ousterhout”

สรุป

ในความเห็นของ Doug, Correctness และ Pattern Recognition ถือเป็นทักษะที่ Software Engineer ควรพยายามทำความเข้าใจและทำได้ดี ผลลัพธ์ที่ได้ ก็คือ Software ที่มีคุณภาพสูง โดยพื้นฐาน Correctness และ Pattern Recognition เป็นสิ่งที่ไปด้วยกันกับ ผลของความซับซ้อน (หรือที่เรียกกันว่า Cognitive Load) จำเป็นต้องมีวิธีการสร้างสมดุลระหว่างทั้งสองสิ่งเพื่อลดความ

ISM Technology Recruitment Ltd. (#1 Tech Recruiter in Thailand) เราเชี่ยวชาญในธุรกิจ IT Recruitment & IT Outsourcing โดยเฉพาะ เปิดทำการกว่า 28 ปี มีพนักงานทุกสายและทุกระดับทางด้าน IT ที่ได้ร่วมงานกับลูกค้าองค์กรใหญ่ที่มีชื่อเสียงและบริษัทข้ามชาติมากมาย หากคุณเป็นคน IT ที่อยากทำงานท้าทายและร่วมงานกับองค์กรชั้นนำ สามารถฝากประวัติการทำงาน (Resume) ของคุณไว้กับ ISM ได้ที่ https://www.ismtech.net/submit-your-resume แล้วคุณจะพบว่าอนาคตและโอกาสก้าวหน้ากำลังรอคุณอยู่

Source:  https://hackernoon.com/

en