作為一個個人android開發者,下面哪些能力是比較重要的?

演算法?設計模式?對源碼的深入了解?軟體工程相關知識?linux?或者是其他等等

題主是一名大二學生,做android開發已經一年,現在也能做一些4500左右的私活賺點生活費。但是感覺遇到瓶頸了,求過來人指教一下下一步應該繼續提升哪方面能力。以及是否有必要轉html5


那我就事論事啦,作為Android 開發者,語言要選擇可以選擇Java 或者C/C++,當然其他語言現在也能做Android 開發,那畢竟是少數,就不多說了;

設計模式:

Java 和C++ 都是面向對象的語言,面向對象的一大特點就是設計模式,熟悉了設計模式,就能更巧妙地設計架構,比如單例模式,Java 源碼中有好多地方使用到,比如裝飾模式,緩存流就使用到了,工廠模式,Spring 使用到了,總之,理解學習了設計模式,以後遇到問題才能更加得心應手, 也表示了你對面向對象的理解程度;

演算法:

大學的必修課(計算機軟體專業)數據結構與演算法,有它的一定道理,Java 語言對應的就是集合類,Java 對其進行了封裝,比如List,Set,Map,這些數據結構特點,更加它們的特點進行更加適合的選擇,使得更加高效,而各大互聯網公司面試,特別看重數據結構與演算法;

源碼:

特別是Java ,對C++ 進行了優化,好多東西都進行了封裝,如果不去讀源碼,你永遠不知道內部內容是什麼,你就會調用個方法,大多初學者都是這樣,所有你沒讀過源碼,和很多人一樣,理解不深,Android 基於Java,源碼很多都是使用Java 的;

Linux:

Android 底層是運行在Kernel 上的,想要更高的發展,這必須要去了解的;

軟體工程:

會編程可不一定是架構師,軟體工程就是讓你學會理解架構,如果從項目分析,使得項目完工的一系列的過程變得更加規範化,所有我覺得,還是在以後的學習和工作當中,隨著積累會慢慢變深;

HTML 5:

至於說Html 5,我覺得現在轉不轉都無所謂,因為現在最熱門的就是Android,iOS,Web 開發,你當初學Android 肯定是有所了解的,但這並代表以後一直都很熱門,萬一以後沒落了怎麼辦?那再說吧,既然現在在風口上,那就多呆一會吧;雖然說Html 5 有各種優點,各種平台都支持,但從現在發展來看,使用的相對Android 沒那麼熱門;

--------------------------------------華麗麗的分割線-------------------------------------------------------

以上僅僅是個人的觀點,僅供參考。


UI


我猜想樓主目前也只是接觸開發了一些功能比較簡單的app, 感覺目前掌握的東西已經可以寫大部分app了,所以才感覺遇到瓶頸。其實android博大精深,你可能只是接觸了冰山一角,還有許多方面可以研究,作為學生,應該不太容易接觸到大型app的開發,建議現在階段先讀android源碼, 對掌握一些系統級別的東西,將來畢業可以選擇app、framework等方面的工作,接觸到大型項目的時候,你就明白為什麼現在階段沒必要轉html5了


作為一個學了半年android的渣渣(課餘時間做點android的項目),我感覺學習一門語言最重要的是要經常 谷歌 ,要有很強的自己解決問題的能力。還有就是要與同類人經常在一塊交流學習,一個人的話視野太窄。要是時間多的很,就讀讀android的源碼吧,很多頭痛的問題也就迎刃而解了。

------------------------------------------------------------------------------------------------------------------------------------------

分割線

最開始對題主的問題有了一些誤解

下面說一下自己對題干中那些能力的了解(勿噴)。

首先來講,題主所說的那幾種能力,單獨拿出任意一種都是能夠學很久的,還有就是一個精良的app,可能並不是一個人開發的,UI需要一些人設計,後台需要另外一些人去寫,代碼優化,性能提升還得需要一部分人。

一個android的app首先需要有設計模式,也是就是說5.0需要符合material design的風格之類的。當你的app需要一些性能的優化來講的話,需要演算法方面的知識和對對源碼的一些了解。軟體工程的知識大體上來講可能就是對整個開發過程的一個掌控。

所以,這個最後得看你自己的選擇方向啦。

PM的話:軟體工程方面的知識+各個方面有大致的了解

android UI:需要有UI設計模式+一些UI上面的技術

android 後台優化:演算法+android源碼

獨立開發者:都要懂一點啊。

(說的不好的話,題主見諒)


我想問的是題主怎麼接私活的,謝謝。


zzzzzzzzzzzzzzzzzzzzzz


遇到問題有解決問題的能力


敏銳的直覺最重要,否則就只有一直做外包


反編譯,學會之後可以模仿任何app


推薦閱讀:

Android中,在子線程使用Toast會報錯?
安卓手機應用中界面切換卡頓和滑動卡頓的區別是什麼,請從專業角度解釋?或者給出一個開發者需要注意事項?
如何評價 2017 年 8 月 21 日發布的 Android Oreo (8.0)?
Android開發,剛進入時被用戶關閉定位許可權,然後怎麼又在後面打開?
PC上開發一個安卓模擬器,至少需要搭配怎樣的團隊,做到夜神、海馬、逍遙的程度有多大?

TAG:程序員 | 演算法 | Android應用 | Android開發 | Android |