โปรแกรมเมอร์ไทย วิกฤติจริงหรือ?

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

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


สิ่งที่โปรแกรมเมอร์จะต้องคิดเสมอ คือ

  1. ซอร์สโค้ด(Source Code) ที่เขียนต้องสามารถให้คนที่จะมาทำงานต่อจะสามารถอ่านได้ด้วย 
  2. ถ้าโปรแกรมทำงานช้า สาเหตุจะต้องไม่ได้มาจากซอร์สโค้ด เช่น การทำงานซ้ำซ้อน การทำงานที่ยุ่งเหยิง
  3. การจัดการหน่วยความจำ โดยเฉพาะภาษาที่ใช้ memory สูง ต้องระวังให้ดี ถ้าเข้าใจเบื้องหลังของภาษาที่ตัวเองเขียนจะดีมาก
  4. ไม่ใช่เพียงแค่คิดว่าโปรแกรมต้องทำงานเป๊ะๆ ตามฟังก์ชันงานเท่านั้น แต่บางครั้งก็มีพฤติกรรมแผลงๆ จากผู้ใช้งานเหมือนกัน ถ้าไม่อยากแก้บ่อยๆ โปรแกรมเมอร์ต้องระวังให้ดี

    5....6...7........... ยังมีอะไรอีกมากที่ต้องเจอครับ ^^


ทีนี้ ผมอยากจะพูดถึงกระทู้ และคลิปวีดีโอที่มีการพูดถึงกันอย่างหนาหูด้วยคีย์เวิร์ดที่ว่า "วิกฤตการณ์โปรแกรมเมอร์ไทย" (in LordGift's style นะฮ้าฟฟฟ)

จากที่ผมได้อ่านได้ดูมา สิ่งที่ผมรู้สึกก็คือ "เห็นด้วย" โดยเฉพาะในเรื่องของนักศึกษาผู้มีความรู้คอมพิวเตอร์ ทั้งทาง วิศวกรรมศาสตร์ วิทยาศาสตร์ เทคโนโลยีสารสนเทศ ธุรกิจคอมพิวเตอร์ ฯลฯ โอ้ สาขามันจะมากมายอะไรเช่นนี้ ถ้ามีคนถามว่าแล้วมันต่างกันอย่างไร สิ่งที่ผมรู้สึกก็คือ "นั่นสิ"

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


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

แต่สิ่งที่ผมอยากจะขอบ่นก็คือ บางครั้งทีมของเราก็ไม่ได้มีข้อมูลที่แน่ชัด ไม่ได้สื่อสารกันให้ดี "ฉันดี ฉันเก่ง" ถ้าได้ทำงานกับคนเหล่านี้ ผมเองผมก็ไม่พอใจ คนเหล่านี้จะไม่เก่งไปกว่าเราจนกว่าเขาจะพิสูจน์ด้วยซอร์สโค้ด เราเป็นโปรแกรมเมอร์เราอยู่กับมัน จงสร้างหลักฐานให้ตัวเองครับ และสิ่งที่ผมอยากบ่นโปรแกรมเมอร์ด้วยกันมากที่สุดคือ บางครั้งเราก็ไม่ได้แย่ครับ เราทำดีที่สุดแล้ว แต่ปลายสายของงานมันอยู่ที่เราจริงๆ ผู้ใช้อยากได้อะไรเราก็ต้องเขียนให้ งานเร่งแค่ไหนก็คือเราที่ต้องจัดการ โปรแกรมเราไม่ผ่านเราก็แก้เองต้องทำ(อันนี้แน่นอน) ไหนยังจะพวกเรื่องที่ต้องใส่ใจของโปรแกรมเมอร์ที่ผมพูดไปก่อนหน้านี้อีก หรือถึงแม้ว่างานจะเยอะมากมายแค่ไหน เราก็ต้องจัดการทั้งหมด อย่างดีก็แค่มีเพื่อนมาเพิ่มมาช่วยกันทำ เพราะฉะนั้นอย่าคิดว่ามันเป็นความผิดเราเสมอ ต้องลองมองรอบๆตัวด้วยว่า เขาเร่งงานเราแล้วแล้วคนเร่งตอนนี้อยู่ไหน? เขารับงานมาเยอะแล้วคนรับล่ะช่วยเราทำอะไรบ้าง? ถ้าคุณมีแรงก็ทำไปเถอะครับ OT หรือจะเงินพิเศษอะไรก็ตามแต่ แต่ผมอยากบอกครับว่า เวลางานเขามีให้ทำก็ทำให้เต็มที่ ถ้าเต็มที่แล้วมันไม่ทันจริงๆ อันนี้ผมว่ามันไม่ใช่เรื่องแล้วล่ะที่จะต้องมาบังคับให้เราปิดจ๊อบให้เสร็จ ดูแลสุขภาพนิดนึงนะครับ ^^

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



link Pantip และ clip VDO ที่ผมพูดถึงนะครับ




Facebook Comment

Popular post of 7 days

[Android] เปิดเครื่องไม่ได้ โลโก้ค้าง (Boot Loop)

ลืมรหัสปลดล็อค Android เข้าเครื่องไม่ได้ มีทางออกครับ

[Java] ความแตกต่างระหว่าง Overloading กับ Overriding