1. 程式人生 > >好的程式設計師做不出好的軟體設計

好的程式設計師做不出好的軟體設計

你不能看到一個程式設計師還不錯,就把他推到系統分析師、軟體設計師或軟體架構師的位置上。

如果你在團隊或公司裡尋找一個能勝任軟體架構師或設計師這樣重要位置的人時,首先出現在腦子裡的想法通常是在程式設計師中選一個最好的。別這麼幹。這樣的位置不是隨意的找個不錯的程式設計師就能勝任的。把你最資深的程式設計師晉升到這個位置也未必就合適。

乍一聽你可能感覺荒誕。為什麼我不能讓一個程式設計師去做系統設計呢?畢竟,他們是設計程式的,不是嗎?的確是的,沒錯。但你要明白的事情是,設計軟體相對於編寫程式,它需要的是一套完全不同的技能。

讓我們來看看為什麼一個好的程式設計師就未必可以做一個好的軟體設計師。但首先,讓我們來問問自己一個問題,是什麼讓一個程式設計師變的優秀,甚至傑出?要想成為一個好的程式設計師,你需要有能力實現真實世界裡重要的軟體。只能夠寫出一個簡單的文字編輯器是遠遠不夠的。

為了能做到可以解決重大的、複雜的程式設計問題,一個程式設計師需要在某個特點的程式語言上進行數年的經驗積累。也就是說,為了能熟練的使用這種語言、熟悉這種語言的各種特色,他必須專注於這種語言。問題就在這兒。

對於只有錘子的人,他能解決的問題就是釘釘子

如果你專注於一種語言,並能做到精通掌握,那你遇到的問題模式很可能就限制於跟這種語言相關的領域。簡言之,如果你懂PHP,那所有的問題都基本上是跟Web開發相關。相同的道理,如果你全部的知識都集中的Java上,那你對所有問題的解決思路都會沿著面向物件的方向,即使是使用程序式程式設計對於解決你的問題會更優的情況下,你也會如此。

一個程式設計師,只懂得一、兩種程式語言,這會嚴重的限制他的解決問題的能力。例如,如果你的程式語言是C語言,對於手頭出現的問題,你絕對不可能想出一種面向物件的解決思路,因為你的程式語言不提供這樣的語言特徵。跟Haskell程式設計師不一樣,C++程式設計師不可能想出函式式解決方案。你的程式語言裡提供了結構體和列舉型別與否,會嚴重的影響你剖析一個問題的方式。如果你使用的語言的能力很弱,或你只知道少數幾種語言,你解決問題的能力相應的會被削弱。

語言塑造了我們的思維方式

有人說,我們的語言塑造了我們的思考和認知這個世界的方式。我基本上認同這個觀點。當一個人的母語裡的名詞都有性別之分時,他一定不會同說其它種母語的人那樣一提起“警察”這個詞就基本上認為是男的。當一個人的母語裡對藍色和綠色不區分時,他對世界的感知會和那些有區分的人的感知大不一樣。

如果我們回首中世紀學校的三學科,它們被描述為:語法解決概念和物件如何在書寫和話語中被表現,用邏輯對它們進行分析,最終以修辭為目的同他人交流。對於我們來說,程式語言也有語法。如果我們的程式語言不夠強,我們對事物和概念的認識以及對如何表達它們都不會有完整的視野。

語言,我們用來跟人們、跟計算機交流的功能,明顯的影響著我們的思考方式。我們對語言知道的越豐富、越多,越能幫助我們提高解決問題的能力。

那麼,什麼樣的人更合適?

那麼,一個在某一兩種程式語言裡具有專長的程式設計師,在當他解決一個問題時,會存在一定的侷限。他會侷限於他使用的語言允許他做的事。因此,他不會成為一個好的軟體設計師或分析師。

如果我們不用這些優秀的程式設計師,誰又能擔當軟體設計的任務呢?當然不會是那些完全不懂程式設計的人了。我們需要的是一種通才。一個優秀的軟體設計者必須通曉過程式,面向物件式,函式式,以及邏輯式程式語言—還包括各種優秀的軟體開發方法論。他不能只熟悉一種方法模式、像一個專業領域人員那樣。當然,他自己並不能寫出複雜的程式,因為他的知識太寬泛。儘管如此,他卻能正確的判斷出怎麼樣的設計才是一個正確的解決方案。如果問題是處理一個釘子,他會找來一個熟練使用錘子的人;如果問題是處理一個巨石,他會叫來爆破部隊,而不是讓你徒勞的用錘子白費力氣。

相關推薦

程式設計師軟體設計

你不能看到一個程式設計師還不錯,就把他推到系統分析師、軟體設計師或軟體架構師的位置上。 如果你在團隊或公司裡尋找一個能勝任軟體架構師或設計師這樣重要位置的人時,首先出現在腦子裡的想法通常是在程式設計師中選一個最好的。別這麼幹。這樣的位置不是隨意的找個不錯的程式設計師就能勝任的。把你最資深的程式設計師晉升到這

為什麼程式設計師程式碼?

每個開發者在編碼時,都希望程式碼像水管的水一樣源源不斷的流出,思緒不被打斷。但在現實開發中,經常會由於一些事情突然中止或停下。本文就總結了現實工作中,影響編碼進度的15個“攔路虎”。 1.開會 停止手頭的編碼工作,去參加會議。程式設計師或許不會相信,他們可能已經在會議室花費了數週或數年

程式設計師每天寫程式碼的5大方法

來源:https://www.ysslc.com/shangye/keji/1263684.html 有不少的程式設計師天天寫程式碼,但是還是被自己的程式碼醜哭了。 有些好的程式碼具有易理解、可擴充套件、易維護的特點,簡直是人見人愛。 就像運動員每天鍛鍊一樣,每

工程師思維,產品?

這不是一個雞湯文,也不是警世文,這文章沒什麼結論和重點,你不會從這篇文章中獲得什麼領悟。 恭喜你,你選擇繼續往下看,代表你對這標題也有一定程度的好奇,或許你也有同樣的疑惑? 「你的想法太工程師了,不適用在「一般」使用者上,怎麼可能用一般使用者的角度去思考產品呢?」會

程式設計師程式碼了,該怎麼辦?

點選上方“CSDN”,選擇“置頂公眾號” 關鍵時刻,第一時間送達! 作為一名身經百戰的程式設計師,自早上來,不知不覺,已經對著電腦 n 個小時了。敲鍵盤也成為一種負擔,內心無數次湧起摔鍵盤的衝

程式設計師web前端教程分享網頁設計需要學那些東西?

開發十年,就只剩下這套架構體系了! >>>   

十年風雨,一個普通程式設計師的成長之路(八)技術總監的專案經理,程式設計師

目錄 十年風雨,一個普通程式設計師的成長之路(八)不想做技術總監的專案經理,不是好程式設計師 01 技術總監寫不寫程式碼? 02 面試的坎坷與杯具 03 新的開始 & 舊的結束

寫指令碼熟練的程式設計師程式設計師----小話python(1)

作者:陳曦 日期:2012-6-30 11:18:06  環境:[Mac 10.7.1 Lion Intel-based i3,支援64位指令  Python 2.7.1  gcc4.2.1]  轉載請註明出處 Q1: 指令碼的本質是什麼? A: 它就是一段程式碼,只不過

程式設計師web前端分享HTML元素強制換行

好程式設計師web前端分享HTML元素強制不換行,HTML 中 nowrap是用來強制不換行的     在排版中

程式設計師雲端計算學習路線分享軟體包管理

好程式設計師雲端計算學習路線分享軟體包管理,安裝/查詢/解除安裝 一、軟體的型別 A. 原始碼包 需要編譯 nginx-1.12

程式設計師程式碼寫得,升職反而慢!網友:你說的沒毛病啊

大家都知道程式設計師是個高薪行業,因為想要當程式設計師也是一門技術活,不是那些流水線工作,只要你是正常人就能去幹的。一般來說,你技術越好變薪資越高,這確實沒毛病,你有多大能力那多高薪資。但是最近有程式設計師在網上發帖說道,程式碼寫得好反而升職滿,程式碼寫的爛得反而更容易升職。 該程式設計師

程式設計師的標準

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

我花了整整四年才解決這個bug!程式設計師果真是一般人能的!

進群:548377875  加入萬人交流基地! 我的第一個評論是: 以我之愚見,這是PyEval_InitThreads()中的一個Bug。 修復PyGILState_Ensure() 2年的時間裡,我完全不記得這個bug了。 2016年3月,我修改了Steve的測

程式設計師,除了寫程式碼,你更應該學會這些!

程式設計師必備軟技能是現今比較熱議的話題,除了寫好程式碼之外,你知道如何在身體上、精神上和心靈上更強大、更健康?一個程式設計師的成長,又離不開哪些軟技能呢? 首先,我們來了解一下,什麼是軟技能: 軟技能就是啟用人資的能力,即是調動別人的資源和知識的能力以及調動自己知識

7個提升Python程式設計師的效能的習慣

    ①使用區域性變數代替全域性變數         如:s = os.linesep  #優點簡短標識便於維護,區域性變數查詢更快,能提高效能並節省記憶體;     ②減少函式呼叫次數         物件型別判斷時,採用isinstance()比較最優,物件型別身份(i

作為程式設計師該如何寫簡歷,一份優秀的程式設計師簡歷又是什麼樣的?

作為一個技術人員,如果你滿足以下條件中的任意兩個,你應該去看看更多的機會: 1.錢少了 2.技術空間增長太少 3.沒有發展空間 4.心裡委屈了 以及 5.老闆招你的時候,和你談理想。現在,老闆問你說:理想能賺錢嗎? 6.加班太多——都沒有時間約會或者女朋友和別人跑了 7.你的女朋友在

每天只增刪改查?程式設計師起的 30 歲

程式設計師幹到30歲,好不容易從碼奴混到了白領,卻再也幹不動了,還時時面臨失業的危險。30歲,是一個程式設計師傷不起的年齡。明天,何去何從? 一.30歲現象 在官場上,曾經有一個59歲現象,就是官員們會在59歲時,會使勁撈上一把。很明顯嘛,權力過期作廢,再不撈就要退休了,沒有機會了。

#程式設計師程式碼寫得,升職反而慢!網友:你說的沒毛病啊

大家都知道程式設計師是個高薪行業,因為想要當程式設計師也是一門技術活,不是那些流水線工作,只要你是正常人就能去幹的。一般來說,你技術越好變薪資越高,這確實沒毛病,你有多大能力那多高薪資。但是最近有程式設計師在網上發帖說道,程式碼寫得好反而升職滿,程式碼寫的爛得反

作為程式設計師,一定要加班才是程式設計師嗎?

當你看到這個題目時可能會感到很驚訝,因為不同的人,可能有不同的看法。如果你是一個職場高手,從事軟體開發多年,對於工作上的問題能夠很快的解決,別說需要加班,可能就半天的時間,就能夠做好自己的工作,剩下的很多寶貴的時間就是可以自由安排了。但是對於一個剛剛加入IT行業的新人來說,