作为程序员我是如何对事物进行分析的
曾經在一個美國科教節目上看到:能充分解釋當前規律或現象的理論就是科學,沒有永遠正確的科學,科學是不斷的修正和發展的。類似牛頓力學對于經典物理學,E=MC2之相對論,所以我們還是認為牛頓的那些是科學而不是偽科學。 個人覺得《易經》也是一種智慧及大成者,至少能通過這里的一些理論解釋一些現象,還是不要當成偽科學的好。畢竟對《易經》的研究也不是很透徹
本人長期從事管理軟件開發,天天沉溺于所謂需求分析工作之中。由于時間和經驗,即便不在第一線做了,也要天天review需求分析文檔。
管理軟件的需求,一般而言,有所謂的功能性需求和非功能需求之說,功能性需求,指完成一個具體功能的步驟、時間、操作人和操作對象,而非功能性需求,通常指的是性能、安全性等角度的要求。
如何分析一個具體的功能,無論是做軟件開發還是從事管理咨詢,都有各種流派、各種工具可用。這里我就不一一列舉了,大凡和這個產業沾邊的人,都能舉出不少例子,雖然他們可能未必真的是一種東西,如UML、SAP業務藍圖、麥肯錫金字塔等……
這一段的忙碌和思考,讓我產生一種應該不斷還原的思考。譬如編程,無論你是用何種高級語言(java、C、C++… …)在寫,最后都能還原成匯編語言,針對特定的計算體系架構,并進一步還原到機器語言(基于二進制代碼的電路)。
所以,從這個角度上看功能性需求分析,其努力方向也應該是進一步將自然語言還原成程序語言。
程序語言的邏輯很簡單:
1、順序執行的指令
2、需要邏輯跳轉的指令,最常見的就是If… Else…
3、需要循環執行的指令,最常見的寫法 for(i=0;i<100;i++)
4、需要條件分支的指令,最常見的效果:
switch (X){
case 1: … …;
… …
case n: … …;
default: … …;
}
而進一步分析上述四種邏輯,其實會發現,只有1和2是必須,如果不考慮效率和麻煩,3、4都可以通過邏輯跳轉實現。
于是,我們可以初步認定,對任何一項復雜到不能再復雜的功能,本質上都可以梳理為循序執行和邏輯跳轉的表現方式。當然,人們普遍懼怕這種復雜度的還原,因為思維和自然寫作的思路是不受任何前提限制的。但是,反過來思考,如果你真的希望通過系統來解決一個復雜的商業問題,因為編程語言的思考方式、編譯器的原理、計算機硬件系統的工作方式,都要求你必須按照工具的方式去思考。因為,你已然選擇了計算機這種既定的工具。
除非,你希望還有一些未知的方式,否則,不要進行跳躍性的思維。美國人的心理學教材,前半本都在講細胞、神經、交感、副交感。這就是基于目前科技的一種正確的解釋和思維定勢。
如果真的陷到所謂天人合一、易經八卦,雖然我不能說那是偽科學,但至少,我們會陷入一個世界無解的黑洞中。每一天,我們面臨的問題更多的不是哲學問題,而是利用現有工具如何解決商業問題。所以,拋棄靈性和跳躍,學會利用最基本的邏輯來思考并解決復雜性,應該不會有錯。
個人思考,請踴躍拍磚,謝絕人身攻擊。【蚊子132】
原文 http://www.wz132.com/thread-8653-1-1.html
總結
以上是生活随笔為你收集整理的作为程序员我是如何对事物进行分析的的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 我要嫁给一个程序员你们怎么看?
- 下一篇: 【转载】为了我们的SZ4J代码