最近因?yàn)樵趯W(xué)習(xí)一些新的東西,所以Android的東西沒(méi)有怎么更新。趁著有些閑工夫,簡(jiǎn)單說(shuō)說(shuō)技術(shù)上的學(xué)習(xí),也算是自己對(duì)這幾年工作來(lái)的一個(gè)小結(jié)和經(jīng)驗(yàn)吧。
希望這篇文章可以給那些在校的,亦或是才踏入工作沒(méi)多久的程序員同伴們一些幫助。畢竟我自己也曾經(jīng)止步不前,不知所措迷茫過(guò)。
英語(yǔ)
老實(shí)說(shuō),沒(méi)有比英語(yǔ)性?xún)r(jià)比更高的,需要學(xué)習(xí)的東西了??恐鴦e人的翻譯,或者機(jī)翻,終究不是辦法的。筆者自己日語(yǔ)英語(yǔ)姑且算是熟練掌握的地步,但在初期直接看那些全英文的書(shū)籍,仍然會(huì)覺(jué)得頭痛(謝謝HKUST虐我),但堅(jiān)持下來(lái)就會(huì)發(fā)現(xiàn)其實(shí)計(jì)算機(jī)的英語(yǔ)還是有一個(gè)范圍的,多看看熟悉起來(lái),就會(huì)覺(jué)得并沒(méi)有什么難,甚至比起很多翻譯來(lái)說(shuō)更容易看懂。
混跡GitHub就會(huì)發(fā)現(xiàn)國(guó)內(nèi)的很多開(kāi)發(fā)者英語(yǔ)上欠缺還是很大的,尤其是一些description和readme直接就上中文的。即便你英語(yǔ)渣,機(jī)翻也行啊。畢竟是計(jì)算機(jī)社區(qū),英語(yǔ)才是通用語(yǔ)言。用中文去一些國(guó)外開(kāi)發(fā)者的倉(cāng)庫(kù)里提issue或者回復(fù)也是一種很粗魯?shù)男袨椤?/p>
如果讓我說(shuō)一種對(duì)技術(shù)幫助做大的語(yǔ)言,那必然就是英語(yǔ)。有了英語(yǔ),才能真正地獨(dú)立學(xué)習(xí)。
問(wèn)小白問(wèn)題之前,你Google過(guò)嗎?如果讓我看到一個(gè)開(kāi)發(fā)動(dòng)不動(dòng)去搜百度,那我估計(jì)會(huì)武斷地認(rèn)定他很菜。其實(shí)Google是我們最好的老師,只要能正確把握問(wèn)題的關(guān)鍵字,幾乎沒(méi)有找不到的答案,大部分會(huì)在StackOverflow上,其他散落在GitHub、博客等等地方。
如果你要找的知識(shí)實(shí)在冷門(mén),比如react native的一些深入用法,android上的視頻so閹割這種,那恐怕只能找找做這塊的朋友或者自己研究了,國(guó)內(nèi)有一些好心的開(kāi)發(fā)者或許會(huì)分享在自己的博客。
至于科學(xué)上網(wǎng),這個(gè)話(huà)題相關(guān)的技術(shù)太多了,請(qǐng)自行找方法,VPN也好,SS也好,都很簡(jiǎn)單,相對(duì)的投入和產(chǎn)出對(duì)程序員來(lái)說(shuō)性?xún)r(jià)比是很高的。實(shí)在不想花錢(qián)的去用AWS的免費(fèi)云服務(wù)器搭SS也行。
實(shí)踐
看是沒(méi)有用的。比如看一篇關(guān)于Hybrid App原理的文章,或許它寫(xiě)得很好,但其實(shí)就算看完了,讓我自己去寫(xiě)一個(gè),或者講講怎么去做一個(gè)我們應(yīng)用的版本,Android/iOS端通用的方案,最后也是支支吾吾說(shuō)的不知所以。最后還是要去實(shí)踐做一些Hybrid頁(yè)面才能真正掌握,能說(shuō)清楚這里面的原理和應(yīng)用場(chǎng)景。
紙上談兵終覺(jué)淺。
警惕體力勞動(dòng)
當(dāng)你的工作成為一種體力勞動(dòng),而自己無(wú)法從中獲得新的體驗(yàn)和知識(shí)的時(shí)候,需要警惕究竟發(fā)生了什么。
想得太少
對(duì)做的內(nèi)容停留在完成的階段,而不對(duì)更好的方案,實(shí)現(xiàn)細(xì)節(jié)去思考更多,比如用了某個(gè)API,會(huì)不會(huì)去仔細(xì)看看其究竟是怎么做的?;蛟S你知道Handler,Looper,那你知不知道主線(xiàn)程的一切,四大組件的生命周期,各種View的觸摸事件都是消息驅(qū)動(dòng),在mainLooper里面進(jìn)行處理的呢?
工作內(nèi)容重復(fù)
當(dāng)Focus在一塊上太久之后,難免會(huì)碰到這種瓶頸,這時(shí)候可以看看是不是能換一塊做,比如做做緩存、Hybrid、啟動(dòng)優(yōu)化、視頻等等??梢宰龅念I(lǐng)域很多,實(shí)在發(fā)現(xiàn)興趣不在此,換著做后臺(tái)或者前端也行。倘若因?yàn)閭€(gè)人原因,比如公司不讓換或者可能工資會(huì)低很多,擠一擠時(shí)間在side project里面搞搞也可以,只是有沒(méi)有心的問(wèn)題罷了。
我面試過(guò)一些做Android 5-6年的程序員,但大部分真的連一些優(yōu)秀的2-3年經(jīng)驗(yàn)的開(kāi)發(fā)者都遠(yuǎn)遠(yuǎn)不如,問(wèn)設(shè)計(jì)不懂設(shè)計(jì),問(wèn)流行的開(kāi)源項(xiàng)目回答就是“好像聽(tīng)說(shuō)過(guò)”。我不希望我認(rèn)識(shí)的開(kāi)發(fā)者以后變成這樣的人。但你若是總是重復(fù)勞動(dòng),難免像這樣1年的工作經(jīng)驗(yàn)重復(fù)了5年。
在額外學(xué)習(xí)的時(shí)候,更多關(guān)注的應(yīng)該是不同的地方,而不是說(shuō)這個(gè)學(xué)Python,下個(gè)月去學(xué)Go,想想語(yǔ)言的差異性在哪里,自己試試看做一些項(xiàng)目,培養(yǎng)全棧工程師的底子。還在念大學(xué)的時(shí)候,我學(xué)了C、C++、Java、Node.js、Python、Ruby、PHP、HTML、Perl、SQL/Redis/HBase等等等等,但對(duì)每個(gè)的理解都不夠深刻,現(xiàn)在想來(lái)那時(shí)候是做錯(cuò)了的,思考的都不夠深刻,也直到這一兩年,我才足夠明白這個(gè)錯(cuò)誤。
你應(yīng)該有自己的專(zhuān)長(zhǎng),但也要能從全局的角度思考問(wèn)題,一個(gè)不懂前端的后端老大會(huì)導(dǎo)致前端過(guò)重不靈活,反正只要自己這兒的模塊清晰就好,一個(gè)不懂前端的前端老大也會(huì)讓下面的人不要抱怨,做出來(lái)就好。
公司問(wèn)題
發(fā)生在一些項(xiàng)目經(jīng)理逼得特別緊,老大又比較無(wú)能的地方。項(xiàng)目經(jīng)理為了向上面交待,對(duì)工程師說(shuō)“這個(gè)進(jìn)度能不能再壓一下呀”,或者干脆直接不聽(tīng)工程師的意見(jiàn)強(qiáng)行縮短工期,導(dǎo)致沒(méi)有時(shí)間去深入學(xué)習(xí)。老大明知這種情況,卻睜一只眼閉一只眼。這種公司,還是離開(kāi)為妙。
一個(gè)合格的leader,或者說(shuō)mentor應(yīng)該做些什么?至少?gòu)奈业慕嵌葋?lái)看,盡管對(duì)公司他需要對(duì)項(xiàng)目負(fù)責(zé),但對(duì)團(tuán)隊(duì)內(nèi)的開(kāi)發(fā)者,他更應(yīng)該做的是觀(guān)察和指導(dǎo),看清楚那些團(tuán)隊(duì)毒瘤(不做正經(jīng)事,得過(guò)且過(guò),假加班,搶功勞推脫責(zé)任,等等),營(yíng)造團(tuán)隊(duì)氛圍,而不是一味Push催進(jìn)度和表現(xiàn)自己。
記錄和總結(jié)
寫(xiě)博客是為了什么?
至少對(duì)我來(lái)說(shuō),寫(xiě)下的東西更多是對(duì)自己的一個(gè)總結(jié)和交待。如果我能寫(xiě)下來(lái),至少能證明我有信心自己確實(shí)是這么去理解的,沒(méi)有去坑人。另外,姑且也算是一種成長(zhǎng)的足跡吧,偶爾自己還會(huì)去看看筆記。
分享也是目的之一,希望大家能互相進(jìn)步,這樣才能促進(jìn)發(fā)展。
寫(xiě)博客也好,寫(xiě)一些筆記也好,點(diǎn)點(diǎn)滴滴也是對(duì)自己的一種整理。
問(wèn)自己
想清楚自己要的究竟是什么。
做全還是鉆?想做一個(gè)超強(qiáng)并發(fā)量的后臺(tái)?想黑別人的系統(tǒng)?想做出精準(zhǔn)有效的推薦算法?還是想做別人能實(shí)際用到的產(chǎn)品?
筆者正是因?yàn)橄胍氖呛笳?,所以成為了Android開(kāi)發(fā)(為什么沒(méi)有選iOS,大約是Android的開(kāi)放性吸引了我)。而現(xiàn)在,因?yàn)榘l(fā)現(xiàn)自己欠缺的(對(duì)前端駕輕就熟,大部分的事情對(duì)我來(lái)說(shuō)只是體力活,而自己想承擔(dān)一個(gè)完整的項(xiàng)目卻又不行),所以又重新拾起了Node.js,看起了ES6,思考設(shè)計(jì)和產(chǎn)品的問(wèn)題。
-
Android
+關(guān)注
關(guān)注
12文章
3940瀏覽量
127656 -
Google
+關(guān)注
關(guān)注
5文章
1769瀏覽量
57662 -
工程師
+關(guān)注
關(guān)注
59文章
1571瀏覽量
68574
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論