不寫代碼只解bug,有前途嗎?

在做Android framework層,只解bug,不開發新功能。該如何突破這種境地?


你覺得只解bug,你在別人眼裡是這樣的

其實一個真正的解bug高手在別人眼裡是這樣的


解bug比寫代碼難多了其實,首先要定位bug,其次才能解決,更何況解決也是要寫代碼甚至重構的。當然假如你每次都是打個糟糕的補丁就當完成工作了,那的確不會有長進,但這麼說你隨手寫一段新代碼也不會有多少長進。


「不寫代碼只解bug」 --&> 這個本身就是矛盾的吧,你修改bug不要寫幾行或者上百行代碼的嗎?


不寫作業,專改作業。貌似老師啊


作為一個從畢業就開始做framework至今的人說下自己的看法。

其實做framework的人多多少少有跟你有一樣的迷惑,但仔細想想,前途什麼的真不是什麼大問題。

身邊有很多做framework的,絕大多數還是一直做framework。大部分往資深工程師方向發展,如果跳槽也就是在各大手機廠商跳來跳去;還有一部分人會選擇去大的互聯網公司做上層APP開發,比如BAT,這些公司會優先招一些做過framework的程序員,你可以去看下他們的招聘要求,其中會有一條「有做framework經驗的優先」,為啥?因為你懂原理性的東西呀。

做framework真的能學到很多東西。做framework的基本都是一人負責一到兩個模塊,絕大多數時候就是看代碼、解bug,偶爾做下feature,知識積累到一定水平的人會負責死機等問題分析。對知識的積累一定不要滿足於你目前負責的模塊,要儘可能的擴展其他模塊知識,這一點非常重要。framework源碼寫的非常好,博大精深,可以從裡面提煉出各種知識點,比如多線程編程、IO模型等等,同時對代碼的抽象能力會有很大的提高。等知識積累到一定水平,再回去看下《操作系統概念》會發現很多概念都落實在代碼里。

做framework厲害的人大概兩年就會遇到第一個瓶頸。這個時候的他不光熟悉自己的模塊,他還看過很多其他模塊,對其他模塊進行過原理分析,畫過時序圖、類圖等。這個時候開始迷茫接下來學習啥?開始不想看新模塊了,這就是第一個瓶頸(做APP開發一年就會達到第一個瓶頸)。至於怎麼突破,那就是找一個感興趣的領域深耕了,這個目前自己還沒突破。

做framework最重要的技巧就是快速構建整個框架、不斷地分析總結和流程抽象。


寫代碼和修bug分別是產品生命周期中開發和維護兩個階段的主要工作。大多數人覺得寫代碼對能力提升快,認為修bug沒有技術含量,會讓自己成為廢柴。

只寫代碼不修bug會讓你對可能出現的問題沒有預期,寫的代碼魯棒性差,容易出問題。修復bug其實對能力要求更高,不僅對業務非常熟悉,而且要熟練運用各種維測和定位手段,定位問題後還需要對問題完成修改驗證,有的棘手問題可能也會需要大規模修改甚至重構。總的來說定位問題對業務能力,邏輯思維要求更高,但相比代碼能力可能稍欠缺,因此很多人認為以後跳槽機會受限,因此更傾向於寫代碼。其實無論寫代碼還是修bug都是一門技術,機會是給有能力的人!


藉助於工作去提升技術是最好的途徑。沒有的話,純靠業餘自學難度大很多。你要明白社會上有很多臟活,光榨取你的時間卻讓你得不到提升的崗位,要遠離這些。


做feature才是粗活呢,bug fix是高手乾的,看來老大是想培養你!

你可以找機會讓老大吧code review的活給你干 :)


fix android系統的bug確實費勁,經常從app--&>frameworks--&> native layer--&> HAL, 偶爾還kernel層列印信息。但是解bug有時候實在繞不過去就想其他旁門左道,因為出貨日期在那擺著,必須fix。於是就在build腳本阿,啟動腳本搞各種fucking. 說實話android framework李的C++, 還真是需要很多功力才能寫出來的。


不要指望在工作中學到多少知識,自我提升是工作之外的事情。難道你下了班回家就不寫代碼了嗎?


又寫代碼又解 bug的飄過。剛解決了一個bug,安卓u盤插入,有時候認不到,vold里有個狀態處理不好。安卓4.04。都什麼年代,解4.04版的bug有意義嗎。。。


一個不太恰當的比喻:寫代碼寫需求類似抗日戰爭時期正面戰場國軍,改bug類似游擊戰地道戰xx戰共軍!

改bug強於/難於寫feature的?這個存在這種可能性!但是理論上,特定公司環境特定產品和限制限制條件會很多!如果是,那公司應該不錯,產品應該比較龐大複雜,改bug的地位應該不差!

實際現狀我見過絕大部分改bug的,代碼能力還有周邊軟體開發能力弱爆了!只要稍微複雜一點的問題,全都求助寫feature的,基本上要人家把問題定位到模塊級甚至行級,然後才畏首畏尾的改幾行代碼。相當於一個動手修改/提交代碼的執行者罷了!

而且長期這樣,危害無窮!想真正提高代碼能力,還是得不斷參與系統分析,理解消化需求,從零製造設計模塊設計數據結構,理清思路碼代碼,單元測試集成測試,產品上線,經受用戶考驗,修改網上複雜問題(如性能問題,多線程問題等),反省發現自己代碼的弱點等開發生命周期中!這樣反覆迭代,技能會上升的非常快!


你覺得生孩子和專制不孕不育,還得保證個個見療效,哪個難?


做嵌入式的每次遇到bug,先祈禱,一定要是上層軟體的問題,千萬別是底層出問題了


以前也在方案公司做過,方案公司工作基本上就是改改bug,做做feature。因為做過APP開發,所以偶爾有一些客制化的東西。領導都給我做,但是也都是比較簡單的,比如做做鎖屏,文件管理器,定製不同風格的界面。後來實在熬不住寂寞就離職了,主要是因為自己喜歡動手,喜歡自己寫代碼。

樓主,如果你和我一樣,喜歡寫代碼,而不是純粹改bug的話,建議你還是按照自己的想法有,如果自己私下時間比較多,多拿一些開原項目練練手,2-3個就好,現在做app開發,基本上都是http的,從http入手,多練練,找工作還是比較容易的。

當然這個已經是3年前的事情了,現在做app開發後,也面試過不少人,和人交流後,做framework和app就像圍城,framework的覺得整天改改bug,研究一些系統的機制,雖然很高大上,但是確實實用比較少,國內的一些方案公司都是做很淺層次修改,一些大廠可能還好點。然後做app的都想深入底層了解下,畢竟知道怎麼用和為什麼這麼用是不一樣的。

好了,就醬,樓主不管怎麼選,自己開心就好。

金正恩皇家贊。

/ ̄ ̄ ̄Y ̄ ̄。 \

l         l

 ヽ,,,,,/  ̄ ̄ ̄ ̄ ヽ?

 |:::::        l

 |:::   __     |

(6   \●  ● 丨

 !     )??(  l

 ヽ      (三)  ?

 /\    二 ノ

/⌒ヽ. 『ー — 一 \

l    |    ヽoヽ


之前在聯想移動工作,團隊主要做聯想手機的預裝軟體,負責的是相對礎的模塊,和同事的模塊基本都能產生交叉,工作的大部分時間都是在看一坨坨的log文件,試圖證明不是我們的問題或者解決問題。了解熟悉同事們的模塊,評估改動風險,用較小的改動修復問題,產生最小的影響。做了15個月確實有要廢掉的感覺……

改bug也能提升多方面的能力,比如耐心、代碼閱讀理解能力、如何的踢皮球、碰到問題解決問題的思路吧,這些能力無論是做framework層還是app,都是通的吧。


我覺得找出bug更厲害,因為能這麼乾的都可以當黑客了。


恭喜你獲得稱號「代碼界王語嫣」。

至於怎麼突破?沒事自己寫兩個app就好啦。


一猜題主就是ODM。

在安卓風靡之前,做feature phone的軟體實際上還是有很多開發量的,比如說我們公司(ODM)就自己架構過全套基於XML的GUI框架。想想那時候還是挺爽的。

進入安卓時代後,確實更多的工作都是對平台代碼修修補補了,少了很多真正的研發工作。但是我覺得,解bug和寫新代碼都是一種鍛煉,可能側重點不同,但是真的缺一不可。所以本職工作之外的自我訓練永遠是少不了的。

另外,稍大一些的設計公司都不僅僅只有智能機在這一條產品線,智能設備、通訊模塊、數據產品、甚至傳統的feature phone都可能會有,這些產品都是具備可觀開發量的。如果題主真的很糾結,可以考慮內部調崗的。


不寫代碼,何以解bug


推薦閱讀:

防藍光眼鏡是商業炒作還是有其作用?
在前端領域,國內和國外的的互聯網公司有差距嗎?
一個程序員如何零基礎自學速寫,培養這方面愛好?
雲視鏈是什麼?
男朋友有哪些鮮為人知的使用技巧和功能?

TAG:程序員 | Android開發 | 信息技術IT |