怎麼寫一個拿得出手的項目?

現在大三,剛經歷完一輪春季實習校招。面了AT兩家公司都通過了。

但現在自己審視一下簡歷上寫的項目,其實都是很簡單的東西,只是基礎的編碼,沒什麼值得寫的地方。

我想現在開始寫一些真正有用的、能拿得出手的項目,該怎麼開始呢?


流行的項目都是一點都不高深的,因為一般人只能遇到一般的問題。你解決了大牛的問題,只有那幾個人崇拜你。你解決了一般的問題,全世界都崇拜你了。所以這得看你的僱主到底是為什麼樣的人服務的。

譬如說你去BAT,就算你花一天寫個razor.js這種玩具級別的東西,都肯定直接秒了。

譬如說你去EDG,那這事情就複雜了……你得說,你們不是說那個export(還是extern忘記了) template寫出來的代碼太難維護所以讓ISO斃了這個feature嘛,爛爆了,看我這個。


不為任何人寫軟體,想想自己平時有哪些工具用著不順手,給自己寫一個更好的。從設計到編碼,一個版本又一個版本,或許中間還要經歷一次重構,但一個月下來你就會發現無論是對產品還是技術,你都有了更深刻的理解。

程序員不應該做鍵盤黨。

感覺哪裡不對呢⊙﹏⊙


4.28 更新

發現之前有一點沒說到的。項目按性質分就兩種,要麼是造輪子,要麼不是。而拿得出手的項目基本上都得是造輪子的。但是造輪子這個事,確實比較難,雖然我經驗也不多,還是能體會到。拿 Python 來說,大家都覺得語法優美程序清晰,但是一旦要造輪子,黑魔法/dirty hack 啥的都少不了。之前我在評論里說「怎麼體現技術水平這件事完全取決於本身有多少技術水平」,如果一個人水平到了,那麼經過一段時間的研究+編碼確實能寫出拿得出手的項目,但是如果沒有到,就不要想直接寫出一個多麼牛逼的東西。thefuck 雖然是開腦洞的項目,但也不是隨便一個人就能寫出來的。

一個關注度高 star 多的項目,根據我的觀察,主要有四個特點,一般來說滿足一條就夠了,兩條的話這個項目 star 得上千了。

1. 解決了某個痛點

2. 已經有類似的東西,但是新方案性能比已有方案好,或是易用性更好,或者功能更多

3. 腦洞足夠大

4. 把某個流行的項目 port 到另一種語言

拿最近比較火的幾個項目舉例:

解決了痛點的:bndr/pipreqs · GitHub,直接從代碼生成 requirements.txt

yhat/rodeo · GitHub:相當於是一個 IPython 的擴展版

nvbn/thefuck · GitHub:腦洞型項目代表,最近火到不像樣

jonathanslenders/pyvim · GitHub:Vim 的純 Python 實現

既然樓主大三,能力上肯定沒法和那些有經驗的開發者相比,所以我建議你考慮第三條。用腦洞來彌補經驗的不足!!

最後既然有機會還是來安利一下 ezcf (,,?ω?,,):laike9m/ezcf · GitHub,這個算是個不那麼痛的痛點吧。


Kaggle: The Home of Data Science

金融數據大賽

黃金聯賽

https://openresearch.baidu.com/

不謝。


計算機大二生默默看著你們用好多我不懂的專業術語(霧)


樓主既然都有能力過AT面試,這方面不應該有所迷茫吧


推薦閱讀:

Python黑帽編程 3.1 ARP欺騙
python anaconda 怎麼安裝?
Scala程序能不能像處理數據一樣,優雅地處理Scala代碼?

TAG:Python | 編程 | 實習 | C |