วันศุกร์ที่ 3 ตุลาคม พ.ศ. 2557
อยากเป็นโปรแกรมเมอร์ เริ่มต้นอย่างไรดี
น้องๆ หลายคนอาจจะมีความคิดว่าสักวันจะต้องก้าวขึ้นมาเป็นโปรแกรมเมอร์ให้ได้ เพราะมีไอดอลอย่าง มาร์ค แห่ง facebook สตรีฟ แห่ง apple หรือ บิลเกตจาก microsoft คงจะดูเท่ไม่น้อยเลย ถ้าวันนึงมีคนมาถามว่าเราทำงานอะไร และเรากล้าตอบอย่างเต็มปากว่า "ผมเป็นโปรแกรมเมอร์"
ก่อนที่เราจะมองถึงวันนั้น เราต้องถามตัวเองในวันนี้ก่อนว่าเราอยากเป็นโปรแกรมเมอร์เพราะอะไร ถ้าไม่นับรวมความเท่หรือดูเก่งกาจ ฉลาดปราดเปรื่อง ก่อนอื่นเราต้องรู้จักอาชีพโปรแกรมเมอร์ก่อนว่าเขาทำอะไร มีหน้าที่อะไร และต้องเรียนรู้อะไรบ้าง
1.ต้องรู้จักคำว่า "โปรแกรมเมอร์" ให้ดีก่อน
โปรแกรมเมอร์ คือนักพัฒนา software ทั้งสร้าง แก้ไข และปรับปรุงให้ดีขึ้น เพื่อให้สามารถใช้งานร่วมกับอุปกรณ์ เทคโนโลยีที่มีอยู่ ณ ปัจจุบัน เพื่อให้เกิดประโยชน์อย่างใดอย่างหนึ่ง ไม่ว่าจะเป็น โปรแกรมอรรถประโยชน์ เช่น MS office ,excel หรือจะเพื่อความบันเทิง อย่างเกมส์ต่างๆ สิ่งเหล่านี้คือหน้าที่หลักของ "โปรแกรมเมอร์"
2.ต้องรู้ว่า "โปรแกรมเมอร์" ต้องเรียนรู้อะไรบ้าง
โปรแกรมเมอร์เรียนเหมือนกับคนส่วนใหญ่ทั่วไป แต่สนใจในสิ่งที่คนอื่นเบือนหน้าหนี นอกจากภาษาในการพัฒนาโปรแกรมต่างๆ อย่าง C, C++,VB,Pascal,Java ,Object c ที่ต้องรู้จักโครงสร้างของภาษาเป็นอย่างดี ต้องแต่การประกาศตัวแปร จนไปถึงการใช้งาน method ต่างๆ ซึ่งแต่ละภาษาจะไม่เหมือนกัน แต่ก็อยู่ภายไต้แนวคิดเดียวกัน เช่น ใน ภาษา PHP จะไม่มีการประกาศชนิดของตัวแปรว่าเป็นประเภทใด เพราะใน PHP มีตัวจัดการอยู่แล้ว คอมไพล์เลอร์ ฉลาดพอที่จะแปลงชนิดข้อมูลเอง ต่างจาก Java และ C ที่ต้องประกาศชนิดของตัวแปรให้ชัดเจน ถึงจะใช้งานได้และแต่ละชนิดจะเก็บค่าได้เพียงชนิดเดียวเท่านั้น แต่ก็จะมี method สำหรับแปลงชนิดของตัวแปรไปเป็นชนิดอื่นเมื่อมีความจำเป็น
นี่แค่เพียงพื้นฐานที่เราต้องเรียนรู้(แค่นี้ก็ปวดหัวแล้ว) ต่อไป เราต้องเข้าใจในฐานข้อมูล(database) เราหนีไม่พ้นว่าโปรแกรมที่เขียนจะต้องใช้งานร่วมกับฐานข้อมูลไม่ว่าเล็กหรือใหญ่ ถ้ามีคนใช้งานมากกว่าหนึ่งคนขึ้นไป ความยุ่งยากจะเพิ่มมากขึ้น ตามจำนวนผู้ใช้งาน ตั้งแต่แอพพลิเคชั่นเล็กๆ ไปจนถึงระบบใหญ่ ที่มีเป็นร้อยๆ โมดูล(โมดูล คือ โปรแกรมย่อยที่มีอยู่ในระบบ) ภาษาที่ต้องเรียนรู้เพื่อใช้งานฐานข้อมูล คือ SQL ซึ่งเป็นภาษาเฉพาะ ที่ต้องเข้าใจอย่างน้อยก็ต้องรู้จัก คำสั่งในการสร้างฐานข้อมูล ดึงข้อมูลมาแสดง ลบ เพิ่ม เป็นอย่างน้อย
สิ่งที่ต้องเรียนรู้เพิ่มเติมและจำเป็นคือ อัลกอรึทึม หรือวิธีการแก้ปัญหา มีคนเคยบอกไว้ว่า การฝึกเขียนโปรแกรมใช้เวลาน้อยกว่า การฝึกอัลกกอริทึม ซึ่งเป็นความจริง 100 เปอร์เซ็นต์ เหมือนเราเรียน บวก ลบ หาร คูณ เลขได้ แต่จะทำอย่างไรให้เราเอามาแก้โจทย์ปัญหาได้ โปรแกรมเมอร์ก็เช่นกัน เรารู้จักวิธีการเขียนโปรแกรมก็ต้องรู้จักการพลิกแพลงให้เข้ากับโจทย์ให้ได้
ต่อไปที่ต้องเข้าใจคือ แพลตฟอร์ม ของโปรแกรมที่เราจะเขียน windows ,linux,Macintos เหล่านี้เรียกว่า OS (Operating System) หรือระบบปฏิบัติการ โปรแกรมหนึ่งที่พัฒนาด้วยภาษาใดภาษาหนึ่งจะไม่สามารถใช้งานได้ทุก OS แต่จะสามารถใช้งานได้เพียง หนึ่ง หรือ สอง OS เท่านั้น เช่น โปรแกรมที่เขียนด้วยภาษา Java จะทำงานได้ดีบน windows และ Macintos แต่อาจจะไม่สามารถทำงานบน linux ได้ ดังนั้นหากคิดจะเป็นโปรแกรมเมอร์ต้องเลือกภาษาที่จะเขียน และ แพลตฟอร์มให้ชัดเจนอาจจะเริ่มต้นด้วยโปรแกรมบน windows ก่อน เพราะเป็น os ที่มีอยู่ทั่วไปและใช้งานง่ายที่สุด นอกจาก แพลตฟอร์มเหล่านี้แล้วยังอาจจะต้องเลือกอุปกรณ์(device)ที่จะใช้งานโปรแกรมด้วย เช่น สมาร์ทโฟน แท็ปแลต iPad เป็นต้นซึ่ง หากเราเคยเขียนโปรแกรมบน OS มาแล้ว ถ้าจะลงใน device ก็ไม่ใช่เรื่องยาก
3.ต้องพัฒนาตัวเองอยู่ตลอดเวลา
โปรแกรมเมอร์ไม่ใช่อาชีพที่สบายและสนุกสนานตลอดเวลา โปรแกรมเมอร์ต้องตามให้ทันเทคโนโลยีใหม่ๆ เพราะโปรแกรมที่เขียนเมื่อ ปีที่แล้ว อาจจะทำงานไม่ได้ในปีต่อไป เคยเขียนโค้ดสิบบรรทัด อาจจะต้องปรับวิธีการเขียนให้เหลือแค่ไม่กี่บรรทัด เพราะฉะนั้น คนที่กระตือรือล้น เท่านั้นถึงจะเป็นโปรแกรมเมอร์ที่ดีได้ การฝึกเขียนบ่อยๆ เหมือนการเก็บ level ให้ตัวเอง ค่อยๆ ไต่ระดับความเทพขึ้นเรื่อยๆ ไม่มีโปรแกรมเมอร์คนไหนก้าวข้ามขั้น "Hello world " หรือโปรแกรมตัวแรกมาได้ ถ้าไม่เลียนแบบคนอื่นก่อน โปรแกรมเมอร์คืออาชีพแห่งการเลียนแบบ แต่ไม่ใช่การคัดลอก โปรแกรมบางอย่างเราไม่จำเป็นต้องคิดขึ้นมาใหม่ แต่เราแค่เอาของเดิมที่มีอยู่แล้วมาปรับให้ทำงานได้ดีขึ้น เร็วขึ้น การคิดวิธีใหม่ๆ เป็นขั้นที่สองมาจากการเลียนแบบ ยิ่งเลียนแบบมาเยอะ ก็จะค่อยๆ เพิ่มความเชี่ยวชาญให้ตัวเอง ยิ่งเข้าใจภาษา สุดท้ายเราก็คิดใหม่ได้ เพื่อให้เป็นสไตล์ของตัวเอง อย่ากลัวที่จะเลียนแบบ แต่อย่าชอบในการคัดลอก
4.ต้องยอมรับในความเครียดและความไม่เป็นเวลาของงานได้
โปรแกรมเกือบทุกคนไม่ใช่คนตรงต่อเวลา ในการทำงานแต่ละคนล้วนทำงานเกินเวลา และพักผ่อนน้อย เพราะบางอย่างเราไม่สามารถเก็บไว้ทำวันหลังได้ เพราะงานจะไม่ต่อเนื่อง คิดได้ต้องรีบทำรีบเขียนก่อนจะลืม ไม่ต้องถามถึงเวลาพักผ่อน เที่ยวเตร่ หากคิดจะเป็นโปรแกรมเมอร์ต้อง มีความอดทน ถึงจะไม่ใช่ลูกจ้าง แต่งานเราก็คือส่วนหนึ่งของชีวิต แต่เมื่อไหร่ที่งานลุล่วงโปรแกรมเมอร์ก็คือนักเที่ยวดีๆ นั่นเอง โปรแกรมเมอร์เก่งๆ หลายคนเป็นนักดื่มคอทองแดง บางคนเขียนโปรแกรมได้ดีตอนเมา พอสร่างเมากลับไม่เข้าใจโค้ดที่ตัวเองเขียน
5.โปรแกรมเมอร์ไม่จำเป็นต้องเก่งทุกอย่างที่เรียน
โปรแกรมเมอร์ไม่ใช่คนอัจฉริยะทุกคน บางคนมาจากคนเรียนแย่ด้วยซ้ำแต่เพราะความพยายามและการฝึกฝนทำให้กลายเป็นคนที่เชี่ยวชาญ เหมือนนักดนตรีงานเลี้ยง อ่านโน๊ตไม่เป็นแต่ solo กีตาร์ได้เทพกว่าคนที่เรียนสายตรงมา ทุกอย่างเกิดจาการฝึกฝน แต่อาจจะเสียเปรียนคนที่เรียนสายตรงมา ซึ่งพื้นฐานจะแน่นกว่า แต่ความรู้เรียนทันกันได้โปรแกรมเมอร์แก้สมการแคลคลูลัสเองไม่ได้ แต่อาจจะเขียนโปรแกรมที่สามารถแก้โจทย์ได้ ถ้ารู้สูตรของ แคลคลูลัส
6.อย่ารอพรุ่งนี้
หากคิดว่าจะเป็นโปรแกรมเมอร์ จงเริ่มตั้งแต่วินาทีแรกที่คิด ลองทำไปเรื่อยๆ วันนี้อาจยังงูปลาๆ พอวันที่สอง ที่สาม ก็จะเริ่มเข้ามากขึ้นเรื่อยๆ คนสอนที่ดีที่สุดของเราก็คือตัวเรานั่นเอง บางคนอาจจะรอให้อาจารย์ในมหาวิทยาลัย บอกก่อน ก่อนศึกษา แบบนั้น เราก็จะเรียนรู้ช้ากว่าคนอื่น เราไม่ต้องเอาตัวเองไปเทียบกับคนอื่น หนึ่งโจทย์มีวิธีแก้ปัญหามากกว่าหนึ่งวิธี เรามีวิธีแก้ปัญหาของเราเองซึ่งไม่ต้องเหมือนคนอื่นก้ได้ ถ้ามันให้ผลลัพธ์ที่ถูกต้อง แต่อาจต้องปรับให้ทำงานได้เร็วขึ้นตามความเหมาะสมของงาน
สุดท้ายก็หวังว่าบทความนี้จะเป็นแรงผลักดันคนรุ่นใหม่ที่อยากเป็นโปรแกรมเมอร์ ให้มีแรงฮึดสู้อีกครั้งไม่มีโจทย์ใดแก้ได้แค่วินาทีเดียว ทุกอย่างต้องใช้เวลาและความพยายาม
สมัครสมาชิก:
ส่งความคิดเห็น (Atom)
เขียนได้ดีมากเลยครับ
ตอบลบหนูอยากเรียนจังสอนหนูได้ไม่คะพึ่ง14เอง
ตอบลบหนูอ่านเว็บโปรแกรมเมอร์มาทุกเว็บเลยอ่านซ่ำไปซ่ำมาอยากเรียนเเต่ไม่มีใครสอนเศร้าเนอะพึ่ง14เองคงไม่มีใครสอนแต่ก้ยังไม่หมดหวังนะคะที่จะหาความรู้ต่อไป
ตอบลบ