เตรียมตัวกันให้พร้อม สำหรับลงสนามประลองฝีมือกับ 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 วัน - โดยทีมงานบอกมาว่าโจทย์รอบแรกถูกออกแบบมาให้ถูกทำเสร็จได้ภายในเวลาไม่กี่ชั่วโมง จึงไม่ต้องกังวลว่าทำไมมีเวลาแค่ไม่กี่วัน)
การแข่งขันในแต่ละหมวด
จากทั้งสามหมวดที่ไปฟังมา ขอบอกเลยว่า น่าสนใจและเปิดกว้างให้ผู้ที่สนใจในหลากหลายด้านมาก (และเงินรางวัลชนะเลิศสูงมาก 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/