สำหรับบทความนี้ผมตั้งใจจะเขียนไว้บอกเล่าเบื้องหลังของค่าย SIT Helloworld ค่ายสำหรับน้องๆปี 1 คณะ SIT ไม่จะเป็นสาขา IT , CS และ DSI ที่สนใจอยากจะมาลองเรียนรู้อะไรใหม่ๆ ที่ ณ ตอนนั้นเราอาจจะยังไม่เคยเรียน จากรุ่นพี่คณะ SIT ทุกสาขา โดยบทความนี้จะเป็นในมุมมองของการเป็น Speaker เฉพาะฝั่งของ Devops นะคับผม ก่อนที่จะมาอ่านต่อผมขอแนะนำให้ไปดูอีกบทความนึงด้วยนะฮะของพลีสไตเติ้ลเพื่อนซี้ผมเองที่เค้าเขียนไว้ก่อนหน้านี้นะฮะ 👉เบื้องหลังความสําเร็จ ค่าย HelloWorld Goose (2023) DevOps SIT KMUTT สรุปไว้ดีเลยโดยเฉพาะในเรื่องของการ Deploy เว็บค่ายละก็การ Monitoring ตัว VM 👌 โอเคก็เกริ่นมากันพอสมควร ก็ขอเริ่มแชร์ประสบการณ์ การเป็น Speaker ครั้งที่ 2 ของผม ณ บัดนี้ 👇
1. มาเป็น Speaker โครงการนี้ได้ยังไง ?
เริ่มจากเห็นประกาศหา Staff ตำแหน่งต่างๆ ในกลุ่ม Line ของรุ่น (ประมาณช่วงเดือนกันยายน ก่อนจะเริ่มโครงการจริงในเดือนพฤศจิกายน) ตอนนั้นก็มีอยู่หลายตำแหน่งเลย ซึ่ง Speaker ก็คือ 1 ในนั้น เราก็ไม่ได้คิดนานเท่าไหร่เห็นปุ๊ปก็กดสมัครเลย ตอนนั้นที่เลือก Devops ไป จริงๆ ไม่ได้มีความรู้ในด้านนี้เลยสักนิดเดียว เรียกได้ว่าเกือบ 0 ตอนนั้นคิดแค่ว่ามีหน้าที่แค่ Deploy เว็บเฉยๆ เพราะก่อนหน้านี้เป็น frontend มาก่อนละเรารู้แค่ว่าตอนเราทำ Web เสร็จ เราก็ให้ devops ในทีมเราไป deploy ในมุมเราๆ ก็เลยรู้แค่นั้นจริงๆ อ่ะนะ ก็เลยเป็นต้นเหตุว่าเลือก devops ลงไปเพราะตัวเองอยากรู้ อยากลองอะไรที่ตัวเองยังไม่เคยทำเฉยๆ 😅
2. การเตรียมตัวก่อนเปิดค่าย
ต้องบอกก่อนเลยว่าทีมงาน DevOps ที่มาเป็น Speaker ทุกๆ คนไม่ได้มีความรู้ในด้านนี้เลยซักกะนิ๊ด หลายๆ คนอาจสงสัยว่า มันจะไปรอดจริงๆ หน่ะหรอ😂 ซึ่งต้องขอบอกไว้ก่อนเลยว่าตอนแรกดูเหมือนจะไม่รอด แต่สุดท้ายก็รอดนะ 5555 ถึงจะมีเป๋ๆ ไปบ้างตอนวันค่ายจริง แต่ก็ค่อนข้างออกมาดี เหนือความคาดหมายไปเยอะ ซึ่งที่ออกมารอดมันก็มีเบื้องหลังอยู่ตรงที่ว่ามันมีอยู่ Week นึงก่อนที่เราจะเริ่มค่ายที่พี่ๆ เค้าจะจัดเหมือน Bootcamp ให้กับรุ่นน้องอย่างพวกผมที่จะมาเป็น Speaker รุ่นต่อไป ได้เรียนรู้สิ่งที่เราจะสอนกันก่อน (อันนี้มีทุกฝ่ายเลยนะ) มีการ guideline เเนะนําในการออกเเบบเเผนการสอนหัวข้อต่างๆ ว่าควรจะมีอะไรบ้าง แล้วก็แนะนำอะไรประสบการณ์ของปีรุ่นพี่เค้าหลายๆ อย่างที่ถือว่าดีมากๆ ก่อนที่เราจะไปสอนจริงได้ดีเลยคับ
เรียกได้ว่าถ้าไม่ได้พวกพี่ๆมาช่วยเทรนให้พวกผมปีนี้ บอกตามตรงว่าพวกผมก็คงลำบากกันไม่ใช่น้อย ซึ่งส่วนใหญ่พี่ที่มาช่วยเทรนพวกผมก็เป็นพี่ๆที่รู้จักกันอยู่แล้วอย่างพี่นิว พี่มารค์ ละก็ พี่นัท โดยเฉพาะพี่นิวที่เป็นเหมือนคนที่เป็นเหมือนคนลากผมเข้ามาในฝ่าย Devops ตั้งแต่ก่อนค่ายจะเปิดละ ก็เลยสามารถที่จะขอความช่วยเหลือละก็เรียกพวกพี่ให้มาช่วยได้ง่ายละก็มักจะเรียกมาบ่อยกว่าพี่ๆฝ่ายอื่นซักเล็กน้อย 👌
สรุปเลยก็คือสำหรับคนที่กลัวว่าเข้ามาแล้วจะสอนน้องๆไม่รู้เรื่อง ไม่กล้ามาสอนเพราะคิดว่าเรามีความรู้ไม่พอ ก็ขอแนะนำว่า "มาลองดูก่อน" บางทีมันอาจจะไม่เหมือนอย่างที่เราคิดก็ได้ เพราะผมเองก็เริ่มจากไม่รู้มาก่อนเหมือนกัน 😁
สิ่งสำคัญจริงๆก็คือ Passion ถ้าเราอยากทำอะไรจริงๆ แนะนำให้ลองเริ่มทำจริงดู อย่ากลัวแค่ว่าเพราะเราไม่เคยทำ หรือ กลัวว่าเราจะทำมันออกมาได้ไม่ดี อยากแนะนำว่าลองออกมาจาก Safe Zone ของตัวเองดู บางทีเราอาจจะเจอสิ่งใหม่ๆ สิ่งที่ตัวเองชอบจริงๆก็ได้
3. การเตรียมเนื้อหาการสอน
ก่อนอื่นก็ต้องมาทำความเข้าใจก่อนว่า Devops คืออะไร แล้วหน้าที่ของตำแหน่งนี้เค้าทำอะไรกัน ?
โดย ตำแหน่ง DevOps นั้นจะเป็นคนที่ทำหน้าที่เป็นตัวเชื่อมระหว่างสองฝ่าย คือฝ่าย Development และฝ่าย Operation เป็นคนที่คอยสนับสนุนกระบวนการพัฒนาซอฟต์แวร์ให้สามารถทำงานได้โดยอัตโนมัติเท่าที่จะสามารถทำได้ อย่างเช่น การวาง Infrastructure, การทำ CI/CD (continuous Integretion / continuous deployment ) ซึ่งช่วยให้การทำงานของทั้งสองฝั่งมีความเข้ากัน และรวดเร็วมากขึ้น
เอาให้เข้าใจง่ายๆคือเป็น Support ของทีม ช่วยให้ทีม Dev (คนเขียนโปรแกรม) กับ ทีม Ops (คนดูฝั่ง Server , ดูระบบของตัว Software ให้มีความเสถียร) ทำให้ทั้ง 2 ฝั่งทำงานร่วมกันได้ไหลลื่น ระบบมีความเป็น Automation ที่สามารถปรับเปลี่ยนได้ง่าย
โดยทักษะที่ตำแหน่งนี้ควรมี เช่น
- การใช้งาน Programming Language เพื่อให้การทำงานร่วมกับ Developer อื่น ๆ ราบรื่นมากขึ้น
- การจัดการกับ Operating System (OS) โดยเฉพาะ Linux ที่เป็น open source OS ยอดนิยมสำหรับฝั่ง Server
- การใช้งาน Command Line (โดยเฉพาะ Linux Command Line ที่จะมีโอกาสได้ใช้อยู่บ่อยๆ)
- การทำ Networking Protocols
- การใช้งานพวก Container ต่างๆ ในการจัดการ Resource ต่างๆของ Software
- การทำ CI/CD
- การทำ Infrastructure Monitoring
- การทำ Application Monitoring
- การใช้งาน Cloud
โดยที่เนื้อหาในค่ายนั้น ด้วยระยะเวลาการสอนประมาณเดือนนึงนั้น เราจะไม่ได้สอนถึงขั้นทำ CI/CD และ Monitoring แต่ก็มีการแนะนำน้องๆว่าเราควรจะไปทางไหนถ้าอยากศึกษาต่อ 👌( ซึ่งส่วนนี้พี่ไตเติ้ลของเรารับจบ )
โดยในแต่ละ week เราจะมีการสอนทั้งหมด 2 วันคือ วันพุธ (17.30–19.00) และวันศุกร์ (9.30–17.00) สอนทั้งหมด 4 week บวกกับอีก 1 project ให้น้องๆทำร่วมกัน
Week1🤔: Introduction to devOps , ฺBasic Linux Commands และ Git&Github
Week2 🌐: Introduction to Network และ Visualize Frontend project
Week3 🐳: Introduction to Docker , Docker Command และ Docker file
Week4 🧑💻: Guideline How to learn more in Devops และ Mentoring Projects
โดยก่อนสอนจริง พวกเราก็มีการประชุมพูดคุยกันก่อนว่าใครจะเตรียมเนื้อหาสอนในส่วนไหนบ้าง ซึ่งส่วนใหญ่แต่ละเนื้อหาก็จะมีพี่ๆ 2 คน ในการสอน โดยผมสอนในเนื้อหา Git&Github และ Visualize Frontend project คู่กับพี่วิวและพี่เอิรท์ ส่วนในการสอนครั้งนี้เนื้อหาที่ใหญ่ที่สุดและดูจะมีปัญหาที่สุดจะเป็นในเรื่องของ Docker ที่เราคิดว่าน้องๆส่วนใหญ่ยังไม่เคยทำในส่วนนี้ จริงๆตอนแพลนคนที่เป็นคนสอนหลักจะเป็นพี่ไตเติ้ล แต่ด้วยความที่เนื้อหาเยอะพอสมควร พี่คนอื่นๆรวมถึงผมเองก็จะเข้าไปช่วยพี่ไตเติ้ลสอนช่วยดูน้องๆด้วยเช่นกัน ไม่งั้นพี่ไตเติ้ลจะตัวแตกซะก่อน 😅 ส่วนเนื้อหาอื่นก็ไม่มีปัญหาอะไรมากละ
โดยการสอนจริงพวกเราพยายามสอนในสิ่งที่น้องๆควรรู้จริงๆ ซึ่งส่วนใหญ่เนื้อหาอาจจะมีความเบาบางไปบ้างเล็กน้อยเเต่ก็เป็นสิ่งที่พวกเราได้ย่อยตกผลึกกันมาเเล้วว่าอยู่ในขอบเขตที่ทั้งพวกเราและน้องๆจะรับไหว โดยส่วนใหญ่พวกเราจะเน้นไปทาง Workshop มากกว่าเรียนทฤษฎีเพื่อให้ได้ลองลงมือทํากันจริงๆมากที่สุด เเละพยายามสอดเเทรกเเนวคิดการทํางานรวมกันให้มากที่สุด เพิ่มเติมคือส่วนใหญ่ workshop ที่ให้เราก็จะให้น้องๆทำกันเป็นคู่หรือเป็นทีมกันซะส่วนใหญ่ เพื่อให้น้องๆรู้จักกันมากขึ้นแล้วก็ตอนที่น้องๆทำ project กับฝ่ายอื่นจริงๆจะสามารถทำงานด้วยกันช่วยเหลือซึ่งกันเเละกันได้ 🤗
4. ปัญหาที่พบเจอระหว่างการสอน
ปฏิเสธไม่ได้ว่าเวลาทำงานจริงๆ การเจอปัญหานั้นเป็นเรื่องปกติที่เราต้องเจอ ซึ่งในค่ายนี้เองก็เช่นกัน อย่างฝ่าย Devops เองก็เจอปัญหาอยู่ไม่น้อยที่ส่วนใหญ่จะเป็นปัญหาเฉพาะหน้าที่พึ่งเจออย่างเช่น น้องๆเข้า VM ที่ใช้สอนไม่ได้ , VM ค้างบ้าง หรือแม้แต่การสอนจริงที่ตอนพวกเราลองระบบไม่เกิดบั๊คอะไรเลย แต่พอมาสอนจริงๆระบบติดบั๊ค ติด error เต็มไปหมด แต่เราก็ยังช่วยกันแก้และผ่านมาได้ แต่ปัญหาใหญ่ที่สุดก็คือ เราสอนกันเร็วกว่าที่คิดไว้ทำให้มีเวลาเหลือในวันสุดท้ายค่อนข้างเยอะมากๆ ในวันนั้นพวกเราก็เลยจําเป็นต้อง "ด้นสด" โดยการสอดเเทรกกิจกรรมพิเศษที่เป็นประโยชน์กับน้องๆเสมือนว่าพวกเราเตรียมการมาเป็นอย่างดีแต่จริงๆพึ่งเตรียมกันหน้างาน 🤣กิจกรรมที่พวกเราคิดกันก็อย่างเช่น
- Guideline How to learn more in Devops: ในตอนนั้นแผนก็คือให้พี่ไตเติ้ลที่เป็นคนสอนหลัก ณ ตอนนั้นกะคนอื่นๆในตอนนั้นพูดถ่วงเวลา พูดยังไงก็ได้ แต่ขอให้มันเป็นประโยชน์กะน้อง. น้องๆสามารถนำไปใช้ต่อได้ ตอนนั้นก็เลยเลือกเป็นหัวข้อของการแนะนำ Tools และ Resource ต่างๆให้กับน้องๆ ไปศึกษาต่อด้วยตัวเองได้หลังจบค่าย ระหว่างนี้ก็มีช่วง Q&A แล้วก็ Talk แชร์ประสบการณ์กันบ้าง
2. แข่งกันทำ Quiz: ระหว่างที่พี่ไตเติ้ลกับคนอื่นๆกำลังถ่วงเวลาให้เรา ผมกะพี่ๆ Speaker บางส่วนก็มาระดมกันทำ Quiz สำหรับให้น้องๆได้แข่งกันเล็กๆน้อย โดยหลักๆก็เพื่อวัดความรู้น้องๆจากที่ได้เรียนมาทั้งหมดและก็มีให้รางวัลเล็กๆน้อยๆกับน้องที่ทำได้ 3 อันดับแรก ได้รางวัลกลับบ้านไป ซึ่งจะให้รางวัลอีกทีตอนวันจบค่ายเพราะตอนนี้เรายังไม่มี
3. เเปะโพสอิทกระชับความสัมพันธ์ 🤣: มาสู่กิจกรรมสุดท้ายจริงๆละ ในตัวกิจกรรมจริงๆก็คือเราจะมีการแบ่งเนื้อหาที่เรียนในหมวกต่างๆเอาไว้ แล้วก็ให้น้องๆแบ่งเป็น 2 กลุ่ม กลุ่มละ 5 คนไปแปะความรู้ที่ได้จากการเรียนทั้งหมดลงไปในแต่ละหมวดที่เราเตรียมไว้ ให้น้องๆได้ทบทวนความรู้ที่เรียนมาทั้งหมด
5. Last Day of SIT Helloworld Goose Camp
ในที่สุดก็มาถึงวันสุดท้ายของค่ายกันแล้ว เป็นวันที่น้องๆต้องออกมานําเสนอผลงานของตัวเองซึ่งพวกพี่ก็ได้ยืนดูอยู่ทุกๆกลุ่มพร้อมกับความภาคภูมิใจในตัวน้องๆที่ทํากันเต็มที่เเละสนุกไปกับงานที่กลุ่มตัวเองทำกันเสร็จ บางคนอาจจะมีตื่นเต้นไปบ้างตอนเวลาใกล้ present บางคนเว็บก็ยัง deploy ไม่เสร็จ 😂 ตื่นเต้นๆ เเต่พี่ก็คอยยืนดูอยู่ห่างๆอย่างห่วงๆอยู่นะเออ (บางคนก็ห่วงอยู่เพราะพรี่ๆ กรรมการก็ถามเอาเรื่องอยู่พอสมควร) แต่สุดท้ายก็ออกมาได้เป็นอย่างดีกว่าที่พวกพี่คาดกันไว้เยอะ
สุดท้ายนี้ก็ต้องขอบอกว่าเป็นค่ายที่สนุกมากๆเลย เป็นค่ายที่ได้ทั้งความสนุกและก็ความรู้ รวมถึงค่ายนี้ทำให้ผมได้รู้จักกับเพื่อนๆและน้องๆกลุ่มใหม่ๆเยอะมากๆเลย พวกพี่เองก็หวังว่าน้องๆจะได้รับทั้งความรู้ ความสนุกเหมือนๆกันกับที่พี่ได้รับ และก็สามารถนำความรู้ที่ได้จากค่ายนี้ไปใช้ต่อยอด หาเส้นทางของตัวเองจนเจอในอนาคตนะคับผม ไว้โอกาสหน้าเจอกันอีกน้าา 👋