一名資深程序員的自白!

jopen 10年前發布 | 5K 次閱讀 程序員

        英文原文:Lessons From A Lifetime Of Being A Programmer

        在程序員崗位上工作了三十多年,我學到了也明白了一些事情,希望在這里跟大家一起分享:

  • 看不到實物,客戶不會知道自己想要什么

        一個功能性原型系統的展示,能夠省下無謂低效的贅述。

  • 只要給予足夠的時間,任何安全措施都不安全

        安全是目前系統運維的重大挑戰,我們每時每刻都想方設法來保護系統和數據,但是黑客只要成功一次,我們所有努力就極有可能都付諸東流。

  • 系統被攻破后造成的影響,依賴于事前的準備功夫

        如果能夠預先估計防護系統失效的后果,做足準備措施,例如:把關鍵數據單獨分離存儲,對數據進行加密等,那么或許可以減少日后上頭條的機會。

  • 良好的安全部署不僅僅是開銷,而是戰略資產,如果吝嗇于此,代價將不菲

        在工作中,我總會聽到人們常常抱怨安全運維是多么的復雜和昂貴,因此,總不時看到某些企業為了蠅頭小利,以犧牲安全性來節省開支,最后不得不多吞下N倍的苦果。

  • 復雜問題簡單化,遠比普通問題復雜化困難得多

        在任何創造性藝術領域,如:編程,設計,這都是個常見現象。我會盡力把代碼寫得簡單易懂,不論是為了自己還是別人;如果你想展示自己的聰明才 干,而故意把代碼變得復雜, 那么維護會是件可怕的事情。當然從保護知識產權角度來看,這本無可厚非,但或許會失去開源軟件的活力與創造力。

  • 成功來自對失敗的總結學習,如果一再容忍失誤,失敗與成功注定是兩條平行線

        當人們對自己的錯誤習以為常,那么創造出來的可能是毫無價值的產品。我們需要訂下目標:只允許自己犯同類型的錯,一次。只有嚴控錯誤頻率,才能不斷提高軟件開發水平。

  • 永遠不變的是變化

        僅根據今天的情況來制訂明天的計劃,是不明智的。特別是在編程的世界里,沒有亙古不變的死路子。反對技術進步,閉關自守,不接受或嘗試新事物,注定是不會成功的。

  • 終身學習

        我最喜歡的一個說法是:我們背后都跟著一個大滾筒,只要稍微停下,就有可能給絆得人仰馬翻,因此,我們必須比它跑得更快,不斷前進。當我們自認已掌握一切后,殊不知其實是倒退的開始。

  • 整個軟件業充斥著野驢猜想

        古時候,先知者如果預言失敗,會給石頭活活砸死;而現在,即使預判失敗,專家們都可全身而退,不過去做另外一次預判罷了。因此,野驢猜想盛行,人人都喜歡去預判下論斷,一個浮躁的年代。

  • 條條大路通羅馬,羅馬并不在乎你用什么方式到達

        客戶不會關心你會遇到什么問題,他們只想你的軟件能解決他們的問題。系統宕機,硬件損壞,黑客攻擊,這些對客戶來說毫無趣味可言。如果不幸發生這些囧事,老實交代是較好的做法,特別是被客戶清晰知道你將如何解決這些問題前。

  • 客戶才是最好的質量標準

        不論你有多少的測量指標,進行了多少回代碼回顧,通過了多少個驗收清單,這些其實都是次要的;最關鍵是我們做到客戶所期望的,沒有做多余的無用的。記住,客戶才是最后把關的 QA。

  • 無記錄,不成功

        時至今日,我仍然覺得人們如果不去收集日志,崩潰報告等有用信息,是多么的我伙呆。我一直堅持做的是進行盡可能詳細的記錄,追蹤崩潰情況,閱覽復核報告和備注,和其它任何能迅速定位錯誤的事情。

  • 盡管存在更好的辦法,但是時間不會停下來等你

        在做評估時,最困難的是取得終止和繼續之間的平衡。如果終止,或許會失去找出更好辦法的機會,但如果這辦法需要耗費過長時間,其實沒多大價值。這是個艱難的抉擇,但有時候今天做出的快速選擇,會比明年才得出的好選擇更管用。

  • 尋找有錢的金主

        曾合作過的一名銷售人員的觀點讓我印象深刻:找到一個不懂技術但有很多錢的人,如同找到了一個大金礦。聰明的人會問太多問題,貧窮的人不能給予你回報。我由衷地為自己成為程序員感到高興!

  • 我的工作是對客戶撒謊,你的工作是讓我看起來是一個好人

        還是前述的那名銷售人員,他喜歡口頭允諾客戶完成不可能的任務,并在我們最終完成任務后,捷足先得我們的獎賞與贊譽。盡管挑戰難題會很有成就感,但每次的副作用是無盡的痛苦。我的建議是:盡快尋找另外一個更好的銷售!

        作者簡介:

        作者 Codist(網名),目前從事 iPhone 應用開發,擁有 10 年的 Java 架構師/開發經驗,現已轉投 PHP;擅長 Fortran、Pascal 及各種匯編語言包括C、 C++、 SQL、Objective-C、Java、JavaScript、PHP;同時他還是一名 Web 設計師,專注 HTML/CSS/Ajax 等領域。

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