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