來源:http://www.cnblogs.com/hnrainll/

那些非程序員認爲軟件開發是非常困難的,確實如此,但這種困難不像那些外行人理解的那樣。最近在 Quora 上的一次討論,程序員分享了他們認爲工作中的最大困難,在這裏爲大家精選出其中的 9 個。

一、

怎樣纔是最佳解決方案

任務描述:給你一系列的需求,你被要求設計和構造技術上的解決方案。這包括了設計數據結構,算法,邏輯上的封裝等等,還要考慮到用戶安全方面的因素。

挑戰:確保你的設計可以滿足客戶需求,讓客戶認爲合理。當然還要在項目時間允許範圍內。

二、

寫測試

任務描述:寫單元測試,確保代碼中每一個小部分的功能正確。這樣做可以讓你儘早發現 bug,讓你後續的迴歸測試變得更容易。一些開發的方法論甚至鼓勵開發者在編寫程序之前就可以寫好測試程序。

挑戰:爲每一部分進行測試是一件很枯燥乏味的事情,讓人感覺是在做多餘的事情。

三、

編寫文檔

任務描述:撰寫文檔,說明你代碼的含義並解釋應用的工作原理。這包括了獨立的文檔文件和代碼註釋,讓更多的人理解你的代碼。

挑戰:這是一件耗時的工作,如果沒有人去讀它們的話就是純屬浪費時間了。相比於寫文檔,程序員還是更愛寫程序。

四、

實現那些你不認可的功能

任務描述:有時候你會不得不去實現一些功能和特徵,它們不是你的本意,你覺得它們不應該出現在這個項目裏,但是客戶一定要堅持如此。

挑戰:你需要拋開一切個人的感覺和意見,把時間和精力專注於客戶提出的功能需求。

五、

維護他人的代碼

任務描述:有時候你需要維護和調試其他程序員的程序,或一部分代碼。

挑戰:你需要用盡一切辦法理解前任開發者的意圖,他是如何設計的這些代碼。特別是當這些代碼寫得很差,也沒有註釋和文檔可以幫助到你時,那就很糟糕了。

六、

與他人打交道

任務描述:作爲開發者,你要從客戶那裏得到需求,向經理提交報告,和測試人員一起工作,更要和其他工程師討論項目。

挑戰:你需要向外行人解釋技術上的事情,有時候你的工作會依賴於他人的認可或輔助。期間也會出現你和 QA 人員或其他工程師有不同意見的時候。

七、

預估項目工期

任務描述:項目一開始的時候,你要預估這個項目的完成需要多長時間。

挑戰:一般情況下你要預估的是一個你之前沒有做過的項目,而且你只能基於那些模糊的需求,再給未來可能發生的問題分配些時間。

八、

解釋我的工作

任務描述:向周圍的非程序員朋友,家人,同學解釋你的工作是在做什麼,不做什麼。

挑戰:你愛的那些人可能不理解你在做什麼,而且你還不斷的被問及計算機相關的一切問題。

九、

程序中的命名

任務描述:想出一些名字,爲你程序中的變量、過程、函數、類、對象、數據庫等命名。

挑戰:即使是很小的程序或應用都需要給很多東西命名,你要想出那些適合的,簡潔的,可以表達正確含義的一些名字。

你可以看到,寫代碼並不是最難的事情,如果你也在從事軟件開發,看看還有哪些內容,你認爲也是很難的

歡迎大家在文末留言分享,說出你心中最具有挑戰性的事情。

查看原文 >>
相關文章