SCB TechX Bootcamp #1 สอนอะไรกันบ้างนะ ?
หลังจากตั้งบริษัทได้เกือบ 1 ปี ทาง SCB TechX ก็ได้มีการจัด SCB TechX Mini Bootcamp Program #1 ขึ้นเป็นครั้งแรก เป็น Bootcamp Program สำหรับน้อง ๆ นักศึกษาจบใหม่ หรือพึ่งจบได้ไม่เกิน 1 ปี ที่ได้เข้าร่วมทำงานกับบริษัท SCB TechX
โดยตัว Bootcamp จะเป็นการปรับพื้นฐานความรู้ให้ตรงตามความต้องการของทางบริษัท ตั้งแต่ Fundamental ต่าง ๆ ไปจน Software Development Process กันเลยทีเดียว โดยผู้เข้าร่วม Program จะได้เรียนรู้กับพี่ ๆ ในสายงาน ตัวจริง ที่เคยทำ Products ที่มีผู้ใช้นับสิบล้านมาจริง ๆ แล้วก็เคยเจ็บมาจริง ๆ อีกด้วย ฮ่า ๆ
✅ About SCB TechX Mini Bootcamp Program
ตัว Bootcamp Program ของเราจะเป็นการเรียน Fundamental ในเรื่องต่าง ๆ เกี่ยวกับการพัฒนา Software ตั้งแต่ Software Development ด้วย Agile แล้วต่อด้วย Engineering Practiceต่าง ๆ ที่เป็น General ที่ควรทำ และ Modern Software Development ในรูปแบบต่าง ๆ เช่น Microservices, Serverless, Container และการนำ Container ไป Deploy บน Cloud เจ้าต่าง ๆ รวมไปถึง Test Concept การเขียน Test รูปแบบต่าง ๆ ไปจนถึงการทำ Automate Test ทั้ง UI และ API
เมื่อเรียนความรู้พื้นฐานที่จำเป็นต่อการ Delivery Software แล้วเราก็ไปต่อกันที่ Tools ต่าง ๆ ที่ใช้กัน โดยจะแยก Track ออกเป็น 2 ส่วน เพื่อให้เหมาะกับตัวผู้เรียน โดยจะแยกส่วนของ Software Engineer กับ Quality Assurance ออกจากกัน ไปเรียนในสิ่งที่ตัวเองต้องรู้ระยะประมาณ 10 วัน
ช่วงแรกจะเป็นการเรียนความรู้พื้นฐานก่อน แต่ก็เป็นความรู้พื้นฐานที่สำคัญ เพราะว่า จะเป็นพื้นที่ผู้เรียนทั้งหลายจะสามารถนำไปต่อยอดในการทำงาน ในอนาคต เราไปดูกันทีละตัวดีกว่า ว่าเราสอนอะไรกันบ้าง
○ Agile in Practice
เนื้อหา Session นี้จะพูดถึง ประวัติความเป็นมาของการทำ Software ตั้งแต่ยุคแรกเริ่ม ที่มีการเริ่มจาก Process ที่ลอกมาจากการก่อสร้าง(Construction) จนเกิดมาเป็น Waterfall แล้วพบว่าการสร้าง Software ด้วย Waterfall process ทำให้เราได้ของที่ Solid มากเกินไปจนไม่ Flexible ตอบโจทย์ Business ที่เปลี่ยนไปอย่างรวดเร็วไม่ได้ จึงเกิด Process ใหม่ขึ้นมาคือ Agile แต่สุดท้ายแล้ว Agile ก็เป็นแค่ What และ Why ว่าเราทำอะไร ไปเพื่อทำไม เราจึงต้องพูดกัน How หรือ How ในการ Archieve What และ Why แล้วหนึ่งใน How นั้นก็คือ Scrum !
○ Developer in Practice
Software Engineering Guideline และ Software Engineering Practice ต่าง ๆ ที่ควรมี ไม่ว่าเราจะอยู่ที่ไหน หรือบริษัทอะไร นี่คือสิ่งที่ควรปฏิบัติเป็นพื้นฐานในการทำงานด้านนี้ โดยจะพูดถึง
- Keep Reading Existing Software Source Code
เราเชื่อว่าถ้าคุณอยากเขียน Code ได้ดี คุณก็ต้องหมั่นอ่าน Code ของคนอื่น - Follow the defined standards
เราเชื่อว่าถ้าคุณอยากสร้าง Software ให้มี Standard สิ่งแรกที่คุณควรทำคือกำหนด Standard นั้นขึ้นมา แล้วก็ทำตาม Standard นั้นซะ ! - Accept criticis but don’t criticize without reason and solution
เราเชื่อว่าการยอมรับคำวิจารณ์จากคนอื่นเป็นเรื่องที่ดี แต่อย่าลืมว่าถ้าเราจะวิจารณ์ใครควรจะมีเหตุผล ! - Testing to be followed Religion
เราเชื่อว่าการทำ Software จะต้องมี Test เสมอ เหมือนกับศาสนาประจำใจ - Leave the ego behind, Be eager to learn
เราเชื่อว่าความรู้ไม่มีวันสิ้นสุด ทำงานเดิมไม่เรียนรู้อะไรใหม่ 10ปี ก็มีค่าเท่ากับการทำงานแค่ 1 ปีเท่านั้น ดังนั้น อย่าหยุดเรียนรู้ !
○ Modern Software Development
การพัฒนา Software สมัยใหม่ เริ่มจากการพัฒนา Software แบบ MVP(Minimum Viable Product) หรือก็คือการพัฒนา Software ด้วย Feature อย่างน้อยที่สุดของ Product ที่สามารถประเมินตลาดได้
จากนั้นไปต่อด้วย Microservices Architecture ว่าจะต้องมี Characteristic ยังไงบ้าง มีข้อดี ข้อเสียอะไร พร้อมทั้งแนะนำวิธีการ Implement Microservices ด้วย 12 Factors จาก Adam Wiggins ผู้ก่อตั้ง Heroku ที่เป็นที่นิยมอีกด้วย
○ Git Workshop
เนื้อหา Session นี้จะพูดถึง Git concept และ Git command ต่าง ๆ สำหรับการทำงานที่ต้องเจอ เช่น config, init, status, clone, push, pull, add, commit, log, branch เป็นต้น รวมไปถึง Git workflows ที่ SCB TechX ใช้อยู่ และ Git GUI ต่าง ๆ เช่น GitHub, GitLab, Git Kraken เป็นต้น
○ Introduction to Cloud and AWS
เนื้อหา Session นี้จะพูดถึง Traditional Infrastructure ไปจน Evaluation Of Cloud ยาวไปจนถึง Types of Cloud Computing แบบต่าง ๆ เช่น
- Iass : Infrastructure as a Service
- Paas : Platform as a Service
- Saas : Software as a Service
ว่าคืออะไร แตกต่างกันยังไงบ้างในแต่ละแบบ แล้วยกตัวอย่างด้วย AWS โดยเริ่มตั้งแต่เรื่อง
- AWS Regions
- AWS Availability Zones
- AWS Edge Locations
- AWS Service Scope
- AWS Service Cost
- AWS IAM
- AWS EC2
- AWS RDS
- AWS S3
- AWS EKS
ถ้าให้บอกต่อว่ามีอะไรบ้างน่าจะยาว แต่พูดได้เลยว่า ครบ จบ ในที่เดียว เกี่ยวกับ AWS จริง ๆ (สอนยั๊นนนนนน OS)
เนื้อหาทั้งหมดที่พูดมาจนถึงตอนนี้ ก็คือ เนื้อหาที่ทั้ง SE และ QA เรียนร่วมกันเพราะเรามองว่า นี่คือเนื้อหาพื้นฐานที่ไม่ว่าใครก็จำเป็นต้องรู้ แต่หลังจากนี้ เดี้ยวเราไปดูกันว่า SE กับ QA เวลาเค้าเรียนแยกกันเนี่ย เค้าเรียนอะไรกันบ้างนะ
⚫ Software Engineer
เนื้อหาที่ Software Engineer ที่ SCB TechX เราสอนให้กับ New Joiners เราสอนตั้งแต่ Basic ที่เป็น Data Structure และ Problem Solving ต่อด้วย Programming Language ต่าง ๆ เช่น Java, Javascripts, Dart แล้วไปต่อด้วย Framework ของภาษาต่าง ๆ เช่น Springboot, Express, Flutter
○ Data Structure & Problem Solving
เนื้อหา Session นี้จะพูดถึงตั้งแต่ Big(O) Notation ว่าคืออะไร ทำไมเราต้องให้ความสำคัญ ต่อด้วย Data Structure Type ต่าง ๆ เช่น Array, List, Map, Stack, Queue แตกต่างกันยังไง เจอ Usecase แบบไหนควรใช้อะไร พร้อมยกตัวอย่างการใช้งานจริงที่ไม่ใช่แค่ทฤษฏีในห้องเรียน ! และแน่นอนว่าเราลองทำกันจริงๆ โดยเริ่มจากการแก้โจทย์ใน Leetcode ที่เป็นที่นิยม เช่น
○ Web Development Fundamental
เนื้อหา Session นี้จะพูดถึงการทำงานของ Web ตั้งแต่ DNS คืออะไร IP คืออะไร HTTP HTTPS ทำงานยังไง แตกต่างกันยังไง เมื่อเข้าใจ Concept การทำงานของ Web เบื้องต้นแล้ว ก็พาไปทำความรู้จักกับ HTML ว่าคืออะไร ทำไมเราต้องรู้จัก แล้วจากนั้นก็ทำ Interact กับ Web ที่สร้างจาก HTML ด้วย Javascript ต่อด้วยตกแต่งความสวยงามให้กับ Web ด้วย CSS เมื่อเข้าใจทั้ง 3 ส่วนแล้ว ก็เริ่มทำความรู้จักกับ API และการเชื่อมต่อกันระหว่าง UI กับ API ว่าทั้ง 2 ส่วน ติดต่อสื่อสารกันยังไง ใครเป็นตัวกลาง ส่งข้อมูลกันแบบไหน แล้วเราต้องทำยังไงกันนะ ถึงจะเชื่อมทั้ง 2 ส่วนเข้าหากันได้
○ JavaScript & TypeScript
พาไปตั้งต้นกับ Javascript กันแบบ ตั้งแต่ Setup เครื่อง Syntax ของ JS ลองฝึกเขียนและทำความรู้จักกับ Class, Interface, Modules ใน TypeScript ต่อด้วยทำความเข้าใจกับสิ่งที่คนพึ่งเริ่มต้นมักจะเข้าใจผิดกับ Callback, Async, Await, Promise เสร็จแล้วไปต่อกันที่ Nodejs คืออะไร ต่างกับ JS ปกติยังไง พาไปรู้จักกับ Express framework ยอดฮิตของ Javascript แล้วสร้าง API ด้วยความรู้ทั้งหมดที่เรียนมากันนนน !
○ Java & Spring Framework
เรียกได้ว่าอยู่กันมานานสำหรับภาษานี้และยังคงมีการพัฒนาต่อไปอย่างต่อเนื่อง และมีการใช้งานบน Production ของ SCB Bank อยู่หลาย Products ก็ยังต้องมีการ Maintainance กันต่อไป เราจึงต้องมีสอนกันตั้งแต่ Syntax, OOP, Memory Management, Dependency Injection แล้วก็ไปเริ่มสร้าง Services ด้วย Springboot แล้วก็อีกมากมายในการทำ Services ให้ดี ไม่ว่าจะเป็นการเขียน Test การทำ Logging แล้วก็ Monitoring ด้วย อ่านเพิ่มได้จากข้างบนเลยนะ อันนี้สอนเยอะจริง ๆ
○ Flutter
Mobile Application หลายตัวที่อยู่บน Production ก็เริ่มเปลี่ยนมาใช้ Flutter กันเยอะแล้ว เราเลยต้องมีในการสอนกันบ้างแล้ว ! เริ่มจากทำความเข้าใจกันก่อนเลยว่า เจ้า Flutter เนี่ยมี Architecture ยังไงบ้างนะ แล้วมีการ Tranformed เป็น Native Application ได้ยังไง เมื่อเข้าใจเบื้องต้นแล้วเราก็ไปเรียน Dart กันต่อ จากนั้นก็เริ่มทำความเข้าใจเรื่อง State, Widget, Layout แล้วก็ Navigation จากนั้นก็ลองทำ Application ขึ้นมาพร้อมกับต่อ API กันนน !
⚫ Quality Assurance
เนื้อหาที่ Quality Assurance ที่ SCB TechX เราสอนให้กับ New Joiners เราสอนตั้งแต่ Basic ที่เป็น Testing Technique และ Test Concept เริ่มตั้งแต่ Test ประเภทต่าง ๆ แตกต่างกันยังไง เราต้อง Test อะไรบ้าง ไปจนการสร้าง Test case และการทำ Automation ด้วย Tools ต่าง ๆ
○ Testing Technique and Concept
เริ่มจากพื้นฐานว่า Test คืออะไร Test แบ่งออกเป็นกี่ประเภท การที่เราจะ Test UI, Test Mobile หรือ Test API เราต้อง Test ยังไง ในแต่ละส่วนต้องคำนึงถึงอะไรบ้างที่เป็นพื้นฐานในการ Test
○ Robot Framework
Framwork ยอดฮิตในการเริ่มต้นทำ Test Automation เริ่มสอนตั้งแต่การ Setup Test Environment ต่อด้วย Syntax เบื้องต้น การเขียน Test case การ Assign variable ไปจนถึง Flow การทำงานเป็นยังไง จากนั้นก็ลองทำ UI กับ API Testing กันเต็ม ๆ วัน จนคุ้นมือ
○ Karate
สำหรับ Karate นั้นก็จะเริ่มต้นด้วย Concept คล้าย ๆ ของเดิมคือเริ่มจากการ Set environment ก่อน แล้วก็ทำความเข้าใจ Syntax แล้วก็ลองใช้งาน แต่ตัว Karate จะเพิ่มเติมในส่วนของหลังจากที่เราทำ Automate test ของ API แล้ว จะต่อไปด้วยการทำ Performance test ไปด้วย จากนั้นก็ Generate report มาทำความเข้าใจ ว่าแต่ละ API รองรับ Load ได้มากแค่ไหน มีตัวไหนที่จะต้อง Refactor กันบ้าง !
○ XCUITest | Espresso | Flutter Integration Test
ทั้ง 3 ตัวนี้ เริ่มจากการสอนแบบเดียวกันคือ Set environment แล้วต่อด้วย Syntax วิธีการ Execute testcase ของแต่ละ Tools จากนั้นทำการ Test UI โดยเริ่มจากการหา Element แล้วทำ Action กับ Element ด้วยการเปรียบเทียบ Actual result กับ Expect result ด้วยวิธีต่าง ๆ ต่อด้วยการ Refactor code ให้เป็นแบบ Page Object Design ทำให้เพิ่ม Readability ของ Code ทำให้ Test case ต่าง ๆ อ่านเข้าใจได้ง่าย
คนที่อ่านถึงตรงนี้ก็อาจจะเกิดคำถามว่า อ้าว ! แล้วเราจะเรียนไปทำไมเยอะแยะ ตั้งหลายตัวในเมื่อเรียนแบบเดียวกัน ก็ต้องบอกว่า แต่ละ ตัวนั้นมี Objective ในการใช้ต่างกันตามนี้
XCUITest : ใช้สำหรับ Test UI ของ Mobile ที่เป็น IOS
Espresso : ใช้สำหรับ Test UI ของ Mobile ที่เป็น Android
Flutter Integration Test : ใช้สำหรับ Test UI ของ Mobile ที่เป็น Flutter
⚫ Soft Skill
ไม่ใช่แค่ Technical skill อย่างเดียว ทางด้าน Soft skill เราก็มีให้น้องๆ ด้วยเช่นกัน เพราะในการทำงาน Technical skill อย่างเดียวก็ไม่เพียงพอในการทำงานให้สำเร็จ เรายังต้องรู้จักการทำงานเป็น Team ร่วมกับผู้อื่น เพราะเราเชื่อว่า
A good team can do everything.
Soft Skill for First Jobber
เป็น Soft skill class ที่พี่ ๆ HR (People Team) อยากจะมา Share ให้ฟังเกี่ยวกับ
- First Jobber ต้องเตรียมตัวอย่างไรในการทำงาน
- เตรียมพร้อมเป็นน้องใหม่อย่างไรให้พี่รัก
- รู้จักตนเอง รู้จักผู้อื่น ด้วย DISC
- เจอหัวหน้าหรือเพื่อนร่วมงานแต่ละแบบควรจะรับมือยังไง
มาถึงตรงนี้ ก็จะเห็นว่า SCB TechX Mini Bootcamp เนี่ยมีการเตรียมความพร้อมให้กับน้อง ๆ New Graduation กันมากพอสมควรก่อนที่จะเริ่มทำงานกันจริง ๆ ดังนั้นไม่ต้องกลัวเลยว่าจะทำงานไม่ได้สำหรับน้อง ๆ ที่พึ่งเรียนจบมาใหม่ ๆ ขอแค่มีความพร้อมที่จะเรียนรู้ ทางบริษัทก็พร้อมที่จะร่วมงานด้วยแน่นอน !
ขายของงง !!! ใครสนใจที่จะร่วมงานกับ SCB TechX ก็สามารถตามดูตำแหน่งที่เปิดรับกันได้ที่นี่เลย