Full Stack Engineer VS Scuba & Freediving Instructor

Oe
Digithun
Published in
2 min readApr 25, 2019

“เอ้ยยย… เกี่ยวไรกันว่ะ”

คงเป็นประโยคแรกที่หลายคนที่อ่านชื่อ Blog นี้

พูดกันตามตรงแล้วงานด้าน Developer กับงานครูสอนดำน้ำ ก็เป็นสายงานที่ต่างกันโดยสิ้นเชิง แต่ด้วยเพราะความหลงไหลในงานทั้ง 2 ด้าน จนทำให้ผมลองเลือกที่จะทำงานทั้ง 2 ไปพร้อมกัน

“จริงๆ ต้องกราบบบบ… ขอบคุณบริษัท และทีมที่เข้าใจ 🙏🙏🙏”

และในช่วงเวลาที่ได้ทำงานทั้ง 2 ไปด้วยกัน กับเจออะไรหลายๆอย่างที่คล้ายกัน จนอยากลองมาเขียนเปรียบเทียบให้ดูกัน

Full Stack Engineer

image from: https://bit.ly/2HbcBKl

เริ่มจากฝั่ง Full Stack Engineer ก่อนเลย งานที่ออฟฟิศส่วนใหญ่เป็น website ดังนั้น ทักษะพื้นฐานหลักๆ ที่จะต้องเป็น

  • Frontend: ส่วนใหญ่ทีม จะใช้ ReactJS ซึ่งการเขียน ReactJS นั้นจำเป็นต้องเข้าใจการทำงาน Life cycle ของแต่ละ Component , Component Based, HOC, จัดการ state แบบ React/Redux (ปัจจุบันใช้ mobx ใช้งานง่ายกว่ากันมาก),ทำ SSR (Server side rendering) โดยใช้ NextJS หรือ Razzle ,จัดการ Webpack เพื่อ Complie JSX ให้เป็น JS ที่ Browser เข้าใจ…

ในการเขียน javascript นั้นจะเขียนแบบ ES6 เพราะเป็น OOP มากขึ้น… แถมถ้าอยากได้ TypeHint จริงๆ ก็มี Transpiler แบบ TypeScript

  • ฺBackend: เมื่อใช้ React แล้วก็ต้องใช้ GraphQL จากผู้พัฒนาเดียวกันสิ (Facebook)… GraphQL ภาษาสำหรับการเข้าถึงข้อมูล (Query Language) เพื่อการใช้งาน API การเขียนนั้นจะต้อง Define Schema ไว้ แล้วเมื่อทำการ request ขอ Data จะต้องขอตาม Schema ที่ Define ไว้

Database นั้นในโปรเจคก่อนๆ ใน MongoDB และเปลี่ยนมาใช้ Prisma + Postgres แต่เอาจริงๆ ชอบ MongoDB มากกว่า เนื่องจากทำ aggregate ได้ดีกว่า

  • DevOps: ในการ Deploy ละ? ทางทีมจะเลือกใช้ Docker เพราะสามารถเอา Container ไปรันในคอมพิวเตอร์หรือ Server เครื่องไหนก็ยังทำงานได้เหมือนเดิม โปรแกรมใน Container ยังทำงานได้ปกติไม่ผิดเพี้ยนจากเดิม สะดวกป่ะละ…

ไปสุดทาง… ใช้ Kubernetes ของ Google Cloud รวมกับ Docker จะทำให้ระบบที่พัฒนาสามารถ zero-downtime ได้เลย… จะได้ไม่ต้องมานั่งแจ้งปิดระบบตอน ตี1–ตี2 นะจ๊ะ…

  • SoftSkill: Developer หลายคนอาจจะบอกการสื่อสารเป็นสิ่งที่ไม่จำเป็นมาก แต่สำหรับทางทีม เป็น skill ที่ทุกคนต้องพัฒนา เพื่อสื่อสารกับแผนกอื่นๆ ในการอธิบาย feature ,ต่อรอง feature (ก็ไม่อยากทำ พูดให้น่าเชื่อถือสิ 555) แม้แต่การประสานงานกับทีมจากด้านนอก

ในปีที่ผ่านมาทางบริษัทพยายามผลักดันให้คนในทีมพัฒนา softskill โดนการจัดคลาสสอน หรือแชร์ประสบการณ์ในด้านการ implement

Scuba&Freediving Instructor

freediver and whale shark

แล้วฝั่ง Scuba&Freediving Instructor ละ โดยผมจะเน้นพูดถึงของ scuba เป็นหลักแหละกัน

  • Skill: ในการดำน้ำนั้นหัวใจหลักเลย Buoyancy (การลอยตัวอยู่ใต้น้ำ) ซึ่งการจะเป็นครูนั้นต้องเป๊ะ… , ทักษะต่างๆ ในการอยู่ใต้น้ำ , การทำ Demonstrated ให้นักเรียนดูเป็นตัวอย่าง รวมถึงการช่วยเหลือนักเรียน หรือลูกทริปในสถานะการฉุกเฉิน ซึ่ง Skill ต่างๆในการสอนนั้นจะมีการอับเดทจากสถานบัน(PADI)ทุกๆปี เพื่อเพิ่มความปลอดภัยมากขึ้น

ในการสอนแต่ละครั้ง เราอาจจะเจอนักเรียนที่ทักษะต่างกัน ความกลัวที่ต่างกัน จึงจำเป็นต้องปรับตัวตามสถานะการนั้น เพื่อความปลอดภัยและความสนุกของนักเรียน

  • SoftSkill: การสื่อสารสำหรับการเป็นครูสอนดำน้ำนั้น อาจจะคล้ายๆกับการเป็น Developer คือต้องพูดบางคำศัพท์ให้ดูง่ายสำหรับคนฟัง เพื่อให้คนฟังได้เข้าใจได้ง่าย รวมถึงการให้กำลังใจหรือการชมกับนักเรียน สำหรับการทำ skill ต่าง เพื่อเป็นแรงผลักดันและเป็นสิ่งที่ให้เค้าปลอดล็อคจากความกลัว ความไม่กล้า ในสิ่งที่เจอ

ไม่ได้เพียงแค่การสอน ยังเราถึงการเล่าเรื่องจากประสบการณ์ สิ่งมีชีวิต และ dive site ที่เราได้เคยสัมผัส เคยเจอ เพื่อให้นักเรียนเกิดความสนใจ หรือเป็นแรงบันดาลในในการที่จะสัมผัสสิ่งใหม่ๆที่จะได้เจอ

สรุป

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

แถม… ถ้าได้ทำงานที่ชอบจริง ต่อให้เหนื่อยมันก็อยากทำนะ!!!!

“ เคยคิดว่าทำงาน 7 วัน คงเหนื่อยมาก…

ตอนนี้ได้แต่บอกตัวเองว่า เหนื่อยสัส… เอ้ย มึงทำได้”

--

--