怎么成為一個優秀的程序員,而不是一個優秀的碼農?

lofe 9年前發布 | 10K 次閱讀 程序員

優秀的程序員會告訴你打根基的重要性,會勸你在厚積薄發前要隱忍。優秀的碼農會告訴你學啥底層、啥啥啥一拖就好了,學了python還要啥自行車啊,數據結構排序函數二分搜索這不都內置了嗎?工作中永遠用不到,學算法有啥用啊?成為高手有很多種方法匯編是個屁啊?

啥是優秀程序員?

記者和很多網民說熊貓燒香作者是高手

公司里你出什么bug他都能告訴你原因用什么軟件有問題他都能回答你的你就覺得是高手

有人說徒手做產品的全棧才是高手

各語言的作者都是高手

有不寫代碼,扔出一個restful論文的

還有人說高德納是神,他如果是神,那他那些代碼一定是在考驗我們,嗯

。。。。

上面這些的確都算是高手,我琢磨著前兩年被開掉的moto公司員工里肯定也有做功能機的高手和寫廉價板驅動的高手


你想自己選自己的方向還是被人忽悠方向?

我的想法是自己都嘗試玩玩,然后做自己喜歡的方向。當然,程序員的生態金字塔是上面做工具、基礎設施給下面人用來給普通人編程序,所以你選方向可以參考一下這個金字塔模型


方向定下,然后就是做事了,一大誤區就是 【追求最好的東西】,于是非得弄清楚:

  • php是最好的語言嗎?

  • OpenGL比directx差嗎?

  • 程序員要先學數學嗎?

  • 最好的c語言書是譚浩強寫的嗎?

  • 放屁要先脫褲子嗎?

  • linux發行版那么多該選哪個?

  • 某大牛說IDE不如編輯器

  • 聽說黑客都是用記事本寫程序的

  • C#是升調記號應該讀csharp而java不應念 [加wa(輕聲)]

  • 。。。


如果你是一個*nix世界的玩家的話,你應該知道有一個jargon來上面的毛病,叫yak-shaving,我以前提過幾次yak-shaving,但是很多人看不懂,它的字面意思是Any seemingly pointless activity which is actually necessary to solve a problem which solves a problem which, several levels of recursion later, solves the real problem you're working on.

但一般都引申其意使用它,我這里舉例一下:

你本來要打開軟件寫一個helloworld,軟件提示你升級,你點了升級,提示你xx庫不夠新,然后你更新xx庫,提示你要升級yy驅動,然后你升級yy 驅動,系統告訴你要編譯這個驅動,你必須下載s.f版本的編譯器和庫,你更新編譯器,系統說s.f版本編譯器必須在e.n系統上運行,然后你就升級系統了,幾個小時過去,你發現系統升級導致了幾個軟件損壞,然后你更新那些軟件,去找解決問題的方法,不知不覺到了半夜,你累成了狗,卻發現問題還有一大堆,而helloworld也沒寫成。。。。


這些問題我都遇到過,我的建議是挑一本大牛說的書就是了,看會了其他也會了。當然,如果你不幸不認識大牛(都上知乎了只要會搜索這種事情不可能發生),或者單純好奇——就像我當年那樣的話,那就每種都試試,不過有的答案你自己知道就好,像是編輯器emacs比vim更好,寫程序ide比編輯器更好這種話,你是不應該亂說出來的。

對了,像是不同范式的編程語言、不同的開發環境是應該嘗試體驗一下的,不過這種建議書上都寫了,我這里說顯得有些廢話了。


所以說,不能被無關的東西弄偏了目標,要專注,堅持。

等你學深了一門語言,就算是學另一們其他范式的語言也不會太難,你學會了opengl,dx也就看看就能寫了。


你看看武俠小說里,段譽就是一個傻逼,仗著有時發出有時發不出的脈沖波和繞圈圈就能快跑直線的bug技就加上一門佛學能獨步武林最終迎娶了白富美,出任了 CEO,走向了人生巔峰,喬峰永遠是一招降龍十八掌,更夸張。而慕容復文武雙才,基本精通天下武學,每天讀書4時辰練功4時辰,論用功誰能和他比啊。。。可到了30多歲還是一事無成,pk連段譽這種新手都搞不過,最后被人搶了老婆,就是因為方向不對,而且太不專注了。

所以求多不如求專,深度到了,再花20[[[[[%]]]]]的時間去擴展一下廣度即可。


以上東西你都做好了,要花個2年時間的樣子,對于學生來說,如果你有一個好的學校背景,人生可以就此揚帆起步了

但這不是終點,俗話說人靠衣裝,美靠包裝。包裝是門學問,這里的包裝不是讓你西裝領帶亮皮鞋黑絲套裙白襯衫整一個營銷狗hr的造型,是說專業技能上的包裝。


為什么這是最重要的部分呢?因為別人一般不和你說這么多,尤其是懂得包裝的人,更不會傳你這些不傳之秘啦。。。。。


包裝自己的第一步是提高實力

沒有實力的包裝那是空中樓閣,只能靠每天日常搞外包的忽悠架構大數據云計算過活,明眼人也能看出來,所以純屬作秀,沒有意義。

在某個領域(編譯器、虛擬機、開發架構、前端。。。)成為專家(專家的定義嘛,,我的理解是能在簡歷里寫精通)后,包裝的實力就算具備了。


包裝的第二步是定位

提到美國會有一大堆人跳出來說是人類的希望民主的大救星,提到google就是最純的技術公司不作惡、軟件業的翹楚開發界的標桿、心美人美白蓮花。。。哪怕你列舉google賣假藥、惡意打壓yelp、挾持web標準等等等等這些事,他們也會說百度更差(咦這不5角錢常用的語句嗎怎么被民主進步人士盜取了?。。。),可我根本沒提到百度好嗎。。。

這全是包裝造成的,所以包裝的巨大威力,以此可窺之。


google是搜索引擎,百度難道也說自己是搜索引擎?不,百度說自己是最懂中文的搜索引擎。。。哈哈哈,你別笑,這的確很管用,就像google說自己不作惡是好女孩一樣。


程序員的包裝定位,無非稀缺和獨特這兩點。物以稀為貴,稀缺就是要做到不可替代,這很好理解,比如你知道世界第一高峰是珠穆朗瑪峰,如果沒看過禪師精選集你很難知道第二高峰是喬戈里峰,但文青特別偏好乞力馬扎羅山,不爬不跟你結婚,為啥?獨特性嘛。。。我不跟你比高,我和你比文化底蘊,于是就贏了。


由于你有實力,所以你應該盡量把自己的實力包裝成稀缺屬性,你是專家嘛。。然后你實力多,應該把獨特的實力包裝出來,避免和他人共同曝光,以免被人壓在身下。


我說一個我朋友包裝自己的故事,他進公司接手了一個項目,已經是被隔壁組開發了3,4個月的一個軟件,其實這軟件2個月也能做好的,但是隔壁人忙而且也不上心,不熟悉這個技術,加上又不是自己的老板,所以做事拖沓了那么久才做好。他接手后一刻沒閑,晚上帶回家也做,做到半夜,10天做成,然后整個公司的人都知道他的名字了,他也就立穩腳跟了。

這個包裝的主題是,技術實力強,開發速度快。


包裝的第三步是推廣

推廣就是讓人知道你做得好,強化你的個人品牌,可以用博客、知乎、mailing-list、github等,通過寫文章、參加線下聚會演講、回答問題、幫助他人等方法。這個用好了是門學問,用不好就是裝逼,不展開了。。。

記住不要匿名,匿名你基本啥也得不到


有人明明技術實力強,但是由于沒有包裝好,或被埋沒了才能,或被貼上了各種不應該有的標簽,或被人偏見看待。比如 趙劼 的c#和 vczh 的微軟標簽

有人明明實力一般,但是善于鼓動小白,包裝得好,所以有一批忠實粉絲,這種人我都不太敢說名字了,呵呵。。

所以優秀的程序員應該善用包裝啊

來自:http://my.oschina.net/cnsuning/blog/500790

 本文由用戶 lofe 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!