#1 tech recruiter in thailand

25 บทเรียน ที่ได้จากการเป็น Developer

เชื่อว่าในชีวิตการทำงานของทุกคน ล้วนเคยเจอกับเรื่องราวต่าง ๆ มากมาย ทั้งเรื่องน่ายินดีและปัญหาที่น่าปวดหัว วันนี้ทีมงานมีบทความดี ๆ ของคุณ Aphinya Dechalert ซึ่งเธอได้ถ่ายทอด 25 บทเรียน ที่ได้จากการเป็น Developer มาให้พวกเราได้อ่านกัน เชื่อว่าน่าจะตรงใจและเป็นประโยชน์กับคนไอทีโดยเฉพาะคนที่เป็น Developer

  1. เมื่ออยู่ใน Industry นี้ ทุกคนล้วนต้องเรียนรู้ด้วยตนเอง เทคโนโลยีเปลี่ยนแปลงไว ซึ่งมันก้าวหน้าไปไวกว่าที่คุณจะได้เรียนรู้จากในมหาวิทยาลัย ดังนั้น ไม่ต้องรีรอที่จะเรียนในมหาวิทยาลัยเพียงอย่างเดียว ควรหาทางศึกษาในช่องทางอื่น ๆ
  2. การศึกษาแบบดั้งเดิมยังต้องเรียนรู้กันในมหาวิทยาลัย แม้การจบปริญญาตรีจะเป็นวิธีหนึ่งในการก้าวสู่โลกการทำงาน แต่มันก็ไม่ใช่วิธีเดียว ยังมี Internet ที่มีทั้งคำแนะนำและความรู้ต่าง ๆ มากมายให้เรียนรู้
  3. เพื่อให้อยู่ใน Industry นี้ได้ คุณจะต้องหัดสงสัยอยู่ตลอดไป คุณต้องรู้จักถามคำถามเกี่ยวกับวิธีการทำงานของสิ่งต่าง ๆ หรือ ทำไมวิธีนี้ถึง Work โดยเฉพาะในช่วงที่คุณเกิด “ปิ๊งไอเดีย” ขึ้นมา ซึ่งทำให้ทุกอย่างลงตัว
  4. เมื่อเวลาผ่านไปนาน ๆ คุณอาจรู้สึกเหมือนว่า ตัวคุณเองไม่ได้พัฒนาขึ้นอย่างแท้จริง จนวันที่คุณมองย้อนกลับไปที่ Code เก่าที่เคยเขียนไว้นานแล้ว หรือ เมื่อคุณต้องอธิบายอะไรบางอย่างให้ใครบางคนได้ฟัง
  5. ปริมาณ Code ที่คุณเขียน สำคัญต่อ Developer มือใหม่ การเรียนรู้เรื่องการ Coding เปรียบเสมือนการเรียนรู้ในเรื่องการเขียน เพราะยิ่งคุณเขียนมากเท่าไหร่ ก็จะเริ่มสังเกตเห็นรูปแบบบางอย่าง, ความไร้ประสิทธิภาพ และวิธีแก้ไข มากขึ้นเท่านั้น
  6. ตอนคุณอยู่ในระดับ Junior คุณมีโอกาสที่จะทะนงตนคิดว่ารู้ไปหมดทุกอย่าง พอมีประสบการณ์มากขึ้นหน่อย คุณจะพบว่า Ego จะเริ่มลดลง และเมื่ออยู่ในระดับ Senior คุณจะสามารถให้คำแนะนำให้กับคนที่มีประสบการณ์น้อยกว่าเพื่อให้พวกเขาไปในทิศทางที่ถูกต้อง แต่อาจต้องให้พวกเขาดิ้นรนด้วยตนเองด้วยเช่นกัน เพราะมันเป็นส่วนหนึ่งของกระบวนการเรียนรู้
  7. Bug เกิดขึ้นเพราะมี “Knowledge Gap” Code คือสิ่งที่เกิดขึ้นจากการแปล Requirements เพื่อให้ Compiler เปลี่ยนรูปไปเป็นภาษาพูดของ Computer เมื่อมีสิ่งผิดปกติเกิดขึ้น นั่นเป็นเพราะ Developer มีปัญหาบางอย่างในการแปล
  8. เมื่อมีคนบอกว่า คุณกำลังทำ Agile อยู่ ก็จงแต่อย่าปล่อยให้ตัวคุณเองเข้าสู่ Planning Phase ซึ่งมันจะส่งผลกระทบโดยตรงกับคุณ เพราะนั่นยังไม่ใช่ Agile ที่แท้จริงหรอก
  9. ในฐานะ Developer คุณจะต้องอยู่ในสถานะที่ต้องรู้และพร้อมที่จะเรียนรู้ตลอดเวลา
  10. การจัด Format ถือเป็นปัจจัยสำคัญที่ช่วยในเรื่อง Readability
  11. Code เป็นเครื่องมือในการสื่อสาร ดังนั้น จงเขียนในสิ่งที่ทำให้คนอื่นสามารถอ่านแล้วเข้าใจ และอย่าเขียน Code ที่เข้าใจได้เฉพาะคนที่เขียนมันขึ้นมา เพราะเมื่อสิ่งนั้นเกิดขึ้น Code ก็ไม่สามารถอธิบายตัวมันเองได้ (Self-Document)
  12. รูปแบบของ Functional Programming มีสิ่งที่ช่วยลดความซับซ้อน ส่วนรูปแบบ Object-Oriented ก็มีส่วนที่เป็นเครื่องมือช่วยในเรื่องการจัดระเบียบและจัดหมวดหมู่ ซึ่งรูปแบบทั้งสองนี้ ไม่ได้เกิดมาเพื่อทำงานร่วมกัน แต่หากจำเป็นจริง ๆ ก็สามารถอยู่ร่วมกันได้
  13. การ Coding ที่เน้นให้เป็น “Best Practice” มากเกินไป สามารถนำไปสู่การเกิด Technical Debt ในระยะยาวได้
  14. “Code ที่สมบูรณ์แบบ” เมื่อ 5 เดือนที่ผ่านมา มีแนวโน้มที่จะเป็น Code ที่ไม่มีประสิทธิภาพ เนื่องจากการเปลี่ยนแปลงRequirements, การ Upgrade Dependency ต่าง ๆ รวมทั้ง Bug และปัญหาด้าน Logic ที่ไม่สามารถอธิบายได้
  15. Database ของคุณคือ ทุกสิ่งทุกอย่าง หากมีการทำอะไรที่มากเกินความจำเป็น (Over-Engineered) ก็มีโอกาสที่ Back end ของคุณจะเกิดความยุ่งยากได้เช่นกัน
  16. เมื่อทำงานเป็นทีม, Flat และ Automated Process ก็อาจสร้างปัญหาให้กับ Productivity ของคุณได้ โดย Flat Structure หมายความว่า คุณสามารถย้าย Code ผ่าน Pipeline ได้เร็วขึ้น และ Automated ก็หมายถึง การคลิก, การพิมพ์ และการรอสิ่งที่ต้องทำ ที่น้อยลง
  17. การต้องจัดการกับ Code ที่แย่ ๆ ของคนอื่น เป็นสิ่งที่ทุกคนจะต้องเจอและผ่านไปให้ได้ ให้คิดว่ามันเป็นโอกาสที่จะได้เรียนรู้จากความผิดพลาดของผู้อื่น และคุณสามารถทำสิ่งที่ดีสำหรับทิศทางในอนาคตของ Software
  18. คุณจะต้อง “Clean” สิ่งที่คุณหรือคนอื่นสร้างในอดีตอยู่เสมอ เพราะ Code ก็เปรียบเหมือนอาหาร ถ้ามันไม่ได้ถูกนำไปปรุง มันจะกลายเป็นของเน่าเสียได้เมื่อเวลาผ่านไป
  19. Work-Life Balance ยังคงสำคัญต่อ Developer เพราะเราเป็นมนุษย์ อย่าละเลยตัวเอง เพื่อน หรือครอบครัวของคุณ จงดูแลตัวเอง และอย่าปล่อยให้ Code มาครอบงำชีวิตของคุณมากเกินไป
  20. หากคุณรู้สึกว่าตัวเองอยู่ในภาวะเหนื่อยล้า ก็จงหยุด หยุดพักซะ จากนั้นค่อยกลับมาทำงานใหม่ แต่จงเขียน Code อย่างมีเป้าหมายหรือรู้สึกว่าสิ่งนั้นมีความหมายต่อตัวคุณเอง เนื่องจาก Software เป็นตัวเชื่อมระหว่างลูกค้าและธุรกิจ ในฐานะ Developer เรามีหน้าที่ทำให้สิ่งนั้นเกิดขึ้น ไม่เป็นไรที่คุณจะลาออกถ้าคุณรู้สึกว่าคุณไม่ได้มีส่วนร่วมหรือไม่เชื่อในสิ่งนั้นแล้ว แต่จงภาคภูมิใจในสิ่งที่คุณทำ
  21. อย่าไปยึดติดหรือขึ้นอยู่กับ Code ของคนอื่นให้มากเกินไป จงทำในสิ่งที่คุณได้รับมอบหมาย มุ่งเน้นการพัฒนาตนเองให้เป็นมาตรฐานก็เพียงพอ
  22. ถ้าไม่มีใครโทรหาคุณเพื่อเรียกสัมภาษณ์งาน ก็จงสร้างโอกาสนั้นซะ หากคุณยังไม่มีประสบการณ์ที่จะเขียนลงใน Resume ก็จงรีบหาประสบการณ์ซะ หากคุณมีเวลาช่วงวันหยุดสุดสัปดาห์และมีไอเดียดี ๆ ก็ลองทำมันดู ในฐานะของ Developer เราอยู่ในธุรกิจของการสร้าง Code เมื่อใดที่เราหยุด คือ วันที่เรามีความเสี่ยงในสายอาชีพของเรา
  23. อย่าเรียนรู้แค่การเขียน Code เพราะเรื่องที่สำคัญกว่าคือ ความรู้ ยิ่งคุณรู้มากเท่าไรก็สามารถเขียน Code ใน Project ของคุณได้ง่ายขึ้น นั่นเป็นเพราะ Coding กำลังเปลี่ยนแปลงโลก และมันเป็นกระบวนการที่นำไปสู่การเป็นตัวแทนของ Digital ซึ่งคุณไม่สามารถที่จะสร้างบางสิ่งได้อย่างมีประสิทธิภาพได้หากคุณยังไม่เข้าใจมันจริง ๆ
  24. คุณจะไม่มีวันรู้ทุกอย่างที่ต้องรู้เกี่ยวกับ Code แต่ไอเดียของคุณมีขีดจำกัด มันจะเป็นการดีที่จะมีแนวความคิดจำนวนมากและใช้เป็นแนวทางสำหรับกระบวนการสร้าง Code ของคุณ เพราะสุดท้ายคุณจะมี Software ที่มีประสิทธิภาพมากยิ่งขึ้น
  25. หนังสือเกี่ยวกับ Software ยังคงคุ้มค่าที่จะอ่านและลงทุนกับมัน คุณจะสามารถพบแนวคิด, ไอเดียต่าง ๆ ได้จากพวกมัน โดยเฉพาะอย่างยิ่ง Robert C. Martin และ Martin Fowler พวกเขาถือเป็นบุคคลที่สำคัญใน Industry นี้

ISM Technology Recruitment Ltd. (#1 Tech Recruiter in Thailand) เราเชี่ยวชาญในธุรกิจ IT Recruitment & IT Outsourcing โดยเฉพาะ เปิดทำการกว่า 28 ปี มีพนักงานทุกสายและทุกระดับทางด้าน IT ที่ได้ร่วมงานกับลูกค้าองค์กรใหญ่ที่มีชื่อเสียงและบริษัทข้ามชาติมากมาย หากคุณเป็นคน IT ที่อยากทำงานท้าทายและร่วมงานกับองค์กรชั้นนำ สามารถฝากประวัติการทำงาน (Resume) ของคุณไว้กับ ISM ได้ที่ https://www.ismtech.net/submit-your-resume แล้วคุณจะพบว่าอนาคตและโอกาสก้าวหน้ากำลังรอคุณอยู่

Source: https://medium.matcha.fyi/

th