做程序員之后才知道的5件驚奇事

時(shí)間:2022-07-14 01:29:51 計算機軟件 我要投稿
  • 相關(guān)推薦

做程序員之后才知道的5件驚奇事

從我開(kāi)始工作算起,已經(jīng)有20多年了。即便如此,我依然記得當時(shí)對從大學(xué)畢業(yè)并開(kāi)始工作的憧憬。在那之前,除了少數幾份和編程無(wú)關(guān)的暑期工,我的人生基本都是在學(xué)校度過(guò)的。雖然我對工作的大多數期望都實(shí)現了,不過(guò)在步入職場(chǎng)頭幾年中也發(fā)現這一行許多令人驚奇的事,下面是頭五件:

做程序員之后才知道的5件驚奇事

5. 人際交往

編程看起來(lái)是一份相當孤獨的工作你需要完成一個(gè)功能,所以你坐下來(lái)并用代碼將其實(shí)現。不過(guò)事實(shí)上,你和其他的同事會(huì )有相當多的交流。你會(huì )和同事討論設計,你會(huì )在開(kāi)會(huì )時(shí)審查新功能,你會(huì )和測試人員討論你的代碼。

學(xué)會(huì )委婉和圓通,在交流中非常有幫助。如果還不會(huì ),那你得去學(xué)一下。關(guān)于這方面,有一本暢銷(xiāo)書(shū)卡耐基的《人性的弱點(diǎn)》。如果還沒(méi)有讀過(guò)此書(shū),我強烈建議你讀一讀。

4.寫(xiě)作很重要

通過(guò)寫(xiě)作清晰地表達觀(guān)點(diǎn),這很有幫助。從某種程度上來(lái)說(shuō),寫(xiě)代碼和寫(xiě)作非常相似,兩種都需要你把你的想法,通過(guò)某個(gè)結構化的方式清晰并且無(wú)歧義的表達出來(lái)。Email當然是寫(xiě)不完的了,不過(guò)還有你所開(kāi)發(fā)的產(chǎn)品特性所配套的文檔、需要清晰描述Bug的漏洞報告、還有對你修復的Bug做出的解釋。在大學(xué)里寫(xiě)作并不是重點(diǎn),但是如果你寫(xiě)作好的話(huà),這絕對是工作中的一個(gè)籌碼。

3.從來(lái)沒(méi)有已做完的軟件

在我開(kāi)始工作以前,我覺(jué)得當我開(kāi)發(fā)出一個(gè)特性之后,這個(gè)特性就算開(kāi)發(fā)完成了。不過(guò)在現實(shí)中,你會(huì )很經(jīng)常的要回到這個(gè)特性上來(lái)。有時(shí)候是因為這并不完全是客戶(hù)所要求的,也可能是因為你需要為它添加更多功能,又或者是你想要把有些相似的功能合并起來(lái),或者修復一個(gè)Bug。不管怎么樣,對你的代碼繼續進(jìn)行編程是很正常的事。

在大學(xué)里,我們經(jīng)常會(huì )把一個(gè)程序從頭做起,但這在現實(shí)世界中幾乎是沒(méi)有出現過(guò)的。當然,除了你做新功能的時(shí)候,但這些代碼總要融入舊代碼。正因為如此,做新功能時(shí)的很大一部分工作都是在閱讀并理解舊代碼。這是一項我們在學(xué)校里沒(méi)有練習過(guò)的技能。

2.很少有巧妙的算法

在大學(xué)里我得到了一個(gè)計算機科學(xué)與工程的碩士,我學(xué)習了通信系統,里面包括信號處理、錯誤糾正碼、排隊論等等的課程。我們也有像算法和數據結構這樣的計算機科學(xué)核心課程,我很喜歡這些課,我覺(jué)得學(xué)會(huì )這些聰明的算法和數據結構是一件很酷的事,所以我非常期待在工作中見(jiàn)到它們。

我的第一份工作是在蒙特利爾的愛(ài)立信公司,在一個(gè)蜂窩網(wǎng)絡(luò )的移動(dòng)電話(huà)交換中心擔任軟件工程師。那里有大量的代碼來(lái)控制通話(huà)的建立、掛機、漫游等等,但當我看到這些功能都是用最基本的數據結構和算法完成時(shí),我覺(jué)得有點(diǎn)失望。最有趣的是,我發(fā)現用來(lái)跟蹤用戶(hù)漫游狀態(tài)的代碼居然是由一千多個(gè)二叉樹(shù)構成的,用戶(hù)手機號的末三位數決定了用戶(hù)處于哪顆樹(shù)上。當需要找到這個(gè)用戶(hù)時(shí),根據用戶(hù)的手機尾號找到用戶(hù)所在的樹(shù),然后遍歷該樹(shù)以找到該用戶(hù)。除了這個(gè),其他的都是鏈表甚至是更簡(jiǎn)單的數據結構。

1.系統集成后的復雜性

說(shuō)起來(lái)既然沒(méi)有什么精巧的算法,而且整個(gè)應用程序都在使用基本的數據結構,那看來(lái)在這里工作應該沒(méi)有什么挑戰吧?錯!我很快就意識到這套系統高度復雜,倒并不是因為那些復雜的功能,而是因為太多太多簡(jiǎn)單的功能集成合到了一起。

在我工作過(guò)的那么多套系統中,我看到了一些共同點(diǎn):大多數特性都非常簡(jiǎn)單,但正因為就是有很多簡(jiǎn)單的特性,在集成這些特性之時(shí)所遇到的微妙(或不那么微妙)交互,就引發(fā)了Bug。


[做程序員之后才知道的5件驚奇事]相關(guān)文章:

1.做程序員之后才知道的5件驚奇事

【做程序員之后才知道的5件驚奇事】相關(guān)文章:

走近了才知道作文06-07

走進(jìn)了才知道作文06-08

離職時(shí)才知道自身重要07-11

昨晚才知道喜歡的女孩快要結婚了07-09

中聯(lián)重科面試后要等多久才知道結果!07-12

做家教做到怎樣得效果才算成功?07-11

新手做電話(huà)營(yíng)銷(xiāo)要知道的最基本技巧01-26

有多少程序員愿意兼職做開(kāi)發(fā)的?07-10

我想轉行做程序員是否現實(shí)?07-10

想轉行做HR,不知道自己行不行07-10

99久久精品免费看国产一区二区三区|baoyu135国产精品t|40分钟97精品国产最大网站|久久综合丝袜日本网|欧美videosdesexo肥婆