PTT推薦

Re: [討論] 刷題和side project 的重要性

看板Soft_Job標題Re: [討論] 刷題和side project 的重要性作者
mohai
(墨海)
時間推噓12 推:12 噓:0 →:55

看到這個討論串忍不住想分享。

先做個自我介紹,我目前 26 歲,去年研究所畢業目前年資剛滿一年沒多久。熟悉的語言是 PHP ,找的也是跟 PHP 相關的工作,目前任職廣告公司做一些酷酷的廣告科技。

去年面試了五間公司,都是本土企業,我就俗辣然後英文不夠厲害不敢面外商。這些公司我都拿著 Side Project、開源專案參與記錄,以及論文當履歷作為面試的履歷,總的來說這些面試我沒有被考到白板題,也沒有被考到任何考卷,多的是討論我的 Side Project 與解決了什麼開源專案的問題。還有碰過面試官很認真的跟我探討我的論文主題,以及我的解決方法,讓我夢回畢業口試。

面對面試我完全沒有準備解題,就上次解題的經驗還是大學學寫程式寫的那一百多題 zerojudge,在之後的學習歷程上就完全沒有碰過了。如果面試突然考我解題,我可能會爆掉 XD

這裡先分享我的 GitHub :
https://github.com/monkenWu


一直以來我做的都是一些酷酷的小東西,沒有到很多人使用或安裝數很高。但都是我在開發的過程中遇到的問題,我將它們轉換成一個通用程式庫或者是解決方案;或者是碰到一些我認為很性感的新技術,我會想嘗試將這些東西融和進我的開發流程中。比如說,我現在就在替 PHP 的某個老字號開源框架做高效能伺服器的支援。

在製作 Side Project 的過程中通常可以讓你更認識你自己,當你替自己設定好一個偉大的目標時,在前進的過程中才會發現有哪裡不足。大多數時候,我都是在加深自己腦袋裡的知識,而不是每天下班很認真的開發工作。

比起 Side Project 我覺得貢獻大型開源軟體是個更不賴的行動,在貢獻開源軟體的過程中,核心貢獻者幾乎會逐行地對你的程式碼進行 Review 。第一次貢獻時超羞恥,被逐行問問題,都懷疑自己會不會寫程式。但只要你持續關注你的 PR ,通常會修正成大家都開心的樣子。最後被成功合併分支時,那個成就感真的爆棚。

貢獻大型開源框架更能看出自己的程式碼的不足,不論是在可維護性、確效或者是解決問題的思考模式,都能夠在討論的過程中學到很多。那些超會寫程式的人幫你逐行 Code Review ,給你建議還等你改完,真的賺爛。

推薦大家閱讀這篇「如何貢獻開源專案」:
https://opensource.guide/zh-hant/how-to-contribute/


不過像是製作 Side Project 或貢獻開源專案都很需要持續的動力與熱情,若是求職導向我也是認為大量解題你能夠立即看見的回饋是最顯著的。

最後是結論,這篇文章想分享的核心是:如果你像我一樣大量將時間投資在非解題的開源專案或是 Side Project 上,在一些本土企業的面試中也不會被看輕。

希望大家都能夠越來越好。

--

※ PTT 留言評論
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 49.216.25.123 (臺灣)
PTT 網址
※ 編輯: mohai (49.216.25.123 臺灣), 06/03/2023 07:41:00 ※ 編輯: mohai (49.216.25.123 臺灣), 06/03/2023 07:41:20

taitzyhwan06/03 07:50推,我上一份工作面試的時候也都在聊自己做的side pr

taitzyhwan06/03 07:50oject,只要做的是有意義的東西,面試官也很有興趣聊

taitzyhwan06/03 07:50聊是做了什麼有趣的東西,而沒有考刷題

shieldsky06/03 09:21推這篇,難得看到貢獻開源專案的分享,讚!

testPtt06/03 09:41我有些是外掛類的東西 感覺放開源專案不太好

TAKADO06/03 09:43幫忙大型開源專案,其實有點投稿學術期刊的感覺了,大師幫

TAKADO06/03 09:43你review甚至建議怎麼修作品,而你的作品則貢獻了整個社群

TAKADO06/03 09:43

v8686106206/03 11:47推推

Inglenook06/03 12:07推開源

MS00687206/03 12:52好讚

new12285106/03 13:11同五樓問,如果是貢獻外掛類的適合嗎

superpandal06/03 20:40不是整理就是fork 根本rock不起來 不知道為何很多華

superpandal06/03 20:41人都很喜歡搞這種東西 而不是發明

superpandal06/03 20:47當然我都知道這樣很花時間

gino071706/03 20:57南無阿彌陀佛

superpandal06/03 21:08php是不錯但我更喜歡shell 因為可以io流寫法 例如ssh

superpandal06/03 21:10連線就可以echo pwd > XX 讓它執行pwd 然後read -r l

superpandal06/03 21:12< Xxx讀結果出來 當然不是這樣就能 類unix其實是半成

superpandal06/03 21:14品 雖然linux一點點可以這樣做 但絕對都不是file api

superpandal06/03 21:16一切皆文件沒達成 不然call個api就可以io流解決 還順

superpandal06/03 21:17帶可以有異步功能 這樣才rock的起來

superpandal06/03 21:20現在軟體生態都太蠢了

superpandal06/03 21:24學習一堆沉重做的事情又一點點的工具 不然就是正在造

superpandal06/03 21:26這種工具或二次開發 然後用了新工具驚為天人 很無言

eks952706/03 22:11?-?

Hsins06/03 23:11公蝦餃,就 OS 提供 file descriptor 去重定向,什麼 IO 流

Hsins06/03 23:11= =

Hsins06/03 23:16另外 PHP 又不是沒提供你想表示的 I/O Streaming 介面

superpandal06/04 01:09這是看shell 的實現 一般的確只是api 我說的file api

superpandal06/04 01:10只是重定向

superpandal06/04 01:11指的是call api型式用的是這種方式

superpandal06/04 01:13echo 參數1 參數2 > /api/XXX

superpandal06/04 01:15linux下比較像的就是proc 每個語言都有io stream功能

superpandal06/04 01:18但shell下的是<和> 簡潔

superpandal06/04 01:20但procfs只有很少東西可以這麼做

superpandal06/04 01:22像bash tcp client功能就不只是重定向 系統api如果都

superpandal06/04 01:24是這種方式就是爽 深感遺憾

superpandal06/04 01:31類unix當初的想法是一切皆是文件 可是沒實現

superpandal06/04 01:38以這種偽檔案系統如果可以呼叫api 自然異步操作也是

superpandal06/04 01:39不在話下

superpandal06/04 01:43某樓還以為我在講io 只是目前系統確實多數是這樣

superpandal06/04 02:08連api都要以文件方式提供 不然一切皆文件都是空的

superpandal06/04 02:09但最起碼類unix還比win好多了

Firstshadow06/04 03:17Rock! Stay cool

tzouandy281806/04 10:05推文怎麼有個人自己講自己的好像很爽

brucetu06/04 15:42你覺得爽的寫法別人不一定爽 而且沒解決什麼問題

Lhmstu06/04 16:25推文好好笑

superpandal06/04 16:51誰自己講自己的? 我只是認為樓主說自己搞的很酷言過

superpandal06/04 16:58其實 很爽本來就是以簡單易用為考量 現在很多東西平

superpandal06/04 17:01台綁定太深 至於解決什麼當然是解決凡事都要寫一般大

superpandal06/04 17:02型語言的麻煩 可以腳本控制

superpandal06/04 17:04以前有機會這麼做 現在歷史因素沒了 很好笑?

gino071706/04 17:35南無阿彌陀佛

superpandal06/04 19:01其實是可以實現 但不是原生的 底層不這麼做終究還是

superpandal06/04 19:01平台限定

Hsins06/04 23:26聽君一席話,如聽一席話。如果能讓所有作業系統底層都以同

Hsins06/04 23:26一套方法跟哲學實作,您還留在這真的是太屈才了

shomingchang06/05 06:03io流寫法c++不是就有了?各種重載而已。

superpandal06/05 23:27你以為我愛講? 講給你聽的? 偏見真多 我主要都已經

superpandal06/05 23:29說的很清楚 樓主說很酷的標準不高 跟我是否酷到天際

superpandal06/05 23:31是兩回事 但這是我的目標沒錯

superpandal06/05 23:32c++那個與shell的差遠了 只有>和<只是簡單示例

superpandal06/05 23:35先不說偽檔案系統 光重定向就很多花樣 也很靈活 這

superpandal06/05 23:38有是愛用的原因 不會很無聊坑又不會少

superpandal06/05 23:42事實上光重定向也可以寫複雜應用 只是有限制

superpandal06/05 23:47大概眼界開了 看很多東西覺得很無聊