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


硬件工程師看了只會找個角落默默哭泣#硬件工程師 #MDD #MDD辰達(dá)半導(dǎo)體 #產(chǎn)品經(jīng)理 #軟件工程師

如何成為一名合格的KaihongOS南向驅(qū)動開發(fā)工程師
如何成為一名合格的KaihongOS北向應(yīng)用開發(fā)工程師
如何成為一名嵌入式軟件工程師?

如何成為嵌入式開發(fā)工程師?
月薪 3 萬的嵌入式工程師都在用,串口屏到底神在哪?

如何成為一名合格的南向驅(qū)動開發(fā)工程師
如何成為一名合格的北向應(yīng)用開發(fā)工程師

不同時期的硬件工程師,最怕發(fā)生的事 #電子工程師 #硬件工程師 #內(nèi)容過于真實 #YXC晶振 #揚興科技
為什么嵌入式驅(qū)動開發(fā)工程師可以拿高薪?
OpenAI從谷歌DeepMind挖角三名高級工程師

評論