5 สิ่งที่ได้เรียนรู้จากการเป็น Developer มา 5 ปี

21-ก.ย.-17

คัมภีร์เทพ IT

        James Wright ผู้ก่อตั้งบริษัทด้านการพัฒนาและฝึกอบรมด้านซอฟท์แวร์ Northgate Software Ltd., ในประเทศอังกฤษ ได้แบ่งปันประสบการณ์การทำงานเนื่องในวันครบรอบ 5 ปี ในช่วงที่เขาได้เริ่มต้นเก็บเกี่ยวประสบการณ์ด้าน Software Engineering ที่บริษัท Sky หนึ่งในบริษัทผู้นำด้านการสื่อสารและสื่อบันเทิงในยุโรป โดยในบทความนี้ James ได้แชร์ 5 สิ่งที่สำคัญที่สุดจากประสบการณ์ที่เขาได้เรียนรู้มา ซึ่งเชื่อว่าน่าจะมีประโยชน์ต่อคนที่เป็น Software Developer ดังนี้

 

  1. คลุกคลีให้รู้จริง
    James จำได้ว่าวันแรกที่ได้ร่วมทีมกับ NOW TV Xbox 360 เขาเพิ่งจบจากการฝึกงานมา 7 เดือน ช่วงฝึกงานเขาได้ทำงานในโปรเจคขนาดเล็กๆ ที่ใช้ Ruby และ
    JavaScript แต่ทีมใหม่ของเขากลับใช้ทักษะ C #, .NET และ Silverlight อันที่จริงเขาเคยศึกษา C #, .NET และได้สัมผัส XAML ในปีสุดท้ายของการศึกษา แต่ก็ไม่ได้มากพอที่จะใช้ทำงานจริงๆ แม้ว่าเพื่อนร่วมงานของเขาจะช่วยเหลือก็ตาม แต่เขาก็ตระหนักว่า เขาต้องเรียนรู้ให้เร็วขึ้นถ้าอยากมีส่วนร่วมในงานนี้ เขาจึงเริ่มทำสิ่งเหล่านี้
     
    • ศึกษาส่วนต่างๆ ที่เกี่ยวข้องกับ codebase ทั้งหมด รวมทั้งค้นหาข้อมูลในสิ่งที่ยังไม่เข้าใจผ่านช่องทางออนไลน์
    • พยายามเรียนรู้จาก Developer ที่มีประสบการณ์สูงกว่า เพื่อทำความเข้าใจข้อมูลเชิงลึกและจากประสบการณ์คนอื่นให้มากขึ้น
    • อ่านหนังสือหรือจากเอกสารต่างๆ ให้รู้ครอบคลุม เช่น C #; .Net; Silverlight; design patterns; unit testing; และ Software Development Lifecycle (SDLC) เป็นต้น
       
  2. ถ่อมตน
    ใครก็ตามที่มีประสบการณ์มากพอในฐานะ
    Developer หรือมีความมั่นใจมากพอ คุณสามารถร่วมแบ่งปันความรู้ให้คนอื่นได้ อาจเป็นเรื่องการเขียน Code ที่ยากและซับซ้อน โปรเจค Open Source หรือเขียนบทความแชร์ใน IT Community ต่างๆ เป็นต้น มันเป็นเรื่องง่ายที่คุณจะช่วยเหลือคนที่มีทักษะที่แตกต่างหรือไม่เท่ากับคุณผ่านการตอบคำถามง่ายๆ สั้นๆ เพราะอย่าลืมว่าเมื่อก่อนคุณเองก็เคยเป็นคนที่ไม่รู้มาก่อนเช่นกัน จงเป็นคนดีและอ่อนน้อมถ่อมตนต่อผู้อื่นเสมอ อีกเรื่องที่สำคัญคือ การยอมรับถึงความคิดพลาด ซึ่ง James เล่าว่า เคยเห็น Developer ที่เข้าใจ concept งานผิดไป แต่กลับไม่ยอมรับว่าเป็นปัญหาที่เกิดจากพวกเขาเอง ไม่รับรู้หรือยอมรับสถานการณ์นั้น ซึ่งทำให้ปัญหาไม่ได้รับการแก้ไขอย่างถูกต้อง

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

     
  4. ยอมรับกับการเปลี่ยนแปลงตลอดเวลา
    ถ้าพูดถึง JavaScript มักมีการเผยแพร่ Library และ Framework ใหม่ๆ เป็นประจำอยู่แล้ว มี Programmer หลายคนที่มักจะนำมันไปใช้งานทันทีโดยไม่ได้แคร์ว่าเหมาะกับงานที่จะนำไปใช้หรือไม่ หลายคนรู้สึกยึดติดว่าต้องใช้เทคโนโลยีที่ออกใหม่มาเสมอเพื่อจะได้รู้สึกถึงความเป็น
    Developer อย่างแท้จริง อันที่จริงในช่วงแรก James ก็รู้สึกกดดันกับเรื่องนี้ แต่เขาก็สามารถหลีกเลี่ยงความรู้สึกนั้นได้ เพราะเมื่อเขาจะเริ่มต้นโปรเจคใหม่ เขาจะมองหาเทคโนโลยีที่จะใช้ประโยชน์จากมันได้และพิจารณาดูว่าผลลัพธ์ของมัน สามารถตอบคำถามเหล่านี้ได้หรือไม่
     
    • มันสามารถใช้แก้ปัญหาที่เป็นอยู่ได้หรือไม่
    • มันสมบูรณ์แล้วหรือยัง
    • มี Community ให้เราสามารถเข้าไปสอบถามหรือหาข้อมูลได้หรือไม่
    • มันถูกทดสอบมาอย่างดีแล้วหรือยัง
       
    เขาพบว่าคำถามเหล่านี้สามารถชี้นำเขาไปในทิศทางที่ถูกต้องได้ เขาเองก็ยอมรับว่าเคยรู้สึกไม่ดีกับ React ตอนเพิ่งออกมาใหม่ๆ “มันเป็น XML ใน JS เหรอ? แน่นอนว่านี่เป็นเพียงสิ่งที่เป็นนามธรรมที่ไร้ประโยชน์ของ DOM (Document Object Model)” จากนั้นเขาก็ลองใช้มันกับ Application ที่ทำเป็น List ใหญ่ๆ ซึ่งจะทำให้เกิดผลลัพธ์ใหม่ ใน Interaction ต่างๆ แต่พอลองพิจารณาให้ดีมันก็มี Library ที่เหมาะสมกับ Application ที่เขาต้องการทำอยู่ ซึ่งทำให้เขาตระหนักว่าที่ผ่านมาเขาคิดผิดไป James สรุปไว้ว่า อันที่จริงเราควรพยายามตระหนักถึงเทคโนโลยีที่ออกมาใหม่ว่า มันเหมาะสมกับการนำมาใช้งานหรือไม่ ขณะเดียวกันมันก็ไม่ใช่ข้อจำกัดว่าไม่ควรนำสิ่งใหม่ๆ เหล่านั้นมาใช้เลยซะทีเดียว เพราะเป้าหมายของ Software Engineer คือการส่งมอบ Software ที่ดี และการที่เลือกเทคโนโลยีผิดก็อาจเป็นอุปสรรคขัดขวางความสำเร็จของเราก็ได้

     
  5. สร้างสมดุลการใช้ชีวิตให้ดี
    ในช่วงที่เริ่มเรียนในมหาวิทยาลัยใหม่ๆ ช่วงนั้น James เกือบจะกลายเป็นคนที่ติดการ Coding ในช่วงแรกๆ ที่ความรู้ยังไม่มากนัก การเขียน Code ของเขาอาจยังไม่ค่อยดี แต่วันหนึ่งเมื่อเขาได้ทำงานอย่างจริงจังจนเริ่มเชี่ยวชาญ เขาใช้เวลาช่วงเย็นและวันหยุดในการทำพวก Side project ควบคู่ไปด้วย และเขาก็รู้สึกหลงรักมันมากจนหยุดทำมันไม่ได้ ผลคือ เขาเริ่มประสบความสำเร็จในโปรเจค Open Source และได้มีส่วนร่วมใน codebase ต่างๆ อย่างจริงจัง ซึ่งเป็นแรงผลักให้เดินหน้าต่อไป จนถึงการเข้าร่วมการแข่งขัน JavaScript ในโปรแกรมต่างๆ เช่น js13kGames และ JS1k, เขียนบทความ, เผยแพร่เนื้อหาต่างๆ ใน SitePoint (เว็บไซต์ที่มีบทความ และ tutorial มากมายสำหรับ Developer) นอกจากนี้ยังได้สัมภาษณ์กับ บริษัทด้านเทคโนโลยีขนาดใหญ่บางแห่ง ส่งผลให้เขาเกิดการฝึกฝนและเพิ่มการอ่านมากขึ้น แต่ในที่สุด เขาก็ “หมดไฟในการทำงาน” มันเหมือนมาถึงจุดอิ่มตัว แรงจูงใจในการทำงานหายไปหมด จุดเปลี่ยนนี้สอนให้เขารู้ว่า ต้องท้าทายตัวเองขณะที่มีโอกาส ซึ่งไม่เพียงแต่จะช่วยให้เป็น
    Developer ที่ดีได้ แต่ยังทำให้อาชีพการงานก้าวหน้าขึ้นด้วย แต่ด้วยความเป็น “มนุษย์” ความสามารถในการเรียนรู้และการทำงานของคุณจะลดลงไปเองตามธรรมชาติ เพราะร่างกายมันจึงเรียกร้องการพักผ่อน

James 1-2 เดือน แล้วคุณจะรู้เองว่าเมื่อไรที่คุณพร้อมที่จะกลับมาลุยงานต่อและโปรเจคงานของคุณมันก็ไม่ได้หายไปไหนหรอก

ที่มา:
read.acloud.guru


 

อัพเดทบทความจากคนวงในสายไอทีทาง LINE ก่อนใคร
อย่าลืมแอดไลน์ @techstarth เป็นเพื่อนนะคะ

 

เพิ่มเพื่อน

 

 

 

บทความที่เกี่ยวข้อง