資深程式設計師認為的成功十大黃金定律

2020-12-05 IT168

  【IT168 編譯】《天下無賊》中由葛優飾演的黎叔曾說過一句話:「21世界什麼最貴?——人才最貴。」人才對成功來說至關重要,而且人才和天才還是不一樣的,天才大部分是要有天賦的,而人才即使你沒有天賦,遵照規律發展,通過後天努力也可以達到。

  如何才能成為一個頂尖的程式設計師呢?Java頂尖程式設計師Lukas Eder和我們分享了偉大程式設計師應該具備的十大特質,他表示這十大特質並不是偉大程式設計師所特有的,任何領域的領導者可以說都有這些特質。當然這只是Lukas Eder的一家之言,如果你有不同觀點或者其它補充歡迎在下方留言評論。

  1.學會提問

  在日常的工作和生活當中,我們常常會遇見以下幾種人:

  完美主義者:當開源工具出現問題時,可能這時程式設計師通過調試代碼找到了問題的真正原因就萬事大吉了。但是完美主義者就不會這樣,他們往往會重新看待這個問題,重現步驟,並找到潛在的解決辦法。

  善談者:這一類人幾乎不會正式的提出問題。因為他們很喜歡和大家交流自己的想法,在交談中他們就會提出自己的疑問,徵詢大家的意見或者自己主動去找到答案。

  代碼搬運工:這類人面對問題往往會是這樣的反應,「這是一段代碼,為什麼它會出問題呢?」少年,請不要放棄治療啊!

  經理:這類人由於職業的特殊性,他們往往尊崇時間就是金錢,出現問題一定要在最短的時間內解決。大多數情況下,這種「急行軍」式解決問題的方式會忽略掉一些細節,導致問題的解決治標不治本。

  抱怨者:這類人也不會提出問題,他們遇到問題就只會抱怨,但是你要知道抱怨其實是無濟於事的。

  工作學習到如今,相信每一個程式設計師都明白解決一個問題比書本知識要收穫多,所以在日常工作中一定要善於發問,遇到問題要積極解決。

  2.學會自我思考

  上一條我們講了如何提問,這一條我們又要講如何避免提問,你可能會想這是不是自相矛盾呀。其實這並不矛盾,上一條我們是要大家善於發現問題,而這一條我們講的是發現問題之後,首先要嘗試自己解決,而不是尋求他人幫助。

  很多人認為遇到問題尋求他人幫助是解決問題最有效的途徑。其實不然,如果你去嘗試自己解決問題,就會發現這種方式好處不要太多:

  首先,你會掌握一種自我學習的方法,請記住,方法永遠比知識更重要。自己解決的問題印象更深刻,自己找到的知識更有價值。剔除掉無用的「噪音」,因為每個人對於問題的理解不同以及個人表述的局限,向別人求助時,往往不會準確的獲得問題的解決方案。

  解決問題不能一味圖快,如果短時間內問題不能得到完美解決,那麼你可以再給自己一段時間去收集更多的信息,這樣往往會得到更好的解決。

  通過解決問題來訓練自己,從而提出更有價值的問題。

  3.欲速則不達

  在這個被「快餐文化」充斥的世界,人類想要所有的事情都加速進行,程序也不例外。在現實生活中,程式設計師為了趕進度,及時上交項目,往往會找捷徑來解決。但是代碼不會說謊,你對代碼不給予足夠的重視,那麼你的應用程式效果不好就幾乎是必然事件。

  班傑明·富蘭克林曾說過:低價格的甜蜜被忘記後,低質量的痛苦會存在很久。所有的事情都是如此,當我們通過某種手段快速獲得勝利,這勝利背後一定會有很嚴重的後遺症。

  4.理想的軟體應該是確定性的

  在理想的世界中,軟體中的一切都是「確定性的」,而我們是功能性的程式設計師,只編寫特定功能,就像String.contains(),無論執行多少次結果總是和預期的相同,這就是確定性。

  我們也可以在自己的程序中編寫類似的 side-effect (副作用)模塊,這會讓我們的編程有更多的選擇空間。確定性編程可以使用任何語言來完成,有些語言可能有很多工具通過複雜的類型系統來規避意外的副作用。但是,在下面的例子中,我們是允許確定性的:

  5.墨菲定律

  上文中我們說到理想的世界是確定性的,而現實世界卻是不確定的,處處充滿驚喜和意外。相信看過《愛情公寓》的人,都對胡一菲說過的墨菲定律印象深刻,簡單來說,墨菲定律就是當一件事情看似是好壞機率相同,但是它往往會朝著壞的方向發展。

  所以,在編寫代碼的時候,我們也要考慮墨菲定律,對於代碼中的小漏洞不要抱有僥倖心理,要儘量完善自己的代碼。

  6.摒棄「教條主義」

  Jochen Mader曾說:「A good developer is like a werewolf: Afraid of silver bullets.」(中文可以理解為一個好的開發者就像狼人一樣,也懼怕銀子彈。)

  我們所學到或者教授的知識都存在潛在的錯誤,尤其是在你風頭正盛的時候。

  程式設計師這個職業其實並不純粹,我們總是喜歡把自己當做數學家,認為最純粹的思想會一直存在,並且一定是正確的。其實,程式設計師的職業建立在數學之上,是滿足現實世界業務需求的務實世界,坦白的說,這並不完美。

  我們來看一些最流行的程式語言:

  ·C

  ·Java

  ·SQL

  這些語言都和數學既有關聯又不完全一樣,例如C語言的段錯誤、Java泛型或者是SQL三值邏輯。程式語言是由實用主義者建立的平臺,所以我們會發現有些功能的背景很淺白,而那些理論背景很酷的往往沒有被採用。

  不僅是程式語言,建立在程式語言之上的庫、設計模式、架構等等都是如此。為上下文設計的工具沒有對錯,它們的本質就只是工具而已。作為程式設計師,有時你不必搞清楚這些工具的來龍去脈,只要用好它們就可以了。

  ·XML

  ·JSON

  ·功能編程

  ·面向對象編程

  ·設計模式

  ·微服務

  ·三層架構

  ·DDD

  ·TDD

  ·In fact:* DD

  7.溫故而知新

  論語中有這麼一句話「溫故而知新」。很多程式設計師停留在「好」或者是邁向「好」的路上,而沒有成為偉大的程式設計師,原因就是因為他們只實踐了這句話的前半段。這些程式設計師總是在做自己熟悉的事情,並通過多次練習逐漸更快的完成任務。而偉大的程式設計師還得看重這句話的後半段,完成這個功能,不僅要完成的快,還要完成的有新意。

  8.專注於一個目標(這裡指的是長遠目標)

  最近,全棧工程師是很火的一個概念,其實在我看來,好的全棧工程師不常有,大多數的全棧工程師是各方面都成績平平,可能他熟悉很多業務邏輯,可以快速引導一個新的軟體,但是這種工作是非常粗糙的,也許對於最小可行的產品階段是好的,但從長遠來看,這會導致更複雜的問題,甚至會使整個開發團隊的成員都無法進行正確分析。

  與其,做一個馬虎的全棧工程師,還不如只專注一個方向,並且紮根下去,精益求精。

  9.廣泛涉獵

  雖然我們在上一條讓大家選擇一個方向來仔細專研,但是偉大的程式設計師要有千手千眼,技術的更新速度大家是有目共睹的,如果故步自封,不去積極接受新的知識,那麼在計算機這個領域,你很快就會被淘汰掉。

  通過新的範式和技術的學習,你可以接觸到和以前完全不同的思維方式,而這種全新的思維方式可能會在未來的某一時刻給你帶來意想不到的效果。

  10.一切都應該儘可能地簡單,但不要太簡單

  愛因斯坦曾說過:「一切都應該儘可能地簡單,但不要太簡單!」 在軟體中,複雜性是最好的殺手,而簡單性則是推動者。簡單性說起來容易,但是真正實現卻需要大量的時間和實踐。

  首先,實現簡單性,遵循前輩流傳下來的規則就是一條捷徑。例如,我們大家都知道String.contains()方法,所以當「abcde」.contains("bcd")出現的時候,我們立馬就知道結果了。當然,軟體的業務邏輯可能不像上面的例子那麼簡單,但是通過多次練習,也是可以有規律可循的。

相關焦點

  • 資深程式設計師大佬告訴你,如何成為一個C++高級程式設計師
    GUI想要學習交流C/C++,可以私信小編 發C++ 獲取資源和一個程式設計師交流圈。3. 數據結構和算法很多人都忽視了數據結構和算法方面的知識,尤其是一些程式語言的庫做得非常好,幾乎不需要自己去實現一些數據結構和算法,導致現在很多程式設計師不 重視甚至忽略這方面的知識。但是,當我們想讓我們的程序跑的更快、內存佔用更少的時候,這些知識就非常非常重要了。
  • 世界著名的3個「黃金定律」
    這3個定律,為你增加獲勝的籌碼!奧卡姆剃刀定律奧卡姆剃刀定律告訴我們,就像拿起剃刀一樣,把多餘的部分剃掉,讓複雜的事情簡單化。化繁為簡,才是走向成功的大智慧!荷花定律有一片荷花池,第一天開放一小部分,第二天,荷花開放的數量會是以開放的兩倍。以此類推,到了第30天,就開滿了整個池塘。
  • 程式設計師「不惑」的 30 歲到了,就該給年輕人讓位嗎?
    別擔心,小探今天就請了一位前谷歌資深工程師 Yan 來跟大家討論討論,工作了1年、5年、10年的程式設計師們,該如何規劃職場和提升自己。Yan 曾在谷歌連續三年獲得「Top performer」的稱號,也曾擔任技術面試官。最好的提升在工作中IBM 想靜靜裁掉 40 歲以上的員工,顯然沒法靜靜。。
  • 中國程式設計師 VS 美國程式設計師,差距就在這五點
    什麼技術火就學什麼,然後進入一個大公司,做幾個成功的項目,積累工作經驗,幾年以後自己當個小管理,拿著十幾萬,或幾十萬的工資,再無追求的過著小日子就好。甚至到了30歲,如果沒能進入管理層,大多數人都會考慮轉行,或僅靠自身的知識累積開始創業。美國程式設計師大多數都是因為熱愛編程行業而從事這份工作的,他們會專注某一個領域幾十年。
  • 被嫌棄的35歲程式設計師
    但對程式設計師這個群體來說,35 歲的危機感似乎格外重一些。「因為程式設計師的工資普遍高於其他行業,一旦這個行業不要你了,(薪資)可能會面臨斷崖式下跌,所以才會有危機」,資深程式設計師趙可(化名)說。35 歲是一道界限分明的職場分水嶺,最尷尬莫過於「高不成、低不就」。
  • 7條高效能的「黃金定律」:真正厲害的人,都贏在了思維上
    讓人成功的,從不是「work hard」,而是「work smart」。掌握高效的方法,遠勝過低效的苦熬。真正厲害的人,其實都贏在了思維上。我接觸過許多行業精英,這些人無一例外都掌握了一些高效能的黃金定律。
  • 中國最成功的十大「海龜」
    環球在線消息:隨著中國經濟的飛速發展,越來越多留學海外的中國學子選擇回國創業,他們中最成功當數以下十大「海龜」。NO.1 李彥宏 百度公司總裁在美國的8年間,李彥宏先生先後擔任了道·瓊斯公司高級顧問,《華爾街日報》網絡版實時金融信息系統設計者,以及在國際知名網際網路企業-INFOSEEK資深工程師,是新一代網際網路技術領域的權威專家。他為道·瓊斯公司設計的實時金融系統,迄今仍被廣泛地應用於華爾街各大公司的網站,其中包括《華爾街日報》的網絡版。
  • 本周黃金名家熱力榜十大分析師排行(2020年03月27日)
    金融服務公司AxiCorp的首席市場策略師Stephen Innes表示:「我認為除了投資者可能在周末前了結獲利以外,目前沒有任何真正理由賣出黃金。對於黃金來說,除了必須賤賣的急迫需求以外,一切仍然都看起來很有利。」  美國眾議院領袖決心在周五或最晚在周六通過2.2萬億美元的新冠病毒救助法案,希望在死亡人數不斷增加和經濟形勢惡化之際提供最快的幫助。
  • 成功三大定律:荷花定律、竹子定律、金蟬定律
    關於成功,有很多定律,比較有名的就是荷花定律、竹子定律和金蟬定律。這三個定律各有不同,但是卻有共同的意義:世界上所有的成功,都不是一蹴而就,耐住寂寞,忍住煎熬,才能厚積薄發。01荷花定律荷花,第一天開放的只是一小部分,第二天,它們會以前一天的兩倍速度開放。到了第30天,就開滿了整個池塘。
  • 一個人越簡單其實越聰明,明白這7句黃金定律,激勵自己變得強大
    一個人越簡單其實越聰明,明白這7句黃金定律,激勵自己變得強大!現在生活變得越來越好,人們的生活方式發生了改變,美好的生活雖然給我們帶來了很多的便捷,但同時使很多人變得迷茫。今天小編給大家說一個人越簡單其實越聰明,人生的道路上即使有些波折,但明白這7句黃金定律,就會激勵自己變得強大。第一,知道自己的初心是什麼。小編認為,每個人都是不同的個體,雖然想要的都是成功,但是想要的東西都是不一樣的。
  • 獲得成功的四大定律,一個效應,一個法則,你知道麼?
    一.洛克定律1.有目標才會成功人要有一個奮鬥的目標,這樣活起來才有精神、有奔頭,那些整天無所事事,無聊至極的人就是因為沒有目標。古羅馬的小塞涅卡說:有些人活著沒有任何目標,他們在世間行走就像河中的一棵小草,他們不是行走,而是隨波逐流。有目標未必能成功,但沒有目標的人一定不能成功。
  • 現代人必須知道的十大科學定律
    十大科學定律大爆炸理論>大爆炸理論認為宇宙開始於140億年前的一次大膨脹。克卜勒的行星運動三大定律形成於17世紀早期,描述了行星如何圍繞太陽運行。第一定律有時又稱為軌道定律,規定行星以橢圓方式繞太陽運行。第二條定律面積定律,指出一條連接行星和太陽的線在相同的時間內覆蓋了相同的面積。第三個周期定律,行星的運轉周期和它與太陽的距離有一個確定的關係。
  • 優化學習的八五黃金定律(雙語新聞)
    下面是優化學習的八五黃金定律(雙語新聞)的內容。  優化學習的八五黃金定律  Learning Is Optimized When We Fail 15% of the Time  要學會新東西,非得失敗幾回不可。然而,失敗多少回才算合適?亞利桑那大學牽頭組織研究,最近給出了一個精確答案。
  • 成功三大定律:荷花定律、竹子定律、金蟬定律,學習後你必定成功
    世界上所有的成功,都不是一蹴而就,成功還是有定律的!成功有三大定律,清楚這三大著名定律,你必定成功!為什麼這麼說呢?每個人都渴想成功!認真學習以下三大定律,你就離成功不遠了!它們就是荷花定律、竹子定律和金蟬定律。
  • 三大成功定律:荷花定律、竹子定律、金蟬定律
    近年來成功學的書籍,一直都擺在書店最顯眼的位置,而「成功」也被作為一種基因般寫進了每個人的骨子裡,話說回來,又有誰不想成功呢?成功意味著優渥的生活,高級的社交圈,事業上的平步青雲成為一放大鱷,更甚還能被載入史冊……以下便是奮鬥者必須知道的三大成功定律,且聽子曰一一道來:1、荷花定律荷花定律描繪的首先是這麼一種現象,即:一個池子裡的荷花,它每天開放的速度都會是前一天的兩倍
  • 通信十大定律
    戈登·摩爾 摩爾定律的核心內容主要有三個: 摩爾定律被稱為「半導體行業的傳奇定律」,它不僅揭示了信息技術進步的速度,更在接下來的半個世紀中 喬治·吉爾德(數字時代三大思想家之一)提出吉爾德定律(又稱勝利者浪費定律):最為成功的商業運作模式是價格最低的資源將會被儘可能的消耗,以此來保存最昂貴的資源。
  • 從世界到中國江北 | 黃金五大定律立序時代正核
    縱觀世界城市發展脈絡   那些立足城市核芯之地,獨佔得天獨厚資源的土地   總是下一個時代追逐的大熱之地   在南京的當下,無疑是澎湃發展的江北   而地處江北核芯地的江北正核   帷幄一城繁華資源   正逐漸成為代言江北的新名片   正榮·潤棠府擇址江北正核   以世界城市發展之黃金五大定律
  • 程式設計師用AI算法生成了3000個新的寶可夢
    最近,國外一名資深程式設計師就在GitHub以及社交平臺上公布了自己最新的研究成果——「寶可夢AI自動生成器」。這位名叫馬修的程式設計師試圖利用OpenAI著名的GPT-2(Generative Pretrained Transformer )來讓程序自主設計寶可夢。
  • 成功的三大定律:荷花定律、金蟬定律、竹子定律
    關於成功,有很多定律,比較有名的就是荷花定律、竹子定律和金蟬定律。三者有著共同的意義:成功,需要厚積薄發,要忍受煎熬,要耐得住寂寞,堅持,堅持,再堅持,直到最後成功的那一刻。這就是著名的荷花定律。這其中藏著深刻的道理就是:成功需要厚積薄發,需要積累沉澱。而透過這個定律去聯想人生,你會發現,很多人的一生就像池塘裡的荷花,一開始用力地開,玩命地開。但漸漸的,人們開始感到枯燥甚至是厭煩,你可能在第9天、第19天甚至第29天的時候放棄了堅持。
  • 國外程式設計師推薦:每個程式設計師都應讀的書
    其他書或許會讓你成為一位更出色的程式設計師,但此書將一定會讓你成為一名程式設計師。同時,你將會學到其他東西,函數式編程(第三章)、惰性計算、元編程、虛擬機、解釋器和編譯器。一些人認為此書不適合新手。 個人認為,雖然我並不完全認同要有一些編程經驗才能讀此書,但我還是一定推薦給初學者。 畢竟這本書是寫給著名的6.001,是麻省理工學院的入門編程課程。