#เรามาเขียนโค้ดได้ไง
มีคน IT โพสเรื่องราวเกี่ยวกับ tag นี้กันบน social networks เยอะเลยในช่วงอาทิตย์ก่อน
ผมได้อ่านของหลายๆท่านแล้วก็นึกย้อนหลังของตัวเอง
มันมีหลายจุดที่เลือนลางไป แต่ก็มีหลายมุมที่เหมือนเป็นเชื้อเพลิง
ที่คอยถีบส่งให้ตัวเองมาอยู่ ณ ที่ปัจจุบันราวกับจงใจ
เลยลองมานั่งเรียบเรียงดู เผื่อจะมีประโยชน์กับตัวเองในอนาคตอีกที


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

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

คุณพ่อผมเลยบอกมาในจดหมายว่า เพื่อให้ลูกชายทั้งสองคนมีความพร้อมกับเทคโนโลยีใหม่ 
คุณพ่อจะลงทุนซื้อเครื่องคอมเครื่องนึงส่งมาให้
โดยระหว่างที่ยังไม่ได้เครื่อง ให้ทางบ้านส่งไปเรียน Computer พื้นฐานใกล้ๆบ้านก่อน
สมัยนั้น PC ในตลาดยังเป็น CPU เป็น x386 ram ขนาดน้อยกว่า 2 MB, 
แผ่นดิสก์เก็บข้อมูลยังเป็น Disk ขนาด 5.25 นิ้ว และเพิ่งจะเริ่มมีแผ่นขนาด 3.5 นิ้ว
แต่ราคายังค่อนข้างแพงสำหรับเด็กๆ (ตอนนั้น ยังไม่มี CD และ internet) 
ซึ่งเนื้อหาที่ได้เรียนตอนนั้นมีแค่ command line บน MS DOS 6.22 
นอกนั้นก็มีแต่เล่นเกมบน DOS พวก Prince of Persia, Golden Axe
และก็หัดแก้ autoexec.bat เพื่อช่วยให้เล่นเกมง่ายขึ้นเท่านั้น

แล้วพอคุณพ่อส่ง PC มาให้จริงๆ จำได้ว่าเป็น PC ของ Compaq (ยุครุ่งเรืองก่อนโดน HP ซื้อ)
spec ประมาณ CPU pentium 60 MHz, RAM น่าจะ 2 MB
มี HDD ขนาดไม่เกิน 420 MB และfloppy disk 3.5 นิ้วกับ CD แล้ว
ในฝั่ง OS เริ่มมี MS Windows 3.11 ที่แบ๊นแบนเสียยิ่งกว่า flat design
และมีแต่โปรแกรมที่ไม่น่าสนใจเท่าเกมสำหรับเด็กๆในวัยนั้นเท่าไหร่

โปรแกรมตัวเดียวเป็นที่น่าสนใจในช่วงนั้น คือ Photoshop 
แต่เนื่องจากมันกินพื้นที่มาก และต้องเลือกระหว่าง Microsoft Word (สำหรับพิมพ์รายงาน)
และ Photoshop สำหรับแต่งรูปเล่น ผลก็คือ ยอมลงแต่ photoshop เพื่อเล่นแต่งรูป
แล้วเวลาทำรายงานก็เขียนมือส่งไป


#จุดเปลี่ยน
หลังจากได้ PC มา ก็ยังไม่มีเป้าหมายอะไรนอกจากใช้เอนเตอร์เทนตัวเองด้วยเกม
เกมยุคถัดๆมาเริ่มเป็น Simcity (เกมสร้างเมือง) และก็เริ่มขยับมา Mega Man X
(ผมเป็นแฟนเกมสาย Rock man) พอถึงจุดนี้ จำได้ว่ายุคนั้นจะมีโปรแกรมพวก
PCTools เอาไว้สำหรับจัดการไฟล์ใน DOS และมันเปิด binary file ได้ด้วย

ก็เลยลองเอาไปเปิดไฟล์ save เกมของ Simcity ดูแล้วก็พบตัวเลข+ตัวอักษรเต็มไปหมด
จำไม่ได้ว่ามีใครบอกให้ลองแก้บางตำแหน่ง แล้วก็พบว่ามันทำให้ค่าเงินในเกมที่เซฟไว้เพิ่มขึ้นได้
ก็เลยเริ่มสนุกกับการเปลี่ยนค่าเงินให้เพิ่มขึ้น (คือพอรวยแล้วจะทำให้เล่นเกมง่ายขึ้น)
ลองเอาแก้เซฟของ Mega Man X ก็เพิ่มพลังชีวิตได้ทะลุหลอด (สู้บอสสบายขึ้นเยอะ)
แล้วก็เลยหันมาศึกษาว่าตัวเลขที่แก้มันคืออะไร ทำให้เริ่มเข้าใจระบบเลขฐานสิบหกตั้งแต่ตอนนั้น


#จุดเริ่มCodeสนุก
จำได้ว่าน่าจะประมาณมัธยมปีที่ 5
หลังจากเริ่มหัดเขียนภาษา Pascal, HTML มาถึงจุดนึง
ที่โรงเรียนก็มีวิชาคอมพิวเตอร์แบบใหม่พอดี ที่สอนวิชา FoxPro
(เป็น programming ที่ผสมกับ database และ ui รุ่นแรกๆที่ได้ลองจับ)

ได้ลองทำ project เขียนโปรแกรมสำหรับช่วยขายสินค้าในร้านแบบ 7-11
แต่ออกแบบ UI ลอกหน้าตาของ Windows 95 มาเลย 
ในขณะที่เพื่อนออกแบบโปรแกรมสำหรับเก็บสูตรอาหารไทย 
และถามแบบสงสัยว่าทำไมต้องทำให้เหมือน Windows ด้วย
(จำไม่ได้ว่าตอบไปว่ายังไง แต่เท่าที่นึกออกตอนนั้นคือ Menu แบบหลาย layer ตอนนั้นมันเท่นะ)
ความรู้สึกในตอนนั้น จำได้ว่า พอโปรแกรมที่เขียนเสร็จแล้วมันทำงานได้
รู้สึกเหมือนเราสามารถสร้างระบบกลไกขึ้นมาจากความว่างเปล่าได้
โดยไม่ต้องใช้วัตถุดิบอะไรนอกจากไฟฟ้า เวลาและสมอง
เป็นความประทับใจแบบนึงที่หาไม่ได้จากการกระทำอื่นๆในวัยนั้น 
หลังจากนั้น ก็เริ่มทำเงินได้ค่าเล็กๆน้อยๆจากการเขียนโปรแกรม Pascal
เพื่อช่วยคำนวณคะแนน, ตัดเกรดเด็กนักเรียนให้บรรดาคุณครูในโรงเรียนใช้งาน

เริ่มถอดเครื่องคอม หัดประกอบ ซื้อ RAM มาใส่เอง ต่อ harddisks หลายตัว
เริ่ม fdisk, สลับจัมพ์เปอร์ จนลามไปกระทั่งเจาะรูหน้าจอเพื่อระบายอากาศ (รอดโดนไฟดูดมาไงหว่า)

เริ่มหัดทำเวบออกแบบการ์ตูน (แข่งกับเพื่อนที่ทำเวบรับออกแบบโลโก้) บน Geocities.com
ต่อ Internet ด้วย modem 14.4 k ที่ต่อหลุดแล้วเสียทีละ 3 บาท
(ตอนนั้นยังไม่มีเทคโนโลยี ADSL ที่แยกสัญญาณ Internet ออกจากสัญญาณเสียงได้)

นั่ง upload website ผ่าน FTP อย่างตื่นเต้นในคืนวันคริตสมาสกับรุ่นน้อง 
หัดเล่น icq, เล่น Warcraft, Knight of Xantar
เขียนเกม Bomber man ด้วย Assembly และรถแข่ง 2D ด้วย Java
เขียนโปรแกรมเข้ารหัสถอดรหัสเสียงบน FPGA เพื่อป้องกันคนดักฟังตอนโทรศัพท์
 
หัดเขียนเกมแบบ J2ME, เริ่มหันมาเรียนรู้ AI: Neural networks,  Genetic algorithms
เริ่มรับงานด้วย ANN บน Matlab, รับงาน website, หันมาทำงานด้าน visualization,
ย้ายมาสาย mobile applications, web application และก็ติดลมบนยาวมาจนถึงปัจจุบัน


มันก็สนุกจริงๆนะ :)

SHARE
Writer
windygallery
Photographer
I am a normal man in the quite imperfect world.

Comments