3 ปัญหาของการเปลี่ยนสายงานมาเป็น Dev ที่ทำให้หลายๆ คนเลิกล้มกลางทาง
ตั้งแต่ต้นปี 2022 ที่ผ่านมา ผมได้มีโอกาสได้ไปเป็นผู้สอน ในโครงการที่ชื่อว่า Junior Software Developer ขององค์กรที่ชื่อว่า Generation Thailand ที่เป็นองค์กรไม่แสวงหาผลกำไร มีพันธกิจในการช่วยคนเปลี่ยนสายงานให้ได้มีงานทำ ซึ่งทาง Generation ได้เริ่มเข้ามาดำเนินโครงการที่ประเทศไทยแล้ว และโครงการแรกที่ทำ คือโครงการเปลี่ยนสายงานคนให้มาเป็น Full-Stack Developer ซึ่ง Skooldio ก็ได้รับโอกาสเข้าไปเป็น Teaching Partner ในโครงการนี้ถึงสองรุ่นด้วยกัน สอนไปรุ่นละเกือบ 60 คน
ในฐานะผู้สอนหลัก ผมได้รับมอบหมายให้สอนในส่วนของเนื้อหา Technical ตั้งแต่ Frontend, Backend ไปจนถึง Database โดยมีน้องๆในทีม Skooldio อีก 3–4 คนมาช่วยเป็นผู้สอน และเป็น TA ให้ รวมเวลา 12 สัปดาห์ ซึ่งนอกจากจะต้องสอนเนื้อหา Technical แล้ว ทีมงานน้องๆ TA ยังต้องสอนเนื้อหาที่เป็น Soft Skill ให้ด้วย แต่มันมีหน้าที่หนึ่ง ที่เราไม่ได้เตรียมใจไว้ตอนแรก คือหน้าที่ของ Life Coaching
เนื่องจากระหว่างช่วงเวลา 12 สัปดาห์นี้ ผู้เรียนเกือบ 60 คน (ต่อรุ่น) จะต้องเรียนตั้งแต่ 9 โมงเช้า ถึง 5 โมงเย็น (คนสอนก็เช่นกัน) ทำให้ผู้เรียนหลายๆ คนเกิดอาการเหนื่อยล้า และท้อถอยระหว่างทาง ทำให้ผมและทีมงานต้องหาวิธีแก้ไขกัน โดยการนำ session 1 on 1 เข้ามา (ปกติที่ Skooldio จะ 1 on 1 น้องๆ ทุก 2 สัปดาห์อยู่แล้ว) เพื่อ Checkin กับผู้เรียน ทำให้เราได้รับฟังปัญหาหลายๆ อย่าง นอกเหนือจากเรื่องความเหนื่อยล้าในการเรียน ตัวอย่างเช่น
- ผมทำตามที่เรียนได้นะ แต่ไม่เข้าใจว่าทำไมต้องทำอย่างนั้น
- พอไปทำเอง แล้วเริ่มไม่ค่อยถูก
- พอเจอปัญหาที่ไม่เคยเรียน ไม่รู้จะเริ่มต้นคิดอย่างไร
- …
ซึ่งเป็นปัญหาที่ผมเชื่อเอาเองว่า หลายๆ คนที่กำลังเริ่มศึกษา เพื่อจะเปลี่ยนสายงานมาสาย Developer มักจะต้องเจอกัน วันนี้ก็เลยอยากจะเอาสิ่งที่ค้นพบระหว่าง Session 1 on 1 มาสรุปเล่าให้ฟัง ว่ามันมีปัญหาอยู่ 3 กลุ่มหลักๆ ของการเปลี่ยนสายงานมาเป็น Dev ที่อาจจะทำให้หลายๆ คน ไม่ไปต่อ หรือไปไม่สุดทาง และเลิกล้มกลางคัน พร้อมกับความเห็นส่วนตัวของผมเอง ว่าจะผ่านปัญหาเหล่านั้นด้วยวิธีไหนได้บ้าง
(Disclaimer: 3 ปัญหานี้ เป็นสิ่งที่เจอในโครงการ อาจจะมีปัญหาในมิติอื่นอีกมากมาย หรือในบริบทที่แตกต่างออกไป ชวนคุยกันได้นะครับ)
ปัญหาที่ 1 ทำเป็น แต่ไม่เข้าใจ
ปัญหาสุด Classic ของการเรียนเขียน Program ซึ่งเป็นด่านแรกที่หลายๆ คนมักจะเจอ ไม่ว่าจะเรียนด้วยตัวเอง หรือเรียนผ่านหลักสูตรมากมายในท้องตลาด ปัญหาคือ ตอนที่ครูอธิบาย หรือที่อ่านผ่าน document มันเหมือนจะเข้าใจนะ พอลองเอาตัวอย่างไป Run “เฮ้ย แก มันก็รันได้หว่ะ” แต่ ทำไมต้องเขียนแบบนี้นะ แล้วพอไปเริ่มต้นปัญหาอื่นด้วยตัวเอง แบบไม่มีตัวอย่างเริ่มให้ก่อน ก็จะเริ่มงงงงงงงงง ว่าต้องเริ่มอย่างไร หรือพอเจอปัญหาที่ไม่เคยเรียน ก็จะงงงงงงงงง ว่าต้องแก้ยังไงนะ ตัวอย่างในห้องเรียน เวลาสอนเรื่อง Loop ปัญหาที่มักเจอ ก็คือ เอา Code ตัวอย่างมาวาง อย่างตัวอย่างนี้คือวน print (0 — 9)
แล้วมันก็วนถูกนะ แล้วก็หยุดถูกตามตัวอย่างเลย แต่พอเจอโจทย์ที่แตกต่างไป อย่างให้ print เลขจากมากไปน้อยแทน (9 8 7 … 0) ก็จะเกิดคำถามว่า แล้วต้อง set ค่า i เป็นอะไร แล้วเงื่อนไขในการหยุดต้องใส่อะไร
คำแนะนำแบบลูกทุ่งของผมก็คือ ลองไล่การทำงานของ Program ของเราทีละรอบ ทีละบรรทัด เพื่อเข้าใจความเปลี่ยนแปลงของ Code ของเรา อันนี้ไม่เฉพาะเรื่อง Loop นะ ทุกเรื่องในการเขียน Program สำหรับผู้เรียนสาย Dev มือใหม่ ถ้าไม่เข้าใจ ก็ให้ลอง log ลอง run โปรแกรมเรา แล้ว debug ทีละบรรทัดไปเลย แล้วค่อยๆ ทำความเข้าใจ ว่า Code มันทำงานยังไง ไม่ว่าจะเป็น Code ตัวอย่างที่เราเรียน หรือ Code ที่เรา Copy มาใช้ อยากให้ลองไล่ Debug ดู ว่ามันทำงานยังไง ลองเปลี่ยนบางบรรทัด แล้วการทำงานเปลี่ยนไปอย่างไร เพื่อจะได้เข้าใจวิธีคิดของ Code ชุดนั้นๆ
ปัญหาที่ 2 ไม่ได้ฝึกฝนด้วยตัวเอง
ปัญหานี้เป็นปัญหาที่มีความเชื่อมโยงกับปัญหาแรกอยู่หลายส่วน คือหลายๆ คนที่ไปเรียนโครงการอย่าง Generation หรือศึกษาด้วยตัวเองก็ตาม จะเจอปัญหาหนึ่ง คือเราจะเรียน จะฟัง จะทำตามตัวอย่าง หรือแบบฝึกหัด ตามหลักสูตร พอถึงขั้นตอนจะลองทำด้วยตัวเอง พอเจอทางตัน ก็จะรู้สึกว่าตัวเองยังเรียนไม่พอ ก็ไปวนลูป เรียนหลักสูตรอื่น คอร์สอื่น ไปเรียนช่องทางอื่น เปลี่ยนอาจารย์ที่สอน แต่ก็ยังใช้วิธีเดิม คือการ ฟัง ดูวีดีโอ ทำตามตัวอย่าง หรือแบบฝึกหัดตามผู้สอน
ซึ่งอันนี้ผมก็ว่าไม่ใช่วิธีที่ผิดนะ แต่เราจะเสียเวลาในการฝึกฝน ไปกับการเริ่มเรียนใหม่ทุกครั้ง บางคน พอทำลูปนี้หลายๆ รอบ แล้วยังรู้สึกว่าทำไม่ได้ ก็จะเกิดความคิดที่ว่า “เอ๊ะ หรือเป็นเพราะเรา เป็นเพราะเรามากกว่า” (เป็นเพราะใจ เป็นเพราะใจเราอ่อน อ่อนแออยู่เสมอ… =_=) เริ่มโทษตัวเองว่าไม่เก่ง แล้วก็ล้มเลิกไปกลางทาง ทั้งๆ ที่อีกนิดเดียวก็อาจจะเข้าใจแล้ว ทั้งหมดทั้งมวล ผมว่าเพราะเรายังไม่ได้ฝึกฝนด้วยตัวเอง โดยเฉพาะ โครงการเรียนต่อเนื่องอย่าง Generation ที่เรียนทั้งวันแล้ว ก็เหนื่อย แล้วก็ไม่มีเวลาไปฝึกฝนด้วยโจทย์อย่างอื่นอีก
สำหรับเรื่องนี้ของผมแนะนำให้ไปลองทำโจทย์เยอะๆ ซะ เรียนและทำตามคนสอนแค่ครั้งแรกๆ ก็พอ เพื่อเข้าใจ Concept แล้วไปหาโจทย์มาฝึกประสบการณ์ ฝึกวิธีคิดที่หลากหลาย ให้คิดว่าตัวเราเองเหมือน Machine Learning ที่ต้องมี Training Set ที่เยอะ และหลากหลายพอ เพื่อจะได้ทำให้ตัวเราเองเก่งขึ้น เวลาเจอโจทย์ใหม่ที่ไม่เคยเจอ เราจะไม่ Blank ตาลอยอีกต่อไป แต่เราจะเริ่มเห็นว่า โจทย์ หรือ ปัญหาที่เราเจออยู่ตรงหน้า มันเหมือนกับปัญหา A B C ที่เราเคยเจอมานี่หว่า
ช่องทางการฝึกฝนแนะนำ
- Coderbyte | Code Screening, Challenges, & Interview Prep
- Coding Games and Programming Challenges to Code Better (codingame.com)
- LeetCode — The World’s Leading Online Programming Learning Platform
หรือไปตำกันได้ที่ 12 Best Websites To Practice Coding For Beginners | Flatiron School
ปัญหาที่ 3 ความไม่มั่นใจในความรู้ของตัวเอง
ปัญหาหนึ่งที่เจอทั้งจากที่น้องในทีมที่เปลี่ยนสายมาเช่นกันเล่าให้ฟัง แล้วก็ตอนที่สอนนักเรียนในโครงการ Generation ก็คือ นักเรียนหลายคนมีความกลัว กลัวว่าตัวเองจะรู้ไม่พอที่จะทำงาน กลัวว่าจะเรียนตามคนอื่นไม่ทัน กลัวไม่พร้อม กลัวสู้คนที่จบมาสายตรงไม่ได้ ก็เลยอาจจะอยู่ในโหมด เรียนแล้ว ลองทำแล้ว เกิดอาการท้อ ไม่กล้าสมัครงาน หรือไม่กล้าที่จะเปลี่ยนสายมา ซึ่งไอ้ความรู้สึกนี้ ก็จะเจอกันตั้งแต่ช่วงเริ่มมาเรียนรู้ ช่วงเตรียมสมัครงาน หรือว่าเริ่มทำงานแล้ว หลายๆ คนก็ยังมีความรู้สึกเหล่านี้กันอยู่
ซึ่งวิธีที่จะผ่านมันไปได้ ผมว่าเราจะต้องคิดว่ามันเป็นเรื่องธรรมดามาก ที่จะ
ยัง ไม่รู้ หรือ ยัง ไม่พร้อม
ผมใช้คำว่า — ยัง — เพราะว่าการที่เรายังไม่รู้ แปลว่า เดี๋ยวเราจะรู้ เดี๋ยวเราจะพร้อม ก็ต้องคอยบอกตัวเองอยู่เรื่อยๆ ว่าวันนี้เราแค่ยังไม่รู้ ไม่ได้แปลว่าเราจะไม่รู้ตลอดไป
คนเรียนจบตรงสายมา เอาจริงตอนเริ่มงานหลายๆคนก็ยังไม่พร้อมทำงานเหมือนกัน เพราะแต่ละบริษัทก็มี Tech Stack ที่ต่างกัน มี Framework มี Business Domain Knowledge ที่ต่างกัน เวลาเข้าไปก็ต้องไปเรียนรู้ใหม่ ขนาดคนที่ทำงานสายนี้มาหลายปีแล้ว เวลาเปลี่ยนงานใหม่ ก็เข้าไปเรียนรู้สิ่งใหม่ๆ เหมือนกัน เพราะฉะนั้นไม่ต้องกลัวว่าจะความรู้ไม่พอทำงานหรอกครับ เราแค่ต้องหาว่าเรายังไม่รู้อะไร แล้วก็ค่อยๆไปหาสิ่งเหล่านั้นมาเติม
สุดท้ายนี้ ปัญหาทุกๆ อย่าง ก็เป็นบททดสอบเพื่อวัดใจเรา ว่าเรายังอยากมาทางสายนี้อยู่หรือเปล่า มันต้องมีช่วงนี้เหนื่อย ช่วงที่ท้ออยู่แล้ว เพราะเราอาจจะไม่ได้มีพื้นฐานเท่าคนที่จบตรงสาย แต่ไม่ต้องกังวลไป ผมอยากฝากสำหรับคนที่จะเข้ามาสู่เส้นทางสายนี้ หรือได้ก้าวเข้ามาและกำลังอยู่บนทางสายนี้แล้ว ว่าการเดินทางบนถนนสายนี้เป็นการวิ่งมาราธอน ต้องมีการฝึกซ้อม ทั้งร่างกายและจิตใจ และในการวิ่งจริง แต่ละคนก็จะมีจังหวะการวิ่ง (PACE) เป็นของตัวเอง ค่อยๆวิ่งไปด้วยความเร็วของตัวเองก่อน ไม่ต้องกดดันตัวเอง โดยการไปแข่งกับใคร
เป็นกำลังใจให้ทุกคนครับ