什么是Android高級工程師
這個(gè)強(qiáng)調(diào)一個(gè)概念,快速。
如果一個(gè)開發(fā)者,想成為一個(gè)高級工程師,去做高級工程師需要做的事,了解一個(gè)高級工程師需要的知識(shí),然后一步一步學(xué)習(xí),都弄懂弄會(huì),這樣就是一個(gè)高級工程師了,這個(gè)過程可以量化,就是學(xué)習(xí)會(huì)這些知道就行,如果想繼續(xù)進(jìn)階可能就不是量化的問題了,這里只討論Android高級工程師的問題。那么如何成為一個(gè)高級Android工程師,就變得比較清晰了。
學(xué)會(huì)基礎(chǔ)知識(shí)
Java基礎(chǔ),多線程,泛型,反射,IO,異常處理,集合框架等等都需要吃透。
Android基礎(chǔ),四大組件,Android的是異步調(diào)用,View的 繪制流程,觸摸事件流程,都應(yīng)該吃透
還有很多不一一列舉了,這些是基礎(chǔ)部分。
進(jìn)階學(xué)習(xí)
基礎(chǔ)的東西,也要進(jìn)階,這個(gè)是同步的,比如多線程應(yīng)該了解多線程并發(fā)庫等高級用法,什么類加載器,垃圾回收等等都應(yīng)該有個(gè)自己的了解,還有第三方庫,至少都會(huì)使用大部分庫吧,什么Gson,F(xiàn)astJson,EventBus,Volley,Okhttp ,Glide,F(xiàn)resco,ButterKnife 。等等都應(yīng)該有會(huì)熟練使用把。這寫也只是中級程序員就應(yīng)該掌握了的內(nèi)容。
高級程序員應(yīng)該掌握上面的所有內(nèi)容作為基礎(chǔ)內(nèi)容,還要了解每個(gè)技術(shù)的原理和作用。對第三方庫不只是使用,還要了解原理,還要能根據(jù)原理自己寫出一部分庫。能封裝自己的庫。而不是只停留在使用上面,這些東西使用都是非常簡單的,看一下文檔就能用了,可能用額不夠精準(zhǔn),但是作為一個(gè)高級程序員,是一定一定要知道他們實(shí)現(xiàn)的原理的,計(jì)算寫不出一樣的代碼,也能知道人家是怎么實(shí)現(xiàn)的,這是一個(gè)高級程序員最低的標(biāo)準(zhǔn)了。
快速成為Android高級工程師會(huì)遇到的問題
多看書,多做項(xiàng)目,看什么書網(wǎng)上推薦的特別多。
那么問題來了。看書就能成為高級工程師,做項(xiàng)目就能成為高級工程師,看看文章就能成為高級工程師。如果可以的話,那么我直接買幾本書,在家看看,然后做幾個(gè)小項(xiàng)目就好了。如果這樣就能成為高級工程師,那么我就先在家好好學(xué)習(xí)學(xué)習(xí),然后成為高級工程師,再去找工作吧,這樣不是很好么。當(dāng)然這是不可能的,或者說大多數(shù)人是不可能的,不排除有那些天才啦,還有刻苦和會(huì)學(xué)習(xí)的人?;蛟S很多人會(huì)說,這個(gè)是看工作年限的, 如果你工作都沒工作,怎么可能會(huì)是高級工程師呢,這確實(shí)是個(gè)問題,雖然你的能力確實(shí)跟你工作年限有關(guān),但是這些東西確實(shí)不只是靠年限堆出來的。而且這些東西確實(shí)也不是只看書就能看出來的,這里需要的是一個(gè)系統(tǒng)的學(xué)習(xí)過程。
這里強(qiáng)調(diào)一下,一定是一個(gè)系統(tǒng)的學(xué)習(xí)過程,要把很多東西方方面面都了解,吃透,這個(gè)過程需要很長一段時(shí)間,快的話二三年,慢的畫5年以上也正常。確實(shí)不是很快能吃透的,第一是東西確實(shí)挺多,第二是東西確實(shí)比較抽象,真的理解還會(huì)使用,需要一個(gè)系統(tǒng)的學(xué)習(xí)和使用過程。但是大部分二三的工程師達(dá)不到這個(gè)水平,可以說真的少之又少,那么這些東西學(xué)多久適合呢,我定的標(biāo)準(zhǔn)是三年,如果一個(gè)工程師,按正常的流程學(xué)習(xí),正常工作,一點(diǎn)點(diǎn)進(jìn)步,三年左右達(dá)到這個(gè)水平,一般都是可以的。只是這樣的工程師真的不多,而大多數(shù)是三年之后,最多是個(gè)中級水平。這個(gè)就是現(xiàn)在軟件開發(fā)的現(xiàn)狀。
我見過太多三五年的工程師的基礎(chǔ)太爛了,為什么強(qiáng)調(diào)基礎(chǔ),如果基礎(chǔ)不吃透,你去學(xué)習(xí)別的東西會(huì)花費(fèi)更多的時(shí)間,而很多人就是這樣不注重基礎(chǔ),他們可能會(huì)很多新的框架,新的技術(shù),但是就是不去學(xué)習(xí)基礎(chǔ),然后他們最多也只是會(huì)用別人的框架,根本連框架原理都弄不明白,更別說寫一個(gè)框架了,所以這里強(qiáng)調(diào)基礎(chǔ)的重要就是,只有你有基礎(chǔ)你才能真的去理解別人的代碼,你能更有效的控制你的代碼。
那么為什么現(xiàn)在的工程師很多是這樣的呢,第一點(diǎn),就是大多數(shù)人,不知道應(yīng)該如何學(xué),很多東西,也想學(xué)不知道如何下手,別人代碼看不懂,又覺得自己基礎(chǔ)還行,不愛看基礎(chǔ)的東西,總想直接學(xué)好更高級的東西,這樣惡性循環(huán)就變成了,基礎(chǔ)沒學(xué)好,高級的東西學(xué)不會(huì)。如果有人注重基礎(chǔ),慢慢一步一步啃會(huì)是什么樣子呢,那么他會(huì)花很大一部分時(shí)間去學(xué)習(xí)基礎(chǔ)的理論,然后基礎(chǔ)弄扎實(shí)了,在學(xué)習(xí)高級點(diǎn)的東西,這樣可以么。答案又是否定的。如果死扣基礎(chǔ),不去學(xué)習(xí)高級的東西。這個(gè)過程會(huì)遇到一系列新的問題,基礎(chǔ)不知道應(yīng)該學(xué)什么,學(xué)到什么程度,需要花費(fèi)多少時(shí)間學(xué)習(xí),然后學(xué)完了怎么用,然后什么時(shí)候復(fù)習(xí)這些問題。就變成了不知道學(xué)什么了反而基礎(chǔ)也沒有學(xué)好,還是沒有什么用的狀態(tài)。
那么如何快速成為Android高級工程師呢
通過上面的分析之后我們考慮,我們?nèi)绾慰焖俚某蔀橐粋€(gè)優(yōu)秀的Android開發(fā)工程師呢。
第一步 夯實(shí)基礎(chǔ)。
Java基礎(chǔ),多線程,泛型,反射,IO,異常處理,集合框架等等都需要吃透。
Android基礎(chǔ),四大組件,Android的是異步調(diào)用,View的 繪制流程,觸摸事件流程,都應(yīng)該吃透
這個(gè)是前提
第二步 多寫代碼。
只看不寫效果是最差的,只寫不看都比這好一點(diǎn),那么代碼一定要寫出來,然后一步步測試。讓代碼在自己的掌握之中。
做項(xiàng)目會(huì)讓你看到很多你需要了解的東西,能檢驗(yàn)?zāi)銓芏鄸|西的了解。
做項(xiàng)目會(huì)讓你積累很多看書無法了解的東西。
第三步 分析代碼。
如果你有基礎(chǔ),你可以分析別人寫的代碼,看看人家代碼的原理,這個(gè)是必須要了解的。
要不要自己寫各種第三方庫,能寫當(dāng)然是好的,但是精力有限。全寫必然費(fèi)時(shí)費(fèi)力。你有那么多時(shí)間么,所以可以寫幾個(gè)就行了。
也可以看網(wǎng)上的文章,看別人如何分析第三方庫原理的,做到理解,這樣能快速的理解第三方庫的原理,但是這樣做也有弊端,就是你只是看了一遍,然后也就忘了,最好跟著人家的分析簡單寫寫代碼,看看你寫的跟人家到底有什么區(qū)別,一個(gè)是了解自己的實(shí)力,一個(gè)是能真的看到人家是如何去實(shí)現(xiàn)這個(gè)東西的,了解項(xiàng)目的精髓。
第四步 開發(fā)自己的框架庫。
如果前幾個(gè)做好了,這個(gè)就變成水到渠成的東西了。
開發(fā)自己的框架有很多好處。
第一個(gè)就是證明自己的能力,有能力開發(fā)一個(gè)適合自己在工作中使用的框架的能。比如說一個(gè)工具類庫。
第二個(gè)對代碼的掌控力,有自己的框架,如果項(xiàng)目需求有什么修改,自己能知道如何修改達(dá)到自己的項(xiàng)目需求,如果使用的是第三方的,可能沒辦法去修改。
第三個(gè)就是開發(fā)自己的框架,能更快速的開發(fā)自己的項(xiàng)目。自己寫的東西總比別人的熟悉。
這個(gè)過程做完,基本也就達(dá)到一個(gè)高級工程師應(yīng)該有的水平了,這些東西只要學(xué)都能學(xué)會(huì)。
這樣一步一步來肯定能成功,但是這并不是一個(gè)優(yōu)等的方案。一個(gè)好的方案是,有一個(gè)更好的指導(dǎo),指導(dǎo)我什么時(shí)候應(yīng)該看什么,應(yīng)該學(xué)什么,知道自己哪里不會(huì),然后知道如何去學(xué),可是這個(gè)東西確實(shí)缺失的,不會(huì)有那么一個(gè)人,那么了解我的情況。然后根據(jù)我的情況,幫我量身定做一個(gè)學(xué)習(xí)計(jì)劃,然后根據(jù)具體情況,制定不同時(shí)期的不同計(jì)劃,然后給我講解,我看不懂的東西。其實(shí)我在學(xué)習(xí)的過程中一直希望有那么一個(gè)人,會(huì)一直指引我去學(xué)習(xí),一直指導(dǎo)我,如何去進(jìn)步,幫我解決我工作學(xué)習(xí)過程中遇到的問題。
計(jì)劃
本人做Android7年,也經(jīng)歷了各種迷茫期,各種瓶頸期。我想做一個(gè)東西,這個(gè)東西,能幫更多的程序員,從一個(gè)技術(shù)小白到一個(gè)高級的Android工程師。
-
Android
+關(guān)注
關(guān)注
12文章
3962瀏覽量
129525 -
工程師
+關(guān)注
關(guān)注
59文章
1587瀏覽量
69206
發(fā)布評論請先 登錄

如何成為一名合格的KaihongOS南向驅(qū)動(dòng)開發(fā)工程師
如何成為一名合格的KaihongOS北向應(yīng)用開發(fā)工程師
工程師經(jīng)驗(yàn)分享:社區(qū)之星 趙云 沉著穩(wěn)定才能做好技術(shù)

如何成為一名嵌入式軟件工程師?
Allegro工程師能力升級建議 工程師技能如何升級進(jìn)階

如何成為嵌入式開發(fā)工程師?
如何成為一名合格的南向驅(qū)動(dòng)開發(fā)工程師
如何成為一名合格的北向應(yīng)用開發(fā)工程師
為什么嵌入式驅(qū)動(dòng)開發(fā)工程師可以拿高薪?
OpenAI從谷歌DeepMind挖角三名高級工程師
運(yùn)行GDE時(shí)會(huì)出現(xiàn)斷音如何解決?

評論