成為程序員的五大驚喜

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

成為程序員的五大驚喜

        英文原文:Top 5 Surprises When Starting Out as a Software Developer

        盡管已經過去 20 多年了,我是如何畢業開始工作的場景依然歷歷在目。而在這之前,除了幾個與編程無關的暑期工作,我幾乎把我所有的時間都耗在了學校里。對于我將來的軟件開 發員的工作我的設想很多,后來也一一實現了,但在工作的頭兩年,這個身份還是給我來很大的驚喜,下面列舉其中最棒的 5 個:

        TOP5 互動

        編程似乎是種相當寂寞的工作——為了實現一定的功能,你不得不坐在電腦前寫啊寫啊寫代碼。事實是,編程其實需要和很多人進行互動協作。你得和你的同事討論你的設計,你得在會議上解釋程序的新功能,而且還要和測試人員聊聊代碼。

        互動有助于培養得體的社交方式。并且這方面能力是完全可以通過后天學習學會的。關于這方面我推薦 Dale Carnegie 的著作《如何贏得朋友和影響別人》,非常值得一讀。

        TOP4 寫作

        寫作能力的強弱直接影響別人能否輕易讀懂我們要表達的觀點。而在一定程度上,編程和寫作是非常相似的,它們都需要用一種結構化的方式清楚明確地 表達自己的想法。并且寫作這個技能應用非常廣泛,寫電子郵件需要,寫軟件的功能文檔需要,在錯誤報告中描述 bug 也需要,甚至是清楚知道問題之后,詳細解釋如何修復 bug 之時還是需要。如果我們能在大學時好好鍛煉這個能力,那么絕對讓你今后的工作受益匪淺。

        TOP3 永遠搞不定的軟件

        我原來以為寫軟件只需要把設定的功能搗鼓出來就算完工了。而在現實中,事實并非如此,我們需要時不時地回過頭去檢閱軟件,看看這個功能是不是客 戶真正想要的,是否需要增加更多的功能(或者類似的功能),看看有沒有 bug,要不要修復等等等等,我們得不時地查閱之前寫好的代碼。

        有時候,我真心不明白新的功能為什么總是要插入到已有的代碼中去。在大學的時候,我們是一點一點寫代碼,寫好就完事。但是現實中卻不是這樣的。 我們可以創建新的功能,但是得在已經寫好的代碼中植入進去,要適應原先代碼的運行環境。因此,要想創建一個新的功能首先必須理解現有的代碼,以便新功能適 合這個軟件,這是在學校里你永遠也學不到的。

        TOP2 聰明的算法

        在大學的時候我拿到了計算機科學與工程專業的碩士學位。我學的是通信系統,內容包括信號處理、代碼糾錯、排隊論等等。我們也學習計算機科學的核心課程,比如算法和數據結構等,這一切都讓我著迷。并且我特別期待將來能在工作中使用這些知識。

        我的第一份工作是在蒙特利爾(加拿大東南部港市)的愛立信公司,職位是軟件開發人員,主要處理移動交換中心的蜂窩網絡呼叫工作。它是通過代碼來 控制呼叫建立、越區切換、漫游等等,特別讓我失望和震驚的是,這么大個控制中心所用的竟然是最最基本的數據結構和算法。最滑稽的事情來了,這些代碼竟然還 能追蹤當前系統中的漫游用戶。系統由上千個二叉樹構成,其中用戶號碼的最后三位數字來確定某一特定用戶在樹的哪個位置。所以,你要是想找到某個給定的用 戶,在知道最后三位數字的基礎上,你還得傻乎乎地在整個樹上查找。除此以外,這幾乎就是唯一的鏈接列表,或者是更為簡單的鏈接列表。

        TOP1 整合之后的復雜性

        因為考慮到在實際應用中并沒有使用到精巧的算法,整個應用程序只使用了非常基本的數據結構,想要運作這個系統似乎是沒啥挑戰性的。但是很快我發 現自己錯的很離譜,這個所謂“簡單”的系統,因為很多很多簡單功能的整合,竟然變得特別特別復雜!哦,天哪,這簡直要了我的老命了。雖然絕大多數的功能雖 然都死命的簡單,但是因為數量實在太多,使得其中一個出了 bug,其他的或多或少都會有微妙的影響,簡直就是牽一發而動全身啊。這種類型的系統復雜性來源于許多簡單組成部件的整合,而不是因為任何復雜的組成部 件。

        譯文鏈接:http://news.html5tricks.com/5-surprise-to-be-programmer.html

        翻譯作者:IT 新聞 – 蔣麗麗

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