譯者:承香墨影
我想每個開發者在學習成長的過程中,在面臨技術難題的時候,都有經歷過自我懷疑的過程,但是有時候這並不是你的錯,大家都經歷過如此的過程。我們作為乙個開發者,在成長的過程中,總有一些小的勝利和小的沮喪,學著為自己喝彩吧。
以下任何乙個,是不是聽起來都很熟悉?
你經常擔心自己不夠好。
看看你周圍的開發者們,他們似乎擁有一切。他們的**比你的更簡潔,他們 debug 的速度比你更快,他們只需要在編碼之前閱讀文件就可以很順利的繼續編碼。他們看起來很有信心,也對編碼富有熱情。
但是,你很擔心。你擔心你對框架和所使用的語言不夠了解,你擔心會引入新的錯誤;你擔心趕不上最熱門的技術;你擔心你沒有足夠的才能,來自然而言的得到這一切。你在想:「也許我不想成為乙個開發者!」
如果任何這些自我懷疑的想法,你聽起來都很熟悉。那麼實際上,你並不孤單。google 搜尋 「self-doubt developers」(自我懷疑的開發者),你會在不到一秒鐘內得到超過 200w 的結果。
有一段時間,我也經歷了強烈的自我懷疑。這是在大學時期,我正在複習和準備面試的時候發生的。這些演算法問題每天都讓我感覺到徹底的被打敗了。我和現在的你一樣擔心自己不夠好。
最終,我通過實踐得到了回報,我收到了來自知名科技公司的多份 offer 。一路走來,我學到了兩個重要的課程,改變了對我程式設計的看法,消除了我自我懷疑的想法。
我現在和你分享,希望它們也能幫助到你。
為了學習如何踢球,你需要去球場上踢球;為了鍛鍊出更強壯的肌肉,你需要去健身房舉重;想要學習程式設計,你需要坐下來編寫**。
舉重後,第二天你會感到痠痛和疲憊。而當遇到程式設計難題的時候,這會是非常燒腦的,你將會感到沮喪。
你不會因為疼痛而放棄鍛鍊,你知道這是鍛鍊過程的一部分。但是當你在程式設計的時候卡住的時候,你可能會懷疑自己,想知道自己是否足夠聰明。
因為:你認為卡住是你的錯。
而其他人使它看起來毫不費力。
也許沒有人告訴過你,但在程式設計期間卡住是絕對正常的,它甚至發生在高階開發者身上。程式設計的很大一部分是要弄清楚為什麼你預期發生的事情沒有發生。如果你覺得,孩子第一次站起來的時候能夠走路是荒謬的,為什麼你會希望你的**的第一稿能夠完美執行而沒有任何錯誤?
我記得當我被卡住了很長時間的時候,我想把我的頭撞在牆上。我知道這很難過和令人沮喪(特別是在處理與開發環境有關的問題時)。但是就是掛在了這裡。深入研究這個問題、借助 google、問一些朋友、散步。你最終會解決它,並繼續前進。而且隨著你獲得更多的經驗,你會慢慢地陷入困境。
如果你是初學者,花費數天時間來建立開發環境是非常普遍的,這些時刻可能會粉碎你的靈魂。你嘗試按照文件一步一步向下執行,但隨機的錯誤不斷出現在每乙個步驟中。文件看起來很簡單,但事實並非如此。這不是你的錯。閱讀該教程的人中有 99.99% 卡住了。其餘的 0.01% 是幸運的,恰好與編寫文件的人具有完全相同的作業系統環境配置。
在大學的最後乙個學期,我的朋友們對我在《高階資料結構和演算法》課上的表現感到驚訝。當他們很辛苦的學習時,我看起來毫不費力。
他們不知道的是,在課前幾個月,為了準備面試,我花了數小時練習編碼挑戰,涵蓋了與課程完全相同的課題:動態程式設計,深度優先演算法,廣度優先演算法等。它似乎毫不費力,只是因為我已經經歷過這些努力的過程。
當我第一次自學這些概念的時候,我會花上好幾個小時的時間來盯著乙個問題,而且無法弄清楚它。當我放棄並在網上查詢解決方案時,我努力去理解它們。當我終於做到的時候,我感到更加沮喪,因為我懷疑自己是否足夠聰明,為什麼自己想不出這樣的解決方案。
有時甚至當我再次遇到同樣的問題時,我可能仍然不知道如何解決它。我會這麼強調,我不得不採取長時間的熱水淋浴來讓自己冷靜下來。
所以,當我說我知道自己懷疑自己,擔心自己做不到的時候,相信我。我以前也是這樣。我可以向你保證,你並不孤單,許多偉大的開發者也經歷過同樣的事情。
下一次當你身邊的人表現出眾的時候,而你正在辛苦掙扎,不要以為是你沒有足夠的才能。很可能,他們只是比你更早地接觸到這個主題或類似的主題。他們的大腦已經建立了「肌肉」來處理這種型別的問題。在經歷了目前的掙扎之後,你也會顯得聰明而輕鬆。
這和我們的常識一樣。
你通過鍛鍊來鍛鍊肌肉。你投入的努力越多,訓練的時間越長,你的能力就越強。學習程式設計有完全相同的過程。你花費的時間越多,你就會越熟練。種瓜得瓜,種豆得豆。
相反,專注於你的技術能力。別再問你有多好、問你的**有多好。你應該思考,如何使它更好,更快,更可讀?長期關注那些讓你欽佩的工程師,閱讀他們的**,看看和你的有什麼不同?他們最近又正在研究什麼新玩意兒?
如果您已經是一名軟體工程師,則有人會付錢給您編寫**。你應該停下來反思一下,因為這意味著很多:有人要麼相信你的編碼技巧,要麼看到你的潛力。要做到這一點,唯一的辦法就是把注意力集中在你的技術能力上,不斷地改進。
你最後一次被卡住了,不確定自己是否能解決問題。而最終,你是如何解決的?
開啟乙個新的 google 文件並將它記錄下來。
使用該文件來記錄你克服的挑戰性問題的過程以及你從中學到的東西,總是慶祝這些小勝利,用這些小勝利來激勵自己!
推薦閱讀:
自我懷疑的開發者 你夠好嗎?
譯者 承香墨影 我想每個開發者在學習成長的過程中,在面臨技術難題的時候,都有經歷過自我懷疑的過程,但是有時候這並不是你的錯,大家都經歷過如此的過程。我們作為乙個開發者,在成長的過程中,總有一些小的勝利和小的沮喪,學著為自己喝彩吧。以下任何乙個,是不是聽起來都很熟悉?你經常擔心自己不夠好。看看你周圍的...
自我懷疑的開發者 你夠好嗎?
譯者 承香墨影 我想每個開發者在學習成長的過程中,在面臨技術難題的時候,都有經歷過自我懷疑的過程,但是有時候這並不是你的錯,大家都經歷過如此的過程。我們作為乙個開發者,在成長的過程中,總有一些小的勝利和小的沮喪,學著為自己喝彩吧。以下任何乙個,是不是聽起來都很熟悉?你經常擔心自己不夠好。看看你周圍的...
自我認識不清的開發者
在工作的幾年裡,我發現作為開發人員普遍存在自我認識不清的情況,出現這種情況的原因主要是不了解做為乙個開發人員所應該具有的各種能力。在拋開計算機語言 資料結構及演算法和作業系統網路資料庫等層面的情況下 因為這些在具備興趣這個要素時自然會主動的去學好 那麼我認為做為開發人員所需要的要素 興趣 理解能力 ...