**ผม hide เฉพาะ หลักการ coding แล้วกัน บทความส่วนบนนี้อยากให้ทุกคนได้อ่านกัน**
คนทั่วไปมองการ Coding ของโปรแกรมเมอร์ เหมือนจะเป็นเรื่องการเรียนภาษาต่างชาติภาษาหนึ่ง อย่างไรก็ตามมันก็ไม่ใช่เรื่องการพิมพ์ Code อย่างเดียวเท่านั้น แต่มันก็ไม่ได้มีอะไร ทำให้เราเป็นคนวิเศษนักหนา แถมโดยส่วนมากแล้วโปรแกรมเมอร์ส่วนมากก็ไม่เคยคำนึงถึงหลักการเป็นโปรแกรมเมอร์ที่ดีด้วยซ้ำ
ปัญหานี้เริ่มถูกหยิบยกมาพูดคุยกันอย่างกว้างขวาง เนื่องจากพบว่ามีหลายคนประสบความล้มเหลวในการออกไปสู่โลกกว้างที่นอกเหนือจากงานเขียนโปรแกรมที่ตัวเองทำอยู่ พวกเขามัวแต่มุ่งเน้นไปที่ตัวต้นไม้ ไม่เคยมองภาพรวมของทั้งป่า เนื่องจากการเขียนโปรแกรมหนึ่งๆมักจะไม่ต้องการอะไรมากกว่าสิ่งที่อยู่ในกล่องเครื่องมือที่ตนมีอยู่ หลายคนทีเดียวที่เวลาเขียนโปรแกรมก็จะมองหา และใช้เครื่องไม้เครื่องมือที่คุ้นเคย สะดวกสะบาย และมองทุกอย่างเพียงมุมมองเดียว
ตัวอย่างเช่นการทำการผ่านตารางข้อมูลใหญ่ๆข้ามระบบ ( อันเป็นพลลัพธ์จากการ Query ) ผ่านรูปแบบ XML ผม(นักเขียน)เคยเขียนบทความหลายครั้งแล้วเกี่ยวกับความไม่มีประสิทธิภาพของ XML มันแย่มากๆเวลาเอามาทำเรื่องการโอนถ่ายข้อมูลข้ามเครือข่าย การใช้ระบบไฟล์ที่ไม่อ้วนเทอะทะอย่าง CSV หรือ Fixed Length ควรจะนำมาใช้ เพราะมันทั้งเล็ก ส่งได้เร็ว และไร้ปัญหาเรื่อง encode กว่า XML หลายเท่าตัว แต่พวกโปรแกรมเมอร์ก็นิยมใช้ XML เหตุเพราะมันมีเครื่องไม้เครื่องมืออำนวยความสะดวกต่างให้ใช้มากมาย แถม include อยู่ในตัวช่วยเขียนโปรแกรมทั่วไปเสียด้วย ทั้งๆที่ความจริงแล้วการเขียนคำสั่งจัดการไฟล์ประเภท CSV นั้นต้องการรหัสไม่ถึง 20 บรรทัด แต่คนเหล่านั้นก็ยังนิยมใช้ XML อยู่ดี มันเหมือนซุบไก่ก้อนปรุงสำเร็จ มันง่ายที่จะเอามาใช้ ซึ่งก็นำมาซึ่งปัญหาแห่งยุคสมัยใหม่นี้ ทำให้เวลาเกิดปัญหาขึ้นมาก็มักจะแก้กันไม่ได้ เขาทำนอง เมื่อคุณมีฆ้อนอยู่ในมือ ก็อยู่ที่เล็บของตัวคุณเอง หรือปัญหาใหญ่ที่ต้องระวังกลับกลายเป็นตัวคุณเองเสียงั้น
ในช่วงทศวรรษที่ผ่านมา โปรแกรมเมอร์ก็มักเรียนมาทางด้านวิทยาศาสตร์ หรือไม่ก็คณิตศาสตร์ซึ่งมาลงเอยด้วยการชอบการเขียนโปรแกรม แต่หนทางในการคิดเขียนโปรแกรมเปี่ยมคุณภาพนั้นต้องอาศัยหลักจิตวิทยา ชีวะวิทยา และความเป็นนักคณิตศาสตร์แท้อยู่มากในการชี้ชัดข้อปัญหา สร้างความสนใจในงาน หลักสูตรวิทยาการคอมฯ ควรจะมีการเรียนเรื่องจิตวิทยาผนวกอยู่ด้วย เอาง่ายๆอย่างงานคิดค้นระบบปัญญาประดิษฐ์ขึ้นมาสักงานหนึ่ง เมื่อนักพิจารณาถกเถียงกันไม่กี่วินาทีก็จะกลายเป็นเรื่องการพูดคุยด้านการสร้างความเร้าใจ(ซึ่งต้องใช้หลักจิตวิทยา) ใช่ไหมใช่ ?
การเป็นโปรแกรมเมอร์ที่ดีนั้นยังไม่ดีพอเท่ากับเป็นนักโปรแกรมเมอร์ผู้ยิ่งใหญ่ และการจะเป็นอย่างนั้นได้ก็มีแต่ต้องเรียนรู้จิตวิทยา และศาสตรอื่นๆ ให้มากขึ้น บ่อยครั้งเมื่อเราเดินเข้าไปในบริษัทยักษ์ใหญ่ทั่วไปเราจะเจอโปรแกรมเมอร์อาวุโสผู้เปี่ยมไปด้วยประสบการณ์น่านับถือ เขามีความสามารถในการจัดการปัญหาได้อย่างฉมัง และมักจะใช้วิธีการเขียนโค๊ดแบบง่ายๆ เพื่อจัดการปัญหานั้นๆให้สำเร็จลุล่วงได้อย่างน่าทึ่ง เขาเป็นนักเขียนโปรแกรมที่แม่นไวยากรณ์มากๆ จริงๆแล้วพวกเขาไม่รู้ตัวหรอกว่กำลังทำอะไรลงไป ความรู้ด้านคณิตศาสตร์เรื่อง แคลคูลัส ตรีโกณฑ์มิติ และเรื่องความน่าจะเป็นกำลังเสื่อมถอยไปจากปัญญาของเขา และแถมวิธีการเหล่านี้ก็ถูกสอนสืบถอดให้กับโปรแกรมเมอร์รุ่นต่อๆไปเสียอีก
หลักวิชาต่างๆที่ถูกทำให้เสื่อมถอยไปเหล่านั้นล้วนจำเป็นต่อการเป็นนักโปรแกรมเมอร์ ที่สุดยอด การเขียนเกมให้น่าตื่นเต้นเร้าใจ การคำนวนข้อมูลที่มีความซับซ้อนเพื่อระบบงานที่ใหญ่ เมื่อเอาพวกเขาเหล่านั้นมาเขียนก็มักจะทำกันไม่ได้ ถึงเวลาแล้วที่คุณจะนักโปรแกรมเมอร์ที่เก่งเพียงแต่การเอา liberies ต่างมามาแปะติดกันด้วยกาวกันอย่างลวกๆ พอทำงานให้เสร็จเป้นชิ้นๆไป หรือว่าต้องการเป็นโปรแกรมเมอร์ที่สามารถพัฒนาได้ถึงการเขียน AI การเขียนคอมไพเลอร์ ภาษาเขียนโปรแกรม ระบบปฏิบัติการ ซึ่งนับวันโปรแกรมเมอร์แบบนี้จะเริ่มหมดไปจากโลก
**Hidden Content: To see this hidden content your post count must be 5 or greater.**
credit : webboard ของรุ่นพี่ที่สถาบัน เขาไม่ได้บอกแหล่งที่มา