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

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

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

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

อย่างที่สามคุณจะมีรายชื่อ contact จำนวนมากเมื่อคุณทำงานในซอฟต์แวร์โอเพนซอร์ส โมเดลของชุมชนโอเพนซอร์สออกจะเป็นแนวกระตุ้นให้เกิดการร่วมมือกัน ซึ่งมีหลายช่องทาง ไม่ว่าจะเป็น mailing list, IRC chat room, blogs และเครื่องมืออื่นๆที่ใช้ในการสื่อสารแบบออนไลน์ได้ สิ่งเหล่านี้เป็นวิธีที่ดีมากในการทำงานร่วมกันและยิ่งคุณใช้เวลาอยู่กับชุมชนโอเพนซอร์สคุณก็จะยิ่งพบเห็นนักพัฒนาที่อยู่ในชุมชนมากขึ้น การสร้างความสัมพันธ์ในชุมชนไม่ได้เป็นเพียงแค่การช่วยให้ได้รับโอกาสในอนาคต แต่คุณยังจะพบกับกลุ่มนักพัฒนาที่มีความแข็งแกร่งพอที่จะสามารถเอาไปอ้างอิงและโน้วน้าวผู้ว่าจ้างได้

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

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

ก่อนที่คุณจะโชคดีหรือไม่ดีในการสมัครงานอย่างน้อยคุณจะต้องอธิบายสิ่งที่ได้มาจากการพัฒนาซอฟต์แวร์โอเพนซอร์ส ลงใน resume ของคุณ
1. ทักษะที่ได้มาจากการใช้งานเครื่องมือ
2. ประสบการณ์ในการทำงานจริง
3. งานที่คุณทำเพื่อใช้ในการอ้างอิง
4. บันทึกการทำงานว่าคุณเป็นส่วนหนึ่งของทีมนักพัฒนา

อ่านต่อตอนต่อไป

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

บริษัทส่วนใหญ่จะมีเจ้าหน้าที่ที่จะทำหน้าที่ตรวจสอบ resume อาจจะเป็นเจ้าหน้าที่ในส่วน HR หรือเจ้าหน้าที่ส่วนงานที่คุณจะต้องเจ้าไปทำดังนั้นการนำเสนอข้อมูลด้านทักษะที่เกี่ยวข้องกับงานที่คุณจะต้องทำเป็นเรื่องที่คุณจะต้องเขียนลงใน resume แล้วคุณจะเขียนอะไรลงไป? หากนึกไม่ออกให้คุณนึกถึงคำถามต่อไปนี้ คุณใช้ระบบควบคุมเวอร์ชั่นชื่ออะไร? ใช้ IDE อะไร? ภาษาที่คุณถนัดหรือเคยเขียน? ใส่ความชำนาญเขาไปในแต่ละทักษะจะทำให้ resume ของคุณบ่งบอกถึงตัวคุณเองได้มากขึ้น ตัวอย่างเช่น ใช้ git และ mercurial เป็นระบบ version control นอกจากทักษะด้านการใช้เครื่องมือคุณยังสามารถเพิ่มข้อมูลด้านทักษะอื่นๆ จากการพัฒนาซอฟต์แวร์โอเพนซอร์สได้อีก เช่น สามารถสื่อสารกับชาวต่างชาติได้, ทำงานร่วมกับอาสาสมัครได้เป็นจูงใจการทำงานของอาสาสมัคร, เขียนระยะเวลาหรือประสบการณ์การ maintainance ซอฟต์แวร์ที่คุณร่วมพัฒนา

ในด้านประสบการณ์การพัฒนาซอฟต์แวร์ร่วมกับโครงการซอฟต์แวร์โอเพนซอร์สจะช่วยให้คุณได้งานอย่างไร? อย่างแรกที่ต้องทำคือต้องมีเอกการที่แจ้งผู้ว่าจ้างให้ทราบได้ว่าคุณได้มีการพัฒนาซอฟต์แวร์ร่วมกับโครงการซอฟต์แวร์โอเพนซอร์สอย่างไรบ้าง เช่น Q.A. 7 แพคเกจ ดังต่อไปนี้… เป็นต้น การนำเสนอข้อมูลเชิงสถิติก็สามารถช่วยคุณได้เช่นกัน เช่น ใช้เวลาจำนวน X ชั่วโมงในทดสอบ.., Q.A. จำนวน N แพคเกจในโครงการ X หรือโครงการ Foo ใช้นักพัฒนา 50,000 คน และองค์กรอย่าง Sun, IBM ใช้ซอฟต์แวร์หรือพัฒนาซอฟต์แวร์ FooBar จากโครงการ Foo เป็นต้น คุณควรอธิบายให้ชัดเจนในสิ่งที่คุณทำในโครงการนั้นๆ เช่น แก้บัก X ซึ่งเป็นบักร้ายแรงและเป็นปัญหาในการออกเวอร์ชัน XX ของโครงการ YY เป็นต้น ข้อมูลใน resume มักจะให้อธิบายตำแหน่งงานที่คุณทำมักเกี่ยวข้องกับประสบการณ์แต่ส่วนใหญ่โครงการซอฟต์แวร์โอเพนซอร์สไม่ได้กำหนดตำแน่งงานให้กับนักพัฒนาอิสระที่อยู่ในโครงการ อย่างไรก็ตามคุณสามารถใช้คำสั้นๆ อธิบายตำแหน่งงานของคุณได้ อย่าใช้เพียงคำว่า "อาสาสมัคร (volunteer)" ให้ใช้คำว่า "นักพัฒนา" หรือ "ผู้แต่ง" ก็สามารถอธิบายตำแหน่งงานของคุณได้ ตัวอย่างเช่น QA volunteer หรือ QA core team member จะทำให้คุณมีตำแหน่งงานและดูดีขึ้น

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

 

รวมลิงค์

  1. ทำไมนักศึกษาควรพัฒนาซอฟต์แวร์โอเพนซอร์ส ตอนที่ 1

 

เนื่องจากทีม Thai Open Source ได้เริ่มเข้ามาพัฒนา Chantra แบบเต็มตัวมาแล้ว 4 รุ่นคือ Chantra 3.1, 3.2, 3.3 และ 4.0 (ブルースカイ) ใน Chantra 4.1dev-graymatter-1 จะถูกสร้างการ Generate Code และ Build แผ่นโดยเครื่องเซิร์ฟเวอร์แต่ในรายละเอียดของซอฟต์แวร์บางตัว เช่น OpenOffice.Org 3.0.1, OpenOffice 3.0.1 Thai Language Pack, Drupal, Joomla, Moodle จะสร้างตัวติดตั้งขึ้นมาใหม่ ซึ่งสร้างตัวติดตั้งบน Windows XP แต่เนื่องจากทีมงานไม่มี Windows รุ่นอื่นๆ ที่สามารถทดสอบการติดตั้งได้ซอฟต์แวร์ข้างต้นได้ จึงขอเชิญชวนสมาชิกและผู้ที่สนใจที่ต้องการมีส่วนร่วมพัฒนา Chantra 4.1 โดยการช่วยทดสอบ Chantra 4.1dev-graymatter-1 ในเครื่องของท่าน แล้วรายงานผลการทดสอบมาได้โดยการ Comment ที่หน้านี้ครับ สำหรับท่านที่คุ้นเคยกับระบบ Issue Track ที่หน้าเว็บโครงการสามารถใช้ Issue Track รายงาน User Defect ได้เช่นกัน

ลืมครับ -_-" ดาวน์โหลด Chantra 4.1dev-graymatter ได้ที่ http://dp.thaiopensource.org/chantra-release/ ครับ