เล่าประสบการณ์ฝึกงาน Android Dev 2.5 เดือน ณ Nextzy

สวัสดีครับเหล่าผู้ว่างมากทั้งหลาย พอดีวันนี้ว่างเลยอยากจะมาเขียนแชร์ประสบการณ์ช่วงก่อนเปิดเทอมให้ฟังกันครับ

ตอนช่วงก่อนจะปิดเทอม ม.6 ช่วงนึงผมก็หาอ่านบทความ Android อ่าน ทีนี่บังเอิญหรือยังไงก็แล้วแต่ มันเป็นบทความที่เขียนโดยเหล่าพี่ๆ ที่ Nextzy ก็เลยลองตามไปไล่อ่านบทความ จนมีบทความนึง

และก็เจอประกาศรับสมัครใน Blognone.com ด้วย

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

จากนั้นผมก็นั่งเขียน Resume เป็นภาษาอังกฤษ (เพื่อสร้างคะแนนให้ตัวเอง 555+) จากนั้นก็รอๆ

ตอนสัมภาษณ์

แล้วในคืนวันนึง ผมกำลังนอนฟังเพลงอย่างชิลๆ อยู่บ้าน อยู่ๆ มีคนโทรมาตอนประมาณ 4 ทุ่ม แล้วบอกว่าโทรมาจาก Nextzy (ทีนี่เราก็ยังไม่รู้ว่าใครโทรมาสัมภาษณ์ มารู้ทีหลังคือพี่เอก GDE Android นั่นเองครับ) พี่เขาก็สัมภาษณ์ใหญ่เลย ทั้งเคยทำอะไรมาบ้าง แอพที่เคยทำมาใช้อะไรทำ คาดหวังอะไรจากการฝึกงาน.. ไอ้เราก็ตอบตามที่ตัวเองรู้เรื่อง บางเรื่องที่พี่เอกถามมา ก็พยายามด้นคำตอบที่คิดว่าน่าจะโอเคที่สุด จากนั้นพี่เอกก็บอกว่ารออีเมล์ตอบรับฝึกงานนะ

ผ่านมาสักพัก ได้อีเมล์จาก Nextzy ว่ายืนยันการฝึกงาน ตอนนั้นก็ดีใจสุดๆ เพราะเราคาดหวังว่าจะได้ฝึกงาน กับเทพ Android ซะที

ฝึกงานวันแรก

ตอนแรกผมก็ยังไม่รู้จักตึกอโศกทาวเวอร์ หรอกครับ ว่ามันอยู่ตรงไหนของกรุงเทพฯ เพราะเราก็คนต่างจังหวัดด้วย ก็ลองค้น Google Map ดู จากนั้นก็ให้พ่อมาส่งที่ตึกอโศกทาวเวอร์ ด้วยความที่เราคิดว่า ถ้ามาทำงานบริษัท ต้องมาสักก่อน 8 โมงเช้า แต่ๆๆ พอขึ้นไปชั้น 7 เดินมองหา บริษัท Nextzy เอ้าทำไมปิดไฟ ทีแรกผมมอง โลโก้ของ Nextzy ทีแรกก็คิดว่า คืออยู่บริษัทข้างๆ แต่จริงๆ ไม่ใช่ มันอยู่ตรงหน้าผมนั้นแหละครับ เลยลองโทรไปที่บริษัท ก็ไม่มีใครรับ เลยลองแชทในเพจ facebook ของทางบริษัท ทางนั้นก็บอกให้ผมรอ ไม่นาน พี่เอกก็เดินเข้ามาและทักผมว่าใช่น้องไหม .. เราก็ดีใจที่มีคนมาซะที จากนั้นพี่เขาก็พาเข้าบริษัท และพูดว่าปกติที่นี่เข้าทำงานกัน 10 โมงเช้าเป็นต้นไป — เราก็อ่อ มันเป็นอย่างนี่นี้เอง ว่าทำไมไม่เห็นมีใครในบริษัทในตอนแรก

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

BoomSquad

ผ่านไปเดือนแรก — เดือนต่อมา

ท้ายๆ เดือนก็มีการรีวิวตัวเอง, ทีมและบริษัท ได้คุยกับพี่ๆ ในทีม android โดยผมต้องเล่าให้ฟังว่ามีความรู้สึกอย่างไร คิดเห็นอย่างไร ซึ่งเดี่ยวขอไปสรุปทีเดียวเลยละกันนะครับ เอาละมาดูว่าเดือนที่สองได้ทำอะไรบ้าง

แอพหา Pokemon

ก็ได้ฝึกทำโปรเจกต์เล็กๆ อย่างแอพหา Pokemon จำลอง โดยมีพื้นที่กำหนดให้ เป็นพิกัด GPS และมีรัศมี 10 กม. ที่สำคัญจะมีการแบนไอดี (ได้ไอดีมา 3 ไอดี โดยเพื่อล็อกอินเข้าสู่ระบบ จึงจะค้นหา Pokemon บน Server ของ Nextzy เอง) หากครบ 3 ครั้งถือว่าเกมส์โอเวอร์ ถามว่าจะโดนแบนยังไง ก็คือถ้าส่ง Request ซ้ำๆ ติดต่อกันจะโดนแบน วิธีแก้ปัญหาคือ สุ่มเวลาแล้ว Request นั่นเอง จากนั้นก็ปล่อยให้หา Pokemon มีรูปให้ ถ้าเจอแล้วก็แสดงบนแผนที่ และก็ผ่านไปได้ด้วยดี เพราะไม่โดนแบนเลย ^^

แอพ Nextzy Profile

จะเป็นการทำแอพเก็บข้อมูล และแสดงข้อมูลโปรไฟล์คนในบริษัท เริ่มแรกก็ลองเขียนแบบ MVP เป็นครั้งแรก ก็ตื่นเต้น โค้ดเยอะขึ้น แต่ทำให้เรารู้จักอะไรมากขึ้น แล้วก็เริ่มรู้จักการเขียน Unit Test ( รู้ผิดบาปมากๆ ที่ผ่านมาเขียนแอพแอนดรอยด์แต่ไม่เคยเขียน Unit Test เลย ) ที่สำคัญปวดหัวกับ Git ด้วย เพราะอยากลองทำเป็นแบบ Git Flow

Git Flow

ก็คร่าวๆ มันก็คือข้อตกลงการแตก Branch ของโปรเจกต์เรานั้นละครับ โดยที่ Master จะเป็นตัวที่รันได้โดยไม่มีข้อผิดพลาดใดๆ แต่หากมีข้อผิดพลาดจริงๆ ก็แตกเป็น Hotfix แก้เสร็จให้ Merge กลับไปที่ Develop ซึ่ง Branch นี้ละที่เป็น Branch หลักที่เราพัฒนาโค้ดของเรา เมื่อมีฟีเจอร์ใหม่ๆ ที่ต้องการเพิ่มก็แตกเป็น feature ชื่อนั้นๆ ตามแต่ชอบ เมื่อเสร็จก็ทำการ Merge เข้า Develop และลบ Branch feature นั้นทิ้ง และ ฺRelease จะแตกออกมาจาก Develop เพื่อทำการทดสอบก่อน Merge เข้า Master นั้นเองครับ

Merge — คือการรวม Branch กับอีก Branch นึงเข้าด้วยกัน

สำหรับตัวฟีเจอร์เด็ดเลย คือการแปลงโค้ดกลับไปเป็นแบบ MVC เพื่อจะได้รู้ว่าเราเขียนโค้ดดีแค่ไหน เอาละตรงนี้ก็มันส์อีกแบบ ก็เรียกว่ากว่าจะเสร็จสมบูรณ์เหนื่อยอยู่พอสมควรเลยละครับ

ส่วนหน้าตาแอพก็แบบนี้ครับ

วันสุดท้ายของการฝึกงาน

ก็มีรีวิวตัวเอง, ทีม, บริษัท และข้อแนะนำจากทีม android ด้วย และตามเดิมจะฝึกงานเต็ม 3 เดือน แต่เนื่องจากผมมีสอบของมหาลัยสำหรับนักศึกษาใหม่เลยอยากจะอ่านหนังสือก่อนสอบสัก 1 สัปดาห์ เลยขอพี่เอก-ทีม android และพี่นิว-CEO Nextzy เพื่อจะขอเลื่อนจบฝึกงานเร็วขึ้นจากสิ้นเดือน เป็นวันที่ 15 ของเดือนนั้นเองครับ

ได้อะไรบ้างจากการฝึกงาน

  1. ได้ฝึกเขียนแอพจากโจทย์ที่กำหนดโดยพี่ในทีม ตามที่เล่าข้างบนเลยครับ หลายๆ อย่างผมก็เพิ่งเคยทำ เรียกว่าความรู้ได้มาเต็มๆ
  2. ได้เห็นว่าขั้นตอน บรรยากาศการทำงานจริงๆ เป็นอย่างไร แค่ดูในภาพ ดูวิดีโอ มันไม่ได้สัมผัสจริงๆ อย่างของจริงไงครับ
  3. ได้สัมผัสวัฒนธรรมองค์กรที่ทำให้พนักงานรู้สึกนี่คือบ้าน จะมีที่ไหนละที่สามารถเลือกทำงานที่บ้านได้ในบางวัน แต่ก็ไม่มีใครใช้สิทธิ์นี้กัน เพราะอยากมาทำอยู่ออฟฟิศมากกว่า
  4. ได้เรียนรู้การใช้ soft skill ที่โปรแกรมเมอร์ควรมี (จริงๆ ก็ควรมีทุกๆ อาชีพนั้นละครับ) คือการพูดคุย เพราะการพูดคุยนำไปสู่ความรู้ ความรู้สึกนึกคิด ความชอบของแต่ละคน และการปรับตัวให้เข้ากับคนอื่นให้ได้ก็เป็นเรื่องที่สำคัญอีกอย่าง
  5. ได้รู้จักการวางแผนในการทำอะไรในแต่ละวัน ผ่านการเขียน Task แปะ post-it มีการแบ่งเป็น 3 บอร์ดคือ 
    - todo คือสิ่งที่จะทำ โดยเป็นสิ่งที่จะทำที่ใช้เวลาสั้นๆ 
    - doing คือสิ่งที่ทำในวันนี้
    - done คือสิ่งที่ทำเสร็จแล้ว
    ถามว่าทำไมต้องเขียนแปะ คือจะได้เห็นภาพรวมในบริษัทว่าใครทำอะไรบ้างนั้นเอง

สรุป + ความรู้สึก

อยากแรกเลยคือต้องขอขอบคุณ Nextzy ที่ให้โอกาสผมได้ลองฝึกงานตามที่ได้คิดไว้อีกอย่างเลยถ้าใครกำลังคิดจะทำอะไร แล้วมันน่าจะส่งผลดีต่อคุณ ก็ควรทำมันซะ อย่ารอใครมาบอกว่าต้องทำ แต่ทำเพราะเราอยากจะทำ มันจะเป็นผลดีต่อเรามากกว่า

และตลอดระยะเวลาที่ฝึกงาน เป็นประสบการณ์ที่ยากจะหาได้จากการแค่อ่านเฉยๆ การได้มาประสบพบเจอความจริง การทำงานจริงๆ ความสนุกจริงๆ ไม่ใช่แค่จัดฉาก อย่างนึงที่ผมสัมผัสได้คือ พี่ๆ ในบริษัทเขาสนิทกันจริง ปล่อยมุกเอย เล่นเกมส์เอย แซวกันเอย เป็นบริษัทที่มีวัฒนธรรมองค์กรที่ผมรู้สึกเลยว่า นี่แหละมันใช่ และผมก็ได้เรียนรู้อย่างนึงที่สำคญคือ

“ มีความสุขในการทำงาน = งานออกมาดีอย่างแน่นอน ”