อยากเป็นโปรแกรมเมอร์จะเริ่มต้นยังไง

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

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

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

  3. หาพรรคพวกเรียนไปด้วยกัน เป็นกลุ่มย่อย ๆ 3-5 คน การเรียนรู้เป็นกลุ่มจะทำให้เกิดการพัฒนาที่ดีกว่าการเรียนคนเดียว (แต่ต้องเป็นกลุ่มที่มีขนาดเล็กและสนิทกันระดับหนึ่งนะครับ)

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

  • อ้อ ไม่จำเป็นต้องเป็นหนังสือเสมอไปครับ วิดีโอ พอดแคสต์ หรืออะไรก็ได้ ทั้งนี้ควรคุยกับ mentor ว่าสื่อการสอนอันไหนน่าสนใจและเหมาะกับตัวเราดู
  1. ศึกษาต่อในคณะสายตรง (Software Engineer, Computer Science เป็นต้น) ในระดับมหาวิทยาลัย ผมไม่ได้บอกว่ามหาวิทยาลัยจะให้อะไร และผมก็เชื่อว่ามีหลาย ๆ คนที่ไม่ได้เรียนด้านนี้แต่ประสพความสำเร็จเช่นเดียวกัน แต่ผมกำลังจะบอกว่าในมหาวิทยาลัยคุณจะได้พบกับอาจารย์ที่มีความสามารถจำนวนมากที่คุณสามารถขอให้เขาเป็น mentor หรือ adviser ได้ (มีให้เลือกเลยนั่นแหละ) และก็มีเพื่อนที่ร่วมเรียนไปในทิศทางเดียวกัน คอยเสริมกันและแข่งขันกัน นั่นจะเป็นข้อได้เปรียบเมื่อเทียบคนที่ไม่ได้จบเฉพาะทางมา
  • (ทั้งนี้ก็ต้องระวังเรื่องการคบคนด้วยนะครับ ไอ้ประเภทเมามันทุกเย็นก็ไม่ไหวนะ)
  1. เข้าร่วมสัมนา งานมีทติ้ง และอื่น ๆ ก็เข้าสังคมนั่นล่ะครับ เข้าไปคุยแลกเปลี่ยนทัศนะกัน ได้พบเจอคนมากขึ้น อาจจะได้เจอเพื่อนร่วมเรียนและที่ปรึกษาจากงานประเภทนี้ได้เช่นกัน

  2. หาประสพการณ์ เขียนโค๊ดเยอะ ๆ แต่อย่าเขียนในห้องนอนตัวเองอย่างเดียว ถ้าเป็นไปได้ลองเข้าร่วมโปรเจคชุมชน โปรเจคที่เปิดซอร์สโค๊ด เป็นการสร้างประสพการณ์การทำงานร่วมกันกับกลุ่มคน ตรงนี้จะเป็นข้อได้เปรียบเวลาเราทำงานเป็นอาชีพจริง ๆ ครับ แต่ต้องหาโปรเจคที่มีคนที่มีคุณภาพดี ๆ ด้วยนะ

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

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

  • ทั้งนี้ผมไม่ได้บอกให้เปิดทุกอันนะครับ อะไรที่ดูแล้วน่าจะต่อยอดทางธุรกิจได้ ก็เก็บ ๆ ไว้ขายบ้างก็ได้เหมือนกัน

คิดออกแค่นี้ มีความอะไรก็ทิ้งไว้ได้นะครับ ขอบคุณครับ

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *

This site uses Akismet to reduce spam. Learn how your comment data is processed.