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