不會git的程式設計師,會不會被鄙視?

閏土小叔發表於2018-10-19

昨天一朋友在微信上問了我一個問題,我覺得很有趣,於是將本次聊天的內容分享給大家。

我朋友說,如果一個程式設計師不會使用 git,會不會被別人覺得低一個檔次?

事先宣告啊,這與公司技術棧無關,不要說有些公司只用 git 管理。對於公司而言,使用什麼版本控制有一定的考慮或者歷史原因。但如果你遇到一個不會 git 的新同事,會不會感覺 ta 以前的公司有點low ?

我當時就回復了他四個大字:同行相輕

「 會git有那麼重要嗎 」

不得不說,近年來,使用git的公司越來越多,甚至已經成為了主流。當你去一家使用git的公司時,掌握它就成為了硬性指標。如果你在公司遇到一個不會git的新同事,也不要大驚小怪,可能人家之前呆的單位用svn。

個人感覺討論這些有點 low,說白了一個工具而已,程式設計能力才是最重要的吧!

git 重不重要,挺重要,但不是企業主要的考核標準。企業用到,不會就學。企業用不到,我幹嘛要學,學不學都無所謂。

說真的,我之前也和這哥們有同樣的想法,直到有一天下班前在工作群裡看到通知:“某同學 recursive sed 程式碼出錯,無視 conflict 強行 push 導致叢集癱瘓,現已關閉所有人該 repo 許可權,工作未提交的同學晚上加下班等通知,恢復時間未知”。

因為自己的技術不精且不認真學習的,而給其它協作者帶來困擾,這種人才是被鄙視的物件。

所以,我認為,會不會其實沒什麼大問題,只要虛心承認自己的實際水平就好,比較煩這幾種情況:

  1. 履歷上說自己精通 git,實際上連 merge 和 rebase 的區別都不清楚。

  2. 工作中在用 git,但只滿足於 pull push commit merge 的基本用法,不求甚解。

  3. 無視團隊 git 操作規定,肆意使用危險操作指令。

所以,成熟公司都有 CodeReview 的制度,不會用 git 也不可能把主分支搞壞的,讓他們自己分支上玩玩就會了。

「 會git了不起是嗎 」

Sorry,會git真的了不起。學會 git 確實好處多多,比如絕大多數的開源社群都是使用 git 作為版本控制工具,學會 git 有助於參與到開源社群中,算是提升自我技術能力的渠道之一。

普通程式設計師學會常用的 clone commit pull push merge checkout branch 就可以了。sourcetree 基本滿足日常,stash 非常適合臨時存一下,cherry-pick rebase 也能提高工作效率。

其實嚴格說來,Git 既可以指 Git 命令列,也可以指 Git Repository 的格式,或者 Git 所推崇的基於分支、合併、變基、Git Flow 等的專案管理方法(操作 Git Repository,使用 Git 命令列並不是必須的,完全可以自己編寫程式實現)。

有些人說會 Git,是會生成一個 Repo 然後推來拉去。

有些人說會 Git,是會一些命令的用法。

有些人說會 Git,是會把 Branching Merging 等技巧運用到專案管理當中去。

這些「會 Git 」是完全不同的。

所以我如果鄙視一個人,一定不是他單純技術低。

「 你真的會git嗎 」

如果所謂的 [ 會 git ] 等同於 [ 網上隨便一查十幾分鍾就能學會的 clone add commit pull push 命令的 ] 的話:

這我覺得沒什麼好鄙視的,很簡單的東西,就像你不能因為一個人只使用 Terminal 而不使用 iTerm2 你就鄙視他一樣,也許你在 iTerm2 上還沒別人用 Terminal 用的6。(就像你不能因為一個人只使用 eclipse 而不使用 idea 你就鄙視他一樣,也許你在 idea 上還沒別人用 eclipse 用的6。)

如果所謂的 [ 會 git ] 等同於 [ 基本掌握 git 的所有用法裡面的大部分用法 ] 的話:

我覺得所有 git 使用者裡面只有很少一部分掌握了 git 的大部分用法,平時我們工作主要就是 clone add commit pull push,再多一些什麼 checkout,log,branch 等等這些較低頻次的用法,但這些功能也只不過佔了 git 所有功能的一小部分而已。

這算不算“不會 git ”呢。如果鄙視這種“不會 git ”的人的話,我覺得 前端群 裡面 90%以上的人都怕是要被你鄙視了。

現在很多人有一種很不好的心態,不專心搞技術,各種所謂的高大上的東西都簡單學一下,然後鄙視那些不會這些東西的。比如一些技術群裡經常能看到一些用一個東西就優越感爆棚的話語,“這個網站封的好,我有 ss 隨便封”(ss 鄙視,挺搞笑的是吧),“這個問題你不會谷歌嗎,都 2018 年了,你說你不會上谷歌,Are u(注意:這裡一定要用 u 才能鄙視用 you 的) kidding me ?”(谷歌鄙視,用一個搜尋引擎也值得鄙視?)

還有比如我現在這篇文章沒有用 markdown 語法,可能也要被鄙視了,然後我前面的 Markdown 的 M 沒有大寫,也要被鄙視了。

我說說我自己關於鄙視的看法,如果你要真的鄙視別人,你至少得跟別人拉開幾個檔次吧,比如是你在 ECMAScript的造詣已經達到登峰造極能與 javascript之父談笑風生的地步,OK 你可以鄙視那些連原型鏈都不知道是什麼東西的人,但是你如果只不過剛學 javascript兩三年,就去鄙視那些剛入門的連原型鏈都不知道是什麼東西的菜鳥,那確實挺低端的了。

況且一個真正熱愛技術的人,真的沒有閒心和時間去鄙視別人不會這個不會那個。

「 鄙視鏈毫無意義,該停止了 」

我覺得鄙視 xxx 的態度,這類可以理解;鄙視 xxx 目前的技術掌握情況。。真正的大神不會如此吧。。畢竟技術是要有經驗積累,我之前老大從初中就開始玩兒程式設計,現在學任何新技術上手都賊快,大多數是因為他經歷的多,掌握的技術棧雄厚,已經觸類旁通,很多都可以類比到傳統技術棧做展開。

打個比方。

開百萬豪車鄙視零頭不到的幾萬車的買菜車,這只是一種無禮的行為。

買菜車通勤不比豪車差,碰上堵車,豪車也飛不過去,嚴重事故豪車也一樣死翹翹。

但會開動車和會開車完全是回事,亂開遠光燈,無腦加塞等把他人和自己的安全當兒戲的行為可不是會開車人的表現。

svn 和 git 就好比買菜車和豪車,基本的原始碼版本控制功能都能滿足,只是 git 多了些酷炫的功能而已。

但會 git push 命令並不表示會 git,你難道就忘記前幾天瘋傳的因 git push -f 而發生的慘案了嗎?

因為自己的技術不精且不認真學習的,而給其它協作者帶來困擾,這種人才是被鄙視的物件。

會使用 git 的表現和會 linux 一樣。你從網上覆製出解決你問題的命令時,你至少要知道這些命令的意思,執行它會引發什麼後果,如果別人惡作劇把 git status | sudo rm -rf / 貼在網上,而你不假思索的就執行了,還傻傻的輸了密碼,如果不鄙視你,難不成還說,"小夥子,你真棒"。

回到 git 鄙視。。 會用 git 和 懂 git 是兩個層次,可能會有半數的人不知道 merge 和 rebase 對於節點的操作區別,以及 怎樣才能維持 master 在節點上的潔淨,甚至。。不知道 stash、cherry-pick 這類命令。。

但說白了。。。在同一家公司的技術人員,,有那麼複雜麼,你不會的我會,我不會的他會,互相討教共同進步升職加薪才是正道啊。。

程式設計師鄙視鏈到你我這停止吧!

老前輩送你一句警世良言,希望你能牢牢記住:“與人為善,福雖未至,禍已遠離”。

「 寫在最後 」

說到底,一項技能,是否重要,還是看市場需求,還有就是通用程度。當每個程式設計師都會使用git的時候,你還不會使用,那就有些說不過去了。


閏土小叔,前端圈裡妹子關注最多的技術號

不會git的程式設計師,會不會被鄙視?

相關文章