互聯網寒冬之淚:Android開發程序員,你夠優秀嗎? 你經常擔心自己不夠好 我就是你 第一課:學習編程和鍛鍊肌肉一樣 第二課:關注你的技術能力,而不是自己 記錄你的小勝利! 最後

我想每個開發者在學習成長的過程中,在面臨技術難題的時候,都有經歷過自我懷疑的過程,但是有時候這並不是你的錯,大家都經歷過如此的過程。我們作爲一個開發者,在成長的過程中,總有一些小的勝利和小的沮喪,學着爲自己喝彩吧。

以下任何一個,是不是聽起來都很熟悉?

你經常擔心自己不夠好

看看你周圍的開發者們,他們似乎擁有一切。他們的代碼比你的更簡潔,他們 Debug 的速度比你更快,他們只需要在編碼之前閱讀文檔就可以很順利的繼續編碼。他們看起來很有信心,也對編碼富有熱情。

但是,你很擔心。你擔心你對框架和所使用的語言不夠了解,你擔心會引入新的錯誤;你擔心趕不上最熱門的技術;你擔心你沒有足夠的才能,來自然而言的得到這一切。你在想:“也許我不想成爲一個開發者!”

如果任何這些自我懷疑的想法,你聽起來都很熟悉。那麼實際上,你並不孤單。Google 搜索 “self-doubt developers”(自我懷疑的開發者),你會在不到一秒鐘內得到超過 200w 的結果。

我就是你

有一段時間,我也經歷了強烈的自我懷疑。這是在大學時期,我正在複習和準備面試的時候發生的。這些算法問題每天都讓我感覺到徹底的被打敗了。我和現在的你一樣擔心自己不夠好。

最終,我通過實踐得到了回報,我收到了來自知名科技公司的多份 offer 。一路走來,我學到了兩個重要的課程,改變了對我編程的看法,消除了我自我懷疑的想法。

我現在和你分享,希望它們也能幫助到你。

第一課:學習編程和鍛鍊肌肉一樣

爲了學習如何踢球,你需要去球場上踢球;爲了鍛煉出更強壯的肌肉,你需要去健身房舉重;想要學習編程,你需要坐下來編寫代碼。

舉重後,第二天你會感到痠痛和疲憊。而當遇到編程難題的時候,這會是非常燒腦的,你將會感到沮喪。

你不會因爲疼痛而放棄鍛鍊,你知道這是鍛鍊過程的一部分。但是當你在編程的時候卡住的時候,你可能會懷疑自己,想知道自己是否足夠聰明。

因爲:

你認爲卡住是你的錯。

而其他人使它看起來毫不費力。

1、卡住是過程的一部分

也許沒有人告訴過你,但在編程期間卡住是絕對正常的,它甚至發生在高級開發者身上。編程的很大一部分是要弄清楚爲什麼你預期發生的事情沒有發生。如果你覺得,孩子第一次站起來的時候能夠走路是荒謬的,爲什麼你會希望你的代碼的第一稿能夠完美運行而沒有任何錯誤?

我記得當我被卡住了很長時間的時候,我想把我的頭撞在牆上。我知道這很難過和令人沮喪(特別是在處理與開發環境有關的問題時)。但是就是掛在了這裏。深入研究這個問題、藉助 Google、問一些朋友、散步。你最終會解決它,並繼續前進。而且隨着你獲得更多的經驗,你會慢慢地陷入困境。

假如下一次你又被卡住了,別再浪費時間自我懷疑了。你應該提醒自己,這不是你的錯。這是正常的。這只是過程的一部分。

如果你是初學者,花費數天時間來建立開發環境是非常普遍的,這些時刻可能會粉碎你的靈魂。你嘗試按照文檔一步一步向下執行,但隨機的錯誤不斷出現在每一個步驟中。文檔看起來很簡單,但事實並非如此。這不是你的錯。閱讀該教程的人中有 99.99% 卡住了。其餘的 0.01% 是幸運的,恰好與編寫文檔的人具有完全相同的操作系統環境配置。

不幸的是,學習編程的第一步也是最令人沮喪和心靈破碎的部分。當你看到你無法理解的錯誤時,只需將確切的錯誤日誌複製並 Google 搜索即可。(把錯誤日誌加上引號或只搜索錯誤日誌的前半部分可能會有幫助。)嘗試不同的解決方案,直到找到可用的解決方案,然後繼續下一步。

請原諒我再次強調:在這個階段卡住不是你的錯。大家都這樣做。我保證,一旦你經歷了這個階段,編程將會變得更加有趣。

2、我們把"天生聰明"和"顯得聰明"混爲一談

在大學的最後一個學期,我的朋友們對我在《高級數據結構和算法》課上的表現感到驚訝。當他們很辛苦的學習時,我看起來毫不費力。

他們不知道的是,在課前幾個月,爲了準備面試,我花了數小時練習編碼挑戰,涵蓋了與課程完全相同的課題:動態編程,深度優先算法,廣度優先算法等。它似乎毫不費力,只是因爲我已經經歷過這些努力的過程。

當我第一次自學這些概念的時候,我會花上好幾個小時的時間來盯着一個問題,而且無法弄清楚它。當我放棄並在網上查找解決方案時,我努力去理解它們。當我終於做到的時候,我感到更加沮喪,因爲我懷疑自己是否足夠聰明,爲什麼自己想不出這樣的解決方案。

有時甚至當我再次遇到同樣的問題時,我可能仍然不知道如何解決它。我會這麼強調,我不得不採取長時間的熱水淋浴來讓自己冷靜下來。

所以,當我說我知道自己懷疑自己,擔心自己做不到的時候,相信我。我以前也是這樣。我可以向你保證,你並不孤單,許多偉大的開發者也經歷過同樣的事情。

下一次當你身邊的人表現出衆的時候,而你正在辛苦掙扎,不要以爲是你沒有足夠的才能。很可能,他們只是比你更早地接觸到這個主題或類似的主題。他們的大腦已經建立了“肌肉”來處理這種類型的問題。在經歷了目前的掙扎之後,你也會顯得聰明而輕鬆。

這和我們的常識一樣。

你通過鍛鍊來鍛鍊肌肉。你投入的努力越多,訓練的時間越長,你的能力就越強。學習編程有完全相同的過程。你花費的時間越多,你就會越熟練。種瓜得瓜,種豆得豆。

第二課:關注你的技術能力,而不是自己

不要想着你是一個多麼優秀或者多麼差勁的程序員。如果你處於隊伍的最後 5%,你想變得更好。如果你有幸進入前 5%,你仍然想變得更好。無論你有多好或多壞,總有人在你面前,同時在你背後也有人。那麼爲什麼浪費時間思考這個問題呢?

相反,專注於你的技術能力。別再問你有多好、問你的代碼有多好。你應該思考,如何使它更好,更快,更可讀?長期關注那些讓你欽佩的工程師,閱讀他們的代碼,看看和你的有什麼不同?他們最近又正在研究什麼新玩意兒?

如果您已經是一名軟件工程師,則有人會付錢給您編寫代碼。你應該停下來反思一下,因爲這意味着很多:有人要麼相信你的編碼技巧,要麼看到你的潛力。要做到這一點,唯一的辦法就是把注意力集中在你的技術能力上,不斷地改進。

記錄你的小勝利!

你最後一次被卡住了,不確定自己是否能解決問題。而最終,你是如何解決的?

打開一個新的 Google 文檔並將它記錄下來。

下一次你懷疑自己的時候,看看這個文檔,並提醒你自己:如果你能解決上次的問題,你也將解決這個問題。

使用該文檔來記錄你克服的挑戰性問題的過程以及你從中學到的東西,總是慶祝這些小勝利,用這些小勝利來激勵自己!

如果你看完這篇文字,留下評論,分享上次被卡住的時刻,提醒那些正在掙扎的人,他們並不孤單!

最後

一天一天的過的真的是太快了,常常感到時間在前進,而我們還在停滯不前,看似每天努力的工作學習着,仔細想想其實又會發現,一天下來我們好像還真的什麼都沒幹,看似忙碌的一天,我們把時間都用在哪了?學習!可是爲什麼我覺得什麼也沒學到呢?其實不是沒有學到東西,只是我們的學習效率太低而已!

針對Android程序員,我這邊給大家整理了一些資料,包括不限於高級UI、性能優化、移動架構師、NDK、混合式開發(ReactNative+Weex)微信小程序、Flutter等全方面的Android進階實踐技術;希望能幫助到大家,也節省大家在網上搜索資料的時間來學習,也可以分享動態給身邊好友一起學習!

需要架構學習筆記導圖、進階架構資料、面試專題的,可以加入Android開發交流羣(820198451)

如果你看到了這裏,覺得文章寫得不錯就給個讚唄?如果你覺得那裏值得改進的,請給我留言。一定會認真查詢,修正不足。謝謝。
需要架構學習筆記導圖、進階架構資料、面試專題的,可以加入Android開發交流羣(820198451)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章