現(xiàn)狀
首先,我們說(shuō)一下國(guó)內(nèi)安卓開(kāi)發(fā)現(xiàn)狀,國(guó)內(nèi)很多安卓開(kāi)發(fā)人員都是半路出家,就拿我自己為例,我也是在學(xué)校自學(xué)的java和安卓,沒(méi)有別人引導(dǎo),路線是直接掄起袖子開(kāi)干,哪里不懂點(diǎn)哪里,一點(diǎn)點(diǎn)查漏補(bǔ)缺,慢慢完善;
工作后越久,越發(fā)現(xiàn)這種方式存在諸多弊端,那就是我們的基本功并不是很扎實(shí),說(shuō)的明白點(diǎn)就是我們實(shí)現(xiàn)功能都是嗖嗖嗖的,維護(hù)起來(lái)卻是嗷嗷嗷的;當(dāng)然這種從實(shí)踐中來(lái)到實(shí)踐中去的方式還是有很多好處的,因?yàn)檫@樣能帶來(lái)效率上的提升。
所以,寫(xiě)這篇文章的目的就是為了幫助更多的半路出家的安卓開(kāi)發(fā)人員一步步成長(zhǎng),走上更為廣闊而平坦的道路;我覺(jué)得一般的安卓開(kāi)發(fā)人員都會(huì)經(jīng)理這三個(gè)階段:
初級(jí)安卓開(kāi)發(fā),半路出家,不懂底層,不懂原理,只會(huì)用三方框架,不思考框架優(yōu)劣;
中級(jí)安卓開(kāi)發(fā),熟練使用各種框架,滿眼都是bug,除了寫(xiě)功能就是寫(xiě)bug,遇到了工作瓶頸,想突破,但是不知道怎么突破;
中高級(jí)安卓開(kāi)發(fā),到了瓶頸期,眼看著別人做管理自己還是寫(xiě)代碼,缺乏核心競(jìng)爭(zhēng)力??磫?wèn)題相對(duì)片面,難從系統(tǒng)的角度思考問(wèn)題,想要培養(yǎng)但是沒(méi)有方法;
做開(kāi)發(fā)的我們向上突破必須具備什么樣的技能呢?我相信這個(gè)問(wèn)題很少有人能夠答全,畢竟安卓這個(gè)知識(shí)體系涉及到的東西很多,其實(shí)以前我自己也是懵懵懂懂,然后在網(wǎng)上找各種資料,最終也知識(shí)有了初步印象,那就是,我們以后發(fā)展有三條路,要么呢就是做系統(tǒng)架構(gòu),要么呢,就是做資深開(kāi)發(fā),要么就是做管理;當(dāng)然也有轉(zhuǎn)行做產(chǎn)品的也不少,但是這篇文章不做討論;
介紹
成為一名全棧工程師就是說(shuō)不僅需要成為一名資深的開(kāi)發(fā),也需要懂系統(tǒng)架構(gòu)和設(shè)計(jì);而資深安卓開(kāi)發(fā)需要不僅需要懂底層開(kāi)發(fā),更需要了解性能優(yōu)化,linux,安全相關(guān);而架構(gòu)師不僅僅需要了解怎么保障架構(gòu)穩(wěn)定,性能優(yōu)化,又要考慮到管理,成本及其他要素;而管理層的話了解的更多,心理學(xué),管理學(xué)之類(lèi)的也是必不可少;接下來(lái)我們針對(duì)細(xì)分領(lǐng)域具體講一講;當(dāng)然身體是革命的本錢(qián),關(guān)于養(yǎng)生,中醫(yī)之類(lèi)的也需要了解一些,這些后面我會(huì)提到;
什么是資深開(kāi)發(fā)
資深開(kāi)發(fā)大家都懂,就是繼續(xù)在開(kāi)發(fā)這條路上走,研究更難解決的問(wèn)題,更底層更偏的知識(shí)是必要的,豐富的經(jīng)驗(yàn)不用說(shuō)了,基本都會(huì)隨著開(kāi)發(fā)年齡的增長(zhǎng)而變得豐富;良好的編碼習(xí)慣也會(huì)因?yàn)殚_(kāi)發(fā)時(shí)間的加長(zhǎng)而變得優(yōu)美;我覺(jué)得吧,一個(gè)資深的開(kāi)發(fā)人員就像是一個(gè)能工巧匠,大家可以想象一個(gè)木匠,他會(huì)慢慢地把一個(gè)作品做的精致而優(yōu)美,也會(huì)考慮到成本進(jìn)行適當(dāng)?shù)娜∩幔灰麍?zhí)著于怎么做好一個(gè)作品,最后,時(shí)間的歷練會(huì)讓他成為一名優(yōu)秀的匠人;
資深的開(kāi)發(fā)也是這樣,大家知道國(guó)內(nèi)掀起一股新匠人的風(fēng),本質(zhì)上是制造業(yè)的轉(zhuǎn)型,從數(shù)量轉(zhuǎn)質(zhì)量;安卓開(kāi)發(fā)人員也是,從開(kāi)始的遍地都是培訓(xùn)出來(lái)的安卓程序員,到現(xiàn)在慢慢精簡(jiǎn)隊(duì)伍,企業(yè)對(duì)安卓開(kāi)發(fā)人員的素質(zhì)開(kāi)始變得更高,低層次的開(kāi)發(fā)人員原來(lái)越來(lái)越不好找到心儀的工作,潮水退去,已經(jīng)有很多安卓開(kāi)發(fā)人員離開(kāi)了安卓陣營(yíng),或轉(zhuǎn)戰(zhàn)其他開(kāi)發(fā)陣營(yíng),或離開(kāi)了開(kāi)發(fā)行業(yè);這背后是他們他們的心酸和無(wú)奈,但從本質(zhì)上來(lái)說(shuō),這是資源的優(yōu)化分配,倒逼程序員提高自己的能力;
其實(shí)說(shuō)到國(guó)內(nèi)的經(jīng)濟(jì)狀況,大家也都看到了,至少?gòu)哪壳皝?lái)看都是不容樂(lè)觀的,從15年到現(xiàn)在,我看到的是更多的公司勒緊皮帶過(guò)日子,我身邊的小企業(yè)家都在抱怨生意不好做但是又不得不做,當(dāng)然這些企業(yè)家里面有些只是想站在風(fēng)口上吹吹風(fēng),并不是真的在實(shí)打?qū)嵉淖鍪聵I(yè)。但是還有一些企業(yè)家確實(shí)是想搞一些像樣的產(chǎn)品,大公司的打壓和繁重的企業(yè)稅,租金,員工支出,讓這些老板一到發(fā)工資的時(shí)候一個(gè)個(gè)長(zhǎng)吁短嘆,把自己活成了怨婦;
有很多小伙伴會(huì)說(shuō),資深開(kāi)發(fā)我知道怎么做,不就是一直找開(kāi)發(fā)崗位做下去嘛,維持現(xiàn)狀就好了;這里我需要提醒一下,資深開(kāi)發(fā)并不只是以工作經(jīng)歷來(lái)區(qū)分的,很多搞了很多年開(kāi)發(fā)的人員,到了四十多歲了,還是一無(wú)所成,老板的樣貌倒是有了(禿頂),事業(yè)卻沒(méi)有一點(diǎn)進(jìn)步,不惑之年卻還是很多疑惑,頻繁跳槽為加工資的人在深圳真的不少,通常這類(lèi)人也沒(méi)有女朋友,具體原因不作討論,但是這是事實(shí);
所以想要做好一個(gè)資深的開(kāi)發(fā),并不是那么容易的事情,他需要一個(gè)人有死磕的精神,遇到搞不懂的不是想辦法繞過(guò)而是想辦法弄懂原理,然后功課,這類(lèi)人就像是一個(gè)個(gè)攻城勇士,披荊斬棘,勇往直前,典型的如《老羅的安卓之旅》作者羅升陽(yáng);熟悉老羅的朋友都只是,老羅也是一點(diǎn)點(diǎn)從基礎(chǔ)的安卓小白一步步成長(zhǎng)為眾所周知的安卓大神,這個(gè)過(guò)程說(shuō)長(zhǎng)不長(zhǎng)說(shuō)短不短,老羅是實(shí)實(shí)在在死磕了三年才有如此速度的成長(zhǎng),大家對(duì)比一下自己,同樣是做了三年的開(kāi)發(fā),為什么跟他差距這么多;
什么是架構(gòu)師
如何成為一名架構(gòu)師大概是很多中級(jí)安卓開(kāi)發(fā)多年的困惑;想要轉(zhuǎn)型卻不得其法,或許有些人會(huì)在業(yè)務(wù)時(shí)間看看《大話設(shè)計(jì)模式》這類(lèi)的書(shū)籍,這類(lèi)型的書(shū)我看過(guò)一些,比如前面提高的這本,我覺(jué)得寫(xiě)得就很好,沒(méi)有刻板僵硬的解說(shuō),但是即便是這樣我也沒(méi)有完全吸收進(jìn)去,究其根本是由于學(xué)習(xí)的時(shí)候并沒(méi)有深入的理解場(chǎng)景,最重要的是,學(xué)完之后沒(méi)有實(shí)際的項(xiàng)目運(yùn)用到,最終隨著時(shí)間的推移漸漸遺忘,依稀還記得那個(gè)名字;
當(dāng)然架構(gòu)師可不是懂懂設(shè)計(jì)模式就行了,設(shè)計(jì)師的核心價(jià)值在于靈活的把商業(yè)場(chǎng)景和架構(gòu)選型結(jié)合起來(lái);在眾多的架構(gòu)中選擇更合適的設(shè)計(jì),而這些設(shè)計(jì)有大有小,這就像搭建樂(lè)高城堡一樣,樂(lè)高模組里面有很多原件供選擇,你需要清楚這些原件的組成結(jié)構(gòu)和使用方法,以及這些原件使用帶來(lái)的利弊,你才能按照自己想法搭建出既美觀又結(jié)實(shí)可靠的城堡;架構(gòu)師也是一樣,足夠的閱歷保證了定制化需求,對(duì)所用組件或技術(shù)的了解保證了產(chǎn)品可實(shí)現(xiàn)性,穩(wěn)定性及維護(hù)性;
那么小伙伴有疑問(wèn)了,我平時(shí)都是埋頭寫(xiě)代碼,根本沒(méi)辦法在項(xiàng)目中學(xué)習(xí)到怎么架構(gòu)設(shè)計(jì)啊?怎么辦,有兩種方式,一種是從自己項(xiàng)目中學(xué)習(xí),一種是研究開(kāi)源項(xiàng)目;
第一種方式
這種學(xué)習(xí)方式其實(shí)我是不太推薦的,基于國(guó)內(nèi)的發(fā)展現(xiàn)狀,大部分從祖師爺那里傳過(guò)來(lái)的代碼并不優(yōu)秀,有可能還是亂七八糟;因?yàn)楹芏嗟某鮿?chuàng)公司為了節(jié)約成本會(huì)找一些很有想法樂(lè)于學(xué)習(xí),但是基本功卻不扎實(shí)的小伙伴,這樣的直接后果就是導(dǎo)致項(xiàng)目的維護(hù)越來(lái)越困難,代碼的可讀性越來(lái)越差,這種情況下去研究還不如不研究,當(dāng)然了,有時(shí)候這些項(xiàng)目里面會(huì)用到一些很棒的工具類(lèi),這個(gè)里面會(huì)涉及到一些沒(méi)見(jiàn)過(guò)的新知識(shí)到時(shí)可以去了解一下,但是總的來(lái)說(shuō),這種項(xiàng)目上研究架構(gòu)師不太現(xiàn)實(shí)的,成本太高了;
還有一種就是項(xiàng)目的代碼是非常清晰可讀,設(shè)計(jì)非常優(yōu)美,那么需要恭喜你,你這家公司的開(kāi)發(fā)做得很棒,你可以在工作時(shí)間研究別人的優(yōu)秀架構(gòu)并學(xué)為己用;比如bat這類(lèi)公司的代碼就寫(xiě)得很不錯(cuò),即使是祖?zhèn)鞯囊膊挥脫?dān)心,基本上在這類(lèi)公司的安卓開(kāi)發(fā)人員也不需要?jiǎng)e人告訴他怎么樣才能成為架構(gòu)師了,因?yàn)楣颈旧砭妥⒅剡@方面的規(guī)培,比如我一個(gè)在阿里上班的朋友就說(shuō)他們所用到的大牛寫(xiě)得框架都需要了解內(nèi)部原理,一方面是為了幫助新人成長(zhǎng),另一方面也是為了公司項(xiàng)目的健壯性考慮。在這個(gè)過(guò)程中,自然而然會(huì)接觸到怎么做架構(gòu);
第二種方式
這個(gè)是推薦大部分人使用的方式,也是在我們公司內(nèi)部強(qiáng)烈推薦的一種方式,這種方式是研究別人優(yōu)秀的開(kāi)源項(xiàng)目(注意是項(xiàng)目而不是代碼),架構(gòu)師是站在高處看大局的人,格局自然要高一點(diǎn),這就需要研究整個(gè)開(kāi)源項(xiàng)目,這些項(xiàng)目小到一些輔助工具,大到一個(gè)完整項(xiàng)目;這些項(xiàng)目里面會(huì)有很多優(yōu)秀的代碼設(shè)計(jì),設(shè)計(jì)理念,架構(gòu)設(shè)計(jì),編碼習(xí)慣;一般這些項(xiàng)目會(huì)考慮的比較全面,含括了安全,健壯性,可維護(hù)性等優(yōu)點(diǎn),相對(duì)于第一種方式來(lái)說(shuō),我們能更加輕松高效的獲取到架構(gòu)師相關(guān)知識(shí),為成為架構(gòu)師添磚加瓦;
github上有很多優(yōu)秀的開(kāi)源項(xiàng)目,我想很多安卓開(kāi)發(fā)小伙伴都不知道這玩意有多優(yōu)秀的吧;這是一個(gè)開(kāi)源社區(qū),也是一個(gè)基于git搭建的版本倉(cāng)庫(kù);基本所有的安卓開(kāi)發(fā)大牛都在上面留有他們的足跡;如果不了解這個(gè)工具的大家可以自行去補(bǔ)充一下;github上的項(xiàng)目眾多,并不是所有的項(xiàng)目都適合你閱讀,比如一些star雖然很多,針對(duì)不同水平的開(kāi)發(fā)人員我在這里給一些建議;
9gag這類(lèi)型的超小型項(xiàng)目適合初級(jí)開(kāi)發(fā)人員閱讀,這會(huì)幫助理順?biāo)悸?,?yōu)化自己編碼習(xí)慣;如果你覺(jué)得這類(lèi)型的已經(jīng)摸透了,那么google提供的一些小的開(kāi)源組件和建議可以去閱讀一下,比如TodoMvp ,安卓最佳實(shí)踐等;
開(kāi)源第三方庫(kù)和安卓系統(tǒng)源碼適合中級(jí)開(kāi)發(fā)人員研究,這類(lèi)東西對(duì)基礎(chǔ)要求稍微高一點(diǎn),如果沒(méi)有一定的基礎(chǔ)是很難讀懂的,但是既然大家都是要成為架構(gòu)師的人了,必然這點(diǎn)水平是具備的;安卓源碼自不必說(shuō),這里博大精深,即使是自身開(kāi)發(fā)人員也需要從里面吸收營(yíng)養(yǎng);開(kāi)源三方庫(kù)網(wǎng)上很多,有一些研究起來(lái)還是有點(diǎn)困難的,被研究的比較多的,網(wǎng)絡(luò)層的有okhttp,數(shù)據(jù)庫(kù)有ORMLite,圖片加載有Glide,網(wǎng)絡(luò)隔離有retrofit,這些在后面會(huì)提到;在閱讀這類(lèi)代碼的時(shí)候需要注意里面用到的設(shè)計(jì)模式,這些模式為什么要這么用,有什么好處有什么缺點(diǎn);
安卓底層源碼和大型開(kāi)源項(xiàng)目適合資深開(kāi)發(fā)人員閱讀,這類(lèi)項(xiàng)目一般比較龐大,如果挨個(gè)文件閱讀必然會(huì)導(dǎo)致效率低下,最后灰心喪氣,不得其果;因此在閱讀這類(lèi)代碼的時(shí)候,我們需要取其精髓,一個(gè)是從大的系統(tǒng)架構(gòu)商來(lái)說(shuō)他們是怎么架構(gòu)的,如何實(shí)現(xiàn)組件化的,組件之間怎么解耦的,大的一個(gè)項(xiàng)目怎么做的單元測(cè)試;
學(xué)習(xí)路線
本文的重點(diǎn)是教大家一個(gè)方法,也是通常所說(shuō)的“術(shù)”,后面如果有空的話我也會(huì)在博客上分享一些學(xué)習(xí)筆記給大家,幫助大家梳理學(xué)習(xí)過(guò)程中遇到的各種問(wèn)題;
這里我分為兩大部分來(lái)講,一個(gè)是行業(yè)內(nèi)的,一個(gè)是行業(yè)外的;行業(yè)內(nèi)的代表專(zhuān)業(yè)技能的提升,行業(yè)外代表個(gè)人綜合能力和素質(zhì)的提升,大家不要忽略了行業(yè)外的知識(shí)而當(dāng)一個(gè)工作狂,長(zhǎng)短板類(lèi)型的人到了最后會(huì)越來(lái)越被動(dòng),當(dāng)然,少部分人除外;
接下來(lái)我會(huì)具體分享怎么學(xué)習(xí)才能成為一名真正意義上的全棧工程師,這個(gè)是大綱,具體的需要大家根據(jù)大綱自行尋找資料進(jìn)行學(xué)習(xí),因?yàn)楸疚闹皇翘峁┮粭l成長(zhǎng)路線,如果有相關(guān)資料只要不涉及版權(quán)我也會(huì)樂(lè)于分享出來(lái)的;有空的時(shí)候我也會(huì)通過(guò)博客的方式,盡可能通過(guò)博客的方式讓大家讀懂,一起成長(zhǎng);
資深開(kāi)發(fā)之路
成為資深安卓開(kāi)發(fā)需要什么:
安卓高階
懂NDK開(kāi)發(fā),而不僅僅是知道怎么使用jni調(diào)用;
懂屏幕適配;
懂UI加載流程;
熟悉消息分發(fā)機(jī)制;
懂高級(jí)繪圖,懂UI定制,熟悉離屏渲染,硬件加速,熟悉強(qiáng)排班,強(qiáng)交互;
懂AndroidStudio高級(jí)應(yīng)用(熟練使用快捷鍵,Gradle基礎(chǔ)語(yǔ)法,會(huì)多渠道打包,自定義打包);
熟悉MakeFile語(yǔ)法,懂得自己使用cmake編譯So依賴和可執(zhí)行文件;
熟悉shell語(yǔ)法(數(shù)組,管道,遍歷,流程控制,條件判斷,云算法),懂得編寫(xiě)簡(jiǎn)單的腳本;
熟悉音視頻編碼原理,熟悉視頻錄制,視頻播放;
熟練進(jìn)行文件操作;
熟悉虛擬機(jī)運(yùn)行原理,熟悉熱更新,增量更新;
性能優(yōu)化
這里我把安全也加入到性能優(yōu)化里面;
內(nèi)存泄露原理分析及場(chǎng)景分析,GC垃圾回收機(jī)制原理詳解
內(nèi)存優(yōu)化工具使用:Lint,MAT,LeakCanary,TraceView;
數(shù)據(jù)傳輸?shù)男蕛?yōu)化
3.1 ProtolBuffer提升數(shù)據(jù)傳輸效率
后臺(tái)服務(wù)內(nèi)存優(yōu)化
4.1 如何保障服務(wù)的常駐內(nèi)存
4.2 雙進(jìn)程守護(hù)
多線程并發(fā)
5.1 阻塞式隊(duì)列
5.2 鎖機(jī)制原理分析,與競(jìng)爭(zhēng)鎖
5.3 原子鎖,對(duì)象鎖,nio與bio區(qū)別與應(yīng)用
混合式優(yōu)化
6.1 幀率詳解及其卡段分析 UI線程掉幀與內(nèi)存避免(reactnative)
6.2 避免render方法過(guò)渡重繪
6.3 ScrollView內(nèi)存優(yōu)化(可見(jiàn)與不可見(jiàn)終極解決方案)
6.4 分析程序啟動(dòng)流程、優(yōu)化啟動(dòng)流程和提速
安裝包性能優(yōu)化
7.1 打包流程分析
7.2 aapt資源文件打包原理
7.3 resources_arsc二進(jìn)制機(jī)構(gòu)分析
7.4 資源文件壓縮
7.5 資源動(dòng)態(tài)加載
7.6 Lint工具優(yōu)化
7.7 極限壓縮、
應(yīng)用安全
8.1 Proguard高級(jí)混淆
8.2 https防抓包機(jī)制(拒絕被hook)
8.3 Dex加密與反編譯(app加固)
8.4 數(shù)據(jù)庫(kù)加密方案及原理
8.5 Gradle插件自動(dòng)化減少apk文件大小
架構(gòu)師之路
Uml相關(guān)繪圖,Uml正向及逆向工程,
Aop切面設(shè)計(jì),插件化;
3.安卓系統(tǒng)源碼分析
2.1 Handler原理與源碼分析
2.2 Message鏈表原理與重用機(jī)制
2.3 Binder核心原理與架構(gòu)設(shè)計(jì)
2.4 PackageManagerService源碼解析及apk安裝流程
2.5 Activity管理架構(gòu)設(shè)計(jì)及跨進(jìn)程跳轉(zhuǎn)
2.6 剖析App,完全解讀App啟動(dòng)流程;
Android事件總線架構(gòu)設(shè)計(jì)
動(dòng)態(tài)換膚核心技術(shù)
組件化框架設(shè)計(jì)
6.1 ARouter集中式路由及核心原理實(shí)現(xiàn)
6.2 淘寶的組件化運(yùn)行與如何與Skyruler結(jié)合
6.3 SkyRuler項(xiàng)目組件化框架實(shí)現(xiàn)(重定向,跳轉(zhuǎn)前預(yù)處理–登錄,統(tǒng)一跳轉(zhuǎn)入口,支持多類(lèi)型參數(shù)傳遞,多Moudle跳轉(zhuǎn))
數(shù)據(jù)庫(kù)框架設(shè)計(jì)
7.1 ORMLite核心架構(gòu)
7.2 xml腳本打造數(shù)據(jù)庫(kù)版本全量升級(jí)架構(gòu)
7.3 面向?qū)ο笫绞謱?xiě)數(shù)據(jù)庫(kù)架構(gòu)設(shè)計(jì)
網(wǎng)絡(luò)請(qǐng)求框架設(shè)計(jì)
8.1 網(wǎng)絡(luò)請(qǐng)求層七層模型及架構(gòu)剖析;
8.2 okhttp源碼分析與架構(gòu)解讀;
8.3 okHttp任務(wù)隊(duì)列架構(gòu)設(shè)計(jì)
8.4 Socket連接池復(fù)用機(jī)制詳解
8.5 攔截器責(zé)任鏈模式實(shí)現(xiàn)重連,補(bǔ)全Http頭,鏈接與Http協(xié)議解析等
8.6 使用泛型完成手寫(xiě)高擴(kuò)展的OKHttp網(wǎng)絡(luò)訪問(wèn)框架設(shè)計(jì)(支持高并發(fā),請(qǐng)求隊(duì)列)
圖片加載框架設(shè)計(jì)
9.1 Glide架構(gòu)思維分析與源碼詳解
9.2 手寫(xiě)Glide注入內(nèi)部生命周期(打造不一樣的緩存方式)
9.3 建造者模式打造手寫(xiě)Glide架構(gòu)的高擴(kuò)展性
9.4 請(qǐng)求隊(duì)列、請(qǐng)求轉(zhuǎn)發(fā)、加載器、加載策略、緩存策略詳解
9.5 LruCache和DiskLruCache解析
其他架構(gòu)實(shí)現(xiàn)
10.1 Android全版本編譯時(shí)權(quán)限申請(qǐng)框架(含8.0 動(dòng)態(tài)申請(qǐng))
10.2 動(dòng)態(tài)代理打造高可替換的網(wǎng)絡(luò)庫(kù)隔離(retrofit,okhttp隔離)
設(shè)計(jì)模式
11.1 MVC架構(gòu)設(shè)計(jì)及三層膜性剖析
11.2 MVP思想精髓與解耦View與Mode的巧妙設(shè)計(jì)詳解
11.3 架構(gòu)提升之路 MVP思想實(shí)現(xiàn)企業(yè)級(jí)項(xiàng)目基礎(chǔ)框架搭建
11.4 MVVM架構(gòu)解析及DataBinding架構(gòu)解析
綜合素質(zhì)打造
心理學(xué)里面有一句話說(shuō)人是社會(huì)性動(dòng)物;每個(gè)人都會(huì)與整個(gè)社會(huì)發(fā)生連接,生活中的方方面面構(gòu)成了整個(gè)社會(huì),這個(gè)社會(huì)中會(huì)有很多細(xì)分領(lǐng)域,這些細(xì)分領(lǐng)域無(wú)時(shí)不刻不在影響著我們,對(duì)這些領(lǐng)域具有一定的基礎(chǔ)知識(shí)其實(shí)是非常重要的;包括心理學(xué),哲學(xué),宗教,經(jīng)濟(jì)學(xué),政治學(xué),中醫(yī)學(xué),康復(fù)學(xué),法學(xué),文學(xué)等;
了解這些并不是為了讓我們看起來(lái)多么博學(xué)多才,學(xué)以致用,這些知識(shí)在很多的場(chǎng)景有很大幫助,比如我以前有個(gè)朋友撞了別人,本來(lái)私了了,但是過(guò)了一年人家以舊病復(fù)發(fā)為由索取高額賠償,而朋友想通過(guò)汽車(chē)保險(xiǎn)降低損失卻被告知有騙保風(fēng)險(xiǎn),弄不好坐牢;如果懂一點(diǎn)基礎(chǔ)法律常識(shí),那么這些事情會(huì)好處理很多;
程序員一般或多或少有些職業(yè)病,如何預(yù)防并保持健康的身體很重要,有很多同事已經(jīng)有了相對(duì)應(yīng)的癥狀;健康的重要性無(wú)需多言,只不過(guò)沒(méi)有到真正生病沒(méi)有幾個(gè)人會(huì)真正關(guān)注,大家都學(xué)過(guò)《扁鵲見(jiàn)蔡桓公》,見(jiàn)微知著才能防范于未然;
如果想要走管理這條路的小伙伴或者已經(jīng)走上管理的小伙伴就需要提前儲(chǔ)備一些提升效率的事情,一直以來(lái)我們都是按部就班自我摸索,這樣索然很好,但是少不了走一些彎路,有很多事情我們是可以更加高效的完成的,當(dāng)然,要做好管理第一要?jiǎng)?wù)是做好自我管理,如果自我管理難做好就很難有對(duì)事情的掌控能力,缺少這種掌控力就很難具備大局觀,那么在思考問(wèn)題的時(shí)候就很難做到全面,果斷的決策;
現(xiàn)在很多公司都流行敏捷項(xiàng)目,但是我去研究了一陣發(fā)現(xiàn),真正的敏捷是做好自我管理,這種自我管理并不是增加員工的負(fù)擔(dān),反而是通過(guò)調(diào)用大家自我管理的動(dòng)機(jī)而把事情做好,這種情況下,做的事情越少效率反而更高;
綜合素質(zhì)打造有很多方面,因?yàn)闀r(shí)間來(lái)不及整理,我大概列出如下幾項(xiàng):
綜合素質(zhì):
行業(yè)分析報(bào)告,上下游產(chǎn)業(yè)鏈
1.1 50大產(chǎn)業(yè)鏈全景圖
1.2 互聯(lián)網(wǎng)灰黑產(chǎn)業(yè)白皮書(shū)
1.3 褥羊毛產(chǎn)業(yè)研究報(bào)告
敏捷管理知識(shí)
2.1 敏捷軟件開(kāi)發(fā)原則、模式與實(shí)踐。((美)Robert.C.Martin)
2.2 Scrum精髓_敏捷轉(zhuǎn)型指南
2.3 硝煙中的Scrum和XP-我們?nèi)绾螌?shí)施Scrum
2.4 高效程序員的45個(gè)習(xí)慣
文檔管理與分類(lèi),待辦事項(xiàng)管理;
it領(lǐng)域各行業(yè)解決方案分享;
高效搜索與資源整合能力;
基礎(chǔ)健康與養(yǎng)生,了解自己身體;
親密關(guān)系,愛(ài)情,婚姻;
-
工程師
+關(guān)注
關(guān)注
59文章
1569瀏覽量
68509
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論