มีโอกาสแลกเปลี่ยนแนวคิดเกี่ยวกับการเป็น developer ที่ดี (Good Developer)
ซึ่งคำนี้มันไม่มีอยู่ในพจนานุกรมใด ๆ
แต่เป็นสิ่งที่ developer ทุกคนต้องค้นหา
เพื่อให้ประสบความสำเร็จและสนุกกับการพัฒนา
มาดูกันว่ามีสิ่งใดบ้าง ?
1. ความรู้พื้นฐานมันสำคัญสุด ๆ
สิ่งที่ developer ต้องรู้และเข้าใจคือ ความรู้พื้นฐานของสิ่งที่ใช้ จงกลับไปที่พื้นฐานของสิ่งนั้น ๆ จงกลับไปที่พื้นฐานของภาษานั้น ๆ ว่าถูกสร้างมาเพื่ออะไร เนื่องจากของแต่ละอย่างมันมีเป้าหมายของมันอยู่ เมื่อเราเข้าใจความรู้พื้นฐานต่าง ๆ แล้ว มันจะช่วยทำให้สามารถออกแบบ และ สร้างระบบ ด้วยวิธีที่เรียบง่ายและเหมาะสมกับงาน ลดการสร้างแบบ over-engineer ไปได้เยอะมาก ๆ ถ้าพื้นฐานไม่แน่นแล้ว การจะต่อยอดไปยังเรื่องอื่น ๆ ก็ยากหรือไม่ยั่งยืน เหมือนกับการสร้างตึก ถ้าฐานไม่แข็งแรงก็จะถล่มได้ง่าย ๆ ตัวอย่างเช่น คุณใช้งาน ReactJS, Angular, Vue แล้ว คำถามคือ คุณเข้าใจ JavaScript, ES5, ES6 หรือไม่ ? คุณเขียน Ruby On Rails แล้ว คำถามคือ คุณเข้าใจ Ruby หรือไม่ ? คุณเขียน Reactive (Rx) แล้ว คำถามคือ คุณเข้าใจ Observer, Iterator หรือไม่ ? ดังนั้น back to basic และ review basic ของเราดูกันนะครับ หยุดเปรียบเทียบว่าอะไรดีกว่ากัน กลับมาเรียนรู้กันว่า แต่ละอย่างมันเหมาะสมกับอะไร ?2. เรียนรู้จากการช่วยเหลือผู้อื่น
จากสิ่งที่ได้เรียนรู้มา การเรียนรู้ที่เร็วมาก ๆ คือ การลงมือทำตั้งแต่เรื่องพื้นฐาน จากนั้นให้ทำการสอนสิ่งนั้นกับผู้อื่น ถึงแม้ว่า เราจะบอกว่ามันเป็นเรื่องที่ง่าย ๆ มาก ใคร ๆ ก็รู้ก็ตาม บางครั้งเราก็คิดแบบนั้นเพียงคนเดียว !! แต่สิ่งที่ทำให้เราเรียนรู้ได้รวดเร็วยิ่งกว่าก็คือ การช่วยเหลือผู้อื่น ตัวอย่างเช่น ภายในทีมมีปัญหาบางอย่าง เราสามารถเข้าไปช่วยเหลือได้ ไม่ได้เอาวิธีการของเราไปใช้นะ แต่เราต้องหยุดคิด และทำความเข้าใจกับปัญหานั้น ๆ ก่อน เพราะว่าบริบทของปัญหาล้วนแตกต่างกัน ทั้งคน ทั้งสภาวะแวดล้อม ทั้งเงื่อนไขและข้อจำกัด จากนั้นจึงช่วยกันวิเคราะห์ปัญหา หาวิธีการแก้ไขปัญหา ซึ่งสิ่งเหล่านี้ จะช่วยทำให้เราเรียนรู้ได้มากกว่ามาก ๆGive more than you take
3. เขียน code ที่ทำความเข้าใจได้ง่าย และ ไม่เยอะ
อยากรู้ว่า code ที่เขียนมานั้นเข้าใจยากหรือไม่ ก็ลองให้คนในทีม review ดูนะครับ พยายามลดความซับซ้อนลงมา ถึงแม้ code จะซับซ้อนแต่ถ้าทีมเข้าใจก็ถือว่าใช้ได้ code ที่ดีนั้นเข้าใจได้ง่าย code ที่ดีนั้นต้องทำให้มั่นใจในการแก้ไข code ที่ดีต้องแก้ไขได้ง่าย code ที่ดีต้องเพิ่มได้ง่าย ลองกลับไปดู code ที่เราเขียนขึ้นมาสิ ว่าเป็นอย่างไรบ้าง ?4. ให้เวลากับการวิเคราะห์และทำความเข้าใจกับปัญหามากกว่าการเขียน code
มีเป้าหมายคือ จะลดเวลาในการแก้ไข bug ลงได้อย่างไร ?ก่อนที่จะลงมือเขียน code เพื่อแก้ไขปัญหา สิ่งแรกที่สำคัญอย่างมาก คือ การทำความเข้าใจกับปัญหา เพื่อทำให้เราสามารถวิเคราะห์ และ ออกแบบ และหาวิธีการแก้ไขปัญหา ดังนั้นแนะนำให้คิดก่อนทำ อย่าทำไปคิดไปนะ มันเสียเวลาเป็นอย่างมาก
5. เรียนรู้มากกว่าเปลี่ยนตามเทคโนโลยี
เนื่องจากเทคโนโลยีมันเปลี่ยนแปลงเร็วมาก ๆ มีสิ่งใหม่ ๆ ถูกสร้างออกมาอยู่ตลอดเวลา ดังนั้น ถ้าจะเปลี่ยนตามไปตลอด มันคงไม่ใช่สิ่งที่ดีแน่นอน ดังนั้นสิ่งที่เราจำเป็นสำหรับ developer คือ เรียนรู้ที่ core concept หรือแนวคิดหลักของเทคโนโลยีต่าง ๆ ว่าสร้างมาเพื่ออะไร ว่าสร้างมาเพื่อแก้ไขปัญหาอะไร ว่าส่งผลกระทบอย่างไรบ้าง ซึ่งมันจะทำให้เราเข้าใจว่า ควรจะทำอย่างไรต่อไป ตัวอย่างเช่นโลกของ JavaScript ถ้าคุณเปลี่ยนตามไปตลอดแล้ว ระบบที่คุณพัฒนาไม่น่าจะเสร็จอย่างแน่นอน6. อย่าจมอยู่กับปัญหาหนึ่ง ๆ นานจนเกินไป
การกำหนดกรอบเวลาในการแก้ไขปัญหาหนึ่ง ๆ เป็นสิ่งที่สำคัญอย่างมาก มิเช่นนั้น developer มักจะจมอยู่กับปัญหาอยู่คนเดียว จนส่งผลต่อภาพรวมของการพัฒนา หรืออาจจะแก้ปัญหาแบบ workaround ไปก่อน เนื่องจากเวลามีจำกัด เนื่องจากยังไม่เข้าใจสิ่งที่ใช้งานดีพอ ซึ่งมันส่งผลต่อไปอนาคตแน่ ๆ ดังนั้นถ้าติดตปัญหาจงบอกความจริงและหาตัวช่วย เชื่อเถอะว่า คนในทีมพร้อมช่วยอยู่แล้ว7. อ่านเอกสารบ้างนะ !!
เป็นสิ่งที่ developer ที่ดีควรทำเสมอ เนื่องจากพบว่า developer หลาย ๆ คนมักจะไม่ชอบอ่านเอกสารของสิ่งที่นำมาใช้งาน จะไปหาเพียง code ที่ทำงานได้เท่านั้นเอง แต่ไม่ได้เข้าใจความรู้พื้ยฐานของสิ่งนั้น ๆ เลย มันต่างกันมากระหว่างเขียนได้กับเขียนเป็นสุดท้ายคือ การเรียนรู้จากผู้อื่นทั้งจากคนในและนอกทีม
ซึ่งจะทำให้คุณได้รับประสบการณ์ที่ดี และ มีค่าอย่างมาก การพัฒนา software นั้นคือ Social networking นะครับ ทำคนเดียวไม่รอดหรอกนะลองถามตัวเราเองสิว่าเป็นอย่างไรกันบ้าง ? เส้นทางล้วนแตกต่างกัน แต่สิ่งที่ควรจะเป็นคือ ต้องสนุกกับสิ่งที่ทำด้วยเสมอ