關注在你的任務——不要去思考將來,那不是你思考的
如果你是一個士兵,你的排長讓你把拿炸藥包把前面的碉樓炸了,你上不上?
很多程式設計師同學,不必面臨著上戰場的生死,他們想著自己應該想的更多,站的更遠,他們骨子裡(雖然會反對)會把自己當主角,期望先把“產品的世界”先弄懂,把主線弄懂。
但,很失望的,很少人能夠在短時間內看懂“產品的世界”,所以他們在不斷的徘徊,不斷的思考未來遇到的困難。
所以我的建議是,如果你不能在合理的時間範圍內把主線弄明白,那麼就不用弄明白了,先邁出第一步。
在系列《關注在你的任務》的文章中,我會以多個方面的現實故事來說明,其實很多同學在自己的崗位上不必“空載式”的燒腦,我會提供一些方法或者技巧讓你邁出第一步。根據我的經驗,可以包含幾種不同的技巧,包括做筆記,畫主線,程式碼重構,流程圖設計,測試驅動,關鍵技術先走通法等等。這些技巧可以一併來進行使用。有了這些方法,一般來說只要是能“蠻”過去的事情基本都能解決。我也會在這裡探測程式設計師們的思維,我本身也是10年的程式設計師,懂自身的弱點,也懂得利用自己。今天起一個頭,分析下不同的人的職業能力和職業心態。在這裡針對的是中級如我這樣水平的同學,並不針對非常厲害的牛人,他們的世界我不懂。
先研究再著手的職業心態
很多具有研究背景的同學或者在面試的時候,會犯一個毛病,就是拿到一個問題的第一行為是查資料、查論文。為啥說這樣不好咧,因為他們的沒有先自己思考。所謂學而不思則罔,當拿到第一個任務的時候,要做的事情是根據現有的能力或者產品,看看能否組合、組裝、改進等來解決這個問題。組合是多個解決方案並聯在一起解決。組裝是提煉多個技術點,改造線路進行解決。改進是修改或者調整部分技術點,抽象或者具化這些解決方案。在2010年我的一個同事要研究三維的森林火災蔓延的效果,他在前面半個多月都是在找相關論文,最後找不到合適的方案而不了了之。對於這個事情,火災蔓延的蔓延演算法不是關鍵點,引數也不是關鍵點,而真正的難點當時應該是實現和表達。因為如果有實現效果,那麼至少簡單的蔓延演算法(比如同圓擴散)就能夠做到,可以儘早的看到效果,推進專案(專案推進了,才會有更多的想法,參與方才會更多)