บทความนี้เป็นของคุณ Alec ในวัย 17 ปี เป็นเด็กมัธยมที่ได้เริ่มเรียนรู้เกี่ยวกับ Web Development ตั้งแต่อายุ 12 ปี ถึงแม้ตอนนี้ฝีมือของเขาจะยังไม่เก่งกาจอะไรมากนัก แต่เขาก็ได้เรียนรู้บางอย่างที่น่าสนใจ ซึ่งเป็น 7 บทเรียนสำคัญที่ Developer ทุกคนควรรู้ เกี่ยวกับ Programming โดยเฉพาะอย่างยิ่ง Developer มือใหม่ มาดูกันว่ามีอะไรบ้าง
1. ไม่มีใครรู้ไปหมดทุกอย่าง
ไม่มี Developer คนไหนที่รู้ทุกอย่าง และคุณก็ไม่จำเป็นต้องรู้ไปหมดทุกอย่างด้วย นอกจากนี้ยังมีสิ่งสำคัญอื่น ๆ ที่คุณจะสามารถพัฒนาตนเองได้ในฐานะของ Developer นอกเหนือจากทักษะด้าน Programming ไม่ว่าจะเป็น
-
- ปรับปรุงทักษะการแก้ปัญหาของคุณ
- ปรับปรุงเรื่องการทำงานเป็นทีม และทักษะการสื่อสารของคุณ
- เพิ่มความรู้เกี่ยวกับ Programming Concept และ Languages
- สร้าง Project ที่ยอดเยี่ยมเพื่อเป็นการโชว์จุดเด่นและความสามารถของคุณ
- Focus ไปที่การเขียน Clean Code ที่มีประสิทธิภาพ
สิ่งที่ยอดเยี่ยมเกี่ยวกับการเป็น Developer ก็คือ คุณไม่จำเป็นต้องรู้ไปเสียทุกอย่าง คุณเพียงแค่ต้องรู้วิธีแก้ปัญหา
2. Bug ถือเป็นสิ่งจำเป็นต่อการเรียนรู้
การที่คุณกำลังเขียน Program บางอย่างอยู่ แต่กลับไม่พบ Bug ใด ๆ เลย นั่นหมายถึงว่า คุณจะไม่ได้เรียนรู้สิ่งใหม่ ๆ เพิ่มขึ้นมาเลย
การที่คุณไม่พบ Bug บางครั้งมันก็ไม่ได้หมายความว่า คุณเป็น Developer ที่ยอดเยี่ยมเพราะคุณฉลาดเกินกว่าที่จะทำพลาด แต่อีกด้านหนึ่งมันหมายความว่า คุณได้พัฒนาบางสิ่งที่คล้ายหรือไม่แตกต่างจากเดิม มาแล้วหลายครั้ง จนคุณรู้อยู่แล้วว่า ถ้าทำแบบนี้มันจะไม่เกิด Bug
แต่หากคุณเจอ Bug แล้วคุณแก้ไข Bug ได้ คุณก็จะเป็น Developer ที่เก่งขึ้นกว่าเดิม ระหว่างที่คุณ Develop อาจมี Bug อยู่มากมายหลายรูปแบบที่เกิดขึ้น ดังนั้น ยิ่งคุณเรียนรู้ที่จะจัดการกับมันได้เร็วและมากเท่าไร คุณก็จะยิ่งเก่งและแข็งเกร่งขึ้นมากเท่านั้น
3. Programming สามารถเรียนรู้ได้แม้ไม่ได้จบด้าน IT มา
ด้วยวัย 17 ปี Alec กำลังคิดหนักเกี่ยวกับเรื่องนี้อยู่ โดยเขากำลังตัดสินใจอยู่ว่า เขาจำเป็นต้องเรียนมหาวิทยาลัยเพื่อให้ได้วุฒิ Computer Science ก่อนดีไหม นี่เป็นคำถามที่ยากสำหรับเขา แต่เชื่อว่าคนที่อ่านบทความนี้คงผ่านจุดนั้นมาแล้ว เพราะส่วนใหญ่น่าจะอยู่ในวัยทำงานกันหมดแล้ว
Alec คิดว่า หากใครที่กำลังเรียนในระดับอุดมศึกษาอยู่แล้ว ก็ไม่จำเป็นต้องเรียนด้าน Computer Science หรือเข้า Boot Camp แต่อย่างใด
การมี GitHub Profile ที่มี Project ที่โดดเด่นน่าสนใจและมีคนพูดถึงเป็นจำนวนมากต่างหากที่เป็นสิ่งจำเป็น หากคุณสามารถแสดงให้คนอื่นเห็นว่า คุณสามารถเขียน Program ได้ มันก็ไม่สำคัญว่าคุณมี Background ด้าน IT มาก่อนหรือไม่ คำถามที่น่าสนใจคือ คุณจะสามารถเรียนรู้ได้อย่างดีที่สุดได้อย่างไร
ณ ตอนนี้ Alec ไม่มีทางเลือก เขาต้องเรียนรู้ที่จะเขียน Code ในวันหยุดปลายสัปดาห์ เพราะเขาไม่สามารถหยุดเรียนต่อเนื่อง 6 สัปดาห์เพื่อเข้า Booth Camp ได้
หากใครที่ต้องการเรียนมหาวิทยาลัยเพื่อให้มีวุฒิ Computer Science หรือเข้าร่วม Booth Camp 8 สัปดาห์ ก็สามารถทำตามที่ต้องการได้เลย แต่สำหรับ Alec แล้ว มันไม่ “จำเป็น” สักเท่าไร
4. ทักษะค้นหา Google ถือเป็นสิ่งจำเป็น
หากคุณต้องการเป็น Developer ที่ยอดเยี่ยม คุณจะต้องเพิ่มความสามารถในการค้นหา Google มันจำเป็นอย่างยิ่ง ในการค้นหา Solution ต่าง ๆ รวมทั้ง Code ที่คุณต้องการ
คุณอาจต้องค้นหาผ่าน Google บ่อยครั้งโดยเฉพาะอย่างยิ่ง เมื่อคุณกำลังเรียนรู้เทคโนโลยีใหม่ ๆ
มีหลายวิธีในการปรับปรุงผลการค้นหา Google โดยใช้เคล็ดลับ หรือเทคนิคที่ Google ตั้งไว้
Coding Projects อาจทำให้คุณเข้าสู่สถานการณ์ที่ยุ่งยากและซับซ้อนในการหาสิ่งที่จะเพิ่มลงไปใน Code ของคุณ บางครั้งคุณต้องค้นหาวิธีแก้ไขปัญหาที่คุณไม่เข้าใจมัน แต่ก็โชคดีที่หลายครั้งเรามักจะเจอคำตอบใน Google
5. วิธีคิด สำคัญกว่าการ Coding
เมื่อคุณเขียน Code คุณเคยจะถามตัวเองบ้างไหมว่า “วิธีที่ดีที่สุดในการเขียน Code นี้คืออะไร”
สำหรับ Alec แล้ว เขาจะไม่ถามคำถามนี้จนกว่าจะเขียน Solution ได้ต่ำกว่าที่คาดหวังไว้ และบ่อยครั้งเขาก็พบว่า เขามักเขียน Solution จากความคิดที่แว๊บเข้ามาในหัวครั้งแรก ซึ่งส่วนใหญ่ Solution แรกนั้น มักจะไม่ใช่วิธีที่ดีที่สุด
คนที่สามารถเขียน Code ได้อย่างรวดเร็ว(มาก) มีแนวโน้มที่ Code จะเกิดความหละหลวม คุณต้องใช้เวลาที่มากพอเพื่อจะได้มีแนวทางที่ “ใช่” ในการแก้ไขปัญหา
แม้มันอาจดูน่าเบื่อ แต่ Test Driven Development ก็ช่วยสนับสนุนในเรื่องนี้อย่างมาก เพราะคุณต้องคิดถึง Function ที่คุณคาดหวังจะให้มันเป็น รวมทั้งวิธีการทำงานของมัน คุณไม่สามารถเขียน Code ไปเรื่อยเปื่อยได้ เมื่อคุณมีการวางแผนมันไว้ล่วงหน้า
แน่นอนว่า ทุกกฏย่อมมีข้อยกเว้น คุณไม่จำเป็นต้องนั่งเงียบ ๆ และคิดเกี่ยวกับ Code ที่คุณเขียนในทุกบรรทัดให้มากจนเกินเหตุ แต่การที่คุณคิดตรึกตรองเกี่ยวกับ Code ของคุณ มันจะช่วยให้คุณประหยัดเวลาในการ Refactor และแก้ไข Bug ได้
6. ให้ระวังเรื่อง Tutorials
การทำตาม Coding Tutorials ถือเป็นสิ่งที่เหมาะสมสำหรับการเริ่มต้น แต่ Tutorials เหล่านี้ก็ไม่ใช่ Resource เดียวที่คุณจะใช้ในการเรียนรู้
การที่คุณทำตาม Coding Tutorials มันไม่ได้ช่วยให้คุณได้เรียนรู้ไปทุกอย่าง คุณอาจเรียนรู้จากมันได้บ้างเล็กน้อย แต่คุณจะไม่ได้เรียนรู้อย่างแท้จริงว่า คุณกำลังทำอะไรอยู่ และเหตุใดคุณถึงทำอย่างนั้น
นอกจากนี้ Tutorials ที่คุณทำตาม อาจจะข้ามส่วนที่สำคัญของการ Coding ไป มันง่ายมากที่จะ Copy และ Paste มาเลย โดยที่ไม่สามารถถามคำถามจาก Tutorials เหล่านั้นได้เลย
วิธีที่ดีกว่าในการเรียนรู้เกี่ยวกับการ Coding ก็คือ การกำหนด Project ที่คุณต้องการจะสร้างให้ชัดเจน จากนั้นก็เริ่มต้นค้นหาส่วนของ Code, แล้วเขียน Code ขึ้นมาเป็นของตัวเอง, แก้ไข Bug, อ่านสิ่งที่คุณอธิบายแล้วโพสต์มันซะ
วิธีที่มีประสิทธิภาพที่สุดในการเรียนรู้ ก็คือการรวบรวมส่วนต่าง ๆ เข้าด้วยกันจนกว่าคุณจะได้ Program ที่สามารถใช้งานได้จริง
7. ใช้ Tab ดีกว่าเคาะ Space bar
Alec เขื่อว่าในขณะที่คุณอ่านบทความนี้ คุณคงกำลังคิดว่า “เขาต้องเป็นคนที่ติดการเคาะ Space bar อย่างแน่นอน” แต่อันที่จริงแล้ว มันไม่ใช่ Alec คิดว่าทุกคนควรใช้ Tab เมื่อต้อง Coding
คุณอาจคิดว่า การใช้ Tab อาจจะทำให้ดูแตกต่าง ไม่เหมือนกับที่คนอื่นทำ แต่มันก็ดีมากที่จะกด Tab แทนที่จะเคาะ Space bar นั้นซ้ำ ๆ หลายครั้ง จงพยายามฝึกตัวเองให้ใช้ Tab อยู่เสมอ
ทั้งหมดนี้ คือ มุมมองและสิ่งที่ Alec ได้เรียนรู้ ซึ่งมันเป็นความคิดเห็นส่วนตัวของเขา อาจจะตรงหรือแตกต่างกับ Developer คนอื่น ๆ ไปบ้าง แต่ก็คิดว่าน่าจะมีส่วนที่เป็นประโยชน์โดยเฉพาะกับผู้ที่กำลังเริ่มต้นเรียนรู้ ไม่มากก็น้อย
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://betterprogramming.pub/