什么是Android高級工程師
這個強調(diào)一個概念,快速。
如果一個開發(fā)者,想成為一個高級工程師,去做高級工程師需要做的事,了解一個高級工程師需要的知識,然后一步一步學(xué)習(xí),都弄懂弄會,這樣就是一個高級工程師了,這個過程可以量化,就是學(xué)習(xí)會這些知道就行,如果想繼續(xù)進階可能就不是量化的問題了,這里只討論Android高級工程師的問題。那么如何成為一個高級Android工程師,就變得比較清晰了。
學(xué)會基礎(chǔ)知識
Java基礎(chǔ),多線程,泛型,反射,IO,異常處理,集合框架等等都需要吃透。
Android基礎(chǔ),四大組件,Android的是異步調(diào)用,View的 繪制流程,觸摸事件流程,都應(yīng)該吃透
還有很多不一一列舉了,這些是基礎(chǔ)部分。
進階學(xué)習(xí)
基礎(chǔ)的東西,也要進階,這個是同步的,比如多線程應(yīng)該了解多線程并發(fā)庫等高級用法,什么類加載器,垃圾回收等等都應(yīng)該有個自己的了解,還有第三方庫,至少都會使用大部分庫吧,什么Gson,F(xiàn)astJson,EventBus,Volley,Okhttp ,Glide,F(xiàn)resco,ButterKnife 。等等都應(yīng)該有會熟練使用把。這寫也只是中級程序員就應(yīng)該掌握了的內(nèi)容。
高級程序員應(yīng)該掌握上面的所有內(nèi)容作為基礎(chǔ)內(nèi)容,還要了解每個技術(shù)的原理和作用。對第三方庫不只是使用,還要了解原理,還要能根據(jù)原理自己寫出一部分庫。能封裝自己的庫。而不是只停留在使用上面,這些東西使用都是非常簡單的,看一下文檔就能用了,可能用額不夠精準,但是作為一個高級程序員,是一定一定要知道他們實現(xiàn)的原理的,計算寫不出一樣的代碼,也能知道人家是怎么實現(xiàn)的,這是一個高級程序員最低的標準了。
快速成為Android高級工程師會遇到的問題
多看書,多做項目,看什么書網(wǎng)上推薦的特別多。
那么問題來了。看書就能成為高級工程師,做項目就能成為高級工程師,看看文章就能成為高級工程師。如果可以的話,那么我直接買幾本書,在家看看,然后做幾個小項目就好了。如果這樣就能成為高級工程師,那么我就先在家好好學(xué)習(xí)學(xué)習(xí),然后成為高級工程師,再去找工作吧,這樣不是很好么。當(dāng)然這是不可能的,或者說大多數(shù)人是不可能的,不排除有那些天才啦,還有刻苦和會學(xué)習(xí)的人。或許很多人會說,這個是看工作年限的, 如果你工作都沒工作,怎么可能會是高級工程師呢,這確實是個問題,雖然你的能力確實跟你工作年限有關(guān),但是這些東西確實不只是靠年限堆出來的。而且這些東西確實也不是只看書就能看出來的,這里需要的是一個系統(tǒng)的學(xué)習(xí)過程。
這里強調(diào)一下,一定是一個系統(tǒng)的學(xué)習(xí)過程,要把很多東西方方面面都了解,吃透,這個過程需要很長一段時間,快的話二三年,慢的畫5年以上也正常。確實不是很快能吃透的,第一是東西確實挺多,第二是東西確實比較抽象,真的理解還會使用,需要一個系統(tǒng)的學(xué)習(xí)和使用過程。但是大部分二三的工程師達不到這個水平,可以說真的少之又少,那么這些東西學(xué)多久適合呢,我定的標準是三年,如果一個工程師,按正常的流程學(xué)習(xí),正常工作,一點點進步,三年左右達到這個水平,一般都是可以的。只是這樣的工程師真的不多,而大多數(shù)是三年之后,最多是個中級水平。這個就是現(xiàn)在軟件開發(fā)的現(xiàn)狀。
我見過太多三五年的工程師的基礎(chǔ)太爛了,為什么強調(diào)基礎(chǔ),如果基礎(chǔ)不吃透,你去學(xué)習(xí)別的東西會花費更多的時間,而很多人就是這樣不注重基礎(chǔ),他們可能會很多新的框架,新的技術(shù),但是就是不去學(xué)習(xí)基礎(chǔ),然后他們最多也只是會用別人的框架,根本連框架原理都弄不明白,更別說寫一個框架了,所以這里強調(diào)基礎(chǔ)的重要就是,只有你有基礎(chǔ)你才能真的去理解別人的代碼,你能更有效的控制你的代碼。
那么為什么現(xiàn)在的工程師很多是這樣的呢,第一點,就是大多數(shù)人,不知道應(yīng)該如何學(xué),很多東西,也想學(xué)不知道如何下手,別人代碼看不懂,又覺得自己基礎(chǔ)還行,不愛看基礎(chǔ)的東西,總想直接學(xué)好更高級的東西,這樣惡性循環(huán)就變成了,基礎(chǔ)沒學(xué)好,高級的東西學(xué)不會。如果有人注重基礎(chǔ),慢慢一步一步啃會是什么樣子呢,那么他會花很大一部分時間去學(xué)習(xí)基礎(chǔ)的理論,然后基礎(chǔ)弄扎實了,在學(xué)習(xí)高級點的東西,這樣可以么。答案又是否定的。如果死扣基礎(chǔ),不去學(xué)習(xí)高級的東西。這個過程會遇到一系列新的問題,基礎(chǔ)不知道應(yīng)該學(xué)什么,學(xué)到什么程度,需要花費多少時間學(xué)習(xí),然后學(xué)完了怎么用,然后什么時候復(fù)習(xí)這些問題。就變成了不知道學(xué)什么了反而基礎(chǔ)也沒有學(xué)好,還是沒有什么用的狀態(tài)。
那么如何快速成為Android高級工程師呢
通過上面的分析之后我們考慮,我們?nèi)绾慰焖俚某蔀橐粋€優(yōu)秀的Android開發(fā)工程師呢。
第一步 夯實基礎(chǔ)。
Java基礎(chǔ),多線程,泛型,反射,IO,異常處理,集合框架等等都需要吃透。
Android基礎(chǔ),四大組件,Android的是異步調(diào)用,View的 繪制流程,觸摸事件流程,都應(yīng)該吃透
這個是前提
第二步 多寫代碼。
只看不寫效果是最差的,只寫不看都比這好一點,那么代碼一定要寫出來,然后一步步測試。讓代碼在自己的掌握之中。
做項目會讓你看到很多你需要了解的東西,能檢驗?zāi)銓芏鄸|西的了解。
做項目會讓你積累很多看書無法了解的東西。
第三步 分析代碼。
如果你有基礎(chǔ),你可以分析別人寫的代碼,看看人家代碼的原理,這個是必須要了解的。
要不要自己寫各種第三方庫,能寫當(dāng)然是好的,但是精力有限。全寫必然費時費力。你有那么多時間么,所以可以寫幾個就行了。
也可以看網(wǎng)上的文章,看別人如何分析第三方庫原理的,做到理解,這樣能快速的理解第三方庫的原理,但是這樣做也有弊端,就是你只是看了一遍,然后也就忘了,最好跟著人家的分析簡單寫寫代碼,看看你寫的跟人家到底有什么區(qū)別,一個是了解自己的實力,一個是能真的看到人家是如何去實現(xiàn)這個東西的,了解項目的精髓。
第四步 開發(fā)自己的框架庫。
如果前幾個做好了,這個就變成水到渠成的東西了。
開發(fā)自己的框架有很多好處。
第一個就是證明自己的能力,有能力開發(fā)一個適合自己在工作中使用的框架的能。比如說一個工具類庫。
第二個對代碼的掌控力,有自己的框架,如果項目需求有什么修改,自己能知道如何修改達到自己的項目需求,如果使用的是第三方的,可能沒辦法去修改。
第三個就是開發(fā)自己的框架,能更快速的開發(fā)自己的項目。自己寫的東西總比別人的熟悉。
這個過程做完,基本也就達到一個高級工程師應(yīng)該有的水平了,這些東西只要學(xué)都能學(xué)會。
這樣一步一步來肯定能成功,但是這并不是一個優(yōu)等的方案。一個好的方案是,有一個更好的指導(dǎo),指導(dǎo)我什么時候應(yīng)該看什么,應(yīng)該學(xué)什么,知道自己哪里不會,然后知道如何去學(xué),可是這個東西確實缺失的,不會有那么一個人,那么了解我的情況。然后根據(jù)我的情況,幫我量身定做一個學(xué)習(xí)計劃,然后根據(jù)具體情況,制定不同時期的不同計劃,然后給我講解,我看不懂的東西。其實我在學(xué)習(xí)的過程中一直希望有那么一個人,會一直指引我去學(xué)習(xí),一直指導(dǎo)我,如何去進步,幫我解決我工作學(xué)習(xí)過程中遇到的問題。
計劃
本人做Android7年,也經(jīng)歷了各種迷茫期,各種瓶頸期。我想做一個東西,這個東西,能幫更多的程序員,從一個技術(shù)小白到一個高級的Android工程師。
-
Android
+關(guān)注
關(guān)注
12文章
3945瀏覽量
127947 -
工程師
+關(guān)注
關(guān)注
59文章
1572瀏覽量
68655
發(fā)布評論請先 登錄
相關(guān)推薦
![](https://file1.elecfans.com/web3/M00/05/24/wKgZPGd9BIKAasMYAAP9Ml_injM792.jpg)
不同時期的硬件工程師,最怕發(fā)生的事 #電子工程師 #硬件工程師 #內(nèi)容過于真實 #YXC晶振 #揚興科技
為什么嵌入式驅(qū)動開發(fā)工程師可以拿高薪?
OpenAI從谷歌DeepMind挖角三名高級工程師
![](https://file1.elecfans.com/web2/M00/07/FB/wKgZombz6VuAFeotAAIjSCj1HKI007.jpg)
嵌入式軟件工程師如何提升自己?
![](https://file1.elecfans.com/web2/M00/EB/14/wKgaomZXAd-AWEwjAAuV2RdwuSM130.png)
索尼誠邀軟件工程師參與PS免費手游平臺設(shè)計
![](https://file1.elecfans.com/web2/M00/DE/DE/wKgZomYwuQ-AegjsAAISSibiD4I286.jpg)
華大九天主任工程師吳大可榮獲“2024年首都勞動獎?wù)隆保?/a>
如何成為一名嵌入式C語言高手?
如何成為一名嵌入式C語言高手?
單片機如何通過代碼控制硬件:一名工程師的分享
![單片機如何通過代碼控制硬件:<b class='flag-5'>一名</b><b class='flag-5'>工程師</b>的分享](https://file1.elecfans.com/web2/M00/C2/D6/wKgZomXoETmAYdSCAADYRReTHqA347.png)
評論