程序員是如何思考的
1、思考框架
- Where are we ? (我們現(xiàn)在在哪里?)
- Where are we going ? (我們要到哪里去?)
- How can we get there ? (我們要如何到達(dá)那里?)
如果一個(gè)人能夠清晰的回答出這三個(gè)問題,通常意味著他對(duì)要做的事有著清晰的認(rèn)識(shí)。
2、思考原則
給出思考框架是為了讓你明白為什么要提出問題,而具體問題要怎么問,就可以遵循下面這四個(gè)原則
以始為終
工作的一開始就確定好自己的目標(biāo)。我們需要看到的是真正東西目標(biāo),而不是把別人交代給我們的工作當(dāng)做目標(biāo)。
舉個(gè) ??:當(dāng)產(chǎn)品經(jīng)理讓我們開發(fā)一個(gè)功能的時(shí)候
我們需要了解真正的目標(biāo)是什么,為什么要做這個(gè)功能。并且為了保證目標(biāo)的有效性,我們還需要了解這個(gè)功能會(huì)給用戶帶來的價(jià)值。
任務(wù)分解
將大目標(biāo)拆分成一個(gè)一個(gè)可行的執(zhí)行任務(wù),工作分解的越細(xì)致,我們便越能更好的掌控工作。
還是上面的??:了解更多的細(xì)節(jié),將功能拆分為不同的開發(fā)任務(wù),并且列出每個(gè)任務(wù)的優(yōu)先級(jí)。如果時(shí)間緊迫的話,需要和產(chǎn)品經(jīng)理溝通優(yōu)先實(shí)現(xiàn)哪些任務(wù)。
溝通反饋
為了疏通與其他人交互的渠道。一方面,我們保證信息能夠準(zhǔn)確無誤的傳達(dá)出去,減少因?yàn)槔斫馄钤斐傻墓ぷ魇杪?;另一方面,也保證我們能夠準(zhǔn)確及時(shí)的接收外部信息,以免因?yàn)樽晕腋杏X良好,阻礙了進(jìn)步。
如上??:我們需要明確,自己是否真正的理解了產(chǎn)品經(jīng)理提出的需求。所以,不斷的問問題,確保自己的理解和產(chǎn)品經(jīng)理交代的內(nèi)容是一致的。同時(shí)我們也需要保證自己做出來的功能可以達(dá)到預(yù)期的目標(biāo)。
自動(dòng)化
將繁瑣的工作通過自動(dòng)化的方式交給機(jī)器執(zhí)行。
最后還是那個(gè)??:我們做的方案通常是一個(gè)自動(dòng)化的方案,但是我們需要了解這個(gè)方案在沒有自動(dòng)化之前是怎么做的的。如果不做自動(dòng)化,是否有其他的替換方案。

我們不是一個(gè)人孤獨(dú)的在工作,而是與其他人在協(xié)作,想要做到高效工作,我們就要“抬起頭”來,跳出寫代碼這件事情本身。
程序員解決的問題,大多不是程序問題。