🚀การเดินทางสู่โลก Backend: ประสบการณ์ฝึกงานที่ FOXBITH 🦊

Phurikornpt
FOXBITH
Published in
3 min readMar 29, 2024

สวัสดีครับ ผมชื่อภูนะครับบบ ในบทความนี้จะมาเล่าถึงประสบการณ์ที่ได้มาฝึกงานที่ Foxbith ในตำเเหน่ง Backend นะครับ โดยหัวข้อหลักๆ ในบทความจะมีดังนี้ครับ

เพื่อนๆ Internship

1. ช่วงเเรกของการฝึกงาน

2. ชีวิตการทำงาน

3. สิ่งที่ได้เรียนรู้

4. คำเเนะนำสำหรับเพื่อนๆ ที่สนใจฝึกงาน

5. สรุป

1. ช่วงเเรกของการฝึกงาน

เริ่มต้นวันเเรกเลย พี่เลี้ยงก็จะประเมินเรา โดยให้ทำ mini project ขึ้นมา 1 อัน ซึ่งโจทย์ก็คือ

Task => ทำ API เกี่ยวกับอะไรก็ได้เป็น REST API ให้มี CRUD ครบ มี DB ด้วยนะ โดยไม่จำกัดเครื่องมือ เเละมีเวลาให้ประมาณ 1 สัปดาห์

ไอ้เราก็ชอบเกี่ยวกับเพลงซะด้วย ก็เลยทำ API เกี่ยวกับเพลงซะเลยย โดย Tool หลักๆ ที่เราใช้จะเป็น Nest js , Postgresql

เมื่อเราทำเสร็จเเล้วรุ่นพี่ก็จะให้ push ขึ้น Git ดังตัวอย่าง จากนั้นพี่ๆ ก็จะรีวิว code ให้ครับ

การทำงาน

เวลาทำงาน : 9:30 - 18:30

รูปแบบการทำงาน :

  • WFH => อังคาร-พฤหัส
  • Onsite => จันทร์ , ศุกร์
  • หยุด => เสาร์-อาทิตย์

เริ่มต้น Project จริงเเล้ว

การทำงานจะเป็น Sprint ใน 1 Sprint คือ 2 สัปดาห์ต่องานที่ได้รับมอบหมาย

ในเบื้องต้นพอได้เริ่มทำ Project จริง สิ่งเเรกเลยที่เราต้องเรียนรู้เลยคือ Business Logic ของโปรเจคว่า Project ที่ทำอยู่มี Logic อะไรบ้าง รายละเอียดเพิ่มเติม สิ่งต่อไปที่ต้องเรียนรู้เลยก็คือ Structure Code ของ Project ยกตัวอย่างเช่น โครงสร้างของ Repo การจัดวาง route , pattern รูปแบบการเขียน Code ของรุ่นพี่ เพื่อที่ว่าเราจะสามารถทำต่อได้โดยมี pattern เเบบเดียวกับที่พี่ๆ วางเอาไว้ ยกตัวอย่างง่ายๆ เช่นการตั้งชื่อตัวแปร เนื่องจาก Developer เเต่ล่ะคนจะตั้งชื่อ ซึ่งอาจเเตกต่างกันก็ได้ ดังนั้นใน Project จะถูกกำหนดไว้อย่างชัดเจนเลยว่าจะเป็นเเบบไหน

userId = '' //=> camel case
userID = '' //=> camel case
user_id = '' //=> snake case

ยกตัวอย่างมาพอสังเขป จริงๆเเล้ว มีหลายอย่างมากที่ต้องปรับให้เป็นรูปแบบเหมือนกันครับ เพื่อการทำงานร่วมกันให้ได้ดีที่สุดครับ

ต่อไปจะศึกษาเกี่ยวกับ Data base เนอะครับ ถ้าเราเข้าใจ Business Logic ดีเเล้วเราก็จะเข้าใจ DB ได้เองง สิ่งที่เราต้องรู้เลยก็คือ พวก Relation ของข้อมูล ข้อมูลชุดนี้ต่อกับที่ไหน รูปเเบบข้อมูลเป็นไง มี Table อะไรบ้าง เป็นต้น เพื่อที่เราจะคุ้นชินกับข้อมูล เเละ สามารถเเก้ไขมันได้ โดยไม่กระทบต่อระบบอื่น เเต่ในขั้นตอนนี้ ถ้าเราติด หรือ งงตรงไหนเราสามารถถามพี่เลี้ยงได้เลย พี่ๆ ที่นี้ดีมากเลยครับ เป็นกันเองกันทุกคนเลย สามารถถามได้เลยครับบ

เเนะนำนะครับ ก่อนถาม เราควรที่จะหาข้อมูลด้วยตัวเองก่อนครับ ถือว่าเป็นการฝึกค้นหาข้อมูลด้วยตัวเองด้วย. ถ้าไม่ได้จริงๆ ก็ถามได้เลยครับ

ต่อไปนะครับ หลังจากนั้นพี่ๆ ก็จะ Assign งาน เเละรายระเอียดงานให้ ว่าให้ทำระบบอะไร ที่ไหนใน Code ที่ไหนใน Database เนื่องจากในช่วงเเรกๆ ของการทำงานเราจะไม่ค่อยทราบเกี่ยวกับระบบมากนัก ดังนี้พี่ๆ ก็จะ Assign งานที่ไม่ใหญ่มากนักให้ เเถมคอย Guide ให้ด้วย เมื่อทำงานเสร็จเเล้วก็จะเปิด PR ใน Git จากนั้นพี่เลี้ยงก็จะ Review Code ให้ถ้ามีจุดต้องแก้ก็จะกลับมาเเก้ไขให้เสร็จเเล้วค่อย push ขึ้นไปใหม่ เเละ เมื่อเราทำงานได้มาสักระยะนึงเมื่อ Level ของเราเพิ่มขึ้น พี่ๆ ก็จะ Assign งานที่ซับซ้อนมากขึ้นให้ ซึ่งเรามองว่าเป็นจุดที่ดีมากๆ ทำให้ได้ทำงานจริง + ไปได้พัฒนาตัวเองไปด้วย Level Up!!

2. ชีวิตการทำงาน

เมื่อถึงเวลางาน ณ 9:30 พี่ๆ ใน Team ก็จะมา Stand Up กันเพื่อ update ความคืบหน้าของงานที่กำลังทำอยู่ในขณะนี้ ว่าตอนนี้งานถึงไหนเเล้ว ติดปัญหาอะไรไหมเป็นต้น จากนั้นก็จะเป็นการทำงานในช่วงเช้า เเล้วก็พักเที่ยง จากนั้นจะเป็นการทำงานในช่วงบ่ายจนถึง 18:30 เมื่อจบวันนึงเเล้วเราต้องเขียน daily-stand-up เพื่อ update ว่าวันนี้เราทำอะไรไปบ้าง เเละ พรุ่งนี้จะทำอะไรต่อ.

กิจกรรมวันศุกร์

  • Sprint Demo เมื่อจบ Sprint ก็จะมีกิจกรรมเอางานที่ตัวเองทำใน Sprint นี้มานำเสนอครับว่าได้ทำอะไรไปบ้าง
บรรยากาศ Sprint Demo จะมีประมาณนี้ครับ (ขอเซ็นเซอร์ Slide ครับ)
  • Friday Saying เป็นกิจกรรมที่ ชิลๆ ที่เราสามารถเอาหัวข้อที่เราสนใจ มานำเสนอเเชร์ให้เพื่อนๆ พี่ๆ กันครับ
เรานำเสนอหนังสือไปล่ะะ พอดีไม่มีรูปในกิจกรรมงับ
  • TBD Talk เป็นกิจกรรมที่พี่ๆ ในบริษัทมานำเสนอข้อมูลที่น่าสนใจเป็นภาษาอังกฤษ
รุ่นพี่กำลังเเนะนำเรื่อง Tool karabiner [in English]

3. สิ่งที่ได้เรียนรู้

สิ่งที่ได้เรียนรู้มีเยอะมากๆ ไม่ว่าจะเป็นในด้านของ Tech skill หรือ Soft skill

Tech skill

  • ได้เรียนรู้ Tool ที่ใช้ในงานเพิ่มมากขึ้น เรียนรู้การเขียน Code ของพี่ๆ หลักการใหม่ๆ ในการ Code การ Query ข้อมูลกับ DB การเขียน Code ให้มีประสิทธิภาพ การ Clean Code การทำ Validation

Soft skill

  • ได้เรียนรู้ประสบการณ์การทำงานจริง ด้วยการทำงานที่มีระบบชัดเจน การทำงานร่วมกันกับอื่น การสื่อสาร การทำงานเป็น Team การวางแผนการทำงานเเละจัดลำดับความสำคัญ การประมาณเวลาในงานที่ได้รับมอบหมาย

4. คำเเนะนำสำหรับเพื่อนๆที่สนใจฝึกงาน

ในส่วนนี้ก็จะเป็นคำเเนะนำในการฝึกงานในตำเเหน่ง Backend นะครับ เผื่อว่าจะเป็นประโยชน์แก่เพื่อนๆ ครับ

  • ความรู้เกี่ยวกับ HTTP & REST API ขอเน้นในส่วนนี้นะครับ เนื่องจากในสายนี้เราจะใช้มันบ่อยมากๆ อาทิเช่น HTTP response status codes , HTTP Method ความหมายของมัน เเละ นำไปใช้งาน
  • ความรู้เกี่ยวกับ Data base ไม่ว่าจะเป็น SQL , NoSQL อย่างน้อยควรที่จะทราบพื้นฐาน อาทิเช่น Relation one to one , one to many , many to many การ CRUD พื้นฐานกับ Data base การ Design เบื้องต้น เเละ การจัดการ concurrency control หลักการ ACID เบื้องต้นครับ
  • ความรู้เกี่ยวกับ Javascript & Typescript & Nodejs พื้นฐานการเขียน เน้นที่หลักการทำงาน เน้นความเข้าใจครับ
  • Problem solving + Algrothim การทำงานส่วนใหญ่จะเกี่ยวข้องกับด้าน Logic ดังนั้น Skill ในส่วนนี้จึงสำคัญมากๆๆ
  • Git / GitHub การทำงานร่วมกันจะใช้ Git เป็นหลัก ในจุดนี้ถ้าเข้าใจพื้นฐานการใช้งาน Git ร่วมผู้อื่นจะดีมากเลยครับ

5. สรุป

การฝึกงานที่ Foxbith🦊 เป็นเป็นประสบการณ์ที่ดีมากๆ ทำให้เราได้ประสบการณ์ทำงานจริง ได้เรียนรู้การทำงาน เเละทราบไปด้วยว่า Career path ที่เราต้องการจะไป จริงๆเเล้วเราชอบมันจริงไหม? ลักษณะงานมันเป็นอย่างไร. ถือว่าเป็นการเปิดประสบการณ์ใหม่ๆ ให้ตัวเองอีกด้วยครับ

สำหรับเพื่อนๆ ที่สนใจฝึกงาน Backend กับทาง Foxbith สามารถดูรายละเอียดเเละสมัครฝึกงานได้ที่ Link ด้านล่างเลยครับ

https://www.foxbith.com/internship/backend-developer

Foxbith Contract
https://www.foxbith.com/
https://www.facebook.com/foxbith.th/

บทความอื่นๆ ของรุ่นพี่ที่เคยมาฝึกงาน

--

--