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

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

事無巨細(xì),悉以咨之。

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

優(yōu)化流程

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

場(chǎng)景分析,拋開程序思維

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

定義問題,抽象模型

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

刨根問底

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

驗(yàn)證和復(fù)盤

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

結(jié)語

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

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


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