做40年程序員是一種什麼體驗?他給出13條建議


幹40年程序員,是一種什麼體驗?一位從1984年就開始當程序員的老哥出來“現身說法”。他總結自己從業近40年的經驗,匯集成13條建議,希望能給想長期做程序員的新手們提供一些幫助。文章一發佈,就在reddit、推特上引發討論,許多程序員也紛紛跟帖附議,有網友就表示:不能同意更多!

趕緊來看看,他都分享哪些幹貨吧。

來自近40年碼農的經驗分享

這位老哥叫Noah Gibbs,曾供職於英偉達、AppFolio Inc、DAQRI等多傢公司,目前就職於Shopify。

作為一名資深的軟件開發者,他一直活躍在開發一線。

但與想象中不同,這次他並沒有介紹要學習什麼語言或框架,而是指出一些他認為比技術更重要的事。

(以下是作者Noah Gibbs的口吻敘述)

1、幾歲開始都不晚

大約一年前,也就是45歲時,我才開始學習彈鋼琴。這一年我覺得自己一直在進步,我相信如果堅持下去,到60歲時我一定會非常棒。

學習編程也是一樣,當你已經有一些其他領域的背景時,你學習編程就會變得很快。

相信我,如果你從50歲開始做程序員,10年後,也就是你60歲時,肯定會比我18歲的水平好得多。

我遇到過很多優秀的程序員,他們都是在20歲、30歲甚至40歲才入行,所以我不知道你為什麼不能從50、60歲開始。這一行需要時間和工作,但你不必非得年輕。

2、多嘗試不同類型的編程

如果你剛剛入行,並且想長期從事編程行業,我的建議是:要多寫一些軟件,任何軟件、寫什麼都無所謂。

在我幹程序員的40年裡,很多潮流來來去去。可以說,讓自己多嘗試不同的類型的編程很重要。

這可以使你思想不會變僵硬,而且事實證明,幾乎任何一種規則都能教會你一些東西。

如果你太拘泥於某一項單獨的任務,就很可能會失敗。

3、不要怕回報慢

不要覺得自己正在學習的東西是無用的,因為無用隻是相對的。

我曾經把多年的業餘時間投入到一種叫做DGD的舊MUD編程語言中。這當然不是為實用價值,因為幾乎所有關於它的東西都是奇怪的和不標準的,很少有真正能應用的。

但它教會我很多,它教會我Ruby on Rails後來應用的東西,它教會我如何使用數據庫編程,它還教會我一些在後來學的5、6種語言中都能用上的東西。

有趣的是,多年後我在DGD找到一份咨詢工作。這世界上還沒有多少DGD的工作,但我有一個!這比我學過的許多“實用”語言更實用。

就像我經常對自己說的:“現在還早。”你可以多學習一些有趣或有用的東西,即使可能十年、二十或三十年後才有回報。

不要總是選擇18個月後就會變好的東西,因為你無法預見未來會發生什麼。

4、找到工作對你的吸引點

你開始寫代碼一定是因為它的某些方面吸引你,你要做的是試著弄清楚那是什麼。

這個答案每一個人都不一樣,對於我來說,我喜歡寫代碼給我帶來的成就感和聰明的感覺。

隻有在工作中找到足夠吸引你的點,才能長期堅持下去。

如果你感覺不到任何被吸引的點,那你可能需要休個假,或重新尋找你喜歡的東西,因為這樣的工作隻會讓你精疲力竭。

5、這不是短跑或馬拉松,這是寫日記

如果你是個新手,很可能在下定決心“我要成為一名程序員”後,列出一個詳細的計劃,計劃中可能包含8個大點、56個小點等等。

我不會告訴你不要這麼激動,但我要說:不要把這個計劃太當真。因為你不可能通過計算和計劃來完成所有的事情。

在某些時候,你並沒有“脫離你設定的任務”,你隻是“過著自己的生活”。這不是失敗,也不是放棄。

你無法預測什麼是有價值的,所以你應該學習所有的東西。我的經驗就是:你活得越久,工作得越好,你就越能意識到每件事(每個人)都能教給你有用的東西。

你不是在跑短跑或馬拉松。相反,這就像是在寫日記。

十年後,你會翻看這本日記,然後說,“哇,我做一些很酷的事情”或者“嗯,我是個很有趣的人”,但我想你應該不會在日記上寫“我非常擅長Java”。

6、不要混淆工作和職業

不要把工作和職業混為一談,它們不是一回事。

對於我來說,編寫軟件是一項非常棒的工作,但隻是一個還行或者可以更好的職業。

在接受別人的建議時,也要註意對方提到的是關於工作的建議,還是關於這份職業的建議,如果你把兩者混淆,這個建議就沒有多大意義。

7、學習順序並不重要

在剛入門的時候,你往往會得到關於首先學習什麼語言或技術的不同建議,但這其實不重要。

如果你沒有按老規矩走,而是開創自己的道路,那並不意味著你沒有做好基礎工作,也不意味著你就很糟糕。

因為如果某件事真的很重要,你遲早都會發現,並重新去學它。

8、你越優秀,就越和別人不一樣

早期的程序員職業培訓(例如博客文章、大學課程、書籍)就像流水線,試圖培養你在每一個方面的基本能力。

而且新手很容易誤認為,一個首席工程師需要點滿很多技能、每個技能水平也必須很高,但事實並非如此。

你可以通過編寫一段相當簡單的代碼並詳細地描述它,就像Patrick McKenzie在《Bingo Card Creator》中做的那樣,也可以通過寫一些真正有利可圖的東西來獲得尊重。

除基本的能力之外,這些道路幾乎沒有任何共同之處。

這也是為什麼當你求職時問這樣的問題是很蠢的:“我是一名有15年工作經驗的軟件工程師,通常的薪水是多少?”

15年是如此之久,以至於你應該形成與其他人不同的優勢之處。你寫過書嗎?從事過賺錢的大型項目嗎?整合過一個有趣的開源項目嗎?這15年你做什麼?

當然,這也不僅僅是工資的問題。你可以問:“我是一個有15年經驗的軟件工程師,這意味著我有能力領導這個項目,對嗎?”答案當然是“可能”。接下來的問題是“那在15年裡你做什麼?”

9、從實踐中學習

我不會建議人們一開始就去學習軟件設計的深層原理,這是因為如果你試圖把它們當作純理論來學習,那麼幾乎肯定會做錯。

對於初學者來說,首先要學會用一些實際的語言構建一個可用的軟件。不管是哪一種語言,隻有犯一些真正的錯誤,才能在錯誤中解決問題。

然後就可以這樣循環:實踐,犯錯,學習理論,修正錯誤。

當然,這也並不意味著如果你先學習理論,你就會永遠變差,隻不過是需要一段時間才能正確使用你所學的知識。

10、使用什麼技術很重要

如果你想在程序員這一行做上幾十年,那麼你不僅要學習各種各樣的技術,還要學習各種各樣的非技術技能。

舉個例子,“學習至少一種函數式編程語言”,就像鋼琴傢“學習演奏莫紮特的鋼琴曲”一樣是必須的,但同時,學習一些編程時所涉及的邊緣技術,會為你培養額外的洞察力。

11、向其他領域學習

如果我們的行業還很年輕,這意味著什麼?這意味著我們還在研究基本原理。

你可以從其他領域學到很多東西。我曾經寫一本關於如何偷學藝術傢練習方法的書,正是因為藝術和音樂都是古老的學科,它們已經領先計算機發展幾千年。

所以,如果你遇到一個問題,你可以考慮一下其他領域的人們會如何處理這個問題。

例如,阿圖爾·葛文德(Atul Gawande)的《清單宣言(Checklist Manifesto)》中就講述飛行員、摩天大樓建造者和醫生處理問題的截然不同的方式,這些都是很好的方法。

12、不要重復造輪子

眾所周知,如果美術傢重復畫一個靜物、音樂傢反復練一首曲子,他們都會越來越熟練,但程序員不一樣。

在程序員中有一個說法是“不要重復造輪子”,我們的工作正是想辦法讓電腦完成所有的重復工作,這樣我們就可以隻做新的工作。

你可以嘗試重新發明輪子、可以故意用“糟糕”的方式編寫代碼,看看會發生什麼。總而言之,你需要真正擅長一些不同尋常的事情。

13、隻管去做

我一直在向大傢推薦非技術領域的建議,而不是那些充斥著技術宅們的論壇,那些論壇裡充斥著最近才轉行為程序員的人那種偏執的熱情。

如果你寫程序,你就是程序員,或者軟件工程師,或者隨便你怎麼稱呼它。

隻要你堅持寫下去,你就可以一直做一個程序員,不管多少年。無論如何,如果你堅持下去,你就有資格,這才是最重要的。

怎麼樣,看完以後,你對程序員行業有沒有新的認知?


相關推薦

2023-04-11

者花很長時間吃午餐。”給世界上最著名的科技巨頭打工是一種什麼體驗?可能是年入19萬美元(約130.6萬人民幣),什麼都不需要幹。來自美國佛羅裡達州的Madelyn Machado,曾在Meta擔任HR。她在近日火爆全網的一條TikTok視頻裡分

2022-09-20

玩遊戲的過程中電源炸是一種什麼體驗?武漢一小夥現在就遇到這樣的事,9月18日他在在傢打遊戲時電源突然爆炸,噼裡啪啦一陣響,之後電腦就黑屏。這個事有多個網站、媒體也跟進報道,當事人劉先生表示,當天才更新CPU和

2024-03-17

Devin到底是一個漂亮的Demo,還是一個已經能替代程序員的智能體,使用體驗怎麼樣,拿到測試資格的網友第一時間分享自己的體驗。由10枚IOI金牌在手的創業團隊CognitionAI開發的全球首個AI程序員智能體Devin,一發佈就讓科技圈坐

2023-03-02

之言這4款,其餘4款的鈉含量都徘徊在10mg/100ml 左右。另一種重要電解質鉀的含量,各品牌差距就要小一些:盼盼 豹發力、寶礦力水特、尖叫這3款做到 20mg/100ml 左右;其餘大多數都在 10~15mg/100ml 這樣的水平,隻有外星人和屈臣氏

2023-01-24

均氣溫隻有-3℃左右,無霜期僅80多天。零下53℃的漠河是什麼體驗呢?有當地網友直接演示一番,用東北特產”凍梨砸一下板磚,結果板磚稀碎”。中國天氣網預計,22日至25日黑龍江全省大部將出現嚴寒天氣,北部部分市縣最

2022-06-27

可以看到現實中的物理鍵盤進行輸入;在現實環境中,則是一臺 PC,配一臺真實的曲面屏幕。受試者在 VR 中看到的畫面|Mixed news一半受試者使用 VR 環境進行辦公,另一半則在物理環境辦公,半天後雙方進行“場地交換”。在測

2023-11-13

但價值百萬基金無法贖回的投資人,又為何不願意走法律程序?百萬投資“打水漂”每天看著自己賬戶裡的錢,但不能贖回,是一種什麼體驗?來自北京的張黎就遇到這個問題。2021年1月27日,經銀河證券上海漕寶路營業部客戶

2024-03-08

表示,通常情況下,有三種獲得這個面試機會的方式,第一種是按部就班,把你的簡歷通過官方的招聘渠道和招聘軟件,投遞給特斯拉。第二種就比較隨機,你可以在社交活動中主動與特斯拉的人攀談。第三種方式也很常見,那

2023-03-24

。而這次,OpenAI推出的“代碼解釋器”編程插件,動嘴編程序更強。目前,這一插件用的是處於實驗階段的ChatGPT模型。該模型被放置在一個受防火墻保護的沙盒中,並會分配一些少量的臨時磁盤空間。另外,在用戶進行交流對

2023-03-23

和給我看演示的人坐在一起,一位名叫Charles Simonyi的傑出程序員,我們立即開始集思廣益,討論使用這種用戶友好的計算方法可以做的所有事情。查爾斯最終加入微軟,Windows成為微軟的支柱,我們在演示之後所做的思考幫助設

2023-05-07

去美元化?這三位中學生中,最先幸運被抽中現場提問的是一位第六次參加伯克希爾股東會的13歲女孩。她提出的問題是,“目前美國債務規模已經累計達到逾31萬億美元,是美國GDP的125%,而在過去幾年,美聯儲依然還在不斷的

2024-05-17

錢。21、工具如果你要付費圈子、社群,建議你用紛傳小程序、app。如果你想發佈單篇的文章、報告或者專題,建議用麥完小程序。如果你想要做課程培訓,建議用千聊、荔枝微課。如果你想做音頻播客,建議你使用小宇宙APP。

2023-02-20

隊時,當你招募有傢庭的人時,你必須考慮這個問題。這是一件非常長期的事情。”“所以我對自己非常嚴格,而且我試圖對別人也這樣要求。”蓋茨說,如果他能比最後更早一點意識到這一點,他原本可以幫助自己。

2023-11-13

都在推特上發佈一張人工智能照片,也會使用聊天機器人程序ChatGPT,這些會成為未來1年到2年裡人們可以運用到的一些人工智能技術嗎?未來有哪些領域會開始應用人工智能?▎目前很多人都會利用人工智能技術生成所需圖畫KK