您的位置:首頁 >聚焦 >

                      環球今日報丨40年編程經驗的老哥:年齡不是問題

                      2022-09-20 21:46:28    來源:程序員客棧

                      選自codefol.io? 作者:Noah Gibbs 機器之心編譯

                      有人選擇販賣焦慮,有人選擇繼續前行。

                      能把一件事堅持 40 年的人并不多,我們今天要介紹的這位就是其中一員。他叫 Noah Gibbs,從事編程工作快滿 40 年了,最近他用博客的形式分享了自己總結的一些經驗。


                      (資料圖)

                      Noah Gibbs

                      再過兩年,也就是 2024 年,我將成為一名擁有 40 年編程經驗的工程師。在此期間,我也獲得了豐厚的回報。我該從哪里介紹我的經驗呢?就從軟件開發說起吧。

                      軟件開發還是「年輕」的

                      就拿編程語言來說,Fortran 可以追溯到 1957 年,同時期出現的還有 LISP 、Algol 等。設想一下,假如從 1957 年開始就有人從事編程工作,到今天也已經有 65 年的經驗了。

                      至于我,自 1998 年以來,我一直是一名全職程序員,時間跨度達 24 年。不過嚴格說來,我從 1984 年就開始干程序員這一行了,這樣算下來已有 38 年從業經驗。

                      至于其他行業,例如文藝界大提琴演奏者馬友友(Yo Yo Ma)從 4 歲半就開始拉大提琴,演藝生涯超過 63 年,但他還不是世界上演奏時間最長的音樂大師。根據吉尼斯世界紀錄,有位音樂人在過去 80 年里連續發行了多個音樂作品,這還不包括現場表演或其他活動。

                      因此相比其他領域來說,我們(編程)的領域還很年輕。

                      年齡不是問題

                      其實,不管從什么時候開始都不會太晚。大約一年前,45 歲的我開始學習鋼琴。如果我能堅持下去,在我 60 歲時,我相信自己會成為一名非常優秀的鋼琴家。

                      我遇到過很多優秀的程序員,他們從 20 歲、30 歲甚至 40 歲才開始。我不明白我們為什么不能從 50 歲或 60 歲開始學習一項新的東西。年齡不是問題。

                      嘗試不同的事情

                      如果你想從事一段漫長而又無趣的編程生涯,而現在又剛剛開始。不用擔心你剛起步,我經常會鼓勵別人「只要開始著手寫一些軟件,任何軟件都無所謂,只要去行動就足夠了?!乖诖诉^程中,你會學習很多不同的東西,學習順序并不重要,重要的是你學到了什么。

                      以我個人為例,在我 40 年的職業生涯中,會遇到很多編程要求,如桌面應用、操作系統、Web 程序等等。只要你嘗試不同的事情,不必在意先學哪個,后學哪個,邊用邊學。如果你太拘泥于學習而忽視實踐,可能會失敗。

                      學習的東西暫時沒用?等等看

                      假如你擔心自己學的東西沒用怎么辦?其實沒用是相對的。比如我,我把多年業余時間投入到一種名為 DGD 的 舊 MUD 編程語言中。這門語言于我而言用處不大,然而學習過程卻教會我很多。它教會我后來 Ruby on Rails(一個使用 Ruby 語言寫的開源 Web 應用框架) 使用的東西,它教會我關于使用數據庫編程的知識,即使它沒有使用數據庫!?

                      總之,這一學習過程在我后來學到的五六種不同的語言中都很有用。

                      有趣的是,多年后我憑借 DGD 找到了一份咨詢的工作。本來世界上就沒有多少這種工作,但我就是其中之一!這比學過許多實用的語言更實用。

                      我也經常對自己說「現在還早」,我的意思是,我才 46 歲,不是 96 歲老的快走不動了。我至少還有 20 年,也許 50 年的時間用來學習。?

                      不管怎樣,最重要的是持續不斷地工作。要想成為一名擁有 20 年、40 年或 70 年經驗的程序員,需要付出很多努力。學習一些有趣或有用的東西,10 年、20 年或 30 年后回過頭來看你收獲了什么。

                      談到工作,我認為工作是一種很好的學習方式。不過我也喜歡做一些與工作無關的事情。無論與工作有關與否,我都會編寫一些代碼。我喜歡寫一些其他程序員可以使用的東西,這樣才有意義。假如說,你不喜歡現在的工作了,你要想辦法改變你的觀點,讓自己適應工作;假如真的無法堅持,你應該采取措施,比如休假或者辭職。

                      要腳踏實地

                      做決定很容易,比如你要成為一名計算機程序員,然后制定了一堆計劃、無數個要點、分成幾大部分來實現這一目標。但是我想說的是,不要把計劃看得太認真。

                      學習編程并不是一項你計劃好的任務,當你開始動手時,你就是一個程序員。如果你還沒開始,建議你去一個在線代碼學習網站編寫你的第一個程序,它應該不會超過 20 分鐘。

                      當你積累到一定程度,開始寫一些規模較大的軟件時,可能會面臨程序臃腫等問題,這時你就需要學習一些模塊化和封裝的知識。想讓程序運行得更好,還需要掌握一些數學知識。所有這些都可以在網上找到,如果你想深入學習,還能找到參考書籍和課程。

                      你也可以培養一些愛好,而不是把所有精力投入到軟件編程里。保持繼續工作,它會讓你變得更好,不要害怕那些看起來不切實際的工作。就像我不知道我要怎么用音樂來幫助我的軟件編寫。但未來是非常遙遠的,沒有人可以預測 20 年后會發生什么。

                      讓自己變得更優秀

                      早期的職業培訓(編程學校、博客文章、大學課程、書籍)有點像裝配線,會學習到一些非?;A的技能,例如編寫函數、調試等,這種學習方式試圖確保你能掌握基本編程能力。

                      如果你想在一眾人中展露鋒芒,你必須非常擅長某件事,而這件事必須是受歡迎的、有利可圖的、缺你不可的那種。如果你打算在軟件領域賺到比爾 · 蓋茨那樣的財富,而你卻寫了 Haskell(復雜、深奧、廣受好評,但沒那么賺錢),那么這將是一個巨大的失敗,反之亦然。

                      從基礎中學習深層次原則

                      不要一開始就去學習軟件設計的深層原理,假如沒有實踐經驗的話,這個過程會很痛苦。你可以先從構建簡單的軟件開始,至于用哪種語言也不用糾結,關鍵是動手實踐。然后找出這一過程遇到的錯誤,查資料、從原理上進行解決。

                      假如同樣的過程循環 20 年,構建、查錯、學習理論、糾錯,你會收獲很多。在這個行業,技術變化相當快,你也可以從其他領域學到很多東西。

                      不要害怕,直接去做就好了。至于我,四十年的時間不知不覺就過去了。無論如何,只要堅持下去,就算成功了。

                      原文鏈接:https://codefol.io/posts/the-forty-year-programmer/

                      關鍵詞: 軟件開發 學習過程 學習方式

                      相關閱讀

                      清冷受被cao到肚子鼓起来bl