致敬達叔|一名Android程序員的自我修養

前言

"沒有小角色,只有小演員",這是出自周星馳電影《喜劇之王》中周星馳扮演的尹天仇隨身攜帶的書--《演員的自我修養》。

最近達叔的離世,讓我感慨萬千。做爲在中國土生土長的90後,也算是看着達叔的電影長大的,尤爲是他和周星馳合做拍攝的電影,給我帶來了不少的快樂。前端

這段時間我又從新溫習了一遍《喜劇之王》,在瞭解了達叔的人生經歷以後,回頭再細細品味達叔的做品,讓我不得不敬佩達叔的職業素養:即便常年只演配角,沒有多少戲份,卻依然不忘磨練本身的演技,把每場戲都看成主角來演。只憑借出演配角和小角色就能出名的,相信惟有達叔一人了。react

想到這兒,我不由想起了我以前讀過的一篇文章,文章的內容大概是說:一我的的修養決定了一我的的發展上限。達叔只憑借演配角就能在羣星璀璨的演藝圈留下濃墨重彩的一筆,可見他的演員修養是極高的。程序員

這裏我再舉一個咱們身邊的例子:咱們不少人從大學畢業出來找工做後,當時你們的差距仍是很是小的。但是爲何隨着時間的推移,你們之間的差距會變得愈來愈大呢?而那些最出衆的,也不必定是那些最聰明或者在學校成績優異的那幫人?這是由於學校裏的那套評判標準,是沒法去衡量一我的的價值乃至修養的,而真正能衡量這一切的是社會。數據庫

說了這麼多,咱們言歸正傳,做爲一名Android程序員,咱們如何才能提升咱們的自我修養呢?編程

如何提升自我修養

經過不斷提升咱們自身的修養,才能不斷突破咱們的職業天花板,讓咱們的將來充滿無限可能。

如何才能提升咱們的自身的自我修養呢?由於我是從事Android開發,這裏我就以Android程序員的視角,來闡述咱們提升自我修養的六大要素。
image後端

保持對技術的熱情

對技術保持持續性的熱愛是提升自身修養的先決條件。

俗話說,興趣是最好的老師。因爲信息技術突飛猛進的變化,這就要求咱們從業者必須具有極強的自學能力,而保持對技術的熱情能夠爲咱們自學提供無窮的能量。react-native

對技術的熱愛是程序員的靈魂,一個沒有了靈魂的程序員註定會淪爲一臺沒有感情的搬磚機器。 很難想象一個已經對技術失去熱情的人,還可以在技術的道路上走多遠。設計模式

那麼如何才能保持對技術的熱情呢?微信

  • 保持對新技術的好奇心。只要保持一顆好奇心,咱們纔會不斷地學習,不斷地嘗試新技術。
  • 保持技術的成就感。多作有挑戰性的技術或者事情,這樣才能得到技術上的成就。若是天天作的都是千篇一概的事情,得到不了技術上的成就,那麼熱情逐漸冷淡是必然的。
  • 保持旺盛的精力。很難想象一個終日無精打彩的人能對技術有什麼熱情。

其實,熱情這東西是虛的。並非咱們有了熱情就能作成每件事的,而是咱們作成了每件事得到相應的成就後,才能產生熱情的。而後熱情又會推進咱們更加努力地作去每件事,從而造成一個正向的反饋。
image網絡

掌握紮實的基本功

優秀的程序員,拒絕花裏胡哨。

作技術切勿盲目追新追異

在這個信息爆發的時代,技術的更新迭代是突飛猛進的。可能你前腳剛捂熱的新技術,後腳就涼了...

就拿咱們移動端的混合開發技術來講吧,兩年前我還在使用react-native來寫跨平臺應用,可兩年後我就轉用flutter來寫了。誰能曉得N年後我在用什麼技術來寫這些應用,說不定N年後都已經沒有移動端的概念了。

其實不管混合開發的技術變成啥樣,只要你搭載的操做系統仍是那個Android或者IOS,對咱們來講就是換湯不換藥,沒有本質上的區別。只要你把原生開發技術掌握紮實,換什麼技術不能作?

因此,盲目地去追捧或者是學習新技術實際上是不太理智的。
image

何爲基本功

所謂的基本功,也就是基礎知識,是那些亙古不變的真理。 任何技術都有其基礎知識,計算機也不例外。掌握了它們咱們就可以融會貫通,這也是科班出來的程序員比半路出家的程序員的優點所在。

這裏我就以Android技術爲例子,其基本功主要有:計算機組成原理、操做系統(Linux)、計算機網絡、數據庫、數字電路、Java語言基礎和設計模式等。

千萬不要認爲你會寫幾個界面、幾個App,能在Android設備上跑了,就是掌握Android這門技術了...其實這些在我看來,都是一些皮毛而已。不掌握這些基本功,你是永遠沒法提高本身的技術水平的。

爲何要掌握紮實的基本功

記得之前看過《倚天屠龍記》裏面的一個片斷:張三丰教張無忌太極拳的時候,張無忌只學習了一遍就學會了。爲何張無忌可以學得這麼快?這是由於他學會了九陽神功,內功大增,基礎夠紮實,像太極拳這種招式固然就一學就會啦。這裏內功就比如我說的基本功,太極拳這一類的招式就比如我說的某一項技術。

因此,掌握紮實的基本功,是爲了咱們可以更加快速地學習一門新的技術,這樣咱們就能在突飛猛進的技術迭代中立於不敗之地。
image

追本溯源探尋本質

學習一門技術, 掌握如何去使用只是你邁出去的第一步,後面更重要的是要追本溯源,深究其底層實現原理。說到底,不少技術本來就是相通的,你對技術掌握的深度,決定了你在這條道路上可以走多遠。

咱們在學習任何技術的時候,要作到知其然而且知其因此然,切忌只停留在使用的層面。

試想一下,你做爲一名Android開發,天天都在和Activity或者Fragment打交道,若是忽然有一天有人問你Activity是如何啓動的,而你卻答不上來,豈不是很尷尬?

作了這麼多年的Android,我總結出一條規律:在解決問題沒有任何思路的狀況下,看源碼理解其實現原理,每每可以提供很是好的解決思路。

那麼怎樣才能幫助咱們掌握一門技術的實現原理呢?

  • 1.養成閱讀源碼的好習慣。優秀的源碼不只能夠幫助咱們理解其實現原理,還能夠幫助咱們快速提高技術水平。
  • 2.熟練掌握設計模式。掌握了設計模式,咱們就能夠極大地提高咱們閱讀源碼的速度,加速咱們理解其實現原理。
  • 3.多嘗試一些複雜/核心/難度性較高的工做。由於只有涉及到一些複雜的業務或者功能的時候,咱們纔會涉及到技術的部分實現原理。
  • 4.多思考多總結。畢竟咱們不可能一會兒就能掌握一門技術的實現原理,這就要求咱們須要進行日積月累的學習和反思,並不斷進行總結,這樣才能真正掌握這門技術。

image

嚴於律己寬以待人

成功的人每每也是最自律的那波人,這在作技術領域也一樣適用。

那麼在技術領域,咱們要怎樣才能作到嚴於律己寬以待人呢?

  • 1.養成良好的編碼規範。你寫的代碼就能夠直接表明你的水平,良好的編碼風格能夠爲你贏得同事的信任。
  • 2.培養閱讀文檔和編寫文檔的能力。閱讀文檔是做爲一名研發人員的基本功,而編寫文檔則更考驗一我的對技術的理解,屬於更高層次的能力。
  • 3.嚴格聽從行業內標準和團隊標準。任何標準都是爲了提升效率,下降(溝通)成本。違反標準,尤爲是團隊標準,是不可原諒的。
  • 4.對本身要有明確的認識和職業規劃。只有真正認識本身,知道本身的優點和不足,才能制定適合本身的職業規劃,才能不斷提高本身的技術實力。
  • 5.嚴格的時間觀念和時間管理。今日事今日畢,拒絕拖延,這將會爲你贏得更多的機會。
  • 6.不輕易依賴他人。本身的事情要由本身掌控,對於那些實在不可控,須要依賴他人的,也要作好兩手準備。
  • 7.不輕易評價他人。團隊中的每一個人都是獨特的個體,不能夠將本身的標準強加於他人。固然對於一些達成共識的標準(如團隊準則),能夠在適當的場合委婉地提出。

記住一點,你有多自律,就有多自由
image

勤于思考善於總結

勤于思考,善於總結,這幾乎是每一個成功人士必備的基本素質。

爲何要思考

人之因此爲人,是由於咱們擁有了思考的能力。現代的科學、科技,哪同樣不是人類思考的結晶?思考幫助咱們提升了效率,節省了時間,下降了成本。

若是一件事情,你作過一遍又一遍,但每次只是重複上一次的操做,不進行任何思考的話,那麼這件事情即便你是幹上一千遍,也不會有多大的進步。

初級程序員只會使用框架,中級程序員會修改框架,而高級程序員則會創造框架,這其中的區別就在於思考的頻率以及深度

俗話說,一我的的成長每每伴隨着痛苦。這是由於只有去穿越和反思痛苦,才能獲得遠高於常人的思想深度。一個作任何事情都一路順風的人,是很難有所成長的。

總結的好處

只會思考,而不善於總結的話,那麼思考的成果將會大打折扣。這是由於一我的的經驗和能力,須要通過實踐->思考->總結這三個過程而來,而總結在其中則起到了相當重要的做用。

那麼常常總結能夠爲咱們帶來哪些好處呢?

  • 1.一樣的錯誤不會再犯第二次。善於總結,能夠幫助咱們規避不少重複的錯誤。
  • 2.提煉思考的成果,加深印象和理解。總結的核心在於將複雜的事情簡單化,這樣更易於理解和記憶。
  • 3.創建本身的認知體系。總結的最終目的就是將實踐中產生的經驗和知識,轉化爲本身的認知,從而創建起本身的認知體系。

image

敢於嘗試樂於分享

不管你是作前端仍是後端,不管你是純作技術仍是硬懟業務,咱們都要敢於嘗試,敢於探索,嘗試成功的話也要樂於分享其中的收穫。

敢於嘗試

作技術要講情懷,天天重複去作某件事情或者某項工做,都會極大地消耗咱們對技術的熱情。這就比如你在打通關遊戲,若是你每關遇到的boss都是同一個,技能和難度都是同樣的,那打起來是多麼無聊?

因此在條件容許的狀況下,咱們必定要敢於嘗試,不怕失敗。由於只要你作成了一件事情,其帶來的成就感必定會遠遠大於你作普通工做所帶來的成就感,而這些都將使你脫穎而出,成就不凡。

那麼咱們能夠嘗試那些內容呢?

  • 嘗試承擔更高難度的任務。
  • 嘗試優化和重構現有代碼或者業務。
  • 嘗試學習並實踐新技術。

固然敢於嘗試不等於無所畏懼地冒風險。在嘗試以前必定要進行風險評估,作有把握的嘗試,這樣即便嘗試失敗了,也不至於有什麼大的損失。

樂於分享

這裏可能會有人問道:

  • "我倖幸苦苦進行的嘗試,得到的經驗爲何要分享給別人?"
  • "若是我把經驗和技術分享給別人了,那我豈不是沒有存在的價值了?"

其實否則,分享可能爲咱們帶來不少好處:

  • 最直接的,你不分享出來,誰能知道你嘗試的成果了?
  • 分享的過程,也是加深理解的過程,能夠幫助你掌握得更加牢靠。
  • 分享成果,樹立本身在該領域的領先地位/權威。

最後

不管咱們從事何種職業,咱們首先都要熱愛它,並把提高自我修養做爲一項重要的事情去作,這樣才能幫助咱們在將來的道路上越走越遠。

我是xuexiangjys,一枚熱愛學習,愛好編程,勤于思考,致力於Android架構研究以及開源項目經驗分享的技術up主。獲取更多資訊,歡迎微信搜索公衆號: 【個人Android開源之旅】
相關文章
相關標籤/搜索