การมีส่วนร่วมในโอเพ่นซอร์สนั้น 'ดีกว่าปริญญาวิทยาลัยใดๆ'

เผยแพร่แล้ว: 2021-07-13

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

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

ฉันทำผิดพลาดอย่างเดียวกันสองครั้ง และสามครั้ง อาจมากกว่านั้นมากถ้าฉันซื่อสัตย์กับตัวเองและคุณ ในที่สุดฉันก็หยุดทำผิดพลาดแบบเดียวกันนี้ และวิธีการหรือขั้นตอนบางอย่างก็เข้าสู่สมองของฉันอย่างถาวร

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

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

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

ในขณะที่ Josepha Haden Chomphosy กรรมการบริหาร WordPress พูดคุยกับ Matt Mullenweg เกี่ยวกับโครงการ Openverse เมื่อสองสามเดือนก่อน มีช่วงเวลาที่ฉันพบว่าตัวเองพยักหน้าเห็นด้วย

เพราะแน่นอน การมีส่วนร่วมและการมีส่วนร่วมกับโอเพ่นซอร์สอาจเป็นวิธีที่ดีที่สุดในการเรียนรู้เทคโนโลยี ดีกว่าปริญญาใดๆ ในวิทยาลัย

Matt Mullenweg หัวหน้าโครงการ WordPress

ฉันได้เรียนรู้เพิ่มเติมเกี่ยวกับ WordPress, PHP, HTML, CSS และ JavaScript โดยการสนับสนุนซอฟต์แวร์โอเพนซอร์ซมากกว่าที่ฉันเคยเรียนในหลักสูตรวิทยาลัย

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

นี่คือสิ่งที่พ่อแม่ของเราไม่รู้ อินเทอร์เน็ตจะเปลี่ยนทุกอย่าง

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

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

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

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

ภาคเรียนฤดูใบไม้ร่วงหมุนเวียนไปรอบ ๆ และฉันมีแรงจูงใจที่จะก้าวข้ามขอบเขตของการเขียนโปรแกรมตามขั้นตอนใน C. Java ซึ่งเป็นภาษาการเขียนโปรแกรมเชิงวัตถุ (OOP) จะเป็นความท้าทายต่อไปของฉัน

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

จำเป็นต้องพูด ไฟของฉันก็ดับลง แม้ว่าโปรแกรมเครื่องคิดเลขจะเป็นเครื่องมือที่มีประโยชน์ ฉันต้องการแยกส่วนและสร้างสิ่งที่สำคัญ

คุณรู้ไหมว่าอะไรจุดประกายให้เกิดเปลวไฟของฉันในการเขียนโปรแกรม? ตอนแรกเป็นการพัฒนาเว็บทั่วไป แต่ WordPress เป็นสิ่งที่ฉันหลงใหลจริงๆ และฉันไม่ได้มองย้อนกลับไปตั้งแต่เริ่มใช้งานในปี 2548

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

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

และนั่นคือสิ่งที่เกี่ยวกับการเขียนโปรแกรม — การแก้ปัญหา

ในปี 2550 ฉันได้เปิดตัวปลั๊กอิน WordPress ตัวแรกของฉัน มันแสดงรายการหน้าย่อยทั้งหมดของหน้าที่ดูอยู่ในปัจจุบันโดยอัตโนมัติ มีการเขียนปลั๊กอินที่คล้ายกันหลายสิบตัวตั้งแต่นั้นเป็นต้นมา ( ดูเหมือนว่า WordPress จะมีฟังก์ชัน "รายการย่อย" ง่ายๆ ในตอนนี้ )

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

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

หากคุณเป็นผู้อ่านคนหนึ่งของเราที่คิดจะเริ่มต้นเขียนโปรแกรม ก็แค่ลงมือทำ ทำผิดพลาด สร้าง. เรียนรู้.