[Internship] เล่าประสบการณ์ฝึกงาน Full Stack Developer ที่ MFEC
สวัสดีครับ ผมชื่อนาย สิริวัฒน์ ตั้งดำรงวัฒน์ (กอล์ฟ) เป็นนิสิตศึกษาอยู่ที่มหาวิทยาลัยมหาสารคาม สาขาเทคโนโลยีสารสนเทศ
- ฝึกงานฝ่าย: Executive
- แผนก: Office of Executive
- ตำแหน่ง: Full Stack Developer
การฝึกของผมเป็นแบบ WFH ในช่วงระหว่างประชุมพูดคุยกันกับพี่เลี้ยงก็ไม่ได้แคปภาพบรรยากาศมาด้วยแอบเสียดาย แถมมาฝึกคนเดียวไม่มีเพื่อนมาด้วยเลย 😥
ก็ไม่แน่ใจว่าบล็อกนี้จะน่าเบื่อไหมหรือเนื้อหาในบล็อกจะงง ๆ ไหมนะครับ เพราะมีแต่ตัวหนังสือ แล้วนี่ก็เปิดประสบการณ์เขียนบล็อกครั้งแรกของผม 55555 ถ้าผิดพลาดตรงไหนก็ขออภัยด้วยนะครับ
มาเริ่มกันเลยดีกว่าครับ…
ท้าวความก่อนว่าในช่วงที่ใกล้จะฝึกงานผมสนใจ Next.js/Express.js ได้ศึกษามาจากรุ่นพี่ที่ผมเคยช่วยงานแกมานิดหน่อย จากนั้นก็ลองหยิบ Next.js และ Express.js ไปทำโปรเจกต์จบ พอได้ลองก็คิดว่าน่าสนุกดี จึงอยากลองหาที่ฝึกงานที่ตรงกับสิ่งที่เราสนใจ
ช่วงเริ่มหาที่ฝึกงาน
ในช่วงนั้นผมได้สอบถามรุ่นพี่ที่รู้จักว่ามีที่ฝึกงานที่ไหนแนะนำไหม? รุ่นพี่ก็บอกว่า “ลองดู MFEC ไหมเพื่อนพี่เคยไปฝึกแล้วได้ทำงานต่อด้วย”
ผมก็เลยลองไปหาข้อมูลว่า ณ ช่วงนั้น MFEC มีรับเด็กฝึกงานตำแหน่งไหนบ้างทั้งในกลุ่ม Facebook ต่าง ๆ และเว็บไซต์ของ MFEC ก็ได้ไปเห็นตำแหน่งฝึกงาน Full Stack Developer ตัวภาษาก็มีในส่วนที่ผมสนใจพอดีแต่ก็ไม่มั่นใจว่า ณ ต้อนนั้นมีเปิดรับสมัครไหม เพราะเป็นโพสต์เมื่อหลายเดือนที่แล้ว(แอบเศร้า) แต่ก็ลองสมัครผ่านเว็บไซต์ MFEC โดยตรงเลยครับ มีแบบทดสอบเล็ก ๆ น้อย ๆ ตอนสมัครด้วย จากนั้นก็นั่งรอ…
การติดต่อกลับมาจาก MFEC Internship…
หลังจากนั้นไม่กี่วันก็มีพี่ปิงปอง (พี่แผนก HR) ติดต่อมาว่าตำแหน่ง Full Stack Developer ตอนนี้ยังไม่มีเปิดรับสมัครนักศึกษาฝึกงาน ตอนนี้มีตำแหน่งอื่น ๆ ที่เปิดรับประมาณ 3-4 ตำแหน่ง (แต่จำไม่ได้แล้ว5555 ในใจก็อยากจะฝึกที่เกี่ยวกับที่ตัวเองสนใจก่อนประมาณตำแหน่ง Frontend/Backend/Full Stack/ Web อะไรประมาณนี้ เพราะกลัวว่าตอนเรียนตอนศึกษายังชอบ แต่พอทำงานอาจจะไม่ชอบจะได้รู้ตัวเองเลยว่าชอบไหม 55555)
ผมก็ตอบพี่ปิงปองว่ายังไม่มีตำแหน่งที่โดนใจเลยครับ😂 ตอนนี้กำลังสนใจ Next.js/Express.js ไม่ก็ตำแหน่ง Frontend/Backend หรือ Full Stack Web ผมสนใจพวกนี้อยู่เลยอยากลองฝึกในตำแหน่งประมาณนี้ดู
พี่ปิงปองก็ถาม เราสนใจตำแหน่งประมาณไหนเดียวลองไปคุยกับทีมอื่น ๆ ดูว่ามีทีมไหนจะรับนักศึกษาฝึกงานไหม
หลังจากนั้นผ่านไปไวเหมือนโกหก พี่ปิงปองก็ติดต่อกลับมาว่ามีพี่สนใจอยู่เดี๋ยวจะมีสัมภาษณ์และทดสอบ Coding นิดหน่อยนะให้เตรียมภาษาที่ถนัดไปด้วย จากนั้นก็นัดวันสัมภาษณ์กัน
ช่วงก่อนสัมภาษณ์ฝึกงาน
จะได้เมลตารางนัดสัมภาษณ์ส่งมาให้ ผมก็ได้จิ้ม ๆ ไปหารายชื่อผู้ที่ถูกชวนเข้าการประชุม แล้วก็เอาไปหาใน Google แบบสุ่ม ๆ เผื่อเจอประวัติ ทันใดนั้นเองก็ไปเจอชื่อ(พี่ลิ่ว)วสันต์ ลิ่วลมไพศาล ซึ่งตอนนั้นก็ยังไม่รู้ว่าพี่ลิ่วคือใคร พอเห็นประวัติก็คือโอ้วโหว(ว ล้านตัว)ตำแหน่ง CTO และยังเป็นเจ้าของเว็บไซต์ blognone คิดในใจแบบว่า ตอนสัมภาษณ์จะเป็นยังไง? จะยากไหม? แล้วจะสัมภาษณ์ผ่านไหมเนี่ย! แถมมี Coding ด้วยจะทำได้ไหม? (ผมก็ไม่ได้เก่งเท่าไหร่) ถ้าสัมภาษณ์ไม่ผ่านจะไปไหนต่อเนี่ย! แอบกดดันตัวเอง😥
ช่วงระหว่างสัมภาษณ์ฝึกงาน
พอมาถึงวันสัมภาษณ์ พี่ที่สัมภาษณ์ผมคือ(พี่ลิ่ว) วสันต์ ลิ่วลมไพศาล เริ่มเลยละกัน ก็แนะนำตัวเองตามปกติ เคยเข้าร่วมกิจกรรมอะไร เคยทำโปรเจกต์อะไรมาบ้าง แล้วโปรเจกต์ที่เคยทำใช้อะไรพัฒนาบ้าง พอจบพี่ลิ่วก็ถามผมว่า มีวิชาไหนที่ไม่ชอบไหม และชอบวิชาไหนที่เรียนมาบ้าง เรียนยากไหม ภาษาอังกฤษเป็นยังไงบ้าง แล้วถ้าทำงานสนใจทำงานสายไหนอะไรประมาณนี้ ในส่วนของโปรเจกต์ที่ผมเขียนไปว่าใช้อะไรพัฒนาบ้างพี่ลิ่วก็จะจับมาถามประมาณว่า Library ตัวนี้ใช้ทำอะไรในโปรเจกต์ การทำงานเป็นยังไงอธิบายแบบคร่าว ๆ อะไรประมาณนี้
ส่วนถัดไปเป็นการทดสอบการ Coding
พี่ลิ่วจะมีโจทย์มาให้แล้วอยากได้ผลลัพธ์อย่างนี้ ระหว่างทำโจทย์ก็แชร์หน้าจอไปพี่ลิ่วก็จะนั่งดูเราทำ แต่ระหว่างทำพี่ลิ่วก็อนุญาตให้สามารถเปิดหาคำสั่งได้ แต่ห้ามดูเฉลย ถ้าสงสัยสามารถถามได้ตลอด พอทำไปสักพักเหมือนผมทำไปผิดทางแกก็จะทักว่าตรงนั้นจะทำอะไร ผมก็เอ่อ! เหมือนจะมาผิดทางแฮะ จากนั้นก็ลุยใหม่จนได้คำตอบที่ถูกต้อง พอสัมภาษณ์เสร็จช่วงเช้า ช่วงบ่ายพี่ปิงปองก็ติดต่อมาว่าผ่านสัมภาษณ์นะตกลงที่จะฝึกงานเลยรึเปล่า(ก็รู้สึกดีใจ โล่งมาก ๆ และแล้วก็ผ่านด่านแรกมาได้ ด่านถัดไปคือตอนฝึกงาน😂 มีกังวลว่าเมื่อได้เข้าไปฝึกงานแล้วจะทำงานที่ได้รับมอบหมายได้ไหม) หลังจากตอบตกลงอีก 1–2 วัน ก็มีเมลตอบรับการฝึกงานส่งกลับมา เย้~~ มีที่ฝึกงานแล้ว
ช่วงระหว่างการฝึกงาน 4 เดือนของผมได้ทำอะไรบ้าง
- ปรับปรุงเว็บไซต์ career.mfec.co.th ตาม requirements ต่างๆ เช่น
- Update Package ภายในโปรเจกต์
- ปรับปรุง Server Side Rendering(SSR)
- เพิ่ม Auto Save Draft หน้า User Update Profile และ หน้าเพิ่มข้อมูล Job
- ปรับปรุง SEO Job Posting
- ปรับปรุงแจ้งเตือนผ่าน API Microsoft Teams เมื่อมีผู้ใช้งานสมัครงาน
- เพิ่มแจ้งเตือน Privacy Notice ก่อนผู้ใช้จะสมัครสมาชิก
- ปรับปรุง Filter/Pagination ในส่วนแสดงข้อมูล Jobs
- ปรับปรุง MapJS เป็น Static/Embed Map สำหรับหน้าข้อมูล Jobs
- เพิ่ม Alert แจ้งเตือน User เมื่ออัปโหลดภาพใหญ่เกินที่กำหนด
- ปรับปรุง Library Tests ภายในโปรเจกต์จาก Puppeteer เป็น Cypress - ได้ศึกษาเรื่องอะไรใหม่ ๆ พี่ลิ่วจะบอกว่าให้ลองไปศึกษาเรื่องนี้มาดูสิ (แต่ถ้าติดปัญหาหรือไม่เข้าใจก็สามารถถามพี่ลิ่วได้ตลอด ช่วยแนะนำให้ เป็นแนวทางให้เราศึกษาด้วยตัวเองก่อน ถ้าไม่ได้จริง ๆ พี่ลิ่วก็จะมาช่วยดูให้ แต่บางทีผมก็แอบคิดว่าบางทีผมศึกษาบางเรื่องนานเกินไปรึเปล่า) สิ่งที่ได้ศึกษา เช่น
- ศึกษาการใช้ Docker, Docker Compose
- ศึกษาการใช้ Cypress E2E Testing
- ศึกษาการใช้งาน RainforestQA
- ศึกษาและทดลองทำ CI/CD บน Google Cloud Build
- ศึกษาและทดลอง Run โปรเจกต์ด้วย Kubernetes
- ศึกษาและทดลองทำ Nginx Cache
- ศึกษาและทดลองทำ Low Code No Code ด้วย Budibase - ปรับปรุงและเพิ่ม Test Case ในส่วนของที่เพิ่มตาม Requirements ว่าเราเพิ่มอะไรหรือแก้ไขอะไรเว็บไซต์ยังทำงานถูกต้องอยู่หรือเปล่า
- โปรเจกต์เล็ก ๆ เป็นเว็บไซต์ Spinning Wheel สุ่มจับฉลากรายชื่อพนักงานช่วงปีใหม่
ช่วงท้ายของการฝึกงาน
พี่ลิ่วก็ได้ถามว่าฝึกงานเสร็จแล้วจบเลยไหม จบแล้วจะทำงานต่อหรือพักไปเที่ยวก่อน (ก็อยากจพักไปเที่ยวก่อนแต่ ณ ตอนนั้นสถานการณ์ไม่อำนวยเท่าไร) ก็เลยตอบแกไปว่าก็น่าจะพักก่อนสักเดือนก็น่าจะหาทำงานต่อครับ จากนั้นพี่ลิ่วก็บอกว่าเดี๋ยวพี่ลองไปสอบถามทีมอื่นดูว่ามีตำแหน่งว่างไหม
พอผ่านไป 2–3 อาทิตย์ก็มีพี่มาร์ค (พี่แผนก HR) ติดต่อมาว่าเดี๋ยวจะมีนัดสัมภาษณ์นะ ก็นัดแนะวันกันจนเสร็จเรียบร้อย ก็ทักไปบอกพี่ลิ่วว่ามีพี่ติดต่อมาจะสัมภาษณ์แล้วนะครับ ก็เลยขอคำปรึกษาพี่ลิ่วว่าเตรียมตัวยังไงดีครับ😂 พี่ลิ่วก็แนะนำมาแล้วก็บอกว่าก็ไม่ต่างอะไรกับตอนสัมภาษณ์ฝึกงานหรอก แค่เรียบเรียงดี ๆ ว่าตอนฝึกงานได้ทำอะไรบ้าง ไม่ต้องเครียด จากนั้นก็รอจนถึงวันสัมภาษณ์
ช่วงพี่อีกทีมมาสัมภาษณ์ (พี่นาถ และพี่มิกจากทีม M-Lab)
เมื่อเข้าไปในห้อง MS Teams สักพักพี่นาถและพี่มิกก็ถามไถ่เรื่องการฝึกงาน การดูแลของพี่ลิ่วเป็นยังไงบ้าง อารมณ์แบบละลายพฤติกรรมก่อนที่จะสัมภาษณ์ จะได้เป็นกันเอง ไม่เครียด ไม่เกร็ง(แต่ก็แอบเกร็ง ๆ อยู่เหมือนเดิมครับ 5555) หลักจากนั้นก็คล้าย ๆ ตอนสัมภาษณ์ฝึกงานเลย แต่ไม่มีการทดสอบการ Coding เมื่อสัมภาษณ์เสร็จพี่ ๆ ก็บอกว่าเดียวติดต่อกลับมาอีกที
สัมภาษณ์เช้า ตอนบ่ายผลออกไวมาก พี่คนเดิมที่โทรนัดสัมภาษณ์ก็บอกว่าสัมภาษณ์ผ่านนะ พร้อมบอกข้อเสนอต่าง ๆ ว่าตกลงไหมมีเวลาให้คิดประมาณเกือบ 5 วัน และแล้วผมก็ตอบรับข้อเสนอครับ เย้~~🎊 หลังจากนั้น 2–3 วัน ก็มีผลสัมภาษณ์อย่างเป็นทางการส่งเข้ามาที่เมล
โค้งสุดท้ายของการฝึกงาน…
พี่เจนเป็นครีเอทีฟคอนเทนต์ของ MFEC ก็ได้ติดต่อมาว่าจะมีสัมภาษณ์เกี่ยวกับการฝึกงานกับพี่ลิ่ว และพี่นาถมาชวนให้ไปร่วมงานด้วย พอได้นัดวันเวลาเสร็จ ผมก็ถามกลับไปอย่างไวว่า มีสคริปซ์คำถามให้ไหมครับ😂 (ถ้าจะให้ถามตอบแบบคิดสด ๆ น่าจะแตกพ่าย คิดคำตอบไม่ทันแน่ ๆ 55555) และแล้วก็มาถึงวันสัมภาษณ์ไวเหมือนโกหก(ตื่นเต้นมาก ๆ กลัวพูดผิด พูดซ้ำ ๆ วนไปวนมา 55555) พอสัมภาษณ์เสร็จ พี่เจนก็ถามประมาณว่ารู้จักเว็บไซต์ Medium ไหม แล้วเคยเขียนบล็อกหรือเปล่า ถ้าไม่เคยเขียนอยากลองเขียนดูไหม ผมก็ตอบไปว่าพอรู้จักเว็บไซต์ Medium อยู่แต่ไม่เคยเขียนบล็อกเลย แต่เดียวจะลองเขียนดูครับ และนี่ก็เป็นที่มาของบล็อกนี้…
สิ่งที่ได้จากการฝึกงานที่ MFEC
หลัก ๆ เลยคือได้ฝึกงานตามที่เราสนใจ ได้สัมผัสและได้ประสบการณ์การทำงานบน Product จริงในส่วนที่ผมได้เพิ่มหรือแก้ไขปรับเปลี่ยนก็ได้ Release ลงบน Product อีกทั้งได้ศึกษาเรื่องใหม่ ๆ ที่ยังไม่เคยรู้มาก่อน (ผมว่าถ้าพี่เลี้ยงให้ศึกษาอะไรก็ลองลุยเลยครับ เพราะยังไงถ้าเราศึกษา เราก็เป็นคนที่ได้ความรู้ติดตัวเพิ่มไม่มากก็น้อย) และที่สำคัญผมคิดเราว่ายังได้ Contact/Connection กับคนเก่ง ๆ อีกด้วย
สุดท้ายนี้ก็ขอขอบคุณที่หลงเข้ามาอ่านจนถึงตรงนี้นะครับ🙏