เป้าหมายที่เปลี่ยนไป

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

ช่วงแรกเริ่มเขียนตอนปี 1 เทอม 2 รู้สึกสนุกดี และรู้สึกว่าตัวเองทำได้ ตอนนั้นไม่มีเป้าหมายอะไรชัดเจน

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

ช่วงปี 3 ถึงปี 4 รู้สึกได้ว่าตัวเองน้ำพร่องแก้วมาก อะไรเป็นการเขียนโปรแกรมสนใจทุกอย่างเทคโนโลยีไหนไ่ม่มีเกี่ยง เลือกบริษัทฝึกงานอย่างละเอียดด้วยความกลัวว่าจะต้อง ไปถ่ายเอกสาร ได้ไปฝึกงานกับพี่ป๊อก จากการที่วันเวลาในช่วงฝึกงานผ่านไปอย่างรวดเร็ว ทำให้มั่นใจว่าเรามาถูกทาง ช่วงนั้นงานในมหาลัยฯ งานกลุ่ม/งานคู่ รับหน้าที่เป็นฝ่าย code (อีกฝ่ายคือฝ่ายเขียนเอกสาร) อยู่เสมอๆ เลือกทำโปรเจ็คปี 4 โดยเอาความรู้สึกว่าจะได้เขียนโปรแกรมโหดๆ เข้าว่า

ความคาดหวังในช่วงหางาน และการทำงานช่วงแรกคือ อยากรู้ว่าจะเขียนโปรแกรมใหญ่ๆ ตั้งแต่เริ่มจนจบได้ยังไง เพราะสมัยเรียนมีแต่ทำโปรเจ็คเล็กๆ เข้าทำงานกับ Throughwave ตั้งใจว่าจะศึกษาและใช้งาน Design Patterns ให้แตกฉาน ได้อ่าน The Pragmatic Programmer ทำให้เริ่มสนใจ Clean code(1)(2) และ Polyglot Programming เริ่มสนใจ Functional Programming และ Immutability จำไม่ได้ว่าเริ่มสนใจ Agile และ TDD ได้ยังไง แต่จำได้ว่า เป้าหมายในตอนนั้นคือ อยากเขียนโปรแกรมให้มีความสุขเพราะอยากใช้ชีวิตนี้ไปกับมัน ซึ่งความสุขนั้นจะเกิดจากการรวมกันของ การเขียนโปรแกรมเสร็จทันเวลาและการได้โปรแกรมที่มีความมั่นใจว่าที่ทำไปมันไม่พัง

พอย้ายมาสิงคโปร์ มาด้วยความอยากหัด Ruby เพื่อเติม programming paradigm ให้ตัวเอง แต่โดนจับมาทำ PHP แต่ก็เลยถือโอกาสเก็บตักตัวความรู้ Front-end ที่ยังขาดอยู่ เพราะยังไงก็คิดว่าถ้าเราจะไปต่อได้ต้องพอทำได้ทั้ง stack

พอย้ายงาน ได้มาทำ Rails และ Agile เต็มตัวอย่างที่คาดหวังไว้ก่อนจะมาจากไทย เก็บตักตวงเรื่อง Agile จนรู้สึกว่าเริ่มอิ่มตัว รู้ว่าควรจะใช้อะไรเมื่อไหร่ ส่วน Ruby และ Rails ก็ทำได้ในระดับที่กลายเป็นอาวุธที่ถนัดที่สุด แต่ก็มีความตะขิดตะขวงใจในทางที่เลือกในการแก้ปัญหาบางอย่างของ community และตัว platform ที่รู้สึกว่ามันเป็นแค่การหลีกเลี่ยงปัญหา

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

ตลอด 7 ปีที่ผ่านมาถือเป็นการเดินทางที่สนุกทีเดียว

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s