หลายๆอย่างขึ้นอยู่กับวิธีคิด ชีวิตประจำวัน ผู้เขียนไม่ได้พูดเกินจริงๆ ก่อนที่จะพัฒนาซอฟต์แวร์ เราต้องพัฒนาตัวเองก่อน และต้องพัฒนาอยู่ตลอดเวลา หลายคนอาจจะคิดว่า "โห เหนื่อยแย่เลย" แต่จริงๆแล้วถ้าเราชอบสิ่งนั้นเราก็มักจะสนุก มากกว่าเหนื่อย ยิ่งถ้าเข้าขั้นรักแล้ว เหนื่อยเนี่ยไม่รู้จักเลย
หลายคนที่มาสัมภาษณ์งาน ก็มักจะพูดดี ทำได้หมดทุกอย่าง แต่ก้อย่างที่ว่าไป "ทำได้" ก็เหมือน "ได้ทำ"
ความเข้าใจ ในการทำงานอาจจะใช้น้อยนิด ที่สำคัญก็คือต้อง "ทำเป็น"
บางท่านอาจจะไม่เข้าใจว่าการรับคนมาทำงานด้านนี้ มันมีสองมิติ มิติแรกคือ หากคุณเป็นเจ้าหน้าที่สัมภาษณ์งาน คุณจะวัดได้เพียงความเข้าใจ แต่งานด้านพัฒนาโปรแกรมความเข้าใจอย่างเดียวก็นำไปปฏิบัติไม่ได้ มิติที่สองจึงต้องมีการสอบปฏิบัติ การปฏิบัติก็ใช่ว่าจะเห็นชัด การเขียนโปรแกรมแบบบะหมี่สำเร็จรูปมีมากมายให้ลอกและฝึกกัน ฉนั้นก็ไม่มีทางรู้ได้เลยว่าคนที่จะรับเข้ามานั้นทำงานได้จริงหรือไม่ สุดท้ายต้องไปวัดกันที่ฝ่านโปร
หากสิ่งที่คุณคิดว่าจะวัดความสามารถจากน้องๆที่สมัครงาน คือ ความเข้าใจ และการทดสอบปฏิบัติ ผู้เขียนขอเสนอแง่คิด
- ความเข้าใจ : ความเข้าใจในวงการนี้มักหาจุดสิ้นสุดได้ยาก มันขึ้นอยู่กับว่าเข้าใจไปทางไหน หรือความเข้าใจ คือ การคิดเอาเอง ผู้เขียนเคยสอนพี่ๆ น้องๆ และเก็บปัญหามาขบคิด ส่วนนึงที่ยากจะเปลี่ยนคือความเข้าใจของแต่ละคน พูดง่ายๆว่าสอนคนที่ไม่เคยเข้าใจ สมองว่างๆจะดีกว่า หากคนที่รับมาครึ่งๆกลางๆก็มักจะคิดเอง ต่อยอดเอง หลงทางได้ง่ายๆ และจะดึงให้เข้าร่องเข้ารอยก็ยากแล้ว เพราะเหตุนี้จึงเข้าใจทุกอย่าง
- การทดสอบปฏิบัติ : หลายๆคนก็มักจะมองหารูปแบบการเขียน ท่องจำ หรือลอก นี่ก็เป็นส่วนหนึ่งที่เจอบ่อยๆ แต่คนที่ทำเช่นนี้ไม่รู้เลยว่าสมองกำลังจะเสื่อม เพราะไม่ได้คิด ใช้แค่การลอก
คำตอบง่ายๆ ก็คือ ความเข้าใจ และทดสอบปฏิบัตินั่นแหละครับ แต่ต้องเปลี่ยนแนวคิดเสียใหม่ แรงผลักดันและความขยันต้องมี
- ความเข้าใจ : เมื่อคิดว่าตัวเองเข้าใจแล้ว ก็จงคิดว่าเราคงไม่รู้จริงๆ สิ่งที่เข้าใจนั้นอาจจะไม่ถูกต้อง ฉนั้นก็ต้องพิสูจน์ วิธีพิสูจน์มีได้หลายวิธี ไม่ว่าจะถามผู้รู้ หาข้อมูลเพิ่ม หรือทดลอง
- ทดสอบปฏิบัติ : และหลายๆคนเช่นกันไม่ยอมที่จะทำข้อนี้ เนื่องจากไม่รู้จะเริ่มตรงไหนก้เลยละทิ้งไป ทำให้ความเข้าใจนั้นตกไป เพราะสาเหตุที่ไม่รู้จริง คำถามที่เจอมากก็คือ จะทดสอบอะไร ยังไง ที่ไหน
จะทดสอบอะไร? คำตอบคือ ทดสอบสิ่งที่ตัวเองไม่เข้าใจ แต่...ต้องเป็นจุดที่ย่อยที่สุด เช่น ไม่เข้าใจเรื่อง OOP ก็ต้องเขียน method เขียน Class มาก่อน แล้วก็ต้องนำไปใช้ได้จริง
ยังไง? การเริ่มปฏิบัติก็ควรเริ่มอะไรที่เ 611;็น Basic ไปก่อน สิ่งที่จำเป็นมากที่ต้องดูคือเรื่อง I/O Put ต่อมาก็ลองดูที่ Process ตามลำดับไม่ต้องรีบร้อนแต่ต้องชัวร์
ที่ไหน? ทุกที่ที่สามารถทำได้ ในตอนที่อยู่หน้าคอมก็ลงมือ ในเวลานั่งรถไปทำงานก็คิด แทนที่เราจะมานั่งคิดหน้าคอม ก็ไม่ได้ลงมือกันพอดี
ไม่เป็นนักคิด ก็ไม่รุ่ง
ถ้าไม่คิด ไม่ใช้สมองมากๆ ก็คงทำอะไรไม่ได้มาก การทำงานพัฒนาซอฟต์แวร์ก็ไม่ต่างอะไรกับการสร้างบ้าน สร้างตึก เป็นเหมือนวิศวกรและสถาปนิกรวมกัน เพราะนอกจากระบบต้องออกแบบมาโดยสมบูรณ์ไร้ขอบกพร่องแล้ว ยังต้องมีจุดดี จุดด้อย ภาพลักษณ์และมีเอกลักษณ์ด้วยจึงจะทำให้ผู้ใช้ (User) สนใจและยินดีที่จะใช้ระบบของเรา ฉนั้นหลายๆข้อที่กล่าวมาย่อมต้่องใช้ความคิดในการสร้างสรรค์อย่างมาก
Developer ไม่หนีปัญหา
ฝึกตนให้เป็นคนไม่หนีปัญหา ต้องมีความเชื่อมั่น ไม่ว่าจะหนัก หรือเบาแค่ไหนทุกอย่างมีทางออก ไม่ใช่ว่าจะไม่หนีปัญหาอย่างเดียว ต้องรู้ว่าปัญหาคืออะไร อยู่ตรงไหน และจะแก้ปัญหาได้อย่างไร หากไม่รู้ก็ต้องคิดให้รู้ให้ได้ จะดีที่สุดหากรู้ปัญหาก่อน เพราะนั่นคือความก้าวหน้าทางความคิด หนทางสู่ผู้รู้แจ้งเห็นจริงสู่นักวิเคราะห์ระบบ
เขียนได้ดี ครับ
ตอบลบ้เป็นบทความที่ดีมากครับ อ่านแล้วได้ข้อคิดเยอะทีเดียว จะนำไปปรับใช้ในการพัฒนาโปรแกรมครับ
ลบ