一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Android工程師怎樣自我提升

工程師人生 ? 來(lái)源:工程師吳畏 ? 2019-03-28 14:13 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

看到一篇文章中提到“最近幾年國(guó)內(nèi)的初級(jí)Android程序員已經(jīng)很多了,但是中高級(jí)的Android技術(shù)人才仍然稀缺“,這的確不假,從我在百度所進(jìn)行的一些面試來(lái)看,找一個(gè)適合的高級(jí)Android工程師的確不容易,一般需要進(jìn)行大量的面試才能挑選出一個(gè)比較滿(mǎn)意的。為什么中高級(jí)Android程序員不多呢?這是一個(gè)問(wèn)題,我不好回答,但是我想寫(xiě)一篇文章來(lái)描述下Android的學(xué)習(xí)路線(xiàn),期望可以幫助更多的Android程序員提升自己。由于我也是從一個(gè)菜鳥(niǎo)過(guò)來(lái)的,所以我會(huì)結(jié)合我的個(gè)人經(jīng)歷以及我對(duì)Android學(xué)習(xí)過(guò)程的認(rèn)識(shí)來(lái)寫(xiě)這篇文章,這會(huì)讓這篇文章更加真實(shí),而并非紙上談兵。

我的工作經(jīng)歷

前面說(shuō)到,我也是從一個(gè)Android菜鳥(niǎo)過(guò)來(lái)的。其實(shí)這句話(huà)放在任何人的身上都是適用的,即大家都是一步步過(guò)來(lái)的,因此作為初學(xué)者也不必因?yàn)榧夹g(shù)差而郁悶,同理,高手也不要看不起一些所謂的菜鳥(niǎo),因?yàn)檫@不公平,技術(shù)只有在同等的工作年限上才具有一定的可比性,也許你眼中的菜鳥(niǎo)只是個(gè)工作半年的新手,而你已經(jīng)工作5年,可想而知,這根本不具有可比性,搞不好別人5年后可以達(dá)到比你更高的技術(shù)高度。

我有若干個(gè)技術(shù)QQ群,群里的小伙伴對(duì)我的工作經(jīng)歷比較感興趣,剛好在這里我就做下介紹。我是碩士研究生畢業(yè),我已經(jīng)工作3年零3個(gè)月了,職位上從最開(kāi)始的騰訊初級(jí)工程師變成了現(xiàn)在的百度Android資深工程師。最開(kāi)始我并不是做Android的,先是做了半年的C++,接著做了3個(gè)月的Web前端,然后公司內(nèi)部轉(zhuǎn)崗做Android到至今,純Android工作年限的話(huà)其實(shí)是2.5年。但是我認(rèn)為我的Android工作經(jīng)驗(yàn)(注:工作年限不等同于工作經(jīng)驗(yàn))不止2.5年,我投入大量的業(yè)余時(shí)間在Android開(kāi)發(fā)上,并且我習(xí)慣去思考問(wèn)題、總結(jié)問(wèn)題并將其融會(huì)貫通,因此我的Android技術(shù)在短時(shí)間內(nèi)有了很大的提升。

在Android學(xué)習(xí)過(guò)程中,初學(xué)者踩過(guò)的坑我也都踩過(guò),我也深深地知道大家在學(xué)習(xí)過(guò)程中最棘手的問(wèn)題是什么。舉個(gè)例子,在3年前,我想在SlidingMenu中放入一個(gè)ListView,發(fā)現(xiàn)二者總是不能很好地一起工作,這肯定是由于滑動(dòng)沖突的問(wèn)題,我也知道,但是不知道怎么解決。我就去學(xué)校圖書(shū)館翻遍了所有的Android書(shū)籍,無(wú)果。大家肯定都知道原因,為什么我無(wú)法從書(shū)中查找到問(wèn)題的答案,因?yàn)槿腴T(mén)書(shū)不講滑動(dòng)沖突,所謂的高級(jí)編程書(shū)也不講。還有一個(gè)問(wèn)題,我曾經(jīng)以為view.post(runnable)可以讓runnable的run方法在線(xiàn)程中執(zhí)行,所以我就在run方法里面去做耗時(shí)的操作,現(xiàn)在想想我當(dāng)時(shí)是多菜啊,因此我曾經(jīng)也是菜鳥(niǎo)。

直到若干年后的某一天,我終于琢磨透了滑動(dòng)沖突的事,然后我就把解決問(wèn)題的思想寫(xiě)在了CSDN博客上,但是好像看得人并不多,很多人并不能體會(huì)我的用心,后來(lái)我博客的訪(fǎng)問(wèn)量越來(lái)越大,這才慢慢地得到了一些人的關(guān)注。后來(lái)有一天我有了寫(xiě)書(shū)的契機(jī),我想到了我最開(kāi)始學(xué)習(xí)Android時(shí)所踩過(guò)的坑,想到滑動(dòng)沖突對(duì)我的困擾,為了更好地傳播我的技術(shù)經(jīng)驗(yàn),為了讓更多的人少踩一些坑,為了讓更多地人成為Android高級(jí)工程師,我毅然決定將Android開(kāi)發(fā)中最重要的、最疑難的、最容易困擾大家的、成為高級(jí)工程師所必備的知識(shí)點(diǎn)和盤(pán)托出,這就是《Android開(kāi)發(fā)藝術(shù)探索》 存在的原因以及意義。書(shū)的反響怎么樣呢?從目前讀者的評(píng)價(jià)來(lái)看,內(nèi)容基本無(wú)差評(píng),我收到了很多讀者的肯定以及感謝,這說(shuō)明很多人能夠理解我的用心。

說(shuō)了那么多,言歸正傳,下面說(shuō)下Android學(xué)習(xí)路線(xiàn)的話(huà)題,本文打算從4個(gè)階段來(lái)對(duì)Android的學(xué)習(xí)過(guò)程做一個(gè)全面的分析,分別為Android初級(jí)、中級(jí)、高級(jí)以及資深工程師,具體請(qǐng)看下面的分析。同理,本篇學(xué)習(xí)路線(xiàn)仍然只針對(duì)Android應(yīng)用開(kāi)發(fā),不針對(duì)Rom開(kāi)發(fā)和逆向工程等。這里虛擬一位“小明”的角色,在這里小明就是Android初學(xué)者的代表。

初級(jí)工程師

小明之前完全沒(méi)接觸過(guò)Android開(kāi)發(fā),是個(gè)應(yīng)屆生,他的待遇是13k,然后小明以校招的身份進(jìn)入了百度,然后小明需要怎么學(xué)習(xí)才能成為初級(jí)工程師呢?這個(gè)時(shí)候,小明對(duì)編程基礎(chǔ)、數(shù)據(jù)結(jié)構(gòu)、C語(yǔ)言都有一定基礎(chǔ),Java語(yǔ)法什么的也都掌握的比較好,Android才有java語(yǔ)言,無(wú)奈的是小明并不會(huì)搞Android。

小明首先需要購(gòu)買(mǎi)一本Android入門(mén)的書(shū)籍,為了更快地學(xué)習(xí)Android,小明業(yè)余時(shí)間也都用來(lái)一邊看書(shū)一邊照著書(shū)中的例子敲代碼,結(jié)果2周時(shí)間小明就把這本書(shū)學(xué)了一遍??赐赀@本書(shū)后,小明對(duì)Android的歷史、結(jié)構(gòu)、代碼規(guī)范等都有了一個(gè)大概的了解,并且,小明已經(jīng)可以寫(xiě)出一些簡(jiǎn)單的Activity了。這個(gè)時(shí)候在小明眼里,Android開(kāi)發(fā)很簡(jiǎn)單很好玩,通過(guò)在xml中擺放一些按鈕文本框什么的就可以做一些界面了。

小明開(kāi)始跟著他的技術(shù)導(dǎo)師做需求,一些簡(jiǎn)單的小需求小明自然是不在話(huà)下了。突然有一天來(lái)了一個(gè)需求,該需求要求小明在Activity中為一個(gè)button加一個(gè)動(dòng)畫(huà)效果,小明慌了:“完全沒(méi)接觸過(guò),書(shū)上也沒(méi)有講,怎么辦呢?”小明冷靜了下,打開(kāi)了百度搜索,輸入“Android 動(dòng)畫(huà)”,打開(kāi)前幾個(gè)鏈接,小明恍然大悟,照著網(wǎng)上的例子把需求給實(shí)現(xiàn)了。后來(lái)導(dǎo)師告訴他:“學(xué)好Android,官方文檔是必須看的,既全面又權(quán)威”。然后小明如獲至寶,花了一年時(shí)間把上面的guide和training都看了一遍,并且他還動(dòng)手抄了幾個(gè)小例子。

有一天,小明又需要做一個(gè)動(dòng)畫(huà)相關(guān)的需求,這可難不倒小明,它熟練地打開(kāi)了www.baidu.com,輸入“Android 動(dòng)畫(huà)”,突然他楞了一下:”總不能每次寫(xiě)動(dòng)畫(huà)都要百度一下吧!“,于是他在CSDN開(kāi)了一個(gè)博客,把動(dòng)畫(huà)相關(guān)的知識(shí)點(diǎn)都寫(xiě)上去,為的是后面再寫(xiě)動(dòng)畫(huà)相關(guān)的代碼就不用百度去搜了,事實(shí)如何呢?后面再寫(xiě)動(dòng)畫(huà)相關(guān)的代碼,小明的確不用再去百度搜了,因?yàn)橥ㄟ^(guò)寫(xiě)一篇?jiǎng)赢?huà)博客,他把動(dòng)畫(huà)相關(guān)的細(xì)節(jié)都已經(jīng)記住了,這樣他就可以不用再去參考任何文檔了,后來(lái)小明還學(xué)會(huì)了把一些瑣碎的不方便放在博客上的東西寫(xiě)到了印象筆記上面,什么時(shí)候忘了10秒鐘以?xún)?nèi)都可以快速找回來(lái),而不是花10分鐘去再次搜索一遍。

這里總結(jié)一下,Android入門(mén)的時(shí)候,需要有一本入門(mén)書(shū),好好學(xué)習(xí)書(shū)中的內(nèi)容,同時(shí)花一年時(shí)間把Android官方文檔中的training和guide看一遍,同時(shí)通過(guò)寫(xiě)博客和記筆記的方式來(lái)做總結(jié),建議讓自己的每篇博客都有價(jià)值些。通過(guò)一年時(shí)間的學(xué)習(xí),相信每個(gè)人都可以達(dá)到中級(jí)工程師的水平。

技術(shù)要求:

- 基本知識(shí)點(diǎn)

比如四大組件如何使用、如何創(chuàng)建Service、如何進(jìn)行布局、簡(jiǎn)單的自定義View、動(dòng)畫(huà)等常見(jiàn)技術(shù)

- 書(shū)籍推薦

《第一行代碼 Android》、《瘋狂Android》

中級(jí)工程師

小明經(jīng)過(guò)一年的努力學(xué)習(xí)終于成為Android中級(jí)工程師了,月薪變成了17k。到了中級(jí)工程師,已經(jīng)可以在公司里干很多體力活了,但是一些很重要的任務(wù)小明還不能一個(gè)人承擔(dān)起來(lái),這個(gè)時(shí)候小明需要學(xué)習(xí)的內(nèi)容就很多了,如下所示:

- AIDL:熟悉AIDL,理解其工作原理,懂transact和onTransact的區(qū)別;

- Binder:從Java層大概理解Binder的工作原理,懂Parcel對(duì)象的使用;

- 多進(jìn)程:熟練掌握多進(jìn)程的運(yùn)行機(jī)制,懂Messenger、Socket等;

- 事件分發(fā):彈性滑動(dòng)、滑動(dòng)沖突等;

- 玩轉(zhuǎn)View:View的繪制原理、各種自定義View;

- 動(dòng)畫(huà)系列:熟悉View動(dòng)畫(huà)和屬性動(dòng)畫(huà)的不同點(diǎn),懂屬性動(dòng)畫(huà)的工作原理;

- 懂性能優(yōu)化、熟悉mat等工具

- 懂點(diǎn)常見(jiàn)的設(shè)計(jì)模式

學(xué)習(xí)方法

閱讀進(jìn)階書(shū)籍,閱讀Android源碼,閱讀官方文檔并嘗試自己寫(xiě)相關(guān)的技術(shù)文章,需要有一定技術(shù)深度和自我思考。在這個(gè)階段的學(xué)習(xí)過(guò)程中,有2個(gè)點(diǎn)是比較困擾大家的,一個(gè)是閱讀源碼,另一個(gè)是自定義View以及滑動(dòng)沖突。

如何閱讀源碼呢?這是個(gè)頭疼的問(wèn)題,但是源碼必須要讀。閱讀源碼的時(shí)候不要深入代碼細(xì)節(jié)不可自拔,要關(guān)注代碼的流程并盡量挖掘出對(duì)應(yīng)用層開(kāi)發(fā)有用的結(jié)論。另外仔細(xì)閱讀源碼中對(duì)一個(gè)類(lèi)或者方法的注釋?zhuān)诳床欢创a時(shí),源碼中的注釋可以幫你更好地了解源碼中的工作原理,這個(gè)過(guò)程雖然艱苦,但是別無(wú)他法。

如何玩轉(zhuǎn)自定義View呢?我的建議是不要通過(guò)學(xué)習(xí)自定義view而學(xué)習(xí)自定義view。為什么這么說(shuō)呢?因?yàn)樽远xview的種類(lèi)太多了,各式各樣的絢麗的自定義效果,如何學(xué)的玩呢!我們要透過(guò)現(xiàn)象看本質(zhì),更多地去關(guān)注自定義view所需的知識(shí)點(diǎn),這里做如下總結(jié):

- 搞懂view的滑動(dòng)原理

- 搞懂如何實(shí)現(xiàn)彈性滑動(dòng)

- 搞懂view的滑動(dòng)沖突

- 搞懂view的measure、layout和draw

- 然后再學(xué)習(xí)幾個(gè)已有的自定義view的例子

- 最后就可以搞定自定義view了,所謂萬(wàn)變不離其宗

大概再需要1-2年時(shí)間,即可達(dá)到高級(jí)工程師的技術(shù)水平。我個(gè)人認(rèn)為通過(guò)《Android開(kāi)發(fā)藝術(shù)探索》和《Android群英傳》可以縮短這個(gè)過(guò)程為0.5-1年。注意,達(dá)到高級(jí)工程師的技術(shù)水平不代表就可以立刻成為高級(jí)工程師(受機(jī)遇、是否跳槽的影響),但是技術(shù)達(dá)到了,成為高級(jí)工程師只是很簡(jiǎn)單的事。

技術(shù)要求:

- 稍微深入的知識(shí)點(diǎn)

AIDL、Messenger、Binder、多進(jìn)程、動(dòng)畫(huà)、滑動(dòng)沖突、自定義View、消息隊(duì)列等

- 書(shū)籍推薦

《Android開(kāi)發(fā)藝術(shù)探索》、《Android群英傳》

高級(jí)工程師

小明成為了夢(mèng)寐以求的高級(jí)工程師,月薪達(dá)到了20k,還拿到了一丟丟股票。這個(gè)時(shí)候小明的Android水平已經(jīng)不錯(cuò)了,但是小明的目標(biāo)是資深工程師,小明聽(tīng)說(shuō)資深工程師月薪可以達(dá)到30k+。

為了成為Android資深工程師,需要學(xué)習(xí)的東西就更多了,并且有些并不是那么具體了,如下所示:

- 繼續(xù)加深理解”稍微深入的知識(shí)點(diǎn)“中所定義的內(nèi)容

- 了解系統(tǒng)核心機(jī)制:

1.了解SystemServer的啟動(dòng)過(guò)程

2. 了解主線(xiàn)程的消息循環(huán)模型

3. 了解AMS和PMS的工作原理

4. 能夠回答問(wèn)題”一個(gè)應(yīng)用存在多少個(gè)Window?“

5. 了解四大組件的大概工作流程

6. …

- 基本知識(shí)點(diǎn)的細(xì)節(jié)

1. Activity的啟動(dòng)模式以及異常情況下不同Activity的表現(xiàn)

2. Service的onBind和onReBind的關(guān)聯(lián)

3. onServiceDisconnected(ComponentName className)和binderDied()的區(qū)別

4. AsyncTask在不同版本上的表現(xiàn)細(xì)節(jié)

5. 線(xiàn)程池的細(xì)節(jié)和參數(shù)配置

6. …

- 熟悉設(shè)計(jì)模式,有架構(gòu)意識(shí)

學(xué)習(xí)方法

這個(gè)時(shí)候已經(jīng)沒(méi)有太具體的學(xué)習(xí)方法了,無(wú)非就是看書(shū)、看源碼和做項(xiàng)目,平時(shí)多種總結(jié),盡量將知識(shí)融會(huì)貫通從而形成一種體系化的感覺(jué)。同時(shí)這個(gè)階段對(duì)架構(gòu)是有一定要求的,架構(gòu)是抽象的,但是設(shè)計(jì)模式是具體的,所以一定要加強(qiáng)下設(shè)計(jì)模式的學(xué)習(xí)。關(guān)于設(shè)計(jì)模式的學(xué)習(xí),最近一本新書(shū)推薦給大家《Android 源碼設(shè)計(jì)模式解析與實(shí)戰(zhàn)》,既可以學(xué)習(xí)設(shè)計(jì)模式,又可能體會(huì)到Android源碼中的設(shè)計(jì)思想,我最近也在閱讀此書(shū)。

技術(shù)要求:

- 稍微深入的知識(shí)點(diǎn)

- 系統(tǒng)核心機(jī)制

- 基本知識(shí)點(diǎn)的細(xì)節(jié)

- 設(shè)計(jì)模式和架構(gòu)

- 書(shū)籍推薦

《Android開(kāi)發(fā)藝術(shù)探索》、《Android 源碼設(shè)計(jì)模式解析與實(shí)戰(zhàn)》、《Android內(nèi)核剖析》

資深工程師

我還正處于這個(gè)階段,還在摸索中前進(jìn)。..

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Android
    +關(guān)注

    關(guān)注

    12

    文章

    3973

    瀏覽量

    130250
  • 工程師
    +關(guān)注

    關(guān)注

    59

    文章

    1590

    瀏覽量

    69497
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    (仰天長(zhǎng)嘯)為什么受傷的總是硬件工程師...#MDD#MDD辰達(dá)半導(dǎo)體 #電子工程師

    電子工程師
    MDD辰達(dá)半導(dǎo)體
    發(fā)布于 :2025年04月27日 18:21:47

    問(wèn),成為硬件工程師需要幾只手?#硬件工程師 #YXC晶振 #揚(yáng)興科技 #搞笑

    硬件工程師
    揚(yáng)興科技
    發(fā)布于 :2025年04月25日 17:15:37

    硬件工程師:回答我!#回答我 #硬件工程師 #YXC晶振 #揚(yáng)興科技

    硬件工程師
    揚(yáng)興科技
    發(fā)布于 :2025年03月25日 18:46:59

    一招拿捏電子工程師#被AI拿捏了 #電子工程師 #電子電工

    電子工程師
    安泰小課堂
    發(fā)布于 :2025年03月25日 17:30:51

    硬件工程師的終極幻想:焊板子焊上人生巔峰!#半導(dǎo)體器件 #硬件工程師 #MDD辰達(dá)半導(dǎo)體

    硬件工程師
    MDD辰達(dá)半導(dǎo)體
    發(fā)布于 :2025年02月24日 19:00:35

    Keysight助力提升工程師的測(cè)試測(cè)量知識(shí)水平

    Keysight為您解鎖測(cè)試測(cè)量領(lǐng)域的最新知識(shí),助力工程師在快速變化的科技環(huán)境中保持競(jìng)爭(zhēng)力。
    的頭像 發(fā)表于 10-16 09:28 ?831次閱讀

    FPGA算法工程師、邏輯工程師、原型驗(yàn)證工程師有什么區(qū)別?

    ,如數(shù)字信號(hào)處理、圖像處理、人工智能等,并將其轉(zhuǎn)化為適合 FPGA 實(shí)現(xiàn)的硬件邏輯。重點(diǎn)在于算法的性能提升、資源利用效率以及與系統(tǒng)的集成。 FPGA 邏輯工程師: 側(cè)重于 FPGA 內(nèi)部邏輯電路
    發(fā)表于 09-23 18:26

    正是拼的年紀(jì)|65歲電子工程師上班VLOG #65歲退休 #電子工程師 #搞笑 #上班vlog

    電子工程師
    安泰小課堂
    發(fā)布于 :2024年07月25日 11:31:02

    用二創(chuàng),1:1復(fù)刻工程師的職場(chǎng)現(xiàn)狀

    工程師
    揚(yáng)興科技
    發(fā)布于 :2024年07月19日 18:30:07