六星教育:優(yōu)秀程序員的思維方式有哪些?

合格程序員邏輯思維能力合格,優(yōu)秀程序員則需要領先行業(yè)當前技術,能夠拆分技術要素,有創(chuàng)造性思維。
我們用類似寫程序的方式來說說邏輯思維,然后用BeafQPS拆分技術要素,最后用memcached的創(chuàng)造來說說創(chuàng)造性思維。

程序員的思維方式跟思維方式的分類(辯證思維和邏輯思維)沒有太大不同,程序員更傾向于大量的邏輯思維,及靈光乍現(xiàn)的創(chuàng)造性思維。
邏輯思維是程序員運用概念、判斷、推理等思維類型解決問題的過程。
第一步,理解。遇到問題時,先搞清楚問題本身。一個好的技術專家,衡量他水平的是---發(fā)現(xiàn)和定義問題的能力,而不是解決問題的能力。能找到當前系統(tǒng)中存在的問題可太重要了,解決方案往往非常多非常簡單。
第二步,計劃。當計劃不清晰時,暫停一下,給你的大腦一些分析問題和處理信息的時間。
第三,分解。不要嘗試一次解決一個復雜問題,而應把復雜問題分解成若干簡單問題。從最簡單的開始,一個一個逐級解決,最后合并成原始問題的答案?;鸺圃欤ㄔ?、加工、組裝、發(fā)射),寫一個淘寶出來(拆成注冊登陸商品訂單等等模塊),都可以套用分解方法。
第四,卡殼。注意力更多在如何解決棘手問題上,而不是為此惱火??r,可以試試這幾種方法:調(diào)試錯誤;重新評估問題;利用搜索引擎找到相似問題的解決者,向他們學習。
第五,練習。以上四個步驟,或許已能讓你建立一套解決問題的思維框架,但距離成為一個解決問題的高手,還差一步,那就是:練習,練習,再練習。在問題中練習,訓練你的思維系統(tǒng)。
優(yōu)秀程序員分解問題上,會提高一個層次,對技術要素做分解,站在全局進行思考。
BeafQPS
行業(yè)對標 Benchmark
效率 Efficiency
架構 Architecture
功能 Feature
質(zhì)量 Quality
性能 Performance
安全 Security
那么如何進行創(chuàng)造性思維呢?我們從memcached說起。
http://LiveJournal.com平均每天有2千萬多的動態(tài)頁面瀏覽和1百萬用戶,并有一組web服務器和一組數(shù)據(jù)庫服務器。Brad Fitzpatrick(人名)在2003年為LiveJournal開發(fā)的。
站點越來越慢,一天在浴室里洗澡的時候,Brad Fitzpatrick靈光乍現(xiàn),突然意識到他們有這么多空閑的內(nèi)存可以利用。那晚他寫了個原型,服務端和客戶端都是用?Perl?寫的,服務端很快就崩潰了,因為對于一個?Perl?服務器而言?CPU?的使用率太高了。于是他們著手用?C?來重寫它。
數(shù)據(jù)庫服務器 又貴,遷移又慢。?Web?服務器非常便宜,把它們加上馬上就能見效。如果你買一臺新的數(shù)據(jù)庫服務器,差不多要花一周來進行配置和驗證:測試磁盤、配置和調(diào)優(yōu)。
看一下創(chuàng)造過程:
困難:站點越來越慢
先例:業(yè)界只有mysql可用,只能做拆分,很昂貴
可用資源:手上的服務器內(nèi)存很多閑置
優(yōu)化原理:內(nèi)存也可以存數(shù)據(jù),訪問內(nèi)存很快,網(wǎng)絡和機械磁盤訪問很慢
創(chuàng)新行動:高性能緩存萬金油memcached誕生
感知、記憶、思考、聯(lián)想、理解等能力為基礎,開創(chuàng)了新領域。你可以用這個例子套一下redis。
總結一下,優(yōu)秀程序員能在邏輯思維能力基礎上,進行創(chuàng)造思維。邏輯思維幫助我們理解問題定義問題,做計劃,分解,處理卡殼情況。創(chuàng)造性思維則需要記憶思考聯(lián)想等方式綜合運用,開創(chuàng)新領域。
以上就是本次分享的全部內(nèi)容,想學習更多編程技巧,歡迎持續(xù)關注六星教育!