แรงบันดาลใจ

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

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

จากนั้นวิถีชีวิตมันก็นำพาผมมาจนผมได้เรียน วิทยาการคอมพิวเตอร์ตอนอายุ 27 ปี

วิชาที่เรียนที่ผมชอบมากที่สุดตอนนั้นคือ โปรแกรมมิ่งขั้นสูง ใช้ภาษาวิชวลเบสิค 6.0 เป็นตัวเรียน

ฝึก ฝึก ฝึก

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

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

จากนั้นเมื่อเขียนเหมือนเป๊ะๆแล้ว  ผมลบทิ้ง แล้วเขียนใหม่ให้เหมือนอีกครั้ง  การฝึกอย่างนี้ทำให้เกิดความคิดขึ้นมาหาศาล

เมื่อเขียนเหมือนกับหนังสือทุกบรรทัดแล้ว ผมจึงไปยังบทต่อไป  แล้วก็ทำเหมือนเดิม

หนังสือผม ครึ่งเล่มแรกนี่จะดำมาก

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

จำได้ว่าผมเขียนมันส์มาก ตีสามแล้วบางทียังไม่่นอน

อ่านภาษาอังกฤษ แม้จะอ่านไม่ออก

ในตอนสมัยที่ผมเรียน ซึ่งจริงๆแล้วมันก็ 10 กว่าปีเองนะ ตอนนั้นบทความสอนการเขียนโปรแกรมที่เป็นภาษาไทย น้อยมาก เวลาติดปัญหาจึงต้องพึ่งพาภาษาอังกฤษ ทีนี้ผมอ่านภาษาอังกฤษไม่ออก อ่านไม่ออกเลย อย่างดีก็ได้แค่ is, am, are, I, you, we, what, where, when, who, why แค่เนี้ย

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

ผมก็ดันเชื่อ ซื้อดิกชันนารีมา แล้วก็ทำตามที่ท่านประจักษ์แนะนำ  ผมอ่านทั้งที่ไม่รู้เรื่องจริงๆ อ่านแบบสะกดๆเอา  เนื้อหาไม่ได้อะไรเลย มีบ้างคึกๆก็เปิดดิก

ไม่น่าเชื่อว่า ทำอยู่อย่างนี้เป็นปี มันเริ่มอ่านรู้เรื่องแฮะ  ผมทำมาอย่างนี้เรื่อย ทุกวันนี้ก็ยังอ่านภาษาอังกฤษ ผมอ่านมันรู้เรื่องแล้วครับ

อัลกอริธึม

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

อาจารย์ให้โจทย์มาว่า  ให้แสดงวิธีข้ามถนน

ตอนนั้นนะคิดเยอะคิดมาก  โคตรยากเลยอะ อัลกอริธึม ในการข้ามถนน

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

เป้าหมายของวิชานี้คือฝึกการคิด ฝึกบ่อยๆมันก็ไบร้ท์เองมันแหละ แค่นั้นเอง

การเขียนโปรแกรมมันก็อย่างนี้แหละ มันจะมีโจทย์มา แล้วเราก็หาวิธีแก้  ไม่ต้องใช้วิธีที่สวยหรูหรอกครับ  คิดวิธีไหนออกใช้วิธีนั้นแหละ  เวลาผ่านไปเราจะคิดวิธีเจ๋งๆออกเองแหละ แล้วค่อยมา optimize เอา มันไม่เจ๋งตั้งแต่แรกหรอก  คนที่เขาเป็นเซียนแล้วเขาก็ทำอย่างนี้แหละ

 

ตอนต่อไป เราจะมาดูกันว่า เป้าหมายที่แท้จริงของโปรเจ็กจบ คืออะไร?