活到老,學到老,程序員也該如此

此前,“網傳阿里巴巴要求儘快實現P8全員35週歲以內”的消息鬧得沸沸揚揚。雖然很快被阿里闢謠,但蒼蠅不叮無縫的蛋,無蜜不招彩蝶蜂。消息從何而來?真相究竟怎樣?我們無從而知。我們只知道一個事實:不知從何時開始,程序猿也被劃在了“吃青春飯”行業之列。

飽受“996ICU”摧殘後,好不容易“頭禿了變強了”,即將步入爲“高級程序猿”的巔峯,卻被告知:你年紀大了,35了,反應慢了,我們不要你了。

程序猿,老慘了。

許多人都在網上發帖,他們希望時光可以倒流,回到那個他們還是毛頭小子的美好往日。

他們認爲現在纔開始學習某些東西已經太遲了,要是早點開始學習就好了。

“如果我失敗了怎麼辦?”

“我希望我可以……”

“如果我現在纔開始學習,永遠都不會成爲程序員。”

等等……不勝枚舉。

其實,這些都是藉口。戰勝自己,如果你想做,就一定可以做到。

小芯接觸過形形色色的開發工程師——有老有少。他們和你一樣,都是從想要做好生活中的某件事開始。

不要擔心你的年齡。說實話,年齡與你坐在鍵盤前的表現無關。

重要的是自律和動力。

一位成功的老程序員大佬向我們講述他的經歷和感悟。(下文采取第一人稱敘事,我皆指“這位老程序員大佬”)

當然,不是每個人都能面對成爲一名程序員所需經歷的痛苦旅程。(這位程序員大佬使用“痛苦”二字來形容“他歷盡千辛萬苦才走到今天的位置”的過程)。

因爲如果你想嘗試並喜歡編程,那麼在某種程度上,編程會變得具有挑戰性並令人上癮,最後會很痛苦——至少對我來說是這樣。最重要的是,把自己逼到極限的過程很有趣。

但如果你下定決心想學點什麼,那就去學吧。作爲一個沒有大學學位的人,我在這裏要告訴你,無論你處於人生的什麼階段,年老或是年輕,一切皆有可能。

編程的“技能”

許多人把技能與編程相提並論,就好像隨着年齡的增長,你會更擅長編程。你在某個領域花費的時間越長,你確實會掌握一定的知識,但這取決於你的個性。

請記住,技能與編程的時間長短無關。技能是你的適應能力,記住如何修正常見的錯誤,又能學到新東西。

當我學習代碼的時候,大腦就像一塊海綿盡全力地吸收網上和辦公室裏的信息。我不需要像坐在旁邊的老員工剛開始工作時那樣,要親身經歷才能學會識別某些錯誤。

人們認爲一個人的編程時間決定了他的編程能力。但事實並非如此。我知道你們中的一些人會這麼想僅僅是因爲你年紀大了,這意味着你永遠不會學習如何編程,或者沒有時間去精進。

如果這是你,我希望你現在不要讀這篇文章,也希望你把這些想法當垃圾扔掉。

邁克,告訴我需要什麼

要學習編程,你只需要瞭解編程的工作原理。

如果你瞭解編程的概念: OOP、函數、類型等等,那麼你就擁有了擴展不同語言和框架知識的能力。

在學習了第一種編程語言和概念之後,初次學習編程並不能成爲你無法成爲一名開發工程師的理由。

有許多優秀的JavaScript開發人員只學了短短的6個月。

你要用學習速度來衡量自己,而不是已知的知識。

可能明天我去工作,首席開發工程師就會告訴我,我們將改變應用程序的架構,使用Ruby on Rails來編程。

你知道嗎?這時,我和你現在一樣:惴惴不安、充滿疑慮,害怕學習Ruby On Rails。

但幸運的是,在網上有很多很棒的開發工程師,在一定程度上他們願意幫助你。

另外,我已經有了一個大致的概念,所以我現在要做的就是理解Ruby語法,這樣就可以了。

我以前從未使用過Ruby on Rails,但我瞭解編程的工作原理。我知道代碼需要如何與計算機交互。我知道代碼需要編譯(如你所知,有些代碼與其他的不同)。

我知道我有大量的資源,比如官方文檔和谷歌,以此來理解Ruby on Rails的工作原理。更驚喜的是,大多數語言甚至有一個啓動應用程序或教程。

內容在那裏;而你是你自己唯一的學習阻礙。

放手去做

如果在你學習第一種編程語言時候理解了編程的一般工作原理,那麼你應該可以走得更遠。

在學習和適應其他語言以及可能遇到的挑戰時,你在學習第一種編程語言的時候所學到的知識就可以幫到你。

如果你想成爲一名開發工程師,那就學習JavaScript。用這種語言做幾個項目,再用這些項目向你的潛在僱主展示你的能力。

這並不是說你花一週時間學習JavaScript,就可以在蘋果找到一份首席開發工程師的工作。並非如此。

但是通過練習,你會對自己的編程能力更有信心。你會經歷困難、沮喪、甚至惱火,但這都是值得的。

制定一個6個月的學習計劃,每天預留一定的時間坐下來學習JavaScript。一旦你創建了一些應用程序,取得了不錯的投資,那麼你早已成爲公司的價值所在。

此外,當你學習普通的老式JavaScript時,引入如Angular或React這樣的框架會幫助你掌握和理解。不要急於搞懂一個框架。你要用到它的時候自然會明白。

但我能像其他人一樣聰明嗎?

問題是: 這重要嗎?

當然,有經驗的開發工程師會知道一些技巧,而且他們有經驗。但是,當你和從事編程工作20年或30多年的人交談時,我想他們告訴你的和我一樣。

如今,他們能寫出更好的代碼只是因爲他們更善於理解和記憶過去所遇到的某些問題。他們仍然谷歌搜索瀏覽堆棧溢出問題的答案。

而且,我認爲你擅於預測計算機的反應,也擅於閱讀技術文檔並將其應用到你試圖解決的問題上。

當你開始學習並實踐時,你會發現閱讀堆棧溢出問題並理解其解決方案將變得更容易。你解決問題以及向他人闡述問題獲得答案的方式也將變得更加容易和準確。

對於那些已經編程多年的人來說,在有新技術發佈時,他們也不得不像你學習第一種編程語言時一樣去學習。

但是他們的優勢是他們已經學會了第一種編程語言和概念。

經驗豐富的開發工程師仍會遇到問題。他們仍會犯錯。每一天都是一個不斷學習的過程。

我發誓,當人們問我以什麼爲生時,我不會再回答“我是一名開發工程師”。我會說“我學習軟件開發”,因爲一年之後,我很可能會學到一些我今天不知道的新知識。

源源不斷的學習動力,就是你一直成功的祕訣,就像這位程序員大佬一樣,你也可以,加油!米娜桑~

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