當前位置:首頁 > 公眾號精選 > 玩轉(zhuǎn)嵌入式
[導(dǎo)讀]通常我們區(qū)別一個人是新手還是老手,可以看一下幾個方面:新手,百度的主要是語法。老手,Google的基本是解決方案或者疑難bug。新手,一頓操作猛如虎,一旦發(fā)測全是bug,甚至有需要顛覆設(shè)計來修改的。老手,先想,甚至畫畫圖,不緊不慢開始寫,甚至有寫幾行,喝幾口茶的感覺,但是寫出來的...

通常我們區(qū)別一個人是新手還是老手,可以看一下幾個方面:
  • 新手,百度的主要是語法。老手,Google的基本是解決方案或者疑難bug。
  • 新手,一頓操作猛如虎,一旦發(fā)測全是bug,甚至有需要顛覆設(shè)計來修改的。老手,先想,甚至畫畫圖,不緊不慢開始寫,甚至有寫幾行,喝幾口茶的感覺,但是寫出來的穩(wěn)得一批。
  • 新手,面對bug,首先就是猜,應(yīng)該是那里,改了再說,恩,好了,然后其他地方出問題了。老手,先分析代碼,然后看日志,復(fù)現(xiàn),修改,再復(fù)盤一下。
那么,如果我上面的都做到了,就是老手了么?不一定,還有一個很重要的因素---解決問題的能力。可以說,工作3-5年,上面3點基本都能達到,畢竟熟能生巧,但是解決問題的能力,真的是天賦和努力都需要。同樣一個問題,新手只想怎么打補丁,老手想的是怎么從源頭解決而不影響大局,但是大神,往往會想有沒有更優(yōu)方案。舉個例子,sql錯誤秒殺系統(tǒng)超發(fā)了。
  • 新手可能一看,哦,這個SQL有問題,改一下。
  • 老手一看,這么改可能有并發(fā)瓶頸,優(yōu)化一下。
  • 大神一看,這個可以加個隊列,解決并發(fā)問題,然后對于客戶端體驗怎么優(yōu)化一下,產(chǎn)品可以提供一下響應(yīng)的友好提示等等。
簡單的說,就是格局和視野不一樣。那么,我們要怎么鍛煉我們解決問題的能力呢?

事無巨細,悉以咨之。

學(xué)習的最好途徑就是經(jīng)歷,我們可以抓住工作中遇到的每一個問題,看看別人是怎么解決的,想想有沒有更好的方案,記下來自己復(fù)盤。很多論壇上的求助,或者大佬們對于行業(yè)痛點的解決方案,多看看,體會一下他們的優(yōu)劣和特點,同行就是最好的老師。最后就是多思考。
只要思想不滑坡,辦法總比困難多。

優(yōu)化流程

很多時候,我們可能會疑惑,為什么別人能想到我想不到。首先是知識儲備的問題。
你永遠想不到你并不知道的東西。
也就是貧窮限制了我們的想象力,這個需要我們多積累,多看多學(xué)。其次就是思考模式的優(yōu)化,這里主要談?wù)勥@個。

場景分析,拋開程序思維

我常常開玩笑:如果解決不了,就干掉那個提需求的人。意思就是如果一個需求或問題比較棘手,可以先問問提需求的人,原始需要是什么,可能會找出一個程序?qū)崿F(xiàn)簡單,而且更符合原始需求的方案。雖然這種機會很少,畢竟產(chǎn)品和程序不打起來已經(jīng)不錯了,但是有時候真的有奇效,會減少很多開發(fā)時間。最起碼你了解了為什么要做這個東西,也不至于怨天怨地。

定義問題,抽象模型

想要解決問題,首先要明白到底是什么問題。比如,CPU占用非常高,我們把耗CPU的干掉一些把。首先,CPU占用高并不是問題,CPU就是拿來用的,不卡就不用解決。其次,優(yōu)化不等于干掉,先找出有沒有空耗CPU的,其次再分析有沒有低效利用CPU的。最后,在確定解決方案。
如果方向錯了,怎么努力都是錯的。

刨根問底

比如一個接口經(jīng)常超時,有人說,超時時間改長點不就好了。這里你會也許覺得很挫。但是在實際工作中,這種補丁數(shù)不勝數(shù)。
一旦你選擇了妥協(xié),那么就會一直妥協(xié)。久而久之,你就會變得不愿意思考,逐漸平庸。
任何現(xiàn)象的背后,一定有原因,補丁只能一時,不能一世,為了業(yè)務(wù)的正常運作,可以打補丁,但是一定要在下一步將這個問題揪出來。這就比如,你去看醫(yī)生,說我經(jīng)常感覺冷。醫(yī)生說你多穿點不就好了。你會怎么想?程序員看bug,其實和醫(yī)生看病是一樣的,望聞問切,尤其是服務(wù)端,可以說每次修改都是動手術(shù),一定要穩(wěn)準狠。

驗證和復(fù)盤

凡是問題,先復(fù)現(xiàn),抓不到就拼命加日志,直到揪出來再改。無法復(fù)現(xiàn),就無法驗證,一旦邏輯鏈不完整,就一定還有雷,總有一天它會炸。每次解決之后,多復(fù)盤,再次思考有沒有更優(yōu)方案,這樣你會因為一個問題成長多次,而且形成模型后,你解決問題的速度會快很多。

結(jié)語

如果有不對的地方歡迎指正。如果有不理解的地方歡迎指出我來加栗子。如果感覺OK可以點贊讓更多人看到它。謝謝。

DMA實現(xiàn)STM32串口收發(fā)機制
據(jù)說很多搞軟件的羨慕硬件工程師
硬件工程師經(jīng)驗總結(jié)五大項,避免踩坑
蘇聯(lián)的三進制電腦,為什么被二進制干掉了?
作者:快樂的提千萬
鏈接:https://juejin.cn/post/6991380780257640478
來源:稀土掘金
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。


本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
關(guān)閉