See the original English version of this article here
มีสิ่งที่คุณต้องเรียนรู้มากมายเมื่อเริ่มฝึกฝนเขียน Program แนวคิดบางอย่างค่อนข้างทำความเข้าใจได้ง่าย อย่างเช่น If-Statement แต่ก็ยังมีอีกหลายแนวคิดที่อาจทำความเข้าใจได้ยากกว่า เนื่องจากคุณยังไม่ได้เห็นการใช้งานจริง ๆ ของมัน และนี่ก็คือ 5 สิ่ง ที่ยากจะทำความเข้าใจ สำหรับ Programmer มือใหม่
1. Arrays
หนึ่งในอุปสรรคตัวแรก ๆ ที่ Programmer มือใหม่มักจะเจอก็คือ แนวคิดของ Arrays แม้ว่า Arrays จะเป็นส่วนสำคัญของการเขียน Program แต่ก็มีคนจำนวนมากที่ต้องใช้ความพยายามอย่างมากในการทำความเข้าใจวิธีการทำงานและวิธีใช้งานของมัน
โดยเฉพาะอย่างยิ่ง ด้วยความจริงที่ว่าสำหรับภาษา Programming ส่วนใหญ่แล้ว Arrays จะเริ่มต้นด้วย Index 0 ซึ่งนั่นหมายความว่า Element เริ่มต้นใน Array จะถูก Assign ด้วย Index 0 แทนที่จะเป็น Index 1
สิ่งนี้อาจดูไม่สมเหตุสมผลเอาซะเลย เมื่อคุณเพิ่งเริ่มต้นเรียนรู้พวกมันจนทำให้หลายคนปวดหัว คุณอาจเจอกับ Off-By-One Error ที่ไม่สิ้นสุดเมื่อคุณเริ่มใช้ Arrays
แม้คุณจะรู้และเข้าใจวิธีทำงานของ Arrays แล้ว แต่มันจะยากในการทำความเข้าใจยิ่งขึ้น เมื่อคุณเรียนรู้แนวคิดเกี่ยวกับ Multidimensional Arrays
2. Loops
คนส่วนใหญ่ที่เพิ่งเริ่มต้นเรียนรู้การเขียน Program สามารถทำความเข้าใจเกี่ยวกับ พื้นฐานการทำงานของ Loops ที่วนซ้ำตั้งแต่ 1 ถึง 10 ได้อย่างไม่ยากนัก แต่คุณอาจสงสัยว่า คุณจะใช้ Loop แบบนั้นได้เมื่อใดบ้าง ซึ่งคำตอบกลับกลายเป็นว่า ไม่บ่อยนัก
เมื่อคุณเริ่มใช้ Loops กับ Arrays สิ่งต่าง ๆ ก็ดูจะเริ่มสมเหตุสมผลมากขึ้น ตอนนี้คุณสามารถวน Loop ผ่าน Array ของบุคคลและแสดงชื่อของพวกเขาบนหน้าจอได้ ตอนนี้คุณคงเริ่มรู้จักมันมากขึ้นแล้วใช่ไหม
แต่มันจะซับซ้อนยิ่งขึ้นเมื่อคุณเริ่มใช้งาน Loops มากกว่า 1 Loop เข้าด้วยกัน เมื่อคุณเห็นการใช้งาน Loop ซ้อน Loop (Nested Loop) เป็นครั้งแรก อาจทำให้คุณงงและไม่รู้ว่าเราสามารถใช้งาน Nested Loop ได้ด้วย อีกทั้งคุณอาจยังไม่รู้ว่าเมื่อไหร่ที่คุณต้องการจะใช้โครงสร้างการทำงานแบบนั้น แต่เมื่อคุณมีประสบการณ์มากขึ้น คุณจะพบว่าคุณอาจต้องใช้งาน Loop ซ้อน ๆ กัน มากกว่าที่คิด
3. Recursion
เป็นไปได้อย่างมาก ที่คุณจะยังไม่มีโอกาสได้รู้จักกับ Recursion (การเรียกใช้งานซ้ำ) เมื่อคุณเพิ่งเริ่มเรียนรู้ Programming ด้วยเหตุนี้ Programmer ส่วนใหญ่จึงมักคิดว่า มันเป็นแนวคิดการเขียน Program ขั้นสูง
อันที่จริงทฤษฎีที่อยู่เบื้องหลังของ Recursion นั้นไม่ได้ยากมากนัก อย่างไรก็ตามเพื่อให้ Recursion ใช้การได้ใน Code ของคุณ คุณอาจต้องมีประสบการณ์ที่มากขึ้นสักหน่อยในการเขียน Program
อีกสาเหตุหนึ่งที่ทำให้หลายคนรู้สึกว่า Recursion เป็นเรื่องยาก ก็เพราะการ Debug ในส่วนของ Recursion นั่นทำได้ยาก นี่ยังไม่รวมถึงว่า คุณอาจจะสร้าง Infinite Loops ได้บ่อยแค่ไหน ในขณะพยายามทำให้ Recursive Function ทำงาน
เคล็ดลับที่อยากจะแนะนำหากคุณต้องทำงานกับ Recursion ก็คือ เมื่อใดก็ตามที่คุณต้องใช้ Recursive Function คุณควรจะเริ่มต้นด้วย Exit Case ก่อน นั่นคือ Case ที่ Function จะหยุดเรียกตัวมันเอง
4. Object-Oriented Programming
ในการเรียนรู้วิธีการเขียน Code วิธีที่พบบ่อยที่สุดก็คือ การเริ่มต้นด้วยการเขียน Procedure Code ซึ่งแนวคิดของการเขียนProgram นี้ เป็นสิ่งที่เข้าใจได้ง่าย นั่นคือ คุณเขียน Code บางบรรทัดใน Script แล้วมันจะทำงานจากบรรทัดบน ไล่ลงไปสู่ บรรทัดล่าง
แต่ที่ดูจะซับซ้อนมากขึ้นก็คือ แนวคิดของ Object-Oriented Programming ซึ่งโดยพื้นฐานของมันค่อนข้างจะเข้าใจได้ไม่ยากนัก คือให้คิดว่า Class เป็นเหมือนพิมพ์เขียวที่ใช้ในการสร้าง Object ส่วน Class ก็คือแบบจำลองที่กำหนด State (สถานะ) และ Behavior (พฤติกรรม) ของ Object
แต่การเขียน Program แบบ Object-Oriented นั้นมีมากกว่าแค่เรื่องของ Classes ก่อนที่คุณจะเริ่มเขียน Code ในเชิง Object-Oriented นั้น มีสิ่งที่คุณควรรู้เพิ่มเติม นี่คือสิ่งที่ทำให้ Object-Oriented Programming มีความซับซ้อน ตั้งแต่การ Inheritance ไปถึง Interfaces และ Polymorphism คุณต้องเข้าใจแนวคิดเหล่านี้ ซึ่งต้องใช้เวลาพอสมควรในการทำความเข้าใจก่อนที่คุณจะสามารถเขียน Object-Oriented Code ได้อย่างมีประสิทธิภาพ
5. Regular Expressions
แม้แต่ Developer ที่มีประสบการณ์ทำงานมานานแล้ว ก็ยังคิดว่า Regular Expressions เป็นเรื่องที่ยากและต้องทำความเข้าใจพวกมันเป็นอย่างมาก นับประสาอะไรกับมือใหม่ที่เพิ่งหัดเขียน Code ในตอนแรก Regular Expressions ดูจะไม่สมเหตุสมผลเอาซะเลย ดูเหมือนจะไม่มี Logic อะไรในพวกมันเลย แล้วทำไมคุณถึงยังต้องการใช้สิ่งเหล่านี้อยู่?
เชื่อเถอะว่า คุณไม่ได้คดแบบนั้นคนเดียวหรอก ยังมี Programmer อีกมากมาย ที่ยังไม่ค่อยมีความรู้เกี่ยวกับ Regular Expressions มากนัก แม้ว่า Regular Expressions จะมีประสิทธิภาพมากก็ตาม
มันเป็นเรื่องดีที่คุณสามารถเขียน Program ได้เป็นเวลานานโดยที่ไม่ต้องไปวุ่ยวายกับ Regular Expressions ยังมีหลายวิธีแก้ขัดในการใช้ Regular Expressions เพื่อให้คุณสามารถหลีกเลี่ยงการใช้งานพวกมันได้ อย่างไรก็ตามการรู้ว่า Regular Expressions ทำงานอย่างไร ถือเป็นทักษะที่แข็งแกร่งซึ่ง Developer จำนวนมากยังขาดทักษะเหล่านี้อยู่
ISM Technology Recruitment Ltd. (#1 Tech Recruiter in Thailand) เราเชี่ยวชาญในธุรกิจ IT Recruitment & IT Outsourcing โดยเฉพาะ เปิดทำการกว่า 30 ปี มีพนักงานทุกสายและทุกระดับทางด้าน IT ที่ได้ร่วมงานกับลูกค้าองค์กรใหญ่ที่มีชื่อเสียงและบริษัทข้ามชาติมากมาย หากคุณเป็นคน IT ที่อยากทำงานท้าทายและร่วมงานกับองค์กรชั้นนำ สามารถฝากประวัติการทำงาน (Resume) ของคุณไว้กับ ISM ได้ที่ https://www.ismtech.net/submit-your-resume แล้วคุณจะพบว่าอนาคตและโอกาสก้าวหน้ากำลังรอคุณอยู่