นิยามและเส้นทางสู่การเป็น “Dev เทพ”

Kris B
KBTG Life
Published in
3 min readNov 16, 2021

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

คำถามนี้คงไม่มีคำตอบตายตัว แต่ด้วยความอยากรู้ว่าในสายตาของ Dev ที่เก่งๆ คำจำกัดความของ Dev เทพเป็นแบบไหน ในบทความนี้ผู้เขียนขอมาพูดคุยกับ Dev ผู้มากประสบการณ์และเป็นที่ซูฮกถึงเรื่องฝีมือการโค้ดใน KBTG อย่างพี่จิ จิรัฎฐ์ Assistant Managing Director — Software Development Excellence พี่โจ ชูพงศ์ Senior Development Excellence Engineer และพี่เค ทินพัฒน์ Principal Development Excellence Engineer จากทีม DevX ว่าเขามองคำนี้กันยังไงกันค่ะ

พี่โจ พี่จิ และพี่เค จากทีม DevX, KBTG

ก่อนอื่นอยากให้พี่ๆ เล่าประสบการณ์ด้าน Dev ของตัวเองให้ฟังคร่าวๆ หน่อยค่ะ

พี่จิ: หลังจากจบด้านวิศวะคอมพิวเตอร์ งานแรกของพี่คือเป็น Dev ทำพวกโปรแกรมเทรดหุ้นให้กับบริษัททางด้านการลงทุนครับ ทำได้แค่ปีเดียวก็ย้ายไปทำบริษัทให้คำปรึกษาด้าน Search Engine ที่สวิสเซอร์แลนด์ เขียนโปรแกรม Linguistic ให้สามารถเสิร์ชภาษาไทยได้ดี แล้ว Implement ให้กับลูกค้าในหลายๆ ประเทศ ผมทำงานเป็นเหมือน Vendor ทำทั้งเซลล์ ที่ปรึกษา คนติดตั้ง แทบจะครบวงจร จากนั้นก็ได้รับคำชวนจากพี่ที่ผมนับถือคนนึงให้มาทำที่ KBank ในตำแหน่ง Solution Architect คอยให้คำปรึกษาและคุม Vendor ตอนนั้นผมดูในขาของ Core Bank ตัวใหม่ที่เขากำลังนำเข้ามา และขาของ Customer Information ระบบจัดเก็บข้อมูลของลูกค้าและระบบ Data Hub ที่เป็นระบบกลางเก็บข้อมูลทั้งธนาคาร ทำงานในเชิงออกแบบ Solution ต่างๆ พอ KBTG เปิดตัว ผมก็ถูกย้ายมาทำโปรเจค Innovation ที่นี่ ทำให้ได้กลับมานั่งเขียนโค้ดจริงๆ จนมาถึงช่วงต้นปี 2021 พี่ทีม (ทัดพงศ์ พงศ์ถาวรกมล Senior Principal Visionary Architect) และพี่เปิ้ล (จรัสศรี พหลโยธิน Chief IT Operation Officer) ได้ชวนมาทำแผนก DevX แทน

พี่เค: พี่ทำงานสาย Dev มาตลอดเหมือนกันครับ หลังเรียนจบก็มาทำงานกับบริษัทที่ทำไอทีโซลูชันและเป็น Consult ด้านเทคโนโลยี Enterprise Java สมัยนั้นเป็นยุคของ J2EE ใช้เครื่องมือ เช่น WebSphere และ WebLogic เป็นต้น ซึ่งหนึ่งในบริษัทว่าจ้างคือ KBank นั่นเอง ตอนนั้นทาง KBank ตั้งโปรเจค EAI (Enterprise Application Integration) เพื่อทำหน้าที่เป็นตัวกลางเชื่อมต่อและแลกเปลี่ยนข้อมูลระหว่างระบบต่างๆ ภายในธนาคาร จึงได้มีโอกาสมาทำโปรเจคนี้ตั้งแต่ช่วงก่อกำเนิดแรกๆ พอเสร็จจากโปรเจคนี้ก็เปลี่ยนไปทำกับลูกค้าเจ้าอื่นต่อ จนถึงจุดนึงที่รู้สึกอยากเปลี่ยนงาน ก็พอดีมีพี่ที่อยู่ที่ KBank ชวนไปสัมภาษณ์ เลยได้เข้ามาช่วงที่ KBank กำลังทำโปรเจค K-Transformation ที่เป็นการยกเครื่องระบบ IT ของธนาคารครั้งใหญ่ พี่ได้อยู่ในทีม Integration ทำ Solution ในการเชื่อมต่อ Core Bank ตัวใหม่เข้ากับระบบต่างๆ ของธนาคารที่มีอยู่ดั้งเดิมเพื่อให้สามารถทำงานร่วมกันได้ หลังจากจบโปรเจค K-Transformation พี่กลับไปเป็น Tech Lead ดูทีม EAI เต็มตัว จากนั้นมีโอกาสได้ทำโปรเจค Open API พัฒนาช่องทางเชื่อมต่อระหว่างธนาคารกับพาร์ทเนอร์ต่างๆ เพื่อให้บริการใหม่ๆ ทั้งที่เป็น Financial และ Non-Financial คือทำงานกับระบบด้าน Integration ที่ต้องรองรับปริมาณรายการจำนวนมากมาโดยตลอด จนพี่จิชวนมาอยู่แผนก DevX ครับ

พี่โจ: งานที่แรกของพี่เป็นบริษัทให้คำปรึกษาและพัฒนาไอทีโซลูชันเจ้าหนึ่งครับ ได้มีโอกาสเขียนโปรแกรมหรือพัฒนาระบบให้กับบริษัทเอกชน รวมไปถึงหน่วยงานราชการหลายแห่ง ในระหว่างนั้นพี่ก็รับงานนอกไปด้วย ด้วยความที่ทุกงานเป็นงานเร่ง พี่พยายามหาวิธีให้สามารถทำงานจบไว ไม่ว่าจะเป็นการทำ Library ขึ้นมาใช้เอง หรือการไปสรรหาเครื่องมือต่างๆ บนอินเทอร์เน็ตสมัยนั้นมาใช้ จากนั้นได้ย้ายไปทำงานในบริษัทต่างชาติที่ให้บริการด้านการเงิน อยู่ที่นี่ก็ได้เรียนรู้ Business เกี่ยวกับการเงินเป็นครั้งแรก นั่นคือการซื้อขายเงินตราต่างประเทศ (FX) และผลิตภัณฑ์ในธุรกิจตลาดทุน ทำให้ต่อมาตอนที่เปลี่ยนงานมาเป็น Outsource ให้กับ KBank ก็ได้เข้าร่วมเป็นหนึ่งในสมาชิกของทีมพัฒนา Core System ตัวใหม่ให้กับฝ่ายธุรกิจตลาดทุนของธนาคาร แล้วได้ Convert มาเป็น Solution Architect ที่เน้นไปทางการออกแบบซอฟต์แวร์ ทำให้ห่างหายจากการเขียนโปรแกรมไปพักใหญ่ จนถึงตอนที่ย้ายมา KBTG พี่ก็ได้รับโอกาสเป็น Tech Lead ฟอร์มทีมใหม่ ทำการออกแบบและพัฒนาระบบซื้อขายเงินตราต่างประเทศขึ้นใหม่เพื่อไปใช้งานที่จุดแลกเปลี่ยนเงินตราต่างประเทศ (FX Booths) ที่สนามบินสุวรรณภูมิ ดอนเมือง และภูเก็ต เป็นโปรเจคที่เริ่มทำกันตั้งแต่ศูนย์จน Roll Out กันเลยทีเดียว หลังจากนั้นก็มีไปทำโปรเจคอื่นๆ ที่เน้นในเรื่องของ Performance และ Reliability จนได้รับการชักชวนมาอยู่ DevX นี่แหละครับ

มาถึงหัวข้อบทสนทนาของเราในวันนี้ นิยามของ Dev เทพคืออะไร?

พี่จิ: Mindset ที่เรามักจะได้ยินตอนเด็กๆ หรือตอนนี้ก็ยังมีให้เห็นอยู่บ้างตามโซเชียลคือ Dev เทพคือคนที่เขียนโค้ดสั้นมาก ดูแล้วเท่สุดๆ แต่จากประสบการณ์ของผม การเขียนโค้ดที่ดีคือโค้ดต้องอ่านเข้าใจง่าย ตรงไปตรงมา แก้ไขง่าย มี Structure ที่ดี ไม่ใช่การเขียนโค้ดหนึ่งบรรทัดจบแต่อ่านไม่รู้เรื่อง แล้วสิ่งนึงที่ผมชอบสอนน้องๆ คือคนที่เข้าใจโค้ดและการทำงานของคอมพิวเตอร์ลึกๆ จะมีภาษีกว่าคนที่เขียนโปรแกรมแล้วได้ผลลัพธ์ถูก แต่ไม่เข้าใจว่าทำไมถึงออกมาเป็นอย่างนั้น คนที่เก่งและเจ๋งจะต้องเข้าใจว่าจริงๆ แล้วที่ได้ผลลัพธ์แบบนี้มา การทำงานข้างหลังของบรรทัดนี้เป็นยังไง ยิ่งรู้ลึกเท่าไหร่ ยิ่งเก่งเท่านั้น ถ้าสามารถเข้าใจการทำงานของทุกฟังก์ชัน ทุก Library ทุก Data Structure ที่เราเขียน ก็จะสามารถต่อยอดความรู้หรือไปเขียนสิ่งที่แอดวานซ์ได้ดีกว่าครับ

พี่โจ: เมื่อเทียบกับสมัยก่อนที่พวกพี่ยังเรียนอยู่หรือเพิ่งจบใหม่ๆ ลักษณะการทำซอฟต์แวร์และการหาข้อมูลของ Dev เปลี่ยนไปพอสมควร สมัยนี้เรามี Community เยอะมาก ทั้งกูเกิล เว็บบอร์ด ยูทูป และแหล่งเรียนรู้ออนไลน์อื่นๆ เต็มไปหมด ดังนั้นในปัจจุบันเราจะเห็น Dev กลุ่มที่เป็นนักเสิร์ช (พี่เค: Stack Overflow Developer!) เริ่มต้นด้วยการเสิร์ช พอเจอโค้ดที่คิดว่าใช่ก็ก็อปมาโมดิฟายเป็นอันจบ แล้วไปเจอกันที่เทส แต่สมัยก่อนโปรแกรมเมอร์จะเขียนอะไรยากๆ แต่ละทีหรือไปเจอโจทย์ที่ไม่เคยทำมาก่อน ก็จะต้องอาศัยการอ่านและการศึกษาค้นคว้าด้วยตนเอง ลองผิดลองถูกหลายครั้งกว่าจะได้ นอกจากนี้ทัศนคติอย่างนึงที่พี่รู้สึกว่าอาจจะเป็นอุปสรรคต่อการเป็น Dev เทพคือการมองว่าทุกภาษาของการ Programming เป็นเพียงเครื่องมือ ใช้ได้เหมือนกันหมด คนที่ทำการศึกษาภาษาสักอย่างหนึ่งแค่แป๊บเดียวแล้วย้ายไปทำอีกอย่างหนึ่งไปเรื่อยๆ พวกเขามักจะพลาดโอกาสในการเรียนรู้ฟีเจอร์หรือเทคนิคที่แอดวานซ์ของแต่ละภาษาไป

พี่เค: เห็นด้วยกับทั้งสองคนครับ การเป็น Dev ที่เก่งไม่ใช่แค่ว่าไปจำเขามาเฉยๆ ว่าต้องเขียนโค้ดแบบนี้ ถ้าอยากให้ทำงานอย่างนี้ การรู้ลึกรู้จริงเป็นปัจจัยนึงเลยของการเป็น Dev เทพ นอกจากนี้ผมมองว่าความเทพต้องประกอบด้วยด้านอื่นๆ ด้วย ไม่ใช่แค่ด้าน Technical อย่างเดียว เวลาทำงานจริง คนที่จะทำงานได้มีประสิทธิภาพที่ดีไม่ใช่แค่เขียนโค้ดสั้นๆ แล้วตัวเองอ่านออกคนเดียว แต่ต้องมีทักษะอื่นๆ ด้วย เช่น ทักษะในการทำความเข้าใจ Requirement แล้วสามารถแปลงเป็นโค้ดได้อย่างถูกต้องและเหมาะสม หรือในเรื่องของการสื่อสาร เขาสามารถนำการออกแบบโปรแกรมไปเล่ารายละเอียดให้คน Non-Technical ฟังแล้วเข้าใจมั้ย

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

พี่โจ: พี่คิดว่างานโค้ดเป็นเหมือนงานหัตถกรรม หรืองานวรรณกรรมก็ได้ เหมือนการเขียนนิยายที่เราต้องค่อยๆ เขียนทีละตัวอักษรแล้วร้อยเรียง Logic ของเรา ให้คอมพิวเตอร์เข้าใจไม่พอ ต้องให้เพื่อนเราเข้าใจด้วย เวลาเขียนโปรแกรมที่ซับซ้อน เราต้องเขียนให้คลีน และทำงานออกมาถูกต้อง แต่ตอนนี้สิ่งที่เรามักเห็นคือการเขียนโค้ดกลายเป็นงานตัดแปะ เราไม่ได้ค่อยๆ ถักทอทีละนิด แต่เหมือนนำเศษผ้าหลายๆ ชิ้นมาแปะแล้วแค่ยึดให้มันติดกัน อีกประเด็นหนึ่งที่อยากฝากไว้ให้คิดกับคำว่า Dev เทพ ยกตัวอย่างเทพ Python อาจจะไม่จำเป็นจะต้องแก้ไขปัญหาทุกอย่างได้ด้วย Python แต่เทพ Python ควรจะรู้จุดแข็งจุดอ่อนของ Python และรู้ว่าเมื่อไหร่ควรใช้หรือไม่ควรใช้ Python แล้วปล่อยให้เทพสาขาอื่นเขาโชว์ฝีมือแทน

ถ้าอย่างนั้นน้องๆ แบบไหนในบริษัทที่พี่มองว่ามีแววของการเป็น Dev เทพบ้างคะ

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

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

พี่จิ: เรื่องขวนขวายที่พี่เคบอกเป็นเรื่องที่สำคัญมาก เพราะแม้แต่โค้ดที่บริษัทมีเมื่อปีก่อนก็อาจจะ Obsolete ไปแล้ว คนที่มาทำก็ต้องหาวิธีใหม่มาช่วยโมดิฟาย ดังนั้นน้องที่ฉายแววคือคนที่เห็นสิ่งนี้แล้วรู้ว่ามีเทคโนโลยีใหม่ใดที่ดีกว่า มีการศึกษาวิจัยและนำมาใช้ ประกอบกับสิ่งที่พี่โจพูด คือการนำความรู้มาแชร์ให้คนรอบข้าง เป็นคนที่สร้างบรรยากาศการเรียนรู้และแลกเปลี่ยน พร้อมชวนคนมาเล่นและพัฒนาตัวเองด้วยกัน

ข้อแนะนำสำหรับโปรแกรมเมอร์ที่กำลังมุ่งหน้าสู่การเป็น Dev เทพ

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

พี่เค: ถ้าอยากจะหาตัวอย่างว่าเขียนโค้ดแบบไหนถึงจะสวยอย่างที่พี่จิว่า พี่แนะนำให้ไปดู Open Source โปรเจคที่มีชื่อเสียงครับ เลือก Framework หรือ Library ซักตัวที่สนใจ ส่วนใหญ่จะเป็นโค้ดที่มีคุณภาพดี นอกจากจะได้เห็นว่าโค้ดที่ “สวย” เป็นอย่างไรแล้ว ยังสามารถเรียนรู้ Practice หรือ Pattern ที่ดีในการเขียนโค้ดจากโปรเจคเหล่านี้ได้อีกด้วย

พี่จิ: เสริมว่าการที่จะได้ครูเก่ง ง่าย และเร็ว คือการไป Contribute ให้กับ Open Source เลยด้วยซ้ำ โดยปกติแล้วในวงการ Open Source ใครๆ ก็แก้โค้ดได้ แต่โค้ดที่ผ่านมาได้จะถูกรีวิวทั้งในมุมศาสตร์และศิลป์ ต้องอ่านรู้เรื่อง ต้องมีการเทสที่ดี ต้องมีโลจิคที่ถูก เพราะฉะนั้นคนที่สามารถ Contribute ในโปรเจค Open Source ระดับใหญ่ที่คนใช้ทั้งโลกถือว่าเก่งมากๆ เพราะจะถูกกรองหลายชั้นมาก แถมยังทำให้เราได้เรียนรู้แนวคิดต่างชาติเก่งๆ อีกด้วย

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

และที่สำคัญสุดๆ ตอนนี้ทาง KBTG มีโครงการ KBTG Blind Audition สำหรับตำแหน่ง Software Engineer, Data Engineer, Machine Learning Engineer และ Innovation Engineer ที่เราจะเปิดให้ทุกคนที่สมัครเข้ามาภายในวันที่ 1–30 พฤศจิกายน 2021 มีสิทธิ์สอบสัมภาษณ์ก่อน แล้วค่อยรีวิวเรซูเม่ท้ายสุด เปิดพื้นที่ให้พิสูจน์ฝีมือกันเต็มๆ ไปเลย ใครที่สนใจสามารถเข้าไปดูรายละเอียดเพิ่มเติมได้ที่โพสนี้ค่ะ

สำหรับชาวเทคคนไหนที่สนใจเรื่องราวดีๆ หรืออยากเรียนรู้เกี่ยวกับ Product ใหม่ๆ ของ KBTG สามารถติดตามรายละเอียดกันได้ที่เว็บไซต์ www.kbtg.tech

--

--