หน้าเว็บ

24 มีนาคม 2557

188 | ว่ากันด้วยเรื่องของความสะใจในการทำงาน

(เผยแพร่ครั้งแรกที่ http://www.gotoknow.org/posts/564567 วันที่ 24 มี.ค. 2557)

ยังจำได้ไหม ความรู้สึกที่เกิดขึ้นตอนทำงานสำคัญอะไรบางอย่างสำเร็จ

สำหรับเส้นทางชีวิตของโปรแกรมเมอร์ ผมกลับจำความรู้สึกที่เขียนโปรแกรมสำเร็จเป็นครั้งแรกไม่ค่อยได้แฮะ คุ้นๆ ว่าเป็นโปรแกรมภาษา Pascal ที่ได้เรียนในวิชาคอมพิวเตอร์วิชาแรกตอนปี 1 ก็คือวิชาอัลกอริทึม ซึ่งก็ดูเหมือนว่าจะไม่ใช่ Hello, World แบบที่โปรแกรมเมอร์หน้าใหม่แทบทั้งโลกได้เขียนซะด้วย ดูเหมือนว่าจะให้แสดงชื่อตัวเองรึไงเนี่ยแหละ เพราะฉะนั้นโปรแกรมแรกของผมที่เขียนโดยใช้ Turbo Pascal บน MS DOS ก็คงแสดงผลให้ผมเห็นครั้งแรกว่า

C:/> dew

แค่นี้ละมั้ง

และตอนนั้นผมยังไม่เข้าใจเลยด้วยซ้ำว่านี่มันคือโปรแกรมงั้นเหรอ? มันไม่ใช่ไอ้ที่มีพื้นหลังสีเทาๆ มีแถบสีฟ้าตรงขอบบน และตรงมุมบนขวามีปุ่มสี่เหลี่ยมสามอัน อันท้ายสุดเป็นสีแดงไว้ปิด อะไรแบบนี้ไม่ใช่เหรอที่เรียกว่าโปรแกรมน่ะ ? เพราะงั้นมั้งผมเลยไม่รู้สึกตื่นเต้นเลยสักนิด

อีกเหตุผลนึงก็คงเป็นเพราะในนาทีนั้น มีโปรแกรมแบบเดียวกันเกิดขึ้นอีกประมาณ 40 โปรแกรมพร้อมๆ กันในห้อง Lab ที่เรียนกันอยู่ (โดยเพื่อนๆ ร่วมชั้นของผมเอง) มันก็เลยไม่ได้รู้สึกแปลกอะไรเลย

แต่ไอ้ความรู้สึกสุขสุดยอดตอนทำงานด้านโปรแกรมอย่างที่เกริ่นไว้ในบรรทัดแรกน่ะ มันเกิดกับผมหลังจากนั้นอีกนานพอสมควร และทุกๆ ครั้งเหมือนผมจะจำได้ดีเลยละ

ครั้งแรกก็คือตอนปี 2 ตอนที่ผมสามารถติดตั้ง Red Hat ได้เองเป็นครั้งแรกโดยได้รับคำแนะนำแบบครึ่งๆ กลางๆ จากรุ่นพี่ปี 4 ที่ผมไปขอความช่วยเหลือด้วย ซึ่งหลังจากที่เอาแนวทางมาลองผิดลองถูกจนสำเร็จ จำได้แม่นว่าผมนอนไม่หลับไปหลายคืน เพราะตอนนั้นโลกคอมพิวเตอร์สำหรับพวกเรามีแค่ Microsoft Windows เท่านั้นเอง พอได้เปิดหูเปิดตาว่าจริงๆ แล้วมันยังมี OS แบบอื่นๆ ที่ใช้กับคอมพิวเตอร์ส่วนบุคคลได้ด้วยเนี่ย มันเป็นอะไรที่ตื่นเต้นและตกตะลึงไปพร้อมๆ กันเลย

ครั้งต่อมาคือปีเดียวกัน ตอนที่ผม Config phpbb ให้เชื่อมต่อกับ MySQL ได้สำเร็จ อันนี้จำได้แม่นยำมากเพราะตอนนั้นเป็นเวลาเกือบตี 5 และมันทำให้ผมคึกคักมากจนนอนไม่ได้ เลยคว้าหนังสือ ASP มาหัดเขียนต่อ (แต่ก็ไม่สำเร็จ และตั้งแต่นั้นมาผมก็ไม่เคยเขียน ASP อีกเลย) เด็กสมัยนี้ฟังดูอาจจะรู้สึกเฉยๆ เพราะ CMS ก็มีให้เลือกใช้กันให้เกลื่อน แต่สมัยนั้นมันค่อนข้างใหม่และหนังสือหนังหาที่สอนเรื่องพวกนี้ก็ไม่มี ซึ่งความรู้ตามเว็บบอร์ดช่วยผมได้มากมายมหาศาลเลยทีเดียว

ครั้งที่ 3 คือตอนปี 3 เมื่อผมเขียนโค้ดให้ PHP ดึงข้อมูลจาก MySQL มาแสดง Report เป็นกราฟแท่งได้และเอาไปส่งอาจารย์เป็น Baby Project ซึ่งเป็นเรื่องที่ผมภูมิใจพอสมควร เพราะตอนนั้นหลักสูตรของเราไม่มีวิชา Web Programming ทุกกลุ่มเลยใช้ Delphi เขียนตามที่เคยเรียนมา มีแต่กลุ่มผมกลุ่มเดียวที่ใช้ PHP งมเอาจากหนังสือสถานเดียว (เหตุผลคือมันดูคล้ายภาษา C เลยรู้สึกคุ้นเคยกว่า) น่าเสียดายที่ภาพรวมปริมาณงานของกลุ่มเราน้อยกว่ากลุ่มอื่นเลยได้เกรดไม่ค่อยดีเท่าไรในวิชานี้

ครั้งที่ 4 ซึ่งยิ่งใหญ่มาก คือตอนทำโปรเจ็คจบ เป็นช่วงที่ผมทำระบบให้เว็บแจกเว็บย่อยให้ผู้ใช้แต่ละคนมีเว็บเป็นของตัวเองได้ (ถ้าเป็นสมัยนี้คงคล้ายๆ กับ tarad.com หรือ exteen.com แต่ตอนนั้นผมพยายามทำให้มันคล้ายกับ geocities.com) และผู้ใช้แต่ละคนสามารถเลือกเปลี่ยน Theme ในเว็บตัวเองได้หลายๆ แบบ เลียนแบบ CMS ในยุคนั้นที่มี Theme ให้เลือกโหลดมาติดตั้งเอง แต่วิธีการผมไม่ได้ลอกใครมา คิดเอง 100% ทั้งการแบ่งโควต้าผู้ใช้ และวิธีการจัดการ Theme (พูดตรงๆ คือไม่มีความรู้พอว่าระบบเจ๋งๆ เขาใช้วิธีไหนทำกันในส่วนนี้) ถึงมันจะดูไม่ค่อยมีประสิทธิภาพเท่าไรแต่มันก็เป็นงานที่เราคิดหาวิธีการเองล้วนๆ ซึ่งผมภูมิใจมากๆ มากจริงๆ ในตอนนั้น

น่าเสียดายที่สุดที่ Harddisk ของเครื่องที่ผมทำงานอันแสนภูมิใจนั้นเกิด Crash แบบไร้ทางกู้คืน ผมทำมาเกือบ 50% แล้วทั้งโปรแกรมและเอกสารและไม่มั่นใจเลยว่าจะกลับไปเริ่มทำใหม่ตั้งแต่ต้นให้เหมือนเดิมได้รึเปล่า สุดท้ายผมเลยตัดสินใจทำเรื่องเปลี่ยนหัวข้อใหม่ และเริ่มให้ความสำคัญกับการ Backup ข้อมูลตั้งแต่นั้นมา

(นึกถึงเหตุการณ์นั้นแล้วเจ็บปวดเหลือเกิน ขอไว้อาลัยให้ระบบที่แท้งก่อนคลอด 1 นาที T_T)

ครั้งที่ 5 คือตอนทำระบบ Rice Hub of Thailand ให้จังหวัดฯ ตอนอยู่ปี 4 ในคืนสุดท้ายก่อนที่จะต้องเอาระบบที่เป็น Prototype ไปนำเสนอในวันรุ่งขึ้น...ซึ่งตลอด 3 เดือนที่เขาให้เวลามาผมไม่ได้ทำอะไรซักนิดเดียว แต่ในคืนนั้นก็มั่วไปมาจนสร้าง Shopping Cart ได้สำเร็จ (PHP+MySQL) จำได้ว่าคืนนั้นร้อนมาก ผมต้องเอา Notebook มานั่งทำที่ชั้น 1 ของบ้านเช่าที่อยู่รวมๆ กับเพื่อน ทำงานไปเรื่อยๆ พอร้อนมากเข้าก็ออกมาหน้าบ้าน เปิดน้ำก๊อกใส่ถัง ราดหัวหนึ่งโครมแล้วก็ไปนั่งทำงานต่อแบบเปียกๆ (อันตรายนะ) เป็นแบบนี้ไปทั้งคืนจนเกือบเช้า แล้วผมก็หอบเอาเว็บที่มีแต่สีขาว-ดำ พร้อมระบบ Shopping Cart ที่ชำระเงินไม่ได้ไปนำเสนอ โชคดีที่ที่ประชุมค่อนข้างพอใจ งานนั้นมาเสร็จสมบูรณ์ในอีก 2-3 เดือนต่อมา

ครั้งนั้นเป็นครั้งที่กรี๊ดกร๊าดมาก ตอนที่ทำได้นี่ถึงกับวิ่งไปเรียกเด็กข้างบ้านมาดู (น้องที่อยู่บ้านข้างๆ เป็นมือกีตาร์อัจฉริยะที่เก่งเวอร์ๆ เคยได้ยินว่าไปทำงานอยู่กับเดอะปั๋งด้วย แต่ตอนนี้ไม่ได้ข่าวคราวแล้ว) น้องเขามายืนดูเว็บหน้าขาวตัวหนังสือดำที่กดซื้อของชื่อ xxxx หรือ กกกกกกกก ได้ แล้วหันมายิ้มแหะๆ ให้ผมแบบเสียมิได้ แต่ในใจคงนึกว่า....ไอ้ของแค่นี้มันน่าอวดตรงไหน 5555555+

หลังจากนั้นมา ก็ไม่เคยมีความรู้สึกแบบนี้อีกเลย คือโปรแกรมที่ทำต่อๆ มาจากนั้นมามันเป็นไปในทางเดียวกันหมดเลย Web Application พัฒนาด้วย PHP ใช้ MySQL เป็น DBMS เก็บข้อมูลข่าว, ข้อมูลบุคคล, ข้อมูลบลาๆๆๆๆ แล้วก็แสดงผลออกมาเป็นตารางมั่ง Report มั่ง แทบไม่ได้คิดอะไรใหม่เลย พอทำไปหลายชิ้นเข้าก็ชาชิน แล้วก็เริ่มเบื่อๆ

(อาจจะมีแว้บๆ บ้างตอนลองเขียน Python แต่ก็ไม่ได้ตื่นเต้นมากนัก หรือตอนเป็นวิทยากร Moodle, Joomla นั่นก็ตื่นเต้นแบบกลัวพลาดหน้าแขกเพราะเตรียมตัวมาไม่ค่อยดี หรือแม้แต่ตอนเอา iPhone คนอื่นมาลอง Jailbreak นั่นก็น่าจะเป็นความตื่นเต้นเพราะกลัวทำของเขาพังมากกว่า)

จนมาระเบิดความตื่นเต้นอีกครั้งตอนทำงานจบ ป.โทนี่แหละครับ ในช่วงที่คิดอัลกอริทึม และตอนที่พยายามจะเปลี่ยนอัลกอริทึมที่คิดได้แล้วให้กลายเป็นโค้ดนี่แหละ เป็นช่วงเวลาที่ผมต่อสู้กับตัวเองได้อย่างสะใจที่สุดครั้งนึงเลย

คือช่วงนั้นจะมีกระดาษ A4 2-3 แผ่นพับๆ ใส่กระเป๋าเสื้อไว้ตลอดพร้อมปากกา 1 ด้าม สอนเสร็จก็ลงมานั่งคิดๆๆๆๆ คิดได้ก็เขียนๆ ลงกระดาษไป แล้วก็เอาไปเขียนโค้ดในคอมฯ...ไม่ได้ เอาใหม่ กลับมาที่กระดาษ A4 อีกครั้ง วนไปๆ มาๆ แบบนี้ทุกวัน ทุกคืน

ตกกลางคืน กลับบ้านทานข้าวเสร็จ ก็ขี่มอเตอร์ไซค์วนไปวนมารอบๆ เมือง แล้วก็ใช้ความคิดไปด้วย นึกได้ตอนไหนก็จอดรถข้างถนน แล้วก็เอากระดาษ A4 มาจดๆ มันตรงนั้นแหละ แล้วก็ขี่รถต่อ วนๆๆๆๆ ต่อไปจนตี 3-4 ถึงกลับบ้านนอน เป็นแบบนี้อยู่เกือบครึ่งเดือนโปรแกรมถึงทำงานได้ถูกต้องตามที่คิดไว้ คุ้นๆ ว่าแม่ทักว่าเออ กลับมาเป็นคนปกติแล้วสินะ...คือมันขนาดนั้นเลยเหรอเนี่ย

(แต่หลังจากนั้นตอนที่เอางานที่ว่ามาเขียน Paper ส่ง กลับจำความตื่นเต้นไม่ได้ สงสัยเพราะจำได้แต่ความกลัวเวลาที่ปรึกษาดุมากกว่า 5555555)

หลังจากนั้น ช่วงที่มาเรียน ป.เอกนี่ ความรู้สึกพวกนี้มาบ่อยเลยครับ เหมือนมันได้เจองานที่ยากขึ้น ไม่คุ้นเคยมากขึ้น แล้วก็หลากหลายมากขึ้น อย่างเมื่อปีที่แล้วก็ตอนที่เขียนกฏ SWRL ให้ Inference ใน Ontology ที่สร้างได้สำเร็จนั่นก็โคตรกรี๊ด หรือเมื่อเดือนก่อนที่เขียน SPARQL (Implement ใน Java โดยใช้ Jena) ให้ดึงข้อมูลจาก SKOS ที่สร้างได้สำเร็จ ช่วงนั้นกินข้าวไม่ลง นอนไม่หลับ 2 วันติดๆ คือตอนแรกมันเครียด แต่พอทำได้แล้วมันสะใจครับ แล้วมันก็พีคต่อเนื่องมาอีก 2-3 วันเลย

คือที่เล่าๆ มาเนี่ย คิดว่าหลายๆ คนคงเคยเป็นเหมือนกัน คือความรู้สึกตอนที่กำลังพยายามจะทำให้มันสำเร็จเนี่ย ทั้งเครียด ทั้งเหนื่อย ทั้งหงุดหงิด ความรู้สึกด้านลบสารพัดอย่างถาโถมเข้ามาเรื่อยๆ

แต่มันแปลกที่ตัวเราเองทำไมถึงไม่เลิกทำสักทีล่ะ ? เครียดก็น่าจะพอ เหนื่อยก็น่าจะพัก หงุดหงิดก็น่าจะหยุดทำแล้วไปพักผ่อนซะสิ แล้วทำไมยังดันทุรังทำต่อ ?

ก็คงเป็นเพราะว่ารู้อยู่เต็มอกมั้งครับ ว่าความรู้สึกตอนที่ทำสำเร็จแล้วนึกย้อนกลับมาดูนี่แหละครับ มันคือที่สุดของที่สุดแล้ว โคตรฟิน โคตรสะใจ โคตรภูมิใจ ภูมิใจสุดๆ เลย ภูมิใจในตัวเองที่สู้กับตัวเองจนผ่านมาได้

คนอื่นจะเป็นยังไงผมไม่รู้หรอก แต่ผมรู้ดีว่าตัวเองมีศักยภาพแค่ไหน และตัวเองมีขีดจำกัดแค่ไหน แล้วพอตอนที่เราข้ามขีดจำกัดของตัวเองมาได้นี่แหละครับ...ความรู้สึกมันสุดจะบรรยายจริงๆ :)