幸福的家庭都是一樣的历帚,不幸的家庭各有各的不幸滔岳。- 論一個糟糕的大數(shù)據(jù)平臺工程師的自我修養(yǎng)
本來想寫寫如何成為一名優(yōu)秀的大數(shù)據(jù)平臺開發(fā)工程師,但說實話挽牢,這個話題太簡單了谱煤!雖然我沒有被Jeff dean大神附體,也不好意思腆著臉自認(rèn)為有資格指點江山禽拔。但是刘离,講道理,誰不會呢睹栖?
好比硫惕,炒股票,不就是低買高拋嗎野来,玩互聯(lián)網(wǎng)恼除,不就是拉流量去變現(xiàn)嗎?
而要想成為一名優(yōu)秀的大數(shù)據(jù)平臺開發(fā)工程師曼氛,只要做到深度與廣度并重豁辉,鉆研技術(shù),理解產(chǎn)品舀患,能搭架構(gòu)徽级,能解Bug,那就妥妥的了构舟。
道理如此簡單灰追,還需要多解釋么?而我們狗超,大概不是輕松的碾壓了巴菲特弹澎,就是早已經(jīng)順利的在風(fēng)口起飛了!
是的努咐,優(yōu)秀就是這么簡單苦蒿,太過無聊,所以渗稍,本文的重點佩迟,是聊聊如何能夠做到不那么優(yōu)秀,要想成為一個糟糕的開發(fā)工程師都需要有哪些表現(xiàn)竿屹。
我是小白我怕誰报强,正確的入門姿勢
要想成為一個糟糕的大數(shù)據(jù)平臺開發(fā)工程師,首先你得干上這行不是拱燃,怎么入門不重要秉溉,重要的是,自我修養(yǎng),要從入門抓起召嘶。
大數(shù)據(jù)開發(fā)如何入門父晶,在各種論壇或者技術(shù)會議中,時不時的總會有人問起弄跌。而提問者的問法往往也很類似:你好甲喝,我對大數(shù)據(jù)開發(fā)很感興趣,我想學(xué)大數(shù)據(jù)铛只,但我不知道該怎么入門埠胖,我該學(xué)些什么呢?
每每面對如此切中要害的問題淳玩,我總會有一種無比喜悅押袍,乃至脫力的感覺。是的凯肋,真正感興趣的同學(xué)谊惭,一定是激情澎湃,迫不及待的愛上了大數(shù)據(jù)侮东,調(diào)研工作圈盔?沒有的事,還需要調(diào)研悄雅,那不是真的熱愛驱敲!況且那樣的話,還怎么能問出如此粗曠而又犀利的問題呢宽闲?
對于這個問題众眨,我也總能估計到提問者的預(yù)期答案。應(yīng)該包括一串技能清單容诬,以及回答問題者自身的成功實踐示范:先看什么書娩梨,再學(xué)什么課程,然后搭建個什么系統(tǒng)览徒,最好列個完整的學(xué)習(xí)計劃和清單狈定,要是還有各種職位需求的市場調(diào)研,薪資待遇的統(tǒng)計分析什么的习蓬,那就更完美了纽什!
所以,我會懷疑這位同學(xué)是真的有興趣躲叼,還是無腦跟風(fēng)熱點芦缰,又或者是學(xué)習(xí)能力/做事方法有問題嗎? 不會枫慷,我只會認(rèn)為让蕾,這位同學(xué)包斑,簡直太他媽好學(xué)了!
至于搞清楚自己到底喜歡什么涕俗,為什么喜歡,很重要嗎神帅??讓磚家來替我做主再姑,告訴我該學(xué)什么,效率豈不是更高找御?
敏而好學(xué)元镀,不恥下問
學(xué)什么解決了,下一步是怎么學(xué)霎桅。
遇到問題前先思考一下栖疑,看一下文檔,讀點代碼滔驶,分析一下日志遇革?不存在的!都什么年代了揭糕,社交為王懂不懂萝快?微信里加了這么多大數(shù)據(jù)群組干嘛用的,“討論”問題爸恰揪漩!“敏”而好學(xué),快就一個字吏口!
什么奄容?有人膽敢拿出“如何問一個好問題”這樣的垃圾文章出來敷衍我這樣好學(xué)的同學(xué)?傲嬌了是嗎产徊?問一下能死鞍豪铡?你懂還是不懂舟铜?懂就回答叁怪,不懂就不要瞎BB!古人不云么深滚,不恥下問奕谭!你能有回答的機會就是你的榮幸!
好吧好吧痴荐,那么血柳,如果想在這個領(lǐng)域長期耕耘下去,這樣做靠不靠譜呢生兆?據(jù)說大數(shù)據(jù)平臺相關(guān)開發(fā)工作难捌,面對的問題往往是復(fù)雜的膝宁,需要從業(yè)人員具備良好的學(xué)習(xí)總結(jié)和推理分析的能力。如果不具備主動學(xué)習(xí)和思考的習(xí)慣根吁,聽說也就幾乎不可能成長成為這個領(lǐng)域的專家员淫?
這簡直就是妖言惑眾啊击敌!事實勝于雄辯介返,你看,明明有好多公司沃斤,有很多同學(xué)圣蝎,日常工作中,就是這么做的衡瓶。他們也搭過集群徘公,C&V過代碼,寫過ETL程序哮针,遇上“特別復(fù)雜”的難題关面,比如集群莫名其妙起不來了之類的,百度一下專家推薦的配置參數(shù)十厢,搜索一下出錯信息缭裆,就搞定了,還經(jīng)常寫點我司數(shù)據(jù)平臺的踩坑經(jīng)驗和實戰(zhàn)的分享寿烟,你就說牛不牛吧澈驼!
什么,這種情況長久不了筛武,這類工作遲早會被替代缝其,尤其是在偏底層的基礎(chǔ)平臺開發(fā)工作環(huán)境中?那得多久的將來芭橇内边?什么AWS和阿里云,他們平臺上的標(biāo)準(zhǔn)化服務(wù)和屎?沒聽過宽气,我們要有自主知識產(chǎn)權(quán)八艏Α争占!
效率優(yōu)先,中文至上
能百度就不谷歌;能找到不知道誰寫的搭建筆記片效,就堅決不讀官網(wǎng)的Tutorial膨桥,要是還有手把手的教學(xué)視頻,那就更好了。
集群如何調(diào)優(yōu),問題如何解決贯钩?根據(jù)錯誤信息,搜索踩坑指南啊性穿,別管花多少時間,在多么犄角旮旯的博客也要搜出來。官網(wǎng)的FAQ或者Tuning Guide出爹?抱歉,沒時間看衰倦。Mailing list我磁,Jira沉衣?那是什么東東稚失?
怎么句各,不行么?這也沒啥大不了啊晴叨,我不是看不懂英文凿宾,但是還是更習(xí)慣看中文,效率更高兼蕊,如果不到山窮水盡初厚,能用中文用中文唄。
或許吧遍略,但除非你想永遠(yuǎn)玩別人早就玩剩下的東西惧所,否則骤坐,盡可能接觸第一手的資訊绪杏。英語差,看英文文檔代價高纽绍?篩選過時或錯誤信息的代價可能更高蕾久!
流行的就是最好的
什么技術(shù)熱門就學(xué)什么,這還用問么拌夏?別管行不行僧著,先看賺不賺錢啊~~~
這種現(xiàn)象,不光大數(shù)據(jù)障簿,各個技術(shù)領(lǐng)域都是如此盹愚,從這幾年我所接觸的求職者的求職意愿上就能很明顯的看出來。
無論校招還是社招站故,無論是剛從別的方向轉(zhuǎn)行想做大數(shù)據(jù)皆怕,還是在大數(shù)據(jù)領(lǐng)域內(nèi)已經(jīng)有過一些簡單業(yè)務(wù)開發(fā)經(jīng)驗的同學(xué),幾乎90%以上的應(yīng)聘者西篓,都會把自己將來工作和實時計算掛上鉤愈腾,越是“初生牛犢”的同學(xué)越是積極∑窠颍可不虱黄,不玩Spark,不玩Flink吮成,還怎么跟上時代橱乱,人家都說Hadoop已經(jīng)被淘汰了辜梳!
而在985以上好一點的院校的應(yīng)屆生中,把技能點和求職方向放在算法和機器學(xué)習(xí)相關(guān)領(lǐng)域的同學(xué)更是大幅上升仅醇。決策樹冗美,向量機,貝葉斯析二,xNN 粉洼, 天池競賽,哪個沒玩過都不好意思投簡歷叶摄。而大數(shù)據(jù)生態(tài)系中底層存儲属韧,計算組件,分布式原理架構(gòu)等相關(guān)領(lǐng)域有過深入學(xué)習(xí)或?qū)嵺`的同學(xué)則明顯呈下降趨勢蛤吓。
這也很容易理解宵喂,一方面機器學(xué)習(xí)和人工智能這一兩年來風(fēng)頭正勁,Alpha狗会傲,Alpha狗元锅棕,Alpha元賺足了眼球,另一方面淌山,學(xué)習(xí)算法的門檻多低啊裸燎,即使沒有工業(yè)環(huán)境,實踐起來也相對容易泼疑,擼一下NG的課德绿,做幾個Demo,參加兩個比賽退渗,大多數(shù)理論知識也就能說個七七八八移稳,還有滿地的AI公眾號,AI速成培訓(xùn)班等等(早幾年則是各種大數(shù)據(jù)公眾號和速成班会油,再早个粱,是Java/Spring之類?)翻翩,沒幾個月時間都许,就“略有小成”了啊~~~
而大數(shù)據(jù)平臺的開發(fā)工作,屬于偏底層工程技術(shù)的領(lǐng)域体斩,如果沒有合適的實踐環(huán)境梭稚,多數(shù)同學(xué)靠看論文,讀代碼絮吵,想要真正入門其實難度還是不小的(事實上弧烤,這兩年也很少有同學(xué)愿意花時間這么去做),即使相關(guān)實驗室的項目,通常也偏理論暇昂,和現(xiàn)實問題相距甚遠(yuǎn)莺戒,動手能力堪憂。至于能靠參與開源項目進階的同學(xué)更是鳳毛麟角了急波。多數(shù)在中小公司實習(xí)的同學(xué)从铲,也就是搭個Flume,做一下日志統(tǒng)計之類的工作澄暮。
當(dāng)然名段,這沒有貶低算法工程師的意思,事實上泣懊,優(yōu)秀的算法工程師永遠(yuǎn)都是匱乏的伸辟,但和早幾年的大數(shù)據(jù)一樣,機器學(xué)習(xí)目前正處于技術(shù)成熟度曲線的第二個階段馍刮,即期望膨脹階段信夫,有大量的人群擁入,加上早期具備相關(guān)知識的人也比較缺乏卡啰,所以蹭熱點的同學(xué)静稻,不管實際能力如何,就業(yè)情況也還不錯匈辱。
不過振湾,很明顯的,這個領(lǐng)域也開始往第三階段前進梅誓,人員開始沉淀恰梢,簡單工作開始標(biāo)準(zhǔn)化佛南,對從業(yè)人員的要求早晚也將不再是速成班出來的同學(xué)就能滿足的了梗掰。不信,你去了解一下這兩年阿里系招聘算法工程師的標(biāo)準(zhǔn)和待遇的變化嗅回。
而大數(shù)據(jù)平臺開發(fā)工作及穗,在當(dāng)前階段,基本就屬于速成的同學(xué)很難進一步發(fā)展的階段绵载,因為這個領(lǐng)域的部分基礎(chǔ)設(shè)施埂陆,已經(jīng)差不多渡過谷底第三階段來到爬升,甚至穩(wěn)定階段了娃豹,簡單的工作很快都要被成熟的服務(wù)或解決方案所替代焚虱。不具備進入下一階段能力的同學(xué),就業(yè)和成長的空間會越來越窄懂版。
浙大的老校長竺可楨曾經(jīng)說過鹃栽,諸位在校:有兩個問題要自己問問,第一:到浙大來做什么? 第二:將來要做什么樣的人? 很顯然躯畴,認(rèn)清自己民鼓,是做任何事情的第一要務(wù)薇芝。
我相信,多數(shù)同學(xué)的答案當(dāng)然不會是:1: 混丰嘉,2: 混混夯到。但是隨波逐流,大家怎么做我就怎么做饮亏,卻可能是不少同學(xué)在實際行動中給出的答案耍贾。
說這么多,其實就想說路幸,蹭熱點逼争,本身問題不大,不過要想長期發(fā)展的話劝赔,關(guān)鍵是你本身也要具備對應(yīng)的實力誓焦,大家都想做的事,你憑什么能比得過別人着帽,就算眼下沒問題杂伟,過幾年等該領(lǐng)域成熟了呢?與其琢磨哪里是熱點仍翰,不如想想自己適合做什么樣的工作赫粥,如何讓自己在技術(shù)的變革中持續(xù)的成長。
我們的征途予借,是星辰大海
也有同學(xué)會說越平,我并不是跟風(fēng)追熱點,只是灵迫,當(dāng)前的工作秦叛,真的不適合我束倍,我希望去做更有價值慰枕,更有挑戰(zhàn)的事。至于為什么現(xiàn)在的工作不適合呢悬嗓? 比如:
- 業(yè)務(wù)太煩狞换,瑣事太多避咆,沒有時間學(xué)習(xí)
- 干了很長時間,重復(fù)勞動修噪,沒有長進的空間
- 系統(tǒng)很成熟了查库,沒有什么可做的了
- 做的事沒挑戰(zhàn),發(fā)揮不出我的能力
- 做的事太Low黄琼,覺得沒前途
- 問題太多樊销,團隊技術(shù)水平太差
總之,就是我行,但是现柠,這事不行院领,環(huán)境不行,所以我要換方向够吩,我要換地方比然。
誠然,上述情況未必不客觀周循,他們很可能也是這些同學(xué)在工作過程中的真實感受强法,但我敢說,如果這就是全部原因的話湾笛,那么饮怯,有一多半的可能,根源不在環(huán)境嚎研,而在我們自身蓖墅。因為上述情況,只是問題和現(xiàn)象临扮,不是答案和原因论矾。
- 瑣事太多,重復(fù)勞動太多杆勇?有沒有思考過如何化繁為簡贪壳,還是只會用體力勞動代替腦力勞動?
- 系統(tǒng)成熟蚜退,沒什么可做的闰靴?是系統(tǒng)真的完美無瑕了,還是我們坐井觀天钻注,眼界太低蚂且,不知道該如何改進?
- 做的事沒挑戰(zhàn)队寇,做的事太Low膘掰?是事情本身太Low章姓,還是我們做事的目標(biāo)和方法太Low佳遣?
- 問題太多?是周邊同事能力太差凡伊,還是自己只會頭痛醫(yī)頭零渐,解決問題不徹底,又或者是沒有能力推進復(fù)雜問題的解決系忙?
當(dāng)然诵盼,每個人都希望在一個最好的環(huán)境中工作,這本身并沒有錯,但如果你只是單純的回避問題风宁,而未曾解決過這些問題洁墙,那么十有八九,在新的環(huán)境中戒财,你早晚還是會遇上同樣的問題热监。
書中自有顏如玉,讓我看一下代碼先
有些同學(xué)饮寞,特別是經(jīng)常和開源相關(guān)組件打交道的同學(xué)孝扛,會特別喜歡閱讀代碼。
閱讀代碼幽崩,當(dāng)然沒錯苦始,說實話,愛讀代碼的同學(xué)現(xiàn)如今也不好找了慌申。而且由于大數(shù)據(jù)環(huán)境下的底層組件在代碼陌选,流程和并發(fā)邏輯上的復(fù)雜性,再加上上層業(yè)務(wù)繁多蹄溉,關(guān)系復(fù)雜柠贤。所以再成熟的系統(tǒng),在生產(chǎn)過程中类缤,也難免會遇上各種各樣的疑難問題臼勉。如果還要做性能優(yōu)化,那更需要對系統(tǒng)有深入的了解餐弱。所以不愿意看代碼宴霸,只依靠百度的同學(xué)一定做不好相關(guān)的工作。
但是膏蚓,過猶不及瓢谢,畢竟閱讀和熟悉代碼只是手段,而非最終目的驮瞧。遺憾的是氓扛,有時候,很多同學(xué)往往并沒有認(rèn)識到這一點论笔,舉些例子:
我們曾經(jīng)有個同學(xué)特別喜歡閱讀某個開源組件的代碼采郎,而且非常愿意把代碼的閱讀理解寫成文檔,發(fā)表在博客上狂魔。這本身并非壞事蒜埋,你甚至?xí)X得,這簡直太好學(xué)了不是最楷!
但非常遺憾的是:
一來整份,這位同學(xué)的博客基本寫的都是代碼微觀層面的流程理解待错,比如:要做件事,那么是怎么做到的呢烈评?你看火俄,代碼是這樣這樣的。缺乏更高層的抽象歸納讲冠,需不需要這樣做烛占,為什么這樣做,背后的思想是什么沟启,有沒有更好的方式等等
二來忆家,他看代碼的過程對日常工作的解決,往往沒有什么幫助德迹。比如遇到業(yè)務(wù)出錯芽卿,任務(wù)運行緩慢,集群不穩(wěn)定啦之類的問題胳搞,要不然覺得都是小問題卸例,不屑一顧;要不然就是只會照本宣科肌毅,你看代碼邏輯是這樣的筷转,遇到這種場景,就是這種現(xiàn)象悬而。而幾乎不會思考這樣的場景下呜舒,就算代碼本身沒有bug,邏輯是不是合理笨奠,可以怎么改良袭蝗,能否有其他方式規(guī)避等等。
第三點般婆,最重要的到腥,還是思想認(rèn)識,總覺得代碼讀得多就牛逼了蔚袍,這不乡范,博客文檔有人點贊,還能給社區(qū)貢獻代碼呢(雖然大多patch啤咽,都是哪里文檔錯誤晋辆,哪個參數(shù)默認(rèn)設(shè)置有問題,哪個邏輯闰蚕,代碼分支流程有缺失之類的補墩煌稀),至于工作沒做好没陡?那是這個工作太簡單涩哟,不適合自己,發(fā)揮不了自己的能力盼玄,從來不認(rèn)為是自己并沒有真正具備解決問題的能力贴彼。所以,這位同學(xué)后來另謀高就了埃儿,而我一點都不覺得可惜器仗。
寫出來也不是為了噴這位同學(xué),純粹就事論事童番,也真心希望他在將來能慢慢意識到這一點精钮。
多讀點代碼總沒有壞處?
你可能會說剃斧,這只是個極端的例子轨香,多數(shù)同學(xué)還是會針對問題和工作內(nèi)容來學(xué)習(xí)代碼的。即便如此幼东,還是有很多時候臂容,我覺得,有些同學(xué)代碼看得過多了根蟹。
比如在還沒有梳理清楚問題的核心矛盾是什么脓杉,可選的方案的優(yōu)缺點有哪些之前,熱愛閱讀代碼的同學(xué)可能就會將大量的時間投入到代碼的深度閱讀中去简逮,總覺得多讀點代碼沒有什么壞處球散。
這些同學(xué)可能未必不明白全局評估的重要性,但是他們很可能慣性的認(rèn)為只有依靠完全徹底的理解代碼散庶,才能得到第一手的資料沛婴,才能“更好”的評估實施方案。
而事實上督赤,這往往事與愿違嘁灯,一方面,你可能迷失在一些無關(guān)痛癢的局部細(xì)節(jié)上躲舌,另一方面可能忽視了真正需要盡早找出答案的問題丑婿。
實際上,這其實在某種程度上來說没卸,也是一種用戰(zhàn)術(shù)上的勤快來掩蓋戰(zhàn)略上的懶惰的行為表現(xiàn)羹奉。因為閱讀代碼可能是程序員最習(xí)慣做的事。但是约计,采用其它可能的方式去評估或熟悉一個未知的系統(tǒng)呢诀拭?
比如詳細(xì)閱讀官方文檔,進行功能驗證煤蚌,Demo測試耕挨,對類似系統(tǒng)進行橫向比較细卧,收集他人踩坑經(jīng)驗,尋找問題的其它可能解決途徑等等筒占,這些工作往往有可能更加快速全面的幫你了解一個系統(tǒng)贪庙,并做出合理的方案設(shè)計,但是這么做翰苫,因為涉及到持續(xù)的思考止邮,分析,判斷和嘗試的過程奏窑,所以有時候很多同學(xué)往往反而不愿意在上面多費力氣
“迷”之問題的“謎”之解決方式
相比代碼閱讀的執(zhí)著导披,很多同學(xué)在分析問題時的表現(xiàn)卻往往相反。
分布式環(huán)境下的問題往往錯綜復(fù)雜埃唯,如果一個問題不是明顯的確定性邏輯錯誤撩匕,而是比如跑得慢,性能差筑凫,莫名隨機Crash滑沧,timeout等等,不少同學(xué)很容易就快速陷入迷茫中巍实。而為了將自己從迷茫中掙脫出來滓技,往往會在問題排查過程中,輕易的將某些故障的現(xiàn)象歸結(jié)為故障的原因棚潦,進而以治標(biāo)不治本的方式來解決問題令漂。
比如發(fā)現(xiàn)程序Crash或者跑得慢,存在GC或OOM的現(xiàn)象丸边,就去調(diào)大內(nèi)存或者調(diào)整GC配置參數(shù)叠必,至于什么原因?qū)е翯C,什么情況會發(fā)生GC妹窖,誰在使用內(nèi)存纬朝,合不合理,程序邏輯有Bug嗎骄呼?就不想分析或者不會分析了?共苛;簡單的歸因為數(shù)據(jù)量變大啦,數(shù)據(jù)可能傾斜啦蜓萄,宇宙射線爆發(fā)啦等等
再比如發(fā)現(xiàn)程序失敗是因為某些方法調(diào)用過程超時隅茎,那就調(diào)大并發(fā)線程數(shù),調(diào)大服務(wù)超時時間參數(shù)嫉沽,增加機器資源等等辟犀,至于能否解釋為什么偏偏這時候神秘超時,超時的現(xiàn)象合不合理绸硕?抱歉堂竟,現(xiàn)象無法復(fù)現(xiàn)魂毁,日志信息不足,分析不出來跃捣。漱牵。夺蛇。
總之疚漆,看起來就是迷之問題,經(jīng)過迷之自信的推理刁赦,得到一個迷之解決方案娶聘,就算治標(biāo),上述參數(shù)該怎么調(diào)甚脉,調(diào)多少丸升,調(diào)完以后能不能有效,也是迷之結(jié)果牺氨,反正狡耻,先觀察一段時間吧。猴凹。夷狰。
而做的好一點的代碼流派的同學(xué)則可能在排查問題過程中,發(fā)現(xiàn)一個Error或Warning日志郊霎,還會去閱讀相關(guān)的代碼沼头,最后花了幾天閱讀完代碼,可能分析出了什么流程會打印出了這個Error日志书劝,但卻不知道进倍,或者解釋不了為什么當(dāng)時程序會走到這個流程;再然后购对,同樣也就排查不下去了猾昆。
上述情況,通陈獍可能還是方法論問題垂蜗,不知道如何把握問題的重點,在問題自身信息尚未收集清楚的時候烙如,就過早的聚焦在某個收益未知的現(xiàn)象上么抗。而對于進一步的動作,比如
- 質(zhì)疑問題亚铁,考證現(xiàn)象蝇刀,現(xiàn)有的結(jié)論是否站的住腳,是否還有疑點
- 能否再多方面收集一些信息徘溢,或者換一個角度吞琐,嘗試別的方式分析問題
- 能否想辦法復(fù)現(xiàn)問題捆探,或者學(xué)習(xí)新的技能解鎖進一步分析問題的能力
- 能否改進日志,爭取下一次問題出現(xiàn)時能收集到更多信息
- 在自以為修復(fù)問題后站粟,能否針對性的進行后續(xù)的監(jiān)控分析黍图,看看是否真的解決了問題
在類似這些工作方面,往往就沒有表現(xiàn)出應(yīng)有的執(zhí)著了奴烙。
你可能要問助被,那我怎么知道信息收集完整了沒有呢?這一方面切诀,固然依靠你對系統(tǒng)的了解和過往的經(jīng)驗?揩环。但其實,多數(shù)情況下幅虑,你只需要將問題的現(xiàn)象(結(jié)果)和你懷疑的原因進行充分的因果對照丰滑,多數(shù)情況下就能避免過早的陷入一個錯誤的方向。你需要做的就是問自己三個問題:
- 歷史分析倒庵,由果推因:如果問題的出現(xiàn)是由于這個原因褒墨,那么之前沒有出現(xiàn)這個問題的時候,這個原因存在么擎宝?
- 當(dāng)前現(xiàn)狀郁妈,由因推果:如果這個原因會導(dǎo)致這個問題,那么他還會導(dǎo)致其它什么問題嗎认臊?那些問題是否存在圃庭?
這兩個問題檢驗因果之間的相關(guān)性,就是因果關(guān)系要進行正反論證失晴,而不僅僅是單方面推理剧腻。但這有時候還不夠,你還需要問第三個問題來驗證因果性自身涂屁。
- 這個原因是源頭么书在?還是也可能只是一個和問題強相關(guān)的共生現(xiàn)象?
這個問題有時候不太好回答拆又,也沒有固定的套路來排查儒旬,但如果對于這個原因本身,你并沒有找到一個明確的變更點帖族,那無論它有多么的強相關(guān)栈源,也不要過早的認(rèn)為它就是根源。
總之竖般,事出必有因甚垦,排查問題的過程,你要針對的是疑點,哪里解釋不通艰亮,就針對哪里收集信息闭翩;這并不是說你不能去猜想可能的原因,不能快速的做決定迄埃,但猜想不是一廂情愿疗韵,需要信息來支撐,需要和現(xiàn)象相比對侄非。
世間繁華蕉汪,盡是過眼云煙
作為一個有夢想的工程師,你一定會去關(guān)注新技術(shù)彩库。
如果方法得當(dāng)肤无,在短期內(nèi)先蒋,靠深入閱讀文檔骇钦,翻閱核心代碼等等手段,你往往是可以快速的在幾天內(nèi)對一個系統(tǒng)形成基本的認(rèn)知竞漾。
只可惜眯搭,大數(shù)據(jù)領(lǐng)域的技術(shù)日新月異,加上很多系統(tǒng)相對復(fù)雜的架構(gòu)特點业岁,決定了這些新技術(shù)鳞仙,往往信息量不小,如果你沒有真正深入的實踐過笔时,通常很難形成有效的長期知識記憶棍好。可能再過一個月允耿,你剛掌握的內(nèi)容借笙,就都忘得一干二凈了。
于是较锡,無論你多么勤奮努力的去拓展你的知識面业稼,到頭來可能的結(jié)果就是,所有這些努力蚂蕴,都打了水漂低散,在你腦海中留下的,就只是各種人云亦云的皮毛概念和廣告用語了骡楼。
按照互聯(lián)網(wǎng)領(lǐng)域的說法熔号,這是花了很多時間精力去拉新,但是在留存環(huán)節(jié)鸟整,效果慘淡引镊。
這種現(xiàn)象其實很普遍,畢竟人的腦容量是有限的,理論上祠乃,要解決不外乎就幾條路
- 天賦異稟梦重,容量超人,過目不忘
- 重要知識亮瓷,印象深刻琴拧,選擇性留存
- 借助外部存儲單元
第一條,你這把年紀(jì)了嘱支,估計很難有質(zhì)的變化蚓胸。
第二條,最常見的就是通過實踐除师,加深認(rèn)識沛膳,反復(fù)接觸相關(guān)知識,不斷刷新鞏固汛聚。但是如果你要追求知識面锹安,很顯然你無法在所有的方向都投入這么多的時間。
第三條倚舀,該備份的沒備份叹哭,就算備份了,加載不回來又怎么辦 痕貌;)
所以风罩,怎么辦呢?有什么最佳實踐么舵稠?個人以為超升,可行的方法之一,是對相關(guān)的知識及時進行總結(jié)而不是僅僅瀏覽哺徊。如何總結(jié)呢室琢?這一點,固然沒有絕對適合每個人的最佳方式唉工,但是撰寫一些具有分享性質(zhì)的文檔研乒,不管是以外部的博客文章,公眾號文章的形式淋硝,還是以內(nèi)部ppt分享的形式雹熬,通常都會是一個相對有效的方法。
可能也會有很多同學(xué)說谣膳,我其實也是有記筆記竿报,但是我沒有時間整理,另外继谚,我也沒想過要通過分享揚名立萬烈菌,就自己學(xué)習(xí)嘛,所以也沒有寫這類文檔的需求。
對此我想說芽世,分享固然是寫這類文檔的目的之一挚赊,但其實,它只是一個副產(chǎn)品济瓢,更重要的是幫助自己提升知識留存的能力荠割。如果你的學(xué)習(xí)筆記只是對各種知識點的copy/paste性質(zhì)的摘要文檔,缺乏整理旺矾,沒有分享的價值蔑鹦,那么,這種類型的筆記箕宙,對于你自己的價值嚎朽,可能也遠(yuǎn)低于你的想象。
總之柬帕,花過的時間哟忍,就要產(chǎn)生價值,想辦法燕過留毛雕崩。做好留存的工作魁索,在一個需要長期積累的領(lǐng)域,很多時候可能比拉新更加重要盼铁,將來的激活成本也會低很多。
小結(jié)
掙扎了很久尝偎,還是寫出了一篇俗套乏味的文章饶火,好吧,我盡力了致扯,從雞湯的角度再總結(jié)一下吧:
- 有“錢途”的方向肤寝,未必適合你,除非你具備戰(zhàn)勝80%以上的跟風(fēng)者的能力
- “快速”學(xué)習(xí)的結(jié)果通常是欲速則不達抖僵,請學(xué)會思考鲤看,請閱讀第一手資料
- 閱讀代碼很重要,但比閱讀代碼更重要的耍群,是閱讀問題义桂。
- 知識面決定了你的廣度的,但信息不等于知識面蹈垢,人云亦云的概念一錢不值慷吊。
- 在抱怨工作之前,先審視自身問題曹抬,畢竟改變自己更加容易溉瓶,也更加普遍有效。
最后再補充一句在食品安全反反偽科學(xué)中常說的一句話:“脫離劑量談毒性,都是耍流氓”堰酿,上述所有問題疾宏,并無絕對對錯,重要的是程度的把握触创,你是否認(rèn)清了自己的目標(biāo)灾锯,你所做事情與你所想要結(jié)果是否能夠匹配。
常按掃描下面的二維碼嗅榕,關(guān)注“大數(shù)據(jù)務(wù)虛雜談”顺饮,務(wù)虛,我是認(rèn)真的 凌那;)