บทความนี้เป็นของคุณ Scott Bromander ซึ่งเป็นทั้งอาจารย์และ Developer โดยเขาได้แชร์ประสบการณ์เกี่ยวกับ 3 เรื่องท้าทายที่ต้องเจอ ในการเรียนรู้ทักษะ Coding โดยเฉพาะอย่างยิ่งคนที่ยังมีประสบการณ์ด้านการ Coding น้อยหรือแม้แต่คนที่มีประสบการณ์มาแล้วแต่กำลังเรียนรู้สิ่งใหม่ ๆ อยู่
1. Environment
ปัญหาเกี่ยวกับ Environment เกิดขึ้นได้เสมอในการเขียน Code เมื่อ Developer มือใหม่ต้องเผชิญกับปัญหาและพวกเขาก็ไม่รู้อะไรเลย อาจทำให้รู้สึกว่าปัญหานั้นยากเกินที่จะแก้ไข แต่สำหรับ Developer ที่มีประสบการณ์ทำงานมาแล้ว แน่นอนว่าย่อมเคยเจอปัญหาต่าง ๆ มาก่อน ทำให้เข้าใจหรือรู้ว่าปัญหาเกิดขึ้นเพราะอะไร ได้เร็วกว่ามือใหม่
อย่างเช่น วันหนึ่งมีลูกศิษย์ของ Scott คนหนึ่งที่ต้องทำงานใน Postico (Database client สำหรับ PostgreSQL) เธอเขียน Query เพื่อสร้าง Table แต่ Table กลับไม่ปรากฏขึ้น Scott จึงเข้ามาช่วยดูว่าเกิดอะไรขึ้น เธอจึงอธิบายถึงสิ่งที่เธอทำ ซึ่งทุกสิ่งทุกอย่างมันก็ถูกต้องทั้งหมด แต่หากคุณไม่เคยใช้งาน Postico คุณคงไม่รู้ว่า จะต้อง “Refresh” Application เสียก่อน เพื่อเป็นการ Update การเปลี่ยนแปลงที่เกิดขึ้น ซึ่งนี่คือตัวอย่างของปัญหาเกี่ยวกับ Environment
2. Syntax
ปัญหาเกี่ยวกับ Syntax จะเกิดขึ้นเมื่อคุณเขียน Code ผิด เช่น วงเล็บปีกกาไม่ครบ หรือวาง ; ผิดที่ผิดตำแหน่ง เป็นต้น จากนั้นมีคนอื่นที่เข้ามาช่วยดูและพบ Bug อย่างรวดเร็ว ทั้ง ๆ ที่คุณนั่งมอง Code อยู่นานหลายชั่วโมง (ซึ่ง Scott เองก็เคยเจอ Error ในลักษณะนี้มานับครั้งไม่ถ้วน) บางครั้งเขาก็ลุกออกไปจากโต๊ะ แต่พอกลับมาดู Code อีกครั้ง อยู่ดี ๆ ก็เห็น Error ซะอย่างงั้น
ในขณะที่เรากำลังเรียนรู้ภาษาใหม่ เราก็จะพบกับ Syntax ใหม่ ๆ หลายอย่าง สำหรับใครที่เรียนรู้มาเป็น 10 ภาษาแล้ว พวกเขาจะรู้ว่าต้องการทำอะไรในภาษานั้นบ้าง สิ่งเดียวที่ต้องทำตอนนี้คือ เรียนรู้ Syntax และทำความเข้าใจกฏของภาษานั้น แม้แต่คนที่เป็น Developer มานานก็ยังต้องเจอกับเรื่องนี้
แม้แต่ Scott เอง เขาก็ยังต้องพบปัญหาเหล่านี้ตลอดเวลา คุณต้องเรียนรู้วิธีสังเกตพวกมัน และเตรียมพร้อมในการแก้ปัญหาในขณะที่เขียน Code ซึ่งแน่นอนว่า Developer มือใหม่ ย่อมพบปัญหาเกี่ยวกับ Syntax แทบจะตลอดเวลา ดังนั้น เมื่อคุณเรียนรู้กฏเกณฑ์ทั้งหมดสำหรับสิ่งใหม่ ๆ นั้น มันเป็นเรื่องจำเป็นที่ต้อง ทำมันซ้ำ ๆ บ่อย ๆ
3. Logic
หาก Syntax ครอบคลุมถึง “วิธี” ที่เราเขียน Code และ Environment เป็น “สถานที่” ที่ Logic ครอบคลุมถึง “สิ่ง” ที่เราเขียน แล้ว
Logic ก็เป็นการกำหนดไปทีละขั้นว่า Code ของเราต้องทำอะไรบ้าง ซึ่งรวมถึงกฏในสถานที่ที่ Code นั้นอยู่ ไม่ว่าจะอยู่บน Web หรือทำงานอยู่บน Device ก็ตาม ปัญหาเกี่ยวกับ Logic ถือเป็นสิ่งที่ Developer ต้องใช้เวลากับมันเป็นส่วนใหญ่
มันเป็นเรื่องเกี่ยวกับการสร้าง System จากนั้นเป็นการแทรก System เหล่านั้นลงใน System ที่ใหญ่กว่า จากนั้นเราก็เริ่มพบกับปัญหาใหม่ ๆ เมื่อทั้ง 2 System ทำงานร่วมกันอย่างไม่ราบรื่น นั่นเป็นเพราะ เราไม่ได้คิดว่า System เหล่านั้นจะทำงานร่วมกันได้อย่างไร เมื่อเราจะพบ Logical Error ก็ต้องมีการปรับแต่ง Syntax เพื่อให้รองรับกับ Logic ใหม่ ๆ ด้วย
ทำไมที่การเข้าใจปัญหาเหล่านี้ ถึงได้มีความสำคัญ?
เมื่อเราเข้าใจถึงชนิดของปัญหาที่เราจะแก้ไข จะทำให้เรามีแนวโน้มที่จะเข้าใจในเรื่องอื่น ๆ ที่เกี่ยวข้องด้วย
ลองพิจารณาตัวอย่างนี้: มี Developer มือใหม่ที่พบว่าตัวเองกำลังเจอปัญหาเกี่ยวกับ Syntax ซึ่งพวกเขาเองก็ไม่รู้ว่าจะแก้ไขอย่างไร พวกเขาเชื่อว่ากำลังมีปัญหากับ Logic อยู่ ซึ่งมันทำให้พวกเขารู้สึกว่า พวกเขาคงไม่มีความสามารถที่จะทำงานให้สำเร็จได้ ทำให้พวกเขารู้สึกแย่ แต่อยู่ดีมีเพื่อนร่วมงานมาชี้ให้เห็นว่า มีวงเล็บที่ขาดหายไปในบรรทัดสุดท้าย ซึ่งในเหตุการณ์นี้ การตอบสนองของแต่ละคนก็แตกต่างกันไป บางคนสามารถเดินหน้าศึกษาเรียนรู้ต่อไปได้ แต่บางคนกลับยิ่งรู้สึกแย่กับตัวเองมากกว่าเดิม นั่นเพราะพวกเขาคิดว่าทำไมคนอื่นถึงรู้และจัดการกับปัญหาได้ แต่ตัวเขาเองกลับทำไม่ได้ นี่คือความรู้สึกที่เกิดขึ้นของคนที่อยู่ในช่วงเริ่มต้นเรียนรู้สิ่งใหม่ ๆ
ดังนั้น การช่วยให้ผู้คนรู้สึกว่าพวกเขาก็มีความสามารถ ถือเป็นสิ่งสำคัญในระยะแรกของการเรียนรู้ทักษะ Coding นั่นเป็นเพราะใน Business นี้ ความล้มเหลว เป็นสิ่งที่เกิดขึ้นได้เสมอ พวกเขาจำเป็นต้องรู้สึกว่า มันเป็นเรื่องปกติที่ต้องเจอ
ปัญหาเกี่ยวกับ Logic เป็นสาเหตุที่ทำให้เสียเวลาในการ Coding และด้วยประสบการณ์อันยาวนานของ Scott มันทำให้เขาได้เห็นปัญหาที่หลากหลายของลูกค้าและวิธีการแก้ไขมัน เหตุผลที่เราจ้าง Developer มา ไม่ใช่เพราะว่าพวกเขารู้ว่าต้องเขียนอะไร แต่เป็นเพราะพวกเขารู้ถึงวิธีการแก้ไขปัญหา ถึงแม้ว่าพวกเขาจะยังไม่รู้คำตอบก็ตาม ซึ่งมือใหม่อาจยังไม่เข้าใจในเรื่องนี้ ดังนั้น หาก Developer มือใหม่เหล่านั้นกำลังเจอปัญหาเกี่ยวกับ Logic ก็ให้ดูถึงความแม่นยำในเรื่อง Syntax ของพวกเขา โดยคุณอาจบอกพวกเขาว่า
“คุณเขียน Code ได้ดีแล้วล่ะ ผมเห็นสิ่งที่คุณกำลังทำอยู่และคุณก็ทำได้ดีมากขึ้นแล้ว เดี๋ยวผมจะแสดงให้เห็นว่าต่อไปคุณจะต้องทำอะไร”
หาก Developer มือใหม่ เจอปัญหาเกี่ยวกับ Syntax ก็ให้สังเกตดูว่า Logic ของพวกเขาถูกต้องหรือไม่ โดยคุณอาจบอกว่า
“คุณคิดถูกต้องแล้วล่ะ! แต่คุณเขียน , (Comma) ผิดที่บ้างเล็ก ๆ น้อย ๆ แต่ก็ถือว่า เยี่ยมมากแล้ว!”
บอกเล่าถึงความผิดพลาดให้คนอื่นได้รู้
ตัว Scott เอง เขาก็เคยทำงานใน Project ขนาดใหญ่ ซึ่งเขาพูดในที่ทำงานเกี่ยวกับ ความสำคัญของ Community ที่ช่วยการเรียนรู้ การมีส่วนร่วมใน Community ของกลุ่มคนที่กำลังเรียนรู้เช่นเดียวกันกับคุณ จะทำให้คุณรู้ว่าจะต้องไปหาคำตอบได้ที่ไหน มันช่วยให้คุณฝึกฝนและพัฒนาความรู้ของคุณโดยการพูดคุยกับผู้อื่นที่สนใจเรื่องเดียวกันกับคุณ
เมื่อคุณให้คำปรึกษาแก่ผู้อื่น คุณควรพูดคุยเกี่ยวกับเส้นทางการเรียนรู้ของคุณผ่านการ Develop พูดคุยเกี่ยวกับข้อบกพร่องของคุณ ซึ่งสิ่งนี้จะช่วยให้ผู้ที่คุณให้คำปรึกษา เข้าใจว่า พวกเขาก็อยู่ในเส้นทางเดียวกันกับคุณ สิ่งที่พวกเขากำลังเอาชนะอยู่นั้น เป็นเรื่องปกติ และพวกเขาควรยึดติดกับมัน
สรุป
หากคุณกำลังเรียนรู้สิ่งใดก็ตาม ให้ไปหาคนที่สำเร็จหรือไปได้ไกลกว่าคุณ แล้วดูว่าพวกเขายินดีแบ่งปันแนวทางการเรียนรู้กับคุณหรือไม่ ขอให้พวกเขาพูดคุยเกี่ยวกับการจัดการความรู้สึกเมื่อสิ่งต่าง ๆ ไม่เป็นไปตามแผนที่วางไว้ ดังนั้นครั้งต่อไปที่คุณแก้ปัญหาเกี่ยวกับการ Coding ให้หยุดแล้วตั้งสติ รวมทั้งระบุปัญหาที่คุณต้องเจอ และอย่าลืมยินดีกับตัวเองในความสำเร็จที่คุณได้รับ
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://medium.com/