ข้อคิดเห็น การพัฒนาโปรแกรมในมุมมองของข้าพเจ้า[ตอนที่ 1]

ข้อคิดเห็นการพัฒนาโปรแกรมในมุมมองของข้าพเจ้า ตอนที่ 1

อันนี้ เป็นข้อคิดเห็นส่วนตัวที่เขียนเอาไว้ เมื่อคราวส่งท้ายปีเก่าต้อนรับปีใหม่ พ.ศ. 2557-2558 ขอตัดมาเฉพาะส่วนที่เกี่ยวข้อง

**********************************************

เริ่มต้นเลย ถ้าคุณอยากจะหัดเขียนโปรแกรมกันจริงจัง ระดับที่อย่างน้อยก็เอาไปประกอบอาชีพได้นั้น
อย่างแรกเลยคือ สิ่งที่คุณต้องมี คือ พื้นฐาน ตรรกะ ต้องดี ในระดับหนึ่ง ประมาณว่า อ่านโจทย์บรรยายธรรมดาๆ มาแล้ว สามารถสร้างแอพพลิเคชั่น (จะเป็นโค้ด จอดำรุ่นดอส หรืออะไร ก็ได้) ที่สามารถแก้ปัญหาในสิ่งที่โจทย์ถามมา ได้ พวกนี้ มีประโยชน์มาก พอสมควร อย่างน้อย แม้แต่ในสายงานอื่นที่ไม่ใช่ คอมพิวเตอร์ ก็จำเป็นครับ เอาง่ายๆเลย สายวิชาที่ผมเรียนมา ก็มีวิชาหนึ่งชื่อว่า heat transfer ซึ่ง ในตอนเรียนป.ตรี มันจะมีโจทย์อันนึง ที่จำเป็นต้องใช้คอมพิวเตอร์ประมวลผลคำตอบออกมา ด้วย การเขียนโปรแกรม!!! นี่แค่น้ำจิ้ม ยังไม่นับรวมถึง บรรดา นศ. ป.โท ป.เอก ที่ต้องคร่ำเคร่งกับการวิจัยอีกนะ ที่อาจจะต้องใช้ทำงานในทำนองเดียวกัน ปัญหาคือ แล้วจะทำอย่างไรเล่า
ข่าวดีคือ เราสามารถเรียนรู้เรื่องนี้กันได้ แต่จะทำอย่างไร อันนี้ คงต้องไปศึกษากันเอาเอง และทุกอย่างก็อยู่ที่การฝึกฝนให้มากๆ
*********************************************
อย่างที่สอง เครื่องมือสำหรับการพัฒนาโปรแกรม
ใช่ครับ เครื่องมือสำหรับการพัฒนาโปรแกรม โดยส่วนใหญ่ คนเรามักจะติดปัญหา ในเรื่องนี้กันเยอะ โดยเอาไปเหมารวมกับ เรื่อง ข้างบน ใช่ครับ ใช่แล้ว ลองคิดดูให้ดีๆสิครับ เวลาเข้าไปหาความรู้ในเวบบอร์ด โปรแกรมมิ่ง ต่างๆ จะมีคำถามทำนองนี้อยู่ แน่ๆ เช่น “ผม ใช้ ms visual 20xx แล้ว มันคอมไพล์ไม่ผ่านครับ ติดปัญหา ตัวแปร นั่น นี่ โน่น โปรเจคไม่ผ่าน” หรือ “ทำไม ms visual xx รุ่นนี้ มันไม่รับกับ รุ่นก่อนล่ะ งานผมจะส่งพรุ่งนี้แล้วนะ ทำไงดี” ฯลฯ
อันที่จริง ในบ้านเรา มีโปรแกรมพวกนี้ ใช้งานกันอยู่ค่อนข้างเยอะพอสมควร บางทีหนังสือเล่มหนาเป็นตั้งๆ ขายราคาหลายร้อย ที่เห็นตามร้านหนังสือชื่อดังต่างๆ นั่นก็มี เพื่อช่วยอธิบาย วิธีการใช้งานเจ้าพวกนี้ นั่นแหละ
คำถามมีอยู่ว่า เมื่อใดก็ตามที่บริษัททำเครื่องมือนี้ มีอันต้องล้มหายตายจากไปเพราะปัญหาจากวงจรธุรกิจ ตัวอย่าง เช่น บริษัท borland หรือบริษัทsun ฯลฯ เราๆทั้งหลายจะทำอย่างไรกัน หรือแม้แต่บริษัทเดิมที่เราใช้ๆงานกันอยู่นี่ก็เถอะ(อันนี้ หมายถึง บริษัท Microsoft) วันดีคืนดี พี่แกเปลี่ยนรุ่นที ของเก่า ตายยกชุดเลย อย่างนี้ก็มี ถือว่า เป็นปัญหาอันน่าปวดหัวของโปรแกรมเมอร์ทั่วโลกเลยทีเดียวก็ว่าได้ และมันจะเป็นปัญหาแน่นอน ถ้าหากเป็นงานที่ต้องส่งพรุ่งนี้ โปรเจคที่ต้องจบในเทอมนี้ หรืองานใดๆก็ตามที่กำลังจะถึง กำหนดส่ง(deadline) ซึ่งยังทำไปไม่แล้วเสร็จ ฯลฯ
ทางแก้ ก็คือ ต้องแยกให้ออก ระหว่าง ระบบตรรกะความคิด พื้นฐานในการเขียนโปรแกรม กับ วิธีการใช้เครื่องมือ โดยต้องมีความเข้าใจในพื้นฐาน และ ตรรกะ เพียงพอ สำหรับการแปลความหมายจากปัญหา มาเป็น โค้ด ก่อน แล้ว ค่อยไปรบกันกับโค้ดอีกที -_-‘ (อยู่ที่ว่าจะใช้ภาษาอะไรและเครื่องมืออะไร)
โดยในตอนแรก คุณอาจต้องเลือกใช้อะไรสักอย่างที่ถนัดหรือทำความเข้าใจง่ายที่สุดในการฝึกฝนฝีมือกับมันไปก่อน แล้วหลังจากนั้น ค่อยขยับขยายไปหาเครื่องมือเครื่องใช้อย่างอื่นๆ หรือจะเล่นแบบเจาะจง expert เฉพาะกับเครื่องมือนั้นๆไปเลย ก็ดูจะไม่เลวนัก
*******************************************************
อย่างที่สาม เทรน และ ตลาด ของการผลิต
หลายสิบปีก่อน เป็นยุคของคอมพิวเตอร์ตั้งโต๊ะ จะมีพวกโปรแกรมตลาดๆ ทำกันออกมาเพียบ ใช้ได้มั่ง ไม่ได้มั่ง ตามฝีมือและความสามารถของโปรแกรมเมอร์ ไม่งั้นก็เป็นพวกเกมทั้งหลายแหล่ (จำได้ไหม มีช่วงนึง การเขียนเกม บูม มากมายเลยล่ะครับ ^__^)
สำหรับพวกโปรแกรมที่ใช้งานเฉพาะทางต่างๆเช่น ทางการแพทย์ หรือ ทางวิศวกรรม ส่วนใหญ่จะนำเข้าจาก ต่างประเทศ
ส่วนมาก พวกที่ตลาดๆ ก็จะเป็นของพวกเราเองนี่แหละ หนักหน่อยอาจเป็นพวกที่เกี่ยวข้องกับ การบัญชี และภาษี ที่ต้องทำตามข้อกำหนด กฎหมาย สำหรับเครื่องมือและหลักสูตรการเรียนต่างๆในช่วงนั้น ก็จะเน้นไปที่พวกทำโปรแกรมกับคอมฯตั้งโต๊ะ เป็นหลัก
แต่ ณ ปัจจุบันนี้ กระแสของ อุปกรณ์สัมผัส มาแรงมาก ใครที่เขียนแอพเป็น และขายได้ ส่วนใหญ่ จะมีแนวโน้ม หางาน หาเงิน ได้ง่ายครับ ส่วนจะทำอย่างไร ก็คงต้องตามหาในส่วนของ เครื่องมือ กันเอาเอง
จะเห็นได้ว่า ตัวความรู้และเครื่องมือในด้านนี้ ไม่เคยหยุดนิ่งเลย มีการเปลี่ยนแปลงตลอดเวลา แถมรวดเร็วพอสมควร ไม่ถึง 6 เดือนก็เปลี่ยนไปอีกแล้ว -_-

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

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

****************************************************
อย่างที่สอง เป็นการพัฒนาร่วมกับฮาร์ดแวร์ พวกอุปกรณ์อิเลคทรอนิกส์ทั้งหลาย อย่างเช่นพวก ไมโครคอนโทรลเลอร์ เป็นต้น
เป็นพวกอุปกรณ์อัจฉริยะ รู้งาน รู้เวลา ช่วยเหลือคนได้ อะไรแบบนั้น

แต่ไม่ต้องถึงขั้นหุ่นยนต์ตามระบบโรงงานอุตสาหกรรม เพราะนั่นเป็นอีกขั้นหนึ่ง ที่คนของเราต้องพัฒนาไปให้ถึงครับ

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

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

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

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

************************************************
สำหรับผมเอง เห็นอีกแนวทางหนึ่ง ที่ไม่น่าเชื่อ ว่าจะเป็นไปได้ และสำคัญพอสมควร สำหรับบางธุรกิจ
นั่นคือ การเขียนโปรแกรมเพื่อทำระบบเทรด การซื้อ ขาย หลักทรัพย์ หรือ ผลิตภัณฑ์ ทางการเงิน อื่น เช่น ทองคำ น้ำมัน สัญญาซื้อขายล่วงหน้า (future)
ความรู้ทางนี้ ค่อนข้างอยู่ในวงจำกัด เพราะในบางประเทศมีการจำกัดการเข้าถึงข้อมูลสำหรับวิเคราะห์ในตลาดการซื้อขาย เพราะถือว่าเป็นข้อมูลที่ต้องเสียค่าใช้จ่ายในการเข้าถึง
อีกทั้งผู้พัฒนาจะต้องทำการศึกษาระบบในทางธุรกิจการเงิน ต้องทราบถึงแนวคิดการสร้างสูตรของตัวชี้วัด อินดิเคเตอร์ (indicator) ต่างๆ รวมถึงการวางเงื่อนไขการซื้อขายเฉพาะสำหรับแต่ละกรอบเวลาและแต่ละอินดิเคเตอร์อีกด้วย ซึ่งมักจะรวมเรื่องของความผันผวนเข้าไปอีก และบางครั้ง ในบางตลาด ก็ไม่ใช่การแข่งขันโดยสมบูรณ์ กล่าวคือ อาจมีกลุ่มคน หรือ กลุ่มทุนบางกลุ่ม คอยชี้นำทางการเคลื่อนไหวในตลาดอยู่ อาจทำให้การชี้วัด ไม่เป็นไปตามทฤษฎี อันนี้ก็มี แต่โดยภาพรวม การทำระบบเพื่อช่วยเหลือ ตัดสินใจสำหรับการซื้อขาย นั้น ถือว่า ช่วยให้ผู้ใช้ระบบ สามารถทำกำไรได้ดี พอเอาตัวรอดได้ภายในตลาดที่ตัวเองซื้อขายอยู่ ในบางตลาด ถึงขั้นพัฒนาเป็นระบบอัตโนมัติในการซื้อขายไปเลยก็มี

***********************************************
ก็คงแนะแนวทางไว้ได้ประมาณนี้ เป็นเพราะว่า ตอนนี้ ตามเทรนอะไร ไม่ทันแล้วล่ะครับ ได้แต่บอกว่า
โลกไปไวมาก ขอเลือกใช้สิ่งที่เป็นประโยชน์แก่ตนเองก็แล้วกัน.

ข้อคิดเห็น การพัฒนาโปรแกรมในมุมมองของข้าพเจ้า[ตอนที่ 1]
Tagged on:     

Leave a Reply

Your email address will not be published. Required fields are marked *

Close
E-mail It