開放原始碼對個人的意義?

起因是前幾天,在和一位(非資訊相關背景的)朋友聊近況和想法時,講到「開放原始碼貢獻」對有志走軟體業界的職業生涯累積和準備,是一個不錯的努力方向,但是我在向朋友嘗試說明什麼是「開放原始碼」時,發現一時之間講不太清楚,回家後就一直打算打這樣一篇文章,也順便整理一下自己的想法

什麼是開放原始碼?(解釋給非這行的人)

開放原始碼,就是軟體工程師、程式設計師、或軟體開發團隊,把他們寫的程式、軟體公開出來,讓大家在「特定條件下」都可以自由使用、看程式的原始碼,甚至是允許修改原始程式以滿足個人特殊需求

對程式的修改有可能可以被整合回去原作者或發起團隊的專案裡面,換句話說,個人貢獻有機會影響其他眾多使用者

開放原始碼貢獻可以代表什麼?

我沒實際遇過靠過去開源經驗和開源貢獻、取得工作門票的人,不過,開源貢獻,看是什麼專案,在某些時候可以代表:有閱讀和追蹤中大型專案程式碼的能力、程式風格符合該專案要求、能跟其他人溝通協力解決問題…等等,這些都是軟體團隊合作上很注重的

動機

對了,當時之所以會聊到這個話題,是看到「雙主修有實質性差異嗎」這篇文,講到好的軟體開發工作的應徵者幾乎都是「高學歷、知名公司實習經驗、有業界強度的專案作品或開源專案貢獻或競賽經驗」,如果想爭取這樣的職缺,相對之下,雙主修可能不夠具競爭力,也許可以代表「自己比別人認真」,但只是如此的話,未必對爭取好工作或談薪水有幫助,因為應徵者都非常優秀,因此,這篇作者認為「若以好工作為目標,把雙主修的時間和精神改投資到別的事物上,是不是更有意義呢(?)」

反觀自己現況

沒學歷,工作經歷只有「一間小公司當網站後端工程師 7 個月」,如果想說服一定水準的軟體開發職缺的 HR 或面試官,自己的學經歷和經驗、技能水平、團隊合作能力,比其他競爭者優秀,目前想到可行的解決辦法和努力方向是:

  1. 唸台清交資工碩士(這個前兩年在 PTT 發文後就得到的結論之一,但最後還是沒走)
  2. 對知名開源專案做出貢獻
  3. 實作有工業強度的個人專案

想走後兩者,可是範圍太大、不明確,這種問題的答案不是用想的或是一兩個禮拜內能獲得的,實際學習領域、修課、唸書、看看別人在寫什麼、自己也要動手動腦練習,事後回頭看,才看得出某條軌跡吧

自己之前那種為了找工作的想法,有一點速成心態, CS 本科基礎該撿的還是要撿,離職後到目前為止一個月,把 Coursera 的 Functional Programming Principles in Scala 完成,還有上 Algorithm: Design and Analysis Part 1 ,預計八月要把 Scala 後續一門課跟演算法 Part 1 這門課完成,這個月應該也還不會開始找工作

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.