移動互聯(lián)網(wǎng)寒冬
關于 Android 市場需求疚漆,其實從前年開始 Android 就處于寒冬的境地桂敛,最直觀的標志就是缀遍,工作不那么好找了赡矢。因為前幾年移動互聯(lián)網(wǎng)開始流行杭朱,很多創(chuàng)業(yè)公司都是想抓住這個風口,所以就開始招 Android 和 iOS 工程師來開發(fā) App吹散。而且很多培訓機構也大量地培訓 Android 工程師弧械,等到這一兩年需求慢慢飽和了,移動互聯(lián)網(wǎng)這一塊其實已經(jīng)被 BAT 和其他的一些巨頭公司瓜分了空民,所以很多創(chuàng)業(yè)公司都倒閉了刃唐,導致很多 Android 工程師失業(yè)了,這是市場需求不高界轩、移動互聯(lián)網(wǎng)寒冬一個很重要的原因画饥。
如何在技術瞬息萬變中不被淘汰
最近 Python 最近很火,人工智能很火浊猾,區(qū)塊鏈更火抖甘,其實每一個時期都有比較火的技術,就像 Android 在 5 - 10 年前也是很火一樣葫慎,這是非常正常的衔彻,技術變化很快是互聯(lián)網(wǎng)行業(yè)一個很大的特點,作為一個搞 IT 的偷办,其實在很早就應該認清這種局勢艰额。互聯(lián)網(wǎng)是變化的最快的行業(yè)(沒有之一)椒涯,互聯(lián)網(wǎng)本來就匯聚了世界上大部分的腦力精英柄沮,特別是硅谷的那些人,創(chuàng)新的能力不是我們能想象的废岂。而且世界上排名前十的大公司铡溪,如:蘋果、微軟泪喊、Google、FaceBook髓涯、騰訊袒啼、阿里 清一色都是 IT 公司,他們有著巨大的資金讓他們?nèi)パ芯啃录夹g,技術變化不快才怪呢蚓再。
我們要做的只能是提高自己的實力滑肉,以及適當?shù)木o跟趨勢,這里說的實力主要有兩方面
- 軟實力(溝通摘仅、合作靶庙、創(chuàng)新、思考娃属、情商)
- 內(nèi)功(數(shù)據(jù)結構六荒、算法、計算機網(wǎng)絡矾端、操作系統(tǒng)等)
軟實力不用說掏击,這是每一個行業(yè)都需要具備的東西,內(nèi)功的話秩铆,我這里說的都是拋開具體的實際應用(Android砚亭、前端、后臺)的計算機知識殴玛,因為技術總在變捅膘,但是這些根本的東西,其實是不變的滚粟,我們真正要掌握的其實就是這些不變的東西寻仗。
只要你這些基礎的東西都學得很好,管他技術怎么變坦刀,其實都是底層知識在某些方面的具體應用而已愧沟,或者說這么難的底層知識都學會了,你還怕學不會那些應用層的東西嗎鲤遥?
理論結合實際
Android Training 是 Android 官方推出的沐寺,面向 Android 開發(fā)者的教程,一開始看 Training 可能會發(fā)現(xiàn)很多沒用過的知識盖奈,這很正常混坞。因為這一份資料雖然是面向 Android 的。但 Android 里面有很多方向钢坦,除了常見的手機應用開發(fā)(App)之外究孕,還有 Android TV、Android Watch爹凹、Android 平板厨诸、甚至車載系統(tǒng),Android 音箱其實都是 Android 的應用禾酱,我們現(xiàn)在很多人也只是學 Android App 開發(fā)而已微酬。
所以在學習 Training 的過程中绘趋,其實那些有關 TV、ChromeOS 的內(nèi)容颗管,可以不用去管他陷遮,只要看跟 Android App 有關的就行了,但是這些有關的內(nèi)容必須過一遍垦江,即使你看了就忘帽馋,但是至少你在實際開發(fā)的過程中,遇到某個開發(fā)點比吭,然后會回想起我好像在 Training 里面看過绽族,然后重新找回來看,這樣就夠了梗逮。
所以關于 Android Training 以及 Github 上某些框架(如:okhttp项秉、Matisse、GreenDao等)的 wiki慷彤,我的建議是:先通讀一遍娄蔼,然后在實際開發(fā)中去熟悉它的用法,等開發(fā)結束后底哗,再回來重新看一遍 wiki岁诉,因為你在開發(fā)中其實會遇到很多疑問的,這時候帶著問題來看 wiki跋选,你其實會發(fā)現(xiàn)之前第一遍看的時候沒發(fā)現(xiàn)的很多東西涕癣。這時候你才會對這個知識點、這個框架有了一個更好的把握前标。當然坠韩,如果想去更深一層的把握,就只能通讀它的源碼炼列,這個過程很辛苦只搁,但是真正啃下來,收獲真的很大俭尖,而且這也是內(nèi)功的積累氢惋,也是所謂的核心競爭力。我自從擼了 Volley稽犁、Matisse 的源碼之后焰望,就感覺現(xiàn)在看源碼的速度比以前快了很多,但之前看這些框架真的累的要死已亥。
順便講一下我對一些技術書籍的看法熊赖,像《Android 開發(fā)藝術探索》,這本書寫的非常好虑椎,但是呢震鹉,它對于剛入門不久的新手來說很難的妖,或者說并不是當前等級應該刷的關,說實話足陨,里面我也有很多不懂的地方,這本書本來就是面向高級工程師的娇未。但閱讀技術書籍的話墨缘,我的建議跟看 Training 和 wiki 的看法是一樣,先通讀一遍零抬,讓自己有個印象镊讼,等你實際開發(fā)中真的遇到了相應的問題,再回來看一遍平夜,你就會有一種豁然開朗的感覺蝶棋。所以,有的時候學技術忽妒,不要太拘泥于細節(jié)玩裙,如果真的啃不下,就先放下段直,可能等過段時候再回頭看看就會覺得特別簡單吃溅。就像現(xiàn)在去寫「天氣預報 App」一個道理,相信現(xiàn)在手擼個「天氣預報」是分分鐘的事鸯檬,但是在剛入門那時候决侈,相信「天氣預報」也折騰了我們不少精力,現(xiàn)在回頭看看是不是覺得很簡單了喧务。
所以如果真的想做一個比較好的工程師赖歌,所謂的核心競爭力其實就是我在上面提到的「軟實力」和「內(nèi)功」。這些不變的東西功茴,才是我們最需要花時間去提升的東西庐冯。但是呢,這些所謂的內(nèi)功又比較「虛」痊土,為什么這么說呢肄扎,就比如我現(xiàn)在讓剛入門的新手把計算機網(wǎng)絡這本書給讀了,可能就屁顛屁顛看完赁酝,就這么過去了犯祠,然后就好像什么都沒發(fā)生過一樣。就像現(xiàn)在很多大學的課程一樣酌呆,其實都存在一個很大的問題衡载,就是老師只給你講理論的知識,卻很少給你講理論在實際中的應用隙袁√涤椋或者他們也確實不會弃榨,現(xiàn)在很多老師都是一畢業(yè)就來學校教書,其實大部分已經(jīng)跟實際的開發(fā)脫軌了梨睁,最常見的例子鲸睛,現(xiàn)在大部分教 Android 的老師,都是用 Eclipse 來上課坡贺。
上面我講的例子官辈,主要是為了說明這些學這些所謂的內(nèi)功的一些常見困惑,但很多時候其實不是我們不想學遍坟,而是不知道學了有什么用而不想學拳亿,這時候「項目開發(fā)」的作用其實就出來了,理論和實際是真真正正需要結合才能發(fā)揮它最大的用處愿伴。就像在還沒怎么開發(fā)過項目的情況下肺魁,讓新手去學計算法網(wǎng)絡、設計模式隔节,其實效果是很差的鹅经,因為此時對網(wǎng)絡的理解其實很模糊,但是經(jīng)過一定時間的項目開發(fā)官帘,我們有了一定的代碼積累瞬雹,也在調接口的過程中,遇到了一些有關網(wǎng)絡的問題刽虹,所以這時候再去看計算機網(wǎng)絡酗捌,就比較有用了,這時候其實我們會在看書的過程中找到自己遇到的問題本質的理論基礎涌哲,然后理論結合實際胖缤,你就會理解的更加深刻。
所以阀圾,想成為一個比較優(yōu)秀的工程師哪廓,具體要怎么走呢?相信我上面的例子初烘,也能看出我的一些想法涡真,我的建議是:在前進的路上,偶爾停停肾筐。什么意思呢哆料?在新手這個階段還是以項目驅動為主,慢慢積累自己的代碼量吗铐,然后在有疑惑的時候就用搜索引擎东亦,找問題的答案。在項目沒什么需求的時候唬渗,就可以靜下心來學我提到的數(shù)據(jù)結構和算法典阵、設計模式奋渔、計算機網(wǎng)絡這些東西,在這些基礎的東西中壮啊,找到自己在項目開發(fā)過程中嫉鲸,遇到問題的本質,這樣才能對知識掌握的更好歹啼。
任何一個行業(yè)都是不容易的充坑,唯有持續(xù)的「有效」努力,才能走得更遠染突。