欧美xxxx做受老人国产的,亚洲精品久久久无码白峰美,亚洲成av人影院,欧美日韩精品人妻狠狠躁免费视频

干了40年程序員 是一種什么體驗(yàn)?

干了40年程序員,是一種什么體驗(yàn)?

一位從1984年就開(kāi)始當(dāng)程序員的老哥出來(lái)“現(xiàn)身說(shuō)法”了。

他總結(jié)了自己從業(yè)40年的經(jīng)驗(yàn),匯集成13條建議,希望能給想長(zhǎng)期做程序員的新手們提供一些幫助。

文章一發(fā)布,就在reddit、推特上引發(fā)討論,許多程序員也紛紛跟帖附議,有網(wǎng)友就表示:不能同意更多!

做40年程序員是一種什么體驗(yàn)?他給出了13條建議

趕緊來(lái)看看,他都分享了哪些干貨吧。

來(lái)自40年碼農(nóng)的經(jīng)驗(yàn)分享

這位老哥叫Noah Gibbs,曾供職于英偉達(dá)、AppFolio Inc、DAQRI等多家公司,目前就職于Shopify。

做40年程序員是一種什么體驗(yàn)?他給出了13條建議

作為一名資深的軟件開(kāi)發(fā)者,他一直活躍在開(kāi)發(fā)一線。

但與想象中不同,這次他并沒(méi)有介紹要學(xué)習(xí)什么語(yǔ)言或框架,而是指出了一些他認(rèn)為比技術(shù)更重要的事。

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

1、幾歲開(kāi)始都不晚

大約一年前,也就是45歲時(shí),我才開(kāi)始學(xué)習(xí)彈鋼琴。這一年我覺(jué)得自己一直在進(jìn)步,我相信如果堅(jiān)持下去,到60歲時(shí)我一定會(huì)非常棒。

學(xué)習(xí)編程也是一樣,當(dāng)你已經(jīng)有了一些其他領(lǐng)域的背景時(shí),你學(xué)習(xí)編程就會(huì)變得很快。

相信我,如果你從50歲開(kāi)始做程序員,10年后,也就是你60歲時(shí),肯定會(huì)比我18歲的水好得多。

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

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

如果你剛剛?cè)胄?,并且想長(zhǎng)期從事編程行業(yè),我的建議是:要多寫(xiě)一些軟件,任何軟件、寫(xiě)什么都無(wú)所謂。

在我干程序員的40年里,很多潮流來(lái)來(lái)去去??梢哉f(shuō),讓自己多嘗試不同的類型的編程很重要。

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

如果你太拘泥于某一項(xiàng)單獨(dú)的任務(wù),就很可能會(huì)失敗。

3、不要怕回報(bào)慢

不要覺(jué)得自己正在學(xué)習(xí)的東西是無(wú)用的,因?yàn)闊o(wú)用只是相對(duì)的。

我曾經(jīng)把多年的業(yè)余時(shí)間投入到一種叫做DGD的舊MUD編程語(yǔ)言中。這當(dāng)然不是為了實(shí)用價(jià)值,因?yàn)閹缀跛嘘P(guān)于它的東西都是奇怪的和不標(biāo)準(zhǔn)的,很少有真正能應(yīng)用的。

但它教會(huì)了我很多,它教會(huì)了我Ruby on Rails后來(lái)應(yīng)用的東西,它教會(huì)了我如何使用數(shù)據(jù)庫(kù)編程,它還教會(huì)了我一些在后來(lái)學(xué)的5、6種語(yǔ)言中都能用上的東西。

有趣的是,多年后我在DGD找到了一份咨詢工作。這世界上還沒(méi)有多少DGD的工作,但我有一個(gè)!這比我學(xué)過(guò)的許多“實(shí)用”語(yǔ)言更實(shí)用。

就像我經(jīng)常對(duì)自己說(shuō)的:“現(xiàn)在還早。”你可以多學(xué)習(xí)一些有趣或有用的東西,即使可能十年、二十或三十年后才有回報(bào)。

不要總是選擇18個(gè)月后就會(huì)變好的東西,因?yàn)槟銦o(wú)法預(yù)見(jiàn)未來(lái)會(huì)發(fā)生什么。

4、找到工作對(duì)你的吸引點(diǎn)

你開(kāi)始寫(xiě)代碼一定是因?yàn)樗哪承┓矫嫖四?,你要做的是試著弄清楚那是什么?/p>

這個(gè)答案每一個(gè)人都不一樣,對(duì)于我來(lái)說(shuō),我喜歡寫(xiě)代碼給我?guī)?lái)的成就感和聰明的感覺(jué)。

只有在工作中找到足夠吸引你的點(diǎn),才能長(zhǎng)期堅(jiān)持下去。

如果你感覺(jué)不到任何被吸引的點(diǎn),那你可能需要休個(gè)假,或重新尋找你喜歡的東西,因?yàn)檫@樣的工作只會(huì)讓你精疲力竭。

5、這不是短跑或馬拉松,這是寫(xiě)日記

如果你是個(gè)新手,很可能在下定決心“我要成為一名程序員”后,列出一個(gè)詳細(xì)的計(jì)劃,計(jì)劃中可能包含8個(gè)大點(diǎn)、56個(gè)小點(diǎn)等等。

我不會(huì)告訴你不要這么激動(dòng),但我要說(shuō):不要把這個(gè)計(jì)劃太當(dāng)真。因?yàn)槟悴豢赡芡ㄟ^(guò)計(jì)算和計(jì)劃來(lái)完成所有的事情。

在某些時(shí)候,你并沒(méi)有“脫離你設(shè)定的任務(wù)”,你只是“過(guò)著自己的生活”。這不是失敗,也不是放棄。

你無(wú)法預(yù)測(cè)什么是有價(jià)值的,所以你應(yīng)該學(xué)習(xí)所有的東西。我的經(jīng)驗(yàn)就是:你活得越久,工作得越好,你就越能意識(shí)到每件事(每個(gè)人)都能教給你有用的東西。

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

十年后,你會(huì)翻看這本日記,然后說(shuō),“哇,我做了一些很酷的事情”或者“嗯,我是個(gè)很有趣的人”,但我想你應(yīng)該不會(huì)在日記上寫(xiě)“我非常擅長(zhǎng)Java”。

6、不要混淆工作和職業(yè)

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

對(duì)于我來(lái)說(shuō),編寫(xiě)軟件是一項(xiàng)非常棒的工作,但只是一個(gè)還行或者可以更好的職業(yè)。

在接受別人的建議時(shí),也要注意對(duì)方提到的是關(guān)于工作的建議,還是關(guān)于這份職業(yè)的建議,如果你把兩者混淆,這個(gè)建議就沒(méi)有多大意義了。

7、學(xué)習(xí)順序并不重要

在剛?cè)腴T(mén)的時(shí)候,你往往會(huì)得到關(guān)于首先學(xué)習(xí)什么語(yǔ)言或技術(shù)的不同建議,但這其實(shí)不重要。

如果你沒(méi)有按老規(guī)矩走,而是開(kāi)創(chuàng)了自己的道路,那并不意味著你沒(méi)有做好基礎(chǔ)工作,也不意味著你就很糟糕。

因?yàn)槿绻臣抡娴暮苤匾?,你遲早都會(huì)發(fā)現(xiàn),并重新去學(xué)它。

8、你越優(yōu)秀,就越和別人不一樣

早期的程序員職業(yè)培訓(xùn)(例如博客文章、大學(xué)課程、書(shū)籍)就像流水線,試圖培養(yǎng)你在每一個(gè)方面的基本能力。

而且新手很容易誤認(rèn)為,一個(gè)首席工程師需要點(diǎn)滿很多技能、每個(gè)技能水也必須很高,但事實(shí)并非如此。

你可以通過(guò)編寫(xiě)一段相當(dāng)簡(jiǎn)單的代碼并詳細(xì)地描述它,就像Patrick McKenzie在《Bingo Card Creator》中做的那樣,也可以通過(guò)寫(xiě)一些真正有利可圖的東西來(lái)獲得尊重。

除了基本的能力之外,這些道路幾乎沒(méi)有任何共同之處。

這也是為什么當(dāng)你求職時(shí)問(wèn)這樣的問(wèn)題是很蠢的:“我是一名有15年工作經(jīng)驗(yàn)的軟件工程師,通常的薪水是多少?”

15年是如此之久,以至于你應(yīng)該形成了與其他人不同的優(yōu)勢(shì)之處。你寫(xiě)過(guò)書(shū)嗎?從事過(guò)賺錢(qián)的大型項(xiàng)目嗎?整合過(guò)一個(gè)有趣的開(kāi)源項(xiàng)目嗎?這15年你做了什么?

當(dāng)然,這也不僅僅是工資的問(wèn)題。你可以問(wèn):“我是一個(gè)有15年經(jīng)驗(yàn)的軟件工程師,這意味著我有能力領(lǐng)導(dǎo)這個(gè)項(xiàng)目,對(duì)嗎?”答案當(dāng)然是“可能”。接下來(lái)的問(wèn)題是“那在15年里你做了什么?”

9、從實(shí)踐中學(xué)習(xí)

我不會(huì)建議人們一開(kāi)始就去學(xué)習(xí)軟件設(shè)計(jì)的深層原理,這是因?yàn)槿绻阍噲D把它們當(dāng)作純理論來(lái)學(xué)習(xí),那么幾乎肯定會(huì)做錯(cuò)。

對(duì)于初學(xué)者來(lái)說(shuō),首先要學(xué)會(huì)用一些實(shí)際的語(yǔ)言構(gòu)建一個(gè)可用的軟件。不管是哪一種語(yǔ)言,只有犯一些真正的錯(cuò)誤,才能在錯(cuò)誤中解決問(wèn)題。

然后就可以這樣循環(huán):實(shí)踐,犯錯(cuò),學(xué)習(xí)理論,修正錯(cuò)誤。

當(dāng)然,這也并不意味著如果你先學(xué)習(xí)了理論,你就會(huì)永遠(yuǎn)變差,只不過(guò)是需要一段時(shí)間才能正確使用你所學(xué)的知識(shí)。

10、使用什么技術(shù)很重要

如果你想在程序員這一行做上幾十年,那么你不僅要學(xué)習(xí)各種各樣的技術(shù),還要學(xué)習(xí)各種各樣的非技術(shù)技能。

舉個(gè)例子,“學(xué)習(xí)至少一種函數(shù)式編程語(yǔ)言”,就像鋼琴家“學(xué)習(xí)演奏莫扎特的鋼琴曲”一樣是必須的,但同時(shí),學(xué)習(xí)一些編程時(shí)所涉及的邊緣技術(shù),會(huì)為你培養(yǎng)額外的洞察力。

11、向其他領(lǐng)域?qū)W習(xí)

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

你可以從其他領(lǐng)域?qū)W到很多東西。我曾經(jīng)寫(xiě)了一本關(guān)于如何偷學(xué)藝術(shù)家練習(xí)方法的書(shū),正是因?yàn)樗囆g(shù)和音樂(lè)都是古老的學(xué)科,它們已經(jīng)領(lǐng)先計(jì)算機(jī)發(fā)展幾千年了。

所以,如果你遇到了一個(gè)問(wèn)題,你可以考慮一下其他領(lǐng)域的人們會(huì)如何處理這個(gè)問(wèn)題。

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

12、不要重復(fù)造輪子

眾所周知,如果美術(shù)家重復(fù)畫(huà)一個(gè)靜物、音樂(lè)家反復(fù)練一首曲子,他們都會(huì)越來(lái)越熟練,但程序員不一樣。

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

你可以嘗試重新發(fā)明輪子、可以故意用“糟糕”的方式編寫(xiě)代碼,看看會(huì)發(fā)生什么??偠灾?,你需要真正擅長(zhǎng)一些不同尋常的事情。

13、只管去做

我一直在向大家推薦非技術(shù)領(lǐng)域的建議,而不是那些充斥著技術(shù)宅們的論壇,那些論壇里充斥著最才轉(zhuǎn)行為程序員的人那種偏執(zhí)的熱情。

如果你寫(xiě)程序,你就是程序員,或者軟件工程師,或者隨便你怎么稱呼它。

只要你堅(jiān)持寫(xiě)下去,你就可以一直做一個(gè)程序員,不管多少年。無(wú)論如何,如果你堅(jiān)持下去,你就有資格,這才是最重要的。

怎么樣,看完以后,你對(duì)程序員行業(yè)有沒(méi)有新的認(rèn)知?

標(biāo)簽: 做程序員 編寫(xiě)代碼