อ่านเจอบทความเรื่อง 8 Essential Skills Developers Can Learn in a Weekend
โดยบอกว่าสิ่งที่ developer ควรจะศึกษาในช่วงวันหยุด
ยิ่งเป็น developer ที่เพิ่มเริ่มต้นด้วยแล้ว
สิ่งที่ขาดไม่ได้เลยก็คือ การพัฒนาตัวเองอย่างสม่ำเสมอ
ซึ่งถนนสายนี้ มันไม่มีทางลัดเสียด้วย
แต่ผมคิดว่า มันเป็นสิ่งที่ควรจะศึกษาในทุกๆ วัน หรือในช่วงที่ว่าง
สักวันละ 1-2 ชั่วโมง ก็จะทำให้มีความรู้ความเข้าใจมากยิ่งขึ้น
ในบางเรื่อง ผมเคยเขียนไว้ในบทความเรื่อง แนวทางสำหรบัการเป็น developer ที่ดี
ส่วนบทความนี้จะเน้นในเรื่องที่ developer ควรศึกษา
ดังนั้น มาดูว่ามีเรื่องอะไรที่ต้องศึกษากันบ้าง
1. เรียนรู้การใช้งาน Version Control
ปัจจุบันในโลกการพัฒนา software เรื่องการจัดการ version ของ sourcecode คงเป็นเรื่องที่ขาดไปไม่ได้เลย
โดย Version control ก็คือ คุณสามารถกลับไปยัง version ใดๆ ของ sourcecode ได้เสมอ
แต่บางคนที่ยังไม่ใช้ แต่อาจจะมีรุปแบบการจัดการที่แตกต่างออกไป เช่น
- การสร้าง folder backup ทุกๆ ครั้งที่เปลี่ยนแปลง
- การใช้ตัวเลข หรือวันที่ต่อท้ายชื่อไฟล์ที่เปลี่ยนแปลง
สิ่งที่ต้องถามหรือตอบให้ได้ ก็คือ สามารถกลับไปยัง version ใดๆ ได้อย่างสะดวกสบายหรือไม่
ถ้าบอกว่าไม่มีปัญหา ก็ไม่เป็น แต่คุณควรที่จะต้องศึกษาเพิ่มเติมนะ
จะได้รู้ว่าโลกเขาเดินไปถึงตรงไหนบ้างแล้ว
และเพื่อใช้วิเคราะห์ว่าสิ่งใหม่ๆ มันอำนวยความสะดวกให้คุณไหม
แล้วในปี 2014 เครื่องมือ version control ที่ได้รับความนิยมประกอบไปด้วยอะไรบ้าง
- Git
- SVN
- Mercurial
2. เรียนรู้การใช้งาน Text Editor และ IDE ให้เต็มความสามารถ
สิ่งหนึ่งที่มักพบเจอก็คือ สงครามเรื่อง IDE และ Text Editor
แต่สิ่งที่ไม่เคยเอามาพูดกันเลยก็คือ คุณจะดึงศักยภาพที่แท้จริงของเครื่องมือออกมาใช้อย่างไร
เช่น
- คุณใช้ Key ลัดอะไรบ้าง หรือใช้แต่ mouse ไปจิ้มๆ อย่างเดียว !!!
- ถ้าคุณใช้เพียง keyboard ล่ะ มันจะช่วยให้คุณมี productivity สูงขึ้นไหม แต่อย่าเพิ่งตอบจนกว่าคุณจะลองพยายามฝึกมัน
- คุณใช้ความสามารถของเครื่องมือกี่เปอร์เซ็น ?
- คุณสามารถอยู่ได้ไหม ถ้าเปลี่ยนจาก IDE มาเป็น Text Editor ธรรมดา ? ถ้าไม่ได้แสดงว่า คุณแค่ใช้เครื่องมือเป็น แต่ไม่ได้รู้จักสิ่งที่คุณทำเลย
- ลองดูว่ามี plug in อะไรที่ช่วยเพิ่ม productivity ให้คุณบ้าง
เรื่องเล็กๆ น้อยๆ เหล่านี้ คุณสามารถเริ่มต้นศึกษาได้เลย
แล้วจะทำให้คุณก้าวข้ามสิ่งที่คุณเป็นไปอีกขั้นหนึ่งครับ
ตัวอย่างการใช้งาน
ถ้าคุณต้องใช้งานผ่าน command line หรือ terminal แล้ว สิ่งที่ขาดไปไม่ได้เลยก็คือ การใช้งาน VIM และ Emacs
3. เรียนรู้คำสั่ง SQL เพื่อดึงศักยภาพการใช้งานออกมาให้ได้มากขึ้น
ลองถามตัวเองว่า ใช้คำสั่ง SQL ได้ดีแล้วหรือยัง
ตัวอย่างเช่น การ join, aggregation, grouping เป็นต้น
ลองศีกษาเพิ่มเติมจาก
4. ทำความเข้าใจกับ NoSQL ( Not Only SQL ) และ NewSQL
ในปัจจุบันคิดว่า คำนี้ คงจะเป็นสิ่งที่หลีกเลี่ยงไม่ได้แล้ว
ควรจะต้องทำความเข้าใจว่า
- คืออะไร
- แบ่งกลุ่มอย่างไรบ้าง ตามรูปแบบการจัดเก็บข้อมูล
- ต้องรู้จัก และ ใช้งาน มันดูบ้าง
- เข้าใจเรื่องการนำมาใช้งาน เช่น การ monitoring, การ replication เป็นต้น
ถ้ายังไม่รู้ แนะนำให้ทำการศึกษาโดยทันทีครับ
ไม่เช่นนั้น จะคุยกับชาวบ้านเขาไม่รู้เรื่อง
ผมเขียนบทความเกี่ยวกับ NoSQL ไว้นิดหน่อย
5. ฝึกใช้งานผ่าน command line หรือ terminal
ข้อนี้ผมมักพบเจอว่า developer ใหม่ๆ หรือ developer ที่ไม่เคยสัมผัสการ deploy ขึ้น production เลย
จะไม่สามารถใช้งานผ่าน command line หรือ terminal ได้เลย
ส่วนใหญ่จะใช้งานผ่าน IDE กันอย่างเดียว
และส่วนมากก็จะเจอกับ developer ที่ใช้ Windows OS ซะด้วย
แต่มันไม่ใช่เรื่องยากเลย สำหรับการพยายามใช้มัน
เพราะว่า จะทำให้คุณเข้าใจสิ่งที่คุณกำลังใช้งานมันอยู่ เป็นอย่างดี
เช่น ถ้าคุณเป็น Java Developer แล้ว คุณสามารถ compile และ run โปรแกรมที่คุณพัฒนา
บน command line หรือ terminal ได้หรือไม่
ถ้าไม่ได้ ผมแนะนำให้ลองทำซะ แล้วคุณจะเห็นอะไรใหม่ๆ ขึ้นมาอีกเยอะเลย
การใช้งานผ่าน command line หรือ terminal จะช่วยให้คุณทำงานหลายๆ อย่าง
รวดเร็วกว่าใช้งานผ่าน GUI มาก ตัวอย่างเช่น
- Grep
- Sed
- Awk
ลองศึกษาเพิ่มเติมจาก
ผมก็พยายามฝึกอยู่เช่นเดียวกัน
6. ฝึกการควบคุมและใช้งาน Remote server
เชื่อว่า development server และบรรดา server อื่นๆ ส่วนใหญ่จะต้อง remote ผ่าน ssh เข้าไปใช้งาน
หรืออาจจะต้อง deploy งาน หรือต้องแก้ไข configuration ต่างๆ
ดังนั้นทักษะเรื่องนี้ มักจะขาดไปไม่ได้เลย
7. หัดเขียน Unit test ให้กับ code ที่คุณเขียน
เป็นทักษะที่ตัวผม เห็นว่า developer ทุกๆ คน ต้องทำเสมอ
code ที่คุณสร้างขึ้นมา ควรที่จะมี unit test ช่วยบอกขอบเขตของปัญหาที่คุณกำลังแก้ไข
ถ้าคุณไม่สามารถเขียน unit test ได้แสดงว่า คุณยังไม่รู็เลยว่าปัญหาของคุณคืออะไร
และคุณกำลังทำอะไรอยู่ … บางคนบอกว่า ก็ทำทั้งหมดไงล่ะ !!!
Developer หลายๆ อาจจะบอกว่า unit test มันเป็นงานที่เพิ่มเข้ามาเยอะมาก
แต่เชื่อเถอะว่า มันมีประโยชน์สำหรับคุณ เมื่อสิ่งที่คุณสร้างเกิดปัญหาขึ้นมา
8. เรียนรู้การเขียนในรูปแบบ Markdown
ในปัจจุบันคำว่า Markdown น่าจะเริ่มเข้ามามีบทบาทในโลกของ developer มากขึ้น
ถ้าคุณใช้งาน Github, Bitbucket จะพบว่าบรรดา README ต่างๆ
สำหรับการอธิบายสิ่งต่างๆ ในงานของคุณ รวมทั้งเรื่อง Wiki ต่างๆ ก็ใช้ Markdown เช่นกัน
ดังนั้น ลองฝึกเขียนดูครับ มันไม่ได้ยากอะไรเลย Basic Markdown
9. เรียนรู้ภาษาโปรแกรมใหม่ๆ สัก 1 ภาษา
อันนี้ผมเพิ่มเข้ามา ลองออกจาก confort zone ของคุณดูครับ
เพื่อออกมาดูว่า ภาษาโปรแกรมอื่นๆ เขามีแนวคิดกันอย่างไรบ้าง
Developer ทั้งหลาย ช่วงวันหยุด หรือ เวลาว่าง คุณแบ่งเวลามาพัฒนาตัวเองบ้างหรือไม่ …