大牛告訴你,只有突破程式設計師思維,才不會淪為碼農!

智雲程式設計發表於2019-01-08

過去我曾一直認為程式設計師是依靠他們的技術在程式設計,也是因為技術使得程式設計師的水平有高低之分,但隨著我寫程式碼的時間越來越長,也接觸到更多的程式設計師,我漸漸發現程式設計師們其實是依靠他們所特有的程式設計師思維在進行程式設計的,而他們中的佼佼者正是那些有著更高思維成熟度的優秀程式設計師們。

大牛告訴你,只有突破程式設計師思維,才不會淪為碼農!

  什麼是程式設計師思維

  那麼,什麼是程式設計師思維呢?我曾讀到過一些文章,試圖給它下一個明確的定義,比如,具備抽象和邏輯思維的能力,擁有物件導向程式設計和設計的能力等等。我對這些所謂定義有些不以為然,因為,我所體會的程式設計師思維更像是一種感覺,它是由常人的思維+程式設計思維,長期相互作用下產生的一種思維模式,它能夠幫助程式設計師快速找到以程式方式解決現實問題的最優解。

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

長期不間斷的程式設計實踐

持續地學習與借鑑(參考)

學會反思,並像專家一樣思考

這裡推薦一下我的前端技術分享群:731771211,裡面都是學習前端的,如果你想製作酷炫的網頁,想學習程式設計。自己整理了一份2019最全面前端學習資料,從最基礎的HTML+CSS+JS【炫酷特效,遊戲,外掛封裝,設計模式】到移動端HTML5的專案實戰的學習資料都有整理,送給每一位前端小夥伴,有想學習web前端的,或是轉行,或是大學生,還有工作中想提升自己能力的,正在學習的小夥伴歡迎加入。

點選:

   為什麼要突破程式設計師思維

  既然程式設計師思維對程式設計師來說如此重要,我們又為什麼要突破它呢在我看來,主要有以下一些原因?

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

從程式設計師的發展角度來說,當你從一名程式設計師轉變為高階程式設計師,架構師,系統分析師,專案經理,產品經理的時候,需要你突破程式設計師思維,而從更人性化的角度去識別和解決問題。


大牛告訴你,只有突破程式設計師思維,才不會淪為碼農!

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

  程式設計師思維對程式設計師來說是一把雙刃劍,它既能幫助程式設計師寫出優秀的程式碼,去解決一個又一個複雜的問題,但有時候它也會阻礙程式設計師們的發展,成為進階路上過不去的一道坎。

  如何突破程式設計師思維

  在成為全棧工程師以及開始做IT管理之前,我也是一個完全用程式設計師思維去進行思考的人。但我透過一些方法逐漸突破了程式設計師思維,相信這些方法也能給你以啟發。

  透過技術發現問題的本質

  我時常會組織開發團隊做一些技術問題的討論,但當一個問題被丟擲時,比如:使用者時常會在哪段時間內重複地點選某一個功能,導致系統壓力的上升團隊的大部分程式設計師都會很快給出他們的解決方案,比如增加流量閥的控制或在使用者會話中加入某些令牌來防止使用者的頻繁重複提交等等。但幾乎很少有程式設計師會問,使用者為什麼會在短時間內頻繁點選這個功能呢?是啊,解決問題的關鍵,往往不是如何透過技術手段禁止使用者這樣做,而是理解使用者這樣操作的原因,從而得出解決的辦法。


大牛告訴你,只有突破程式設計師思維,才不會淪為碼農!

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

  像專家一樣給出意見

  我發現在很多場合下,比如與使用者溝通需求,與產品經理溝通方案時,程式設計師總是處於比較弱勢的一方。他們只是被動地去接受這些需求和方案,然後回去將它們轉換為程式碼的實現。

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

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


大牛告訴你,只有突破程式設計師思維,才不會淪為碼農!

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

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

  我經常聽到程式設計師會抱怨使用者提的需求質量有多差,設計師做的設計根本無法實現等等。這其中一定有一些客觀的原因,但程式設計師無法跳出程式設計師思維,站在使用者或設計師的角度看待問題,也是一個重要的原因。

  我在自學設計之後,獲得的不僅僅是一項技能,對我幫助更大的是自己能夠從一名設計師的角度來待看問題,這反過來也促進了我的程式設計能力的提升。同樣的,你也可以學習某個行業的知識,即使你無法成為這個領域的業務專家,但這些知識能夠幫助你更好地理解使用者的需求,從而得到更優秀的技術解決方案。這也是為什麼我總是鼓勵身邊的程式設計師們去嘗試學習除程式設計之外不同東西的原因。


大牛告訴你,只有突破程式設計師思維,才不會淪為碼農!

  找回創造力

  雖然程式設計是一項腦力活動,但程式設計師們可能都知道,在大多數情況下這並不需要我們發揮創造力。也就是說,我們在按部就班地完成那些開發工作的同時,我們正在失去我們的創造力。

  創造性地解決問題是優秀程式設計師所需要具備的能力,但我恰恰發現很多具有多年程式設計經驗的程式設計師,他們的思維卻好像受到了限制似的,只能憑著那些已經有些過時的經驗去給出他們的方案,而很難創造性地去解決問題。

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

  突破程式設計師思維並不是要摒棄它,恰恰相反,突破正是建立在成熟的程式設計師思維之上的,這將幫助程式設計師以更全面的視角去思考和解決問題,同時也能為我們程式設計師這個職業創造出更多可能。 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69901074/viewspace-2375140/,如需轉載,請註明出處,否則將追究法律責任。

相關文章