เตรียมตัวกันให้พร้อม สำหรับลงสนามประลองฝีมือกับ TechJam 2019 by KBTG การแข่งขันทางด้านไอทีที่ปีนี้มาในคอนเซ็ปท์ Deep Jam โดย Deep ในทีนี้หมายถึงการเป็น “ตัวจริง” ที่รู้ลึก รู้จริง และสามารถนำความรู้ไปประยุกต์ใช้ให้เกิดประโยชน์ได้ มาใน 3 หมวดคือ

1. Deep Code แข่งเขียนโปรแกรมเพื่อแก้ไขปัญหา

2. Deep Data แข่งขันวิเคราะห์ข้อมูลให้ได้มาซึ่งคำตอบ

3. Deep Design แข่งขันการออกแบบสื่ออย่างสร้างสรรค์รวมถึง UI/UX (การออกแบบหน้าตาระบบและทำให้ผู้ใช้งานระบบมีประสบการณ์ใช้งานที่ดี)

สำหรับใครที่ไม่รู้จัก TechJam 2019 by KBTG งานนี้เป็นการแข่งขันที่จัดมาเป็นปีที่ 3 แล้วโดยทางทีมงานคุณภาพจาก KASIKORN Business-Technology Group (KBTG) เพื่อส่งเสริมการสร้างประโยชน์ สร้างสรรค์เทคโนโลยีแห่งอนาคตให้ประเทศไทยเข้าสู่ยุคของ Digital Transformation (การเปลี่ยนแปลงบริการ, ผลิตภัณฑ์, รวมถึงการดำเนินงานต่าง ๆ ของธุรกิจให้ดีขึ้นโดยใช้เทคโนโลยีเข้ามามีส่วนผลักดัน)

โดยการแข่งขันหลัก ๆ จะมี 2 รอบ รอบแรกสมัครและแข่งออนไลน์ทั้งหมดเลย (อยู่จังหวัดไหน ภาคไหนก็ได้ทันทีไม่เหมือนปีที่แล้ว) น่าลองสมัครไปลองเล่นมากก และรอบชิงชนะเลิศแข่งกัน 2 วัน 1 คืนที่ อาคาร KBTG เมืองทองธานี ถ้าใครผ่านเข้ารอบนี้ก็ลุ้นรางวัลแน่ ๆ

ทางแอดมิน เพจสอนแฮกเว็บแบบแมว ๆ ได้มีโอกาสไปเข้าร่วมงานแถลงข่าว เลยเก็บข่าวและสาระที่น่าสนใจมาฝาก งานนี้แนะนำให้ทุกท่านได้อ่าน เพื่อที่จะไม่พลาดการเข้าร่วมแข่งขันที่จะช่วยพัฒนาฝีมือตนเอง รวมถึงยังมีสิทธิ์ชนะได้เงินรางวัลหลักแสนบาทพร้อมบินไปเที่ยว Silicon Valley อีกด้วย ٩ (a ❛ ᴗ ❛ a) ۶

รางวัลสำหรับผู้ชนะการแข่งขัน

ผู้ชนะ และรองชนะเลิศอันดับ 1 กับ 2 ของแต่ละหมวดจะได้รางวัลเป็นถ้วยรางวัลพร้อมประกาศนียบัตรและเงินรางวัลดังต่อไปนี้

1. รางวัลชนะเลิศ ได้เงินรางวัล ทีมละ 100,000 บาท

พร้อมทั้งได้สิทธิ์บินลัดฟ้าไปดูงานด้านเทคโนโลยีระดับโลก ณ ซิลิคอน วัลเลย์  ประเทศสหรัฐอเมริกา ซึ่งใคร ๆ ก็รู้จักว่าเป็นเมืองหลวงทางด้านไอทีของโลก โดยทาง KBTG เคลมขำ ๆ ว่า การได้รางวัลให้ทีมงาน KBTG พาไปดูงานที่ ซิลิคอน วัลเลย์ นี้จะสนุกและน่าตื่นตื่นสุด ๆ และจะไม่มีทางเหมือนกับการให้คนอื่นพาไปแน่นอน (ฮาา)

2. รางวัลรองชนะเลิศอันดับที่ 1 ได้เงินรางวัล ทีมละ 50,000 บาท

3. รางวัลรองชนะเลิศอันดับที่ 2 ได้เงินรางวัล ทีมละ 30,000 บาท

แปลว่าจะมีทีมที่ได้รางวัลของทุกหมวดรวมกันถึง 9 ทีมเลยทีเดียว วู้วว

เงื่อนไขการสมัครเข้าร่วมกิจกรรม

1. สมัครเดี่ยวมาคนเดียว หรือมาเป็นคู่ (2 คน) ต่อทีมก็ได้

2. อายุตั้งแต่ 15 ปีขึ้นไป ทุกเพศ ไม่จำกัดอาชีพ ไม่จำกัดวุฒิการศึกษา

3. ต้องสมัครกรอกข้อมูลตามจริงบนเว็บของการแข่งขัน https://www.techjam.tech/ ให้ครบถ้วน

** เคล็ดลับการสมัครแข่งงาน TechJam 2019 by KBTG คือ ถ้าทีมไหนสมัครก่อน จะได้เปรียบรอบแรกเล็กน้อย เพราะว่าจะเห็นโจทย์ก่อนคนอื่น มีเวลาแก้โจทย์เยอะกว่าคนอื่น สมมุติถ้าทีมไหนสมัครตั้งแต่วันแรก ๆ ก็จะเห็นโจทย์ตั้งแต่วันแรก ๆ นั้นเลยดังนั้นรีบไปสมัครกันน

สมัครและส่งคำตอบรอบแรกได้ตั้งแต่วันนี้ถึงวันที่ 11 พฤศจิกายน 2562 และจะประกาศผลทีมที่เข้าสู่รอบชิงชนะเลิศวันที่ 20 พฤศจิกายน 2562 จากนั้นแข่งรอบชิงชนะเลิศวันที่ 30 พฤศจิกายน 2562 ต่อกันไปเลย

ในหมวด Deep Code จะพิเศษหน่อย ๆ ตรงที่ หลังจากสมัครและเข้าสู่ระบบแล้วจะมีแบบทดสอบคัดกรองเพิ่มมา 1 ชั้นก่อน ทำได้จนถึงวันที่ 5 พฤศจิกายน 2562 ถ้าผ่านแบบทดสอบนี้ได้ ถึงจะได้ทำโจทย์รอบแรกจริง ๆ และจะแข่งรอบแรก ระหว่างวันที่ 8 - 11 พฤศจิกายน 2562 (4 วัน - โดยทีมงานบอกมาว่าโจทย์รอบแรกถูกออกแบบมาให้ถูกทำเสร็จได้ภายในเวลาไม่กี่ชั่วโมง จึงไม่ต้องกังวลว่าทำไมมีเวลาแค่ไม่กี่วัน)

คุณเรืองโรจน์ พูนผล ประธาน KBTG (ท่านที่ 2 จากทางซ้าย) และหัวหน้าคณะกรรมการแต่ละหมวด

การแข่งขันในแต่ละหมวด

จากทั้งสามหมวดที่ไปฟังมา ขอบอกเลยว่า น่าสนใจและเปิดกว้างให้ผู้ที่สนใจในหลากหลายด้านมาก (และเงินรางวัลชนะเลิศสูงมาก 55)

- Deep Data

เริ่มจากฝั่ง Data ก่อน ฝั่งนี้จะเป็นทางด้าน Data Science (วิทยาการข้อมูล) เป็นการนำข้อมูล มาทำการวิเคราะห์เพื่อหาคำตอบอะไรบางอย่าง สำหรับนำมาใช้ตัดสินใจเรื่องต่าง ๆ ในเชิงธุรกิจ (เรียกว่า insight) ซึ่งนับว่าเป็นแวดวงที่ยังต้องการคนที่สนใจ มาทำงานอีกมากเป็นหนึ่งในอาชีพแห่งอนาคตก็ว่าได้

โดยการแข่งขันในหมวด Deep Data ทาง KBTG แอบบอกมาว่า ผู้เข้าแข่งขันจะได้วิเคราะห์หาคำตอบจากข้อมูลที่มีขนาดใหญ่มาก ซึ่งจะเป็นข้อมูลจริง ๆ ของลูกค้าเลย ดังนั้นในเวทีการแข่งขันอื่น ๆ คงไม่มีที่อื่นกล้าเอาข้อมูลจริง ๆ มาให้ลองใช้แบบในงาน TechJam 2019 by KBTG นี้แน่นอน ต้องมาลองดูกันว่าจะเป็นยังไง

หมวดนี้ได้ดร.กันต์ (ดร. ภควัต ผลิตนนท์เกียรติ) ซึ่งทำงานเป็น Data Scientist จริง ๆ ของทาง KBTG มาเป็นหัวหน้ากรรมการตัดสิน

โดยในส่วนของรอบแรกโจทย์ถูกออกแบบมาให้ทำเสร็จได้ภายในเวลาประมาณ 48 ชั่วโมง

- Deep Design

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

ทาง KBTG กระซิบมาอีกว่าในปีนี้หมวดนี้ได้หัวหน้ากรรมการตัดสิน ที่มาจากกูรูผู้ชนะ TechJam ในปีแรก (2017) ด้วยนั้นก็คือ คุณ สรรพวิชญ์ ศิริผล ซึ่งปัจจุบันทำงานเป็น Designer ให้กับทาง KBTG

โจทย์รอบแรกในหมวดนี้ผู้เข้าแข่งขันจะมีเวลาคิดและแก้ปัญหาหลายวันก่อนจะสร้างสรรค์ผลงานออกมาเพื่อผ่านเข้าสู่รอบชิงชนะเลิศ

- Deep Code

เป็นแข่งเขียนโปรแกรมเพื่อแก้ไขปัญหาเชิงอัลกอริทึม (ที่รู้จักกันในชื่อ competitive programming นั้นเอง) และตอบสนองความต้องการในโลกแห่งความเป็นจริง โดยปีนี้จากที่ได้ทราบมาว่า ในหมวดนี้มีการเปลี่ยนแปลงค่อนข้างเยอะ ถ้าเทียบกับหมวดอื่น ๆ  ก็เลยจะขอเล่าเน้นฝั่งนี้เป็นพิเศษละกัน 55

หัวหน้ากรรมการหมวดนี้คือคุณเพลน (คุณอาภาพงศ์  จันทร์ทอง) แอบเข้าไปดูประวัติมาแล้วไม่ธรรมดามาก ๆ ปัจจุบันทำงานเป็น Machine Learning Engineer อยู่ที่ KBTG

เอาละมาดูกันดีกว่าหมวด Deep Code ว่ามีอะไรน่าสนใจกันครับ

1. กำหนดการแข่งขัน Deep Code

ขอย้ำอีกทีละกัน เนื่องจากจะพิเศษกว่า track อื่น ๆ โดย Deep Code จะแบ่งการแข่งออกเป็น 3 รอบได้แก่

1. รอบคัดกรอง หลังจากสมัครผ่านเว็บจะต้องทำแบบทดสอบเบื้องต้น (หมวดอื่นจะไม่มีรอบนี้)

ให้ได้คะแนนอย่างน้อย 50% สามารถสมัครและทำแบบทดสอบได้ถึงวันที่ 5 พฤศจิกายน 2562

2. แข่งขันรอบแรกผ่านระบบออนไลน์ ระหว่างวันที่ 8 - 11 พฤศจิกายน 2562 (4 วัน - คัด 30 ทีม)

3. แข่งขันรอบชิงชนะเลิศ วันที่ 30 พฤศจิกายน 2562 ที่อาคาร KBTG เมืองทองธานี

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

2. ภาษาโปรแกรมที่รองรับในการแข่งขัน

ในการแข่งขันรอบต่าง ๆ จะรองรับการเขียนโปรแกรมด้วยภาษาโปรแกรม 6 ภาษาเป็นหลักได้แก่ C, C++, Go, Java, JavaScript (NodeJS) และ Python รุ่น 3

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

3. ความแตกต่างจากปีที่แล้ว

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

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

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

และในรอบชิงชนะเลิศ อันนี้ละแตกต่างเยอะมากที่สุด โดยจะต้องแก้โจทย์ภายใต้แนวคิด การพัฒนาซอฟต์แวร์เพื่อตอบสนองความต้องการในโลกแห่งความเป็นจริง (Real-world Software Development) ด้วยเช่น..

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

- อาจต้องมีการใช้เทคโนโลยีใหม่ ๆ ที่น่าสนใจเช่น Chat Bot เข้ามาประยุกต์ใช้

- อาจต้องมีการรับข้อมูลในรูปแบบที่หลากหลายเช่น JSON, XML, YAML

- อาจต้องมีการพัฒนา Web API แต่กรรมการย้ำว่า จะไม่เน้นในส่วนของ frontend ในโจทย์ จะเน้นไปทางฝั่ง backend และ API เป็นหลัก ดังนั้นใครห่วงว่า พอมีการพัฒนาซอฟต์แวร์ในการแข่งขันต้องสวยงามด้วยหรือเปล่า อันนี้ก็ตัดออกไปในเกณฑ์การให้คะแนน สำหรับในหมวดนี้ได้เลย เน้นที่การใช้งานจริงแก้ไขปัญหาได้เป็นหลักเท่านั้น

- ผู้เข้าแข่งขันในรอบชิงชนะเลิศ นอกจากจะต้องรู้ว่าเขียนโปรแกรมอย่างไร ให้ทำอย่างถูกต้อง จำเป็นจะต้องรู้ด้วยว่า เขียนโปรแกรมอย่างไรให้สามารถรองรับการใช้งานโดยคนจำนวนมากได้ (scalability)

- รวมถึงต้องใช้ความรู้ทางด้าน DevOps โดยเฉพาะ Docker container ได้ใช้แน่นอน

4. ผู้เข้าแข่งขันควรจะเตรียมตัวอย่างไร?

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

- ควรจะรู้จุดเด่น ข้อดี-ข้อเสีย ของภาษาโปรแกรมแต่ละภาษา เลือกใช้ให้เหมาะสม

- ควรหัดใช้ Docker ถ้าหากไม่เคยใช้มาก่อน ต้องใช้ในการแข่งขันรอบชิงชนะเลิศ

- ควรเรียนรู้วิธีการเลือก algorithm, data structure, application stack ให้เหมาะสมกับการที่ทำให้ระบบรองรับผู้ใช้งานจำนวนมากได้เร็วได้

หลังจากได้รับข้อมูลรายละเอียดเกี่ยวกับการแข่งขันมาพอสมควรแล้วทางเพจสอนแฮกเว็บแบบแมว ๆ ก็ได้คุยกันคุณเพลน นอกเรื่อง Deep Code สนุก ๆ บ้างว่าไหน ๆ เพจเราก็มักจะคุยกันเรื่องแฮก ๆ แล้วขอสัมภาษณ์นิดนึงละกัน ในมุมมอง cybersecurity กับการเขียนโปรแกรม

สอนแฮกเว็บแบบแมวๆ: ในฐานะโปรแกรมเมอร์จะเขียนโค้ดที่ทำงานได้แล้วในส่วนของความปลอดภัยมีความคิดเห็นอย่างไรกับเรื่องนี้บ้างครับ?

คุณเพลน: เอาจริง ๆ ถ้าจะหาโปรแกรมเมอร์ที่ทำ IT Security ได้ด้วยอาจจะหายากนิดนึง แต่จริง ๆ มันก็สำคัญนะทุกบริษัทต้องมี อย่างเช่นแบงค์ เนี่ยต้องมี ถ้าไม่มีวุ่นวายแน่นอน (หัวเราะ)​ คนถนัด IT Security เป็นกลุ่มเฉพาะทาง เทียบกับโปรแกรมเมอร์แล้วก็เป็นกลุ่มคนเล็ก ๆ ที่สนใจ ในต่างประเทศก็มีการจัดการแข่งขันอยู่บ้าง แต่ที่เราจัดแข่ง TechJam 2019 by KBTG จะเน้นฝั่ง coding เขียนโปรแกรมเป็นหลักก่อน

สอนแฮกเว็บแบบแมวๆ: ในแง่มุมการทำงานเขียนโปรแกรม การที่พยายามใส่เรื่องความปลอดภัยเข้าไปให้ระบบพัฒนายากขึ้นนับว่าเป็นอุปสรรคในการทำงานไหมครับ?

คุณเพลน: เป็นครับ แต่ว่าเป็นเรื่องดีครับ ขั้นตอนนี้มันมีขึ้นมาเพื่อแก้ปัญหาอะไรบางอย่างไม่ได้มีขึ้นมาเฉย ๆ  IT Security มันเป็นเรื่องจำเป็น แล้วก็ทำให้เราได้ทบทวนว่าโปรแกรมที่เราเขียนไปเรามาถูกทางหรือเปล่า พูดได้เต็มปากว่า ''​โคตรจำเป็น'' ​ไม่มีทางที่เราหลบเลี่ยงไปได้หรอกครับ process ขั้นตอนที่รัดกุมนั่นแหละที่ทำให้เราพัฒนาโค้ดที่มีคุณภาพได้ เช่น เขียนภาษาที่ check type, data type ผิดแล้ววุ่นวายจังเลย ใช้ภาษาที่ dynamic ดีกว่า จริง ๆ แล้วการ check type มันจะตัดข้อผิดพลาดหลายกลุ่มหลายส่วนที่อาจจะเกิดความผิดพลาดได้ออกไปให้เราแล้ว ซึ่ง IT Security ก็เหมือนกันถ้ามันจำเป็นเราก็ต้องทำครับ

สุดท้ายนี้ทางเพจสอนแฮกเว็บแบบแมว ๆ ขอเชิญชวนทุกท่านที่สนใจเข้าร่วมการแข่งขัน TechJam 2019 by KBTG ที่เว็บไซด์ https://www.techjam.tech/ และสามารถติดตามข่าวเกี่ยวกับการแข่งขันได้ที่เพจ KBTG Live https://www.facebook.com/KBTGlive/