เป็นโปรแกรมเมอร์ของซอฟต์แวร์แบบเปิด

ผู้เขียน: Morris Wright
วันที่สร้าง: 24 เมษายน 2021
วันที่อัปเดต: 1 กรกฎาคม 2024
Anonim
ซอฟต์แวร์เฮาส์  กับ โปรแกรมเมอร์ ความจริงที่หลายคนอาจยังไม่รู้
วิดีโอ: ซอฟต์แวร์เฮาส์ กับ โปรแกรมเมอร์ ความจริงที่หลายคนอาจยังไม่รู้

เนื้อหา

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

ที่จะก้าว

  1. ดาวน์โหลดการแจกจ่าย Unix ที่ดี GNU / Linux เป็นหนึ่งในโปรแกรมที่ได้รับความนิยมมากที่สุด แต่มักใช้ GNU Hurd, BSD, Solaris และ (ในระดับหนึ่ง) MacOS X
  2. เรียนรู้วิธีใช้บรรทัดคำสั่ง คุณสามารถทำสิ่งต่างๆได้มากขึ้นด้วยระบบปฏิบัติการที่เหมือน Unix หากคุณใช้บรรทัดคำสั่ง
  3. เรียนรู้ภาษาโปรแกรมยอดนิยมบางภาษาจนกว่าคุณจะไปถึงระดับที่น่าพอใจไม่มากก็น้อย มิฉะนั้นคุณจะไม่สามารถส่งรหัส (ส่วนที่สำคัญที่สุดของโครงการซอฟต์แวร์ใด ๆ ) ให้กับชุมชนซอฟต์แวร์แบบเปิดได้ แหล่งข้อมูลบางแห่งแนะนำให้เริ่มต้นด้วยสองภาษาพร้อมกัน: ภาษาระบบเดียว (C, Java หรือที่คล้ายกัน) และภาษาสคริปต์ (Python, Ruby, Perl หรือที่คล้ายกัน)
  4. เพื่อให้ได้ประสิทธิผลมากขึ้นคุณต้องมี NetBeans หรือสภาพแวดล้อมการพัฒนาแบบบูรณาการที่คล้ายกัน
  5. เรียนรู้การใช้โปรแกรมแก้ไขขั้นสูงเช่น vi หรือ Emacs พวกเขามีช่วงการเรียนรู้ที่สูงขึ้น แต่คุณสามารถทำอะไรกับพวกเขาได้มากขึ้น
  6. เรียนรู้เกี่ยวกับการควบคุมเวอร์ชัน การควบคุมเวอร์ชันน่าจะเป็นเครื่องมือที่สำคัญที่สุดของการทำงานร่วมกันสำหรับการพัฒนาซอฟต์แวร์ที่ใช้ร่วมกัน ทำความเข้าใจเกี่ยวกับวิธีการสร้างและใช้แพตช์ การพัฒนาซอฟต์แวร์แบบเปิดในชุมชนส่วนใหญ่ทำผ่านการสร้างการอภิปรายและการประยุกต์ใช้แพตช์ต่างๆ
  7. ค้นหาโครงการซอฟต์แวร์แบบเปิดขนาดเล็กที่เหมาะสมซึ่งคุณสามารถเข้าร่วมเพื่อรับประสบการณ์ได้อย่างง่ายดาย โครงการดังกล่าวส่วนใหญ่สามารถพบได้ใน SourceForge.net ในปัจจุบัน โครงการที่เหมาะสมควรรวมถึง:
    1. ใช้ภาษาโปรแกรมที่คุณรู้จัก
    2. มีความกระตือรือร้นด้วยการเปิดตัวล่าสุด
    3. ประกอบด้วยนักพัฒนาสามถึงห้าคนแล้ว
    4. เพื่อใช้การควบคุมเวอร์ชัน
    5. มีส่วนที่คุณสามารถเริ่มต้นได้ทันทีโดยไม่ต้องเปลี่ยนรหัสที่มีอยู่มากเกินไป
    6. นอกจากโค้ดแล้วโครงการที่ดียังมีรายการสนทนารายงานข้อบกพร่องรับและดำเนินการตามคำขอปรับปรุงและกิจกรรมที่คล้ายกัน
  8. ติดต่อผู้ดูแลระบบของโครงการที่เลือก ในโครงการขนาดเล็กที่มีนักพัฒนาเพียงไม่กี่คนโดยปกติความช่วยเหลือของคุณจะได้รับการยอมรับทันที
  9. อ่านกฎของโครงการอย่างรอบคอบและปฏิบัติตามกฎเหล่านี้ไม่มากก็น้อย กฎของรูปแบบการเขียนโปรแกรมหรือความจำเป็นในการบันทึกการเปลี่ยนแปลงของคุณในไฟล์ข้อความแยกต่างหากอาจดูไร้สาระในตอนแรก อย่างไรก็ตามจุดประสงค์ของกฎเหล่านี้คือการเปิดใช้งานที่แชร์และโครงการส่วนใหญ่สามารถทำงานร่วมกับกฎเหล่านี้ได้
  10. ทำงานในโครงการนี้เป็นเวลาหลายเดือน ตั้งใจฟังสิ่งที่ผู้ดูแลระบบและสมาชิกโครงการคนอื่น ๆ พูด นอกจากการเขียนโปรแกรมแล้วคุณยังมีอีกหลายสิ่งที่ต้องเรียนรู้ แต่ถ้าคุณไม่ชอบอะไรจริงๆให้หยุดและเปลี่ยนไปใช้โปรเจ็กต์อื่น
  11. อย่าติดอยู่ในโครงการใต้ดินนานเกินไป เมื่อคุณพบว่าตัวเองสามารถทำงานในทีมได้สำเร็จแล้วก็ถึงเวลาเริ่มมองหาสิ่งที่จริงจังกว่านี้
  12. มองหาซอฟต์แวร์โอเพ่นซอร์สระดับสูงที่จริงจังหรือโครงการโอเพ่นซอร์ส โครงการดังกล่าวส่วนใหญ่เป็นขององค์กร GNU หรือ Apache
  13. เนื่องจากเรากำลังก้าวกระโดดอย่างจริงจังที่นี่คุณจึงต้องคำนึงถึงการต้อนรับที่อบอุ่นน้อยกว่ามาก คุณมักจะถูกขอให้เรียกใช้โดยไม่มีการเข้าถึงการเขียนโดยตรงไปยังที่เก็บโค้ดเป็นครั้งแรก อย่างไรก็ตามโครงการใต้ดินก่อนหน้านี้น่าจะสอนคุณได้มากมายดังนั้นหลังจากหลายเดือนของการมีส่วนร่วมอย่างมีประสิทธิผลคุณสามารถเรียกร้องสิทธิ์ที่คุณคิดว่าคุณควรมีได้
  14. ทำงานหนักและทำงานให้สำเร็จ ได้เวลา. อย่ากลัว. ดำเนินการต่อแม้ว่าคุณจะพบว่างานนั้นยากกว่าที่คิดไว้ แต่แรก - ในขั้นตอนนี้สิ่งสำคัญคืออย่ายอมแพ้
  15. หากทำได้ให้สมัครเข้าร่วม "Summer of Code" ของ Google เพื่อนำเงินเข้าสู่การผจญภัยครั้งนี้ แต่ไม่ต้องกังวลหากใบสมัครไม่ได้รับการยอมรับเนื่องจากมีตำแหน่งที่ได้รับทุนน้อยกว่าโปรแกรมเมอร์ที่เก่ง ๆ
  16. ค้นหาการประชุมที่เหมาะสมที่เกิดขึ้นในบริเวณใกล้เคียง ("วัน Linux" หรือใกล้เคียงกัน) และพยายามนำเสนอโครงการของคุณที่นั่น (ทั้งโครงการไม่ใช่เฉพาะส่วนที่คุณตั้งโปรแกรม) หลังจากที่คุณระบุว่าคุณกำลังเป็นตัวแทนของโครงการฟรี / โอเพ่นซอร์สที่จริงจังแล้วผู้จัดงานมักจะชดใช้ให้คุณจากค่าธรรมเนียมการประชุม (ถ้าไม่เช่นนั้นการประชุมก็จะไม่เหมาะสมอยู่ดี) นำแล็ปท็อป Linux ของคุณ (ถ้ามี) และเรียกใช้การสาธิต ถามผู้จัดการโครงการเกี่ยวกับวัสดุที่คุณสามารถใช้เพื่อเตรียมงานนำเสนอหรือโปสเตอร์ของคุณ
  17. ค้นหาประกาศเกี่ยวกับเหตุการณ์การติดตั้งในบริเวณใกล้เคียงในอินเทอร์เน็ตและพยายามเข้าร่วมในฐานะผู้ใช้ก่อน (สังเกตปัญหาทั้งหมดที่เกิดขึ้นและวิธีที่แฮกเกอร์แก้ไข) และเสนอให้ติดตั้งโปรแกรมในครั้งต่อไป
  18. ทำงานให้เสร็จตรวจสอบงานของคุณด้วยการทดสอบอัตโนมัติและมีส่วนร่วมในโครงการ เสร็จแล้ว! เพื่อความแน่ใจลองพบกับโปรแกรมเมอร์บางคนในโครงการด้วยตนเองและยกแก้วเบียร์ด้วยกันในผลลัพธ์
  19. เพื่อความเข้าใจที่ดีขึ้นโปรดดูตัวอย่างจริงของประวัติการพัฒนาของโครงการซอฟต์แวร์แบบเปิด (ดูด้านบน) เส้นโค้งที่เพิ่มขึ้นแต่ละเส้นแสดงถึงการมีส่วนร่วม (บรรทัดของโค้ด) จากผู้พัฒนารายเดียว นักพัฒนามีแนวโน้มที่จะมีความกระตือรือร้นน้อยลงเมื่ออายุมากขึ้น แต่โครงการมักจะเร็วขึ้นแม้จะมีคนใหม่ ๆ เข้าร่วมก็ตาม ดังนั้นหากคุณมาพร้อมกับทักษะที่มีประโยชน์ในกระเป๋าของคุณก็ไม่มีเหตุผลใดที่ทีมงานไม่ควรเชิญคุณ

เคล็ดลับ

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

คำเตือน

  • สถานะแฮ็กเกอร์ของคุณภายในโครงการชุมชนสะท้อนให้เห็นถึงปัจจุบันของคุณมากกว่าในอดีตหากคุณต้องการคำแนะนำหรือสิ่งที่คล้ายกันจากหัวหน้าโครงการโปรดถามว่าคุณยังคงมีส่วนร่วมอยู่หรือไม่
  • อย่าเข้าสู่การเพิ่มประสิทธิภาพโค้ดขนาดเล็กความคิดเห็นเพิ่มเติมการปรับปรุงรูปแบบการเขียนโค้ดและสิ่งอื่น ๆ ที่คล้ายกัน "ขนาดเล็ก" สิ่งนี้สามารถพบกับการวิพากษ์วิจารณ์มากกว่าการมีส่วนร่วมอย่างจริงจัง แต่คุณสามารถรวมการเปลี่ยนแปลงเหล่านี้ไว้ในแพตช์ "การล้างข้อมูล" เดียว
  • หากคุณวางแผนที่จะพบกับแฮ็กเกอร์ซอฟต์แวร์แบบเปิดด้วยตนเองให้ทิ้งแล็ปท็อป Windows ไว้ที่บ้าน Mac OS ได้รับการยอมรับมากกว่าเล็กน้อย แต่ก็ไม่เป็นที่ต้อนรับเช่นกัน หากคุณนำแล็ปท็อปมาด้วยต้องใช้ Linux หรือระบบปฏิบัติการอื่นที่ถือว่าเป็น "ซอฟต์แวร์เปิด"
  • หากไคลเอนต์อีเมลของคุณรองรับข้อความ HTML คุณควรปิดใช้งานคุณสมบัตินี้ อย่าแนบเอกสารที่มีเพียงซอฟต์แวร์เชิงพาณิชย์ (เช่น Microsoft Word) เท่านั้นที่สามารถเปิดได้อย่างถูกต้อง แฮกเกอร์ถือว่าเป็นการล่วงละเมิด
  • อย่าเป็นอาสาสมัครในโครงการของ บริษัท ที่รหัสไม่ครอบคลุมโดยใบอนุญาตโอเพนซอร์สที่ได้รับอนุมัติ ในกรณีเช่นนี้ส่วนที่สำคัญจริงๆของโครงการมักจะยังคงอยู่เบื้องหลังการปิดประตูจากเจ้าของทำให้คุณไม่สามารถเรียนรู้สิ่งที่เป็นประโยชน์ได้
  • หลีกเลี่ยงคำถามใด ๆ เกี่ยวกับพื้นฐานของการเขียนโปรแกรมหรือเครื่องมือการเขียนโปรแกรม เวลาของโปรแกรมเมอร์ซอฟต์แวร์แบบเปิดนั้นมีค่า ให้พูดคุยเกี่ยวกับพื้นฐานของการเขียนโปรแกรมในกลุ่มโปรแกรมเมอร์มือสมัครเล่นหรือระดับเริ่มต้นแทน
  • โครงการที่จัดตั้งขึ้นและประสบความสำเร็จอย่างสูงอาจมีนโยบายที่เป็นลายลักษณ์อักษรหรือไม่ได้เขียนไว้เกี่ยวกับการไม่จ่ายเงินคืนงานของคุณ (ไม่มีเงินไม่มีความสามารถในการโปรโมตตัวเองไม่มีสถานะที่สูงขึ้นโดยไม่คำนึงถึงการมีส่วนร่วมของคุณ ฯลฯ - ดู: Do_not_expect_reward Wikipedia) หากคุณไม่เห็นด้วยกับสิ่งนี้ให้ยึดติดกับโครงการทั่วไปที่ไม่สามารถมีทัศนคติเช่นนั้นได้
  • อย่าเริ่มโครงการของคุณเองเว้นแต่คุณจะต้องการใช้จ่ายอย่างสันโดษอยู่เสมอ ด้วยเหตุผลเดียวกันจึงเป็นการดีกว่าที่จะไม่พยายามรื้อฟื้นโครงการที่ถูกทิ้งร้างไปแล้วซึ่งทีมก่อนหน้านี้ได้สูญเสียไปแล้ว
  • ในกรณีของการประชุมอย่างไม่เป็นทางการเกี่ยวกับโครงการที่คุณไม่เคยให้รหัสใด ๆ เลยคุณจะรู้สึกไม่พอใจที่ถูกเพิกเฉยโดยสิ้นเชิง ไม่ต้องกังวลแฮกเกอร์บางคนสามารถเป็นเพื่อนที่ดีได้ในภายหลังหลังจากที่คุณได้รับความเคารพจากพวกเขาด้วยรหัสของคุณเอง
  • โครงการซอฟต์แวร์แบบเปิดขนาดใหญ่โดยเฉพาะอย่างยิ่งในโดเมน GNU จะไม่ถือว่างานของคุณเป็นธุรกิจส่วนตัวของคุณ หลังจากที่คุณได้งานใน บริษัท ที่เกี่ยวข้องกับซอฟต์แวร์พวกเขาขอให้นายจ้างของคุณลงนามในข้อตกลงบางอย่าง [1] ซึ่ง บริษัท จะลงนามหรือไม่ก็ตาม ซึ่งอาจบังคับให้คุณเลือกโครงการที่มีข้อกำหนดที่เข้มงวดน้อยกว่า

ความจำเป็น

  • ลินุกซ์ โครงการซอฟต์แวร์แบบเปิดจำนวนมากมีความซับซ้อนกว่าในการสร้างบน Windows หรือสร้างไม่ถูกต้องเลย โดยเฉพาะอย่างยิ่งสำหรับโครงการขั้นสูงที่ทุ่มเทให้กับการเขียนโปรแกรมโทรศัพท์มือถือคีย์ USB และอุปกรณ์อื่น ๆ
  • คอมพิวเตอร์ที่มีการเชื่อมต่ออินเทอร์เน็ตที่ค่อนข้างดี หากคุณต้องการให้ดูอัลบูตกับ Windows ฮาร์ดไดรฟ์หรือพาร์ติชันที่สองสำหรับ Linux อาจเป็นทางออกที่ดี
  • มีความรู้พื้นฐานเกี่ยวกับภาษาโปรแกรมอย่างน้อยหนึ่งภาษาและมีความตั้งใจที่จะเรียนรู้เพิ่มเติม ภาษาที่ได้รับความนิยมมากที่สุดในปัจจุบันดูเหมือนจะเป็นภาษา C และ Java
  • เวลาที่มีนัยสำคัญอย่างน้อยห้าชั่วโมงต่อสัปดาห์ (โปรแกรมเมอร์ฮาร์ดคอร์ทั่วไปมีเวลา 14 ชั่วโมง)
  • แม้ว่าการศึกษาด้านไอทีอย่างเป็นทางการจะทำให้วิธีของคุณง่ายขึ้นมาก แต่ก็เป็นเช่นนั้น ไม่ เป็นข้อกำหนดบังคับและจะไม่มีชุมชนแฮ็กเกอร์ตัวจริงถามคุณเกี่ยวกับเรื่องนี้ โปรแกรมเมอร์ / แฮ็กเกอร์ตัดสินกันด้วยการเขียนโปรแกรมของใครบางคนไม่ใช่เกณฑ์ปลอมเช่นเกรดอายุเชื้อชาติหรือตำแหน่ง โปรดทราบว่าอย่างน้อย 60% ของแฮกเกอร์โอเพนซอร์สที่ประเมินแพตช์ของคุณมีวุฒิการศึกษาระดับวิทยาลัยที่ "ถูกต้อง" และจะไม่อนุญาตให้คุณมีส่วนร่วมในเรื่องไร้สาระในโครงการ
  • ในระหว่างขั้นตอนสุดท้าย (การประชุมและ 'ปาร์ตี้ติดตั้ง') คุณจะได้รับประโยชน์จากแล็ปท็อปของคุณเอง แต่มันไม่โอเคที่จะทำงานที่บ้านดังนั้นให้ซื้อเครื่องที่สองเท่านั้นถ้าคุณสามารถซื้อเครื่องที่สองได้
  • เส้นทางที่อธิบายว่าจะกลายเป็นซอฟต์แวร์โอเพนซอร์ส "แฮ็กเกอร์" ใช้เวลาอย่างน้อยสองปีจึงจะเสร็จสมบูรณ์