小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

突破程序員思維

 天道酬勤YXJ1 2016-09-03

過去我曾一直認為程序員是依靠他們的技術在編程,也是因為技術使得程序員的水平有高低之分,但隨著我寫代碼的時間越來越長,也接觸到更多的程序員,我漸漸發(fā)現(xiàn)程序員們其實是依靠他們所特有的程序員思維在進行編程的,而他們中的佼佼者正是那些有著更高思維成熟度的優(yōu)秀程序員們。

突破程序員思維

什么是程序員思維

那么,什么是程序員思維呢?我曾讀到過一些文章,試圖給它下一個明確的定義,比如,具備抽象和邏輯思維的能力,擁有面向?qū)ο缶幊毯驮O計的能力等等。我對這些所謂定義有些不以為然,因為,我所體會的程序員思維更像是一種感覺,它是由常人的思維+編程思維,長期相互作用下產(chǎn)生的一種思維模式,它能夠幫助程序員快速找到以程序方式解決現(xiàn)實問題的最優(yōu)解。

那么,程序員們又是如何獲得這種思維的呢?我想說,從你學習編程并寫下你的第一個HelloWorld程序的時候,程序員思維就已經(jīng)不知不覺地建立起來了,而隨著你不斷深入地學習與實踐,它也變得越來越完整和成熟。下面就是我認為對于提升程序員思維有所幫助的幾點建議,雖然不做展開,但相信每個程序員都會認同吧。

為什么要突破程序員思維

既然程序員思維對程序員來說如此重要,我們又為什么要突破它呢?在我看來,主要有以下一些原因:

  • 隨著技術的進步和專業(yè)領域的融合,程序員的職能正在不斷擴展,你一定也聽到過DevOps,全棧工程師,增長黑客這些詞吧,新一代的程序員不僅需要具備很強的編程能力,同時還需要具備從設計、運營、測試等各種不同角度去進行分析和判斷的能力。

  • 從程序員的發(fā)展角度來說,當你從一名程序員轉(zhuǎn)變?yōu)楦呒壋绦騿T、架構(gòu)師、系統(tǒng)分析師、項目經(jīng)理、產(chǎn)品經(jīng)理的時候,需要你突破程序員思維,而從更人性化的角度去識別和解決問題。

  • 突破程序員思維對你的生活也會有所幫助,有很多過于技術的程序員,隨著編程時間的增加,他們會越來越不善與人溝通,甚至排斥與人交流。他們也往往無法扮演好自己在生活中的角色。

程序員思維對程序員來說是一把雙刃劍,它既能幫助程序員寫出優(yōu)秀的代碼,去解決一個又一個復雜的問題,但有時候它也會阻礙程序員們的發(fā)展,成為進階路上過不去的一道坎。

如何突破程序員思維

在成為架構(gòu)師以及開始做IT管理之前,我也是一個完全用程序員思維去進行思考的人。但我通過一些方法逐漸突破了程序員思維,相信這些方法也能給你以啟發(fā)。

透過技術發(fā)現(xiàn)問題的本質(zhì)

我時常會組織開發(fā)團隊做一些技術問題的討論,但當一個問題被拋出時,比如:用戶時常會在段時間內(nèi)重復地點擊某一個功能,導致系統(tǒng)壓力的上升。團隊的大部分程序員都會很快給出他們的解決方案,比如增加流量閥的控制或在用戶會話中加入某些Token來防止用戶的頻繁重復提交等等。但幾乎很少有程序員會問,用戶為什么會在短時間內(nèi)頻繁點擊這個功能呢?是啊,解決問題的關鍵,往往不是如何通過技術手段禁止用戶這樣做,而是理解用戶這樣操作的原因,從而得出解決的辦法。

多年的開發(fā)工作,使程序員們不自覺地首先想到如何用技術手段去解決問題,然而,真正優(yōu)秀的程序員一定善于透過技術發(fā)現(xiàn)問題的本質(zhì)。我想這就是我們突破程序員思維的第一步,也是最容易實現(xiàn)的一步吧。而說到方法,我最常使用的便是,反復地追問一件事的原因,比如剛才這個例子,最終我們找到原因可能是系統(tǒng)沒有給用戶一個友好的提示,導致用戶錯誤地認為系統(tǒng)并沒有處理他的請求,而嘗試反復點擊。而我們的解決方案也與之前團隊程序員們所提出的完全不同,只需花上幾分鐘,給系統(tǒng)加上一句友好的提示就行了。

像專家一樣給出意見

我發(fā)現(xiàn)在很多場合下,比如與用戶溝通需求、與產(chǎn)品經(jīng)理溝通方案時,程序員總是處于比較弱勢的一方。他們只是被動地去接受這些需求和方案,然后回去將它們轉(zhuǎn)換為代碼的實現(xiàn)。

而那些真正優(yōu)秀的程序員在與用戶進行溝通時,總是試圖去理解用戶所提出需求背后的真正原因,因為,他們知道用戶往往會按照自己對問題的理解去給出他們認為正確的方案,而很多情況下,這并不是正確或最優(yōu)的解決方案。優(yōu)秀的程序員會站在用戶的角度,認清問題,并像專家一樣給出他們認為最優(yōu)秀的方案。

如果你對一個問題有充分的理解,并具有足夠的信心,你就應該站出來像專家一樣給出自己的意見,這會讓你顯得與眾不同。而如果你每次提出的意見都被證明是正確的,那么不需要多久,你也會被大家認同為是一名真正的專家了。

雜學并從中獲得不同的視角

要做到看清問題的本質(zhì)和像專家一樣給出意見,其實并不簡單,這不僅需要你具備極強的技術功底,更需要你對問題所涉及的相關領域有足夠的認識。你必須通過大量地學習編程之外的各種知識來完善自己的知識體系,并從中獲得不同的視角。

我經(jīng)常聽到程序員會抱怨用戶提的需求質(zhì)量有多差,設計師做的設計根本無法實現(xiàn)等等。這其中一定有一些客觀的原因,但程序員無法跳出程序員思維,站在用戶或設計師的角度看待問題,也是一個重要的原因。

我在自學設計之后,獲得的不僅僅是一項技能,對我?guī)椭蟮氖亲约耗軌驈囊幻O計師的角度來待看問題,這反過來也促進了我的編程能力的提升。同樣的,你也可以學習某個行業(yè)的知識,即使你無法成為這個領域的業(yè)務專家,但這些知識能夠幫助你更好地理解用戶的需求,從而得到更優(yōu)秀的技術解決方案。這也是為什么我總是鼓勵身邊的程序員們?nèi)L試學習除編程之外不同東西的原因。

找回創(chuàng)造力

雖然編程是一項腦力活動,但程序員們可能都知道,在大多數(shù)情況下這并不需要我們發(fā)揮創(chuàng)造力。也就是說,我們在按部就班地完成那些開發(fā)工作的同時,我們正在失去我們的創(chuàng)造力。

創(chuàng)造性地解決問題是優(yōu)秀程序員所需要具備的能力,但我恰恰發(fā)現(xiàn)很多具有多年編程經(jīng)驗的程序員,他們的思維卻好像受到了限制似的,只能憑著那些已經(jīng)有些過時的經(jīng)驗去給出他們的方案,而很難創(chuàng)造性地去解決問題。

其實,有很多方法都能讓我們找回創(chuàng)造力,關鍵是你是否愿意堅持那樣去做。而我的方法也很簡單,每天進行閱讀,每周寫一篇博客記錄自己想到的東西。另外,我也有一本小本子用來記錄那些轉(zhuǎn)瞬即逝的想法,有些看起來是那么不切實際,但我都把他們記錄下來,沒事的時候就去翻翻,這個過程中我可能會得到一些新的不錯的可行的點子,然后,我再嘗試著花些時間把它做出來。雖然,他們中的大部分都不會產(chǎn)生什么價值,但我知道下一個優(yōu)秀的創(chuàng)意或想法,可能就來自于它們。

突破程序員思維并不是要摒棄它,恰恰相反,突破正是建立在成熟的程序員思維之上的,這將幫助程序員以更全面的視角去思考和解決問題,同時也能為我們程序員這個職業(yè)創(chuàng)造出更多可能。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多