
關(guān)于“程序員是不是吃青春飯”的話題討論由來(lái)已久,對(duì)于那些即將或已經(jīng)步入中年的程序員來(lái)說(shuō),似乎不轉(zhuǎn)管理崗或進(jìn)階高層就會(huì)被富有活力的年輕程序員替代。但是舒適圈呆久了再想著轉(zhuǎn)行或重頭再來(lái),似乎青春已走遠(yuǎn),勇氣也被封塵。好比當(dāng)下大火的數(shù)據(jù)分析崗位,很多小白或零基礎(chǔ)的轉(zhuǎn)行從業(yè)者數(shù)不勝數(shù),但總有些頂級(jí)的軟件開(kāi)發(fā)者,不愿意從事管理崗位或轉(zhuǎn)行尋求新的出路,仍然活躍在一線寫(xiě)著代碼。你知道的都有哪些?
美國(guó)勞動(dòng)力的中值年齡是 42 歲,而 Stack Overflow 的一項(xiàng)有關(guān)年齡的調(diào)查表明,40 歲之后的開(kāi)發(fā)人員只占開(kāi)發(fā)人員總數(shù)的 13%。那么其他人到哪里去了?他們被解雇了或者上升到管理崗位了嗎?軟件開(kāi)發(fā)對(duì)于過(guò)了 40 歲的人來(lái)說(shuō),是不是就意味著終結(jié)?
本文羅列了 10 位年齡超過(guò) 40 歲的老程序員們的故事,他們都是頂級(jí)的軟件開(kāi)發(fā)者,拒絕從事管理崗位,仍然活躍在開(kāi)發(fā)一線,將編程作為生活收入的主要來(lái)源。
專長(zhǎng):Web 開(kāi)發(fā)、測(cè)試驅(qū)動(dòng)開(kāi)發(fā)、敏捷軟件開(kāi)發(fā)、Grails、Groovy、Spock 以及 AngularJS。
我已經(jīng)寫(xiě)了 16 年的代碼,做了幾年獨(dú)立承包商之后,在 42 歲那年加入 Netflix,成為一名高級(jí)工程師。
我每天都寫(xiě)代碼。目前最喜歡的語(yǔ)言是 Kotlin。我想學(xué)習(xí) Go 語(yǔ)言,平常用得比較多的是 Java、Scala 和 Groovy。我一直在學(xué)習(xí)新的東西,哪怕是很小的事情。我知道自己會(huì)是一個(gè)糟糕的管理者,所以我壓根沒(méi)有想往管理方向發(fā)展。
很多事情取決于你的態(tài)度。不要成為厭惡新技術(shù)的老技術(shù)人,也不要嘲笑那些正在使用新技術(shù)的人。在進(jìn)行技術(shù)選型時(shí),你的經(jīng)驗(yàn)應(yīng)該成為決策的基礎(chǔ)。如果選擇了老技術(shù),那是因?yàn)樗鼈冋眠m合當(dāng)前的需求,而不是因?yàn)橐Wo(hù)你那積攢了多年卻即將過(guò)時(shí)的專業(yè)知識(shí),也不是因?yàn)楹ε履切┖筮M(jìn)者帶著 Node.js 和 Go 語(yǔ)言來(lái)?yè)寠Z你的工作。
專長(zhǎng):開(kāi)發(fā)實(shí)時(shí)嵌入式軟件、軟件配置管理、構(gòu)建測(cè)試用例(系統(tǒng)測(cè)試和單元測(cè)試)。在實(shí)時(shí)嵌入式系統(tǒng)、Linux 和 Windows(包括。NET)方面有豐富的寫(xiě)作和文檔經(jīng)驗(yàn),擅長(zhǎng) C、C++、Python、C# 和 Pascal。
我在 1980 年獲得了一個(gè)電力系統(tǒng)的電子工程學(xué)士學(xué)位,從我的第一份工作開(kāi)始,我就以開(kāi)發(fā)軟件作為我的謀生手段。因?yàn)閷I(yè)學(xué)位的問(wèn)題,我花了將近一年的時(shí)間才找到第一份工作。但從那個(gè)時(shí)候開(kāi)始,我一直是一名軟件工程師。
我?guī)缀跆焯鞂?xiě)代碼,不處理任何與管理相關(guān)的任務(wù)。事實(shí)上,在很早之前我就意識(shí)到,我在管理方面沒(méi)有什么競(jìng)爭(zhēng)力。
作為一名程序員,我很喜歡這個(gè)角色,我也很勝任這份工作。如果讓我做一名管理者,肯定會(huì)有大麻煩,而且我一點(diǎn)也不享受管理工作。
我的同事里只有兩個(gè)人年紀(jì)比我大,其他的(包括上司們)都是比我年輕。我的直線經(jīng)理不到 40 歲,而他是我見(jiàn)過(guò)的最好的管理者之一。我在 58 歲那年得到了這份工作,不過(guò)我并不是年紀(jì)最大的雇員,有兩個(gè)同事年紀(jì)比我還大,盡管如此,他們還是被公司錄用了。
有時(shí)候,你幾天甚至幾周都不會(huì)學(xué)進(jìn)去什么東西,而有時(shí)候幾個(gè)小時(shí)學(xué)進(jìn)去的東西就可以把之前 “損失” 的時(shí)間彌補(bǔ)回來(lái)。重要的是,你總是想方設(shè)法地去學(xué)習(xí),時(shí)刻準(zhǔn)備著,等待機(jī)會(huì)的出現(xiàn)。
專長(zhǎng):企業(yè)架構(gòu)和開(kāi)發(fā)、敏捷教練、數(shù)據(jù)可視化軟件。信用卡處理、IT 服務(wù)和移動(dòng)應(yīng)用開(kāi)發(fā)。
我喜歡解決問(wèn)題,而且我喜歡尋找新的方式來(lái)解決問(wèn)題。正因?yàn)槿绱耍宜坪蹙邆淞伺c時(shí)俱進(jìn)的技能。
我最近正在使用 Node.js 開(kāi)發(fā)一個(gè)項(xiàng)目,之前也用過(guò) Hadoop、NoSQL,開(kāi)發(fā)過(guò) Android 應(yīng)用,也寫(xiě)過(guò) Go 語(yǔ)言代碼,還熟悉 jQuery 和 Bootstrap 的各種特性。
我也關(guān)注 Java 的最新動(dòng)態(tài),還有 Spring、JMS、REST、JSON 和 JPA,以及其他相關(guān)的技術(shù)。
我也適當(dāng)關(guān)注技術(shù)生態(tài)系統(tǒng)的其他部分。在過(guò)去的幾年,我使用了 IntelliJ、Eclipse、Sublime、Emacs 和 Vi 這些開(kāi)發(fā)工具,我很喜歡使用這些工具來(lái)解決各種問(wèn)題。我一開(kāi)始使用的是 CVS,后來(lái)學(xué)習(xí)了 Subversion,最近在學(xué)習(xí) Git。我也有 AWS 相關(guān)的經(jīng)驗(yàn)。我還是一個(gè)獲得認(rèn)證的 Scrum Master、產(chǎn)品經(jīng)理和開(kāi)發(fā)者。我寫(xiě)過(guò)很多自動(dòng)化單元測(cè)試(在構(gòu)建一個(gè)系統(tǒng)時(shí),以測(cè)試驅(qū)動(dòng)開(kāi)發(fā)是我最喜歡的挑戰(zhàn)之一)。
我不害怕學(xué)習(xí)新東西。我使用 Ruby on Rails/Grails 開(kāi)發(fā) Web 應(yīng)用,使用 Perl、PHP 和 Python 開(kāi)發(fā)應(yīng)用解決業(yè)務(wù)問(wèn)題。我也有 SOAP 和 AOP 的相關(guān)經(jīng)驗(yàn)。
我嘗試著要成為一名全棧的開(kāi)發(fā)者。我熟悉 Unix,經(jīng)常編寫(xiě) shell 腳本。我喜歡部署應(yīng)用、服務(wù)器和工具,不管是為了開(kāi)發(fā)還是為了生產(chǎn)。我熟悉 SQL 和 NoSQL,并且知道它們各自的優(yōu)缺點(diǎn)。我了解 TCP/IP,我知道路由、DHCP 和各種代理的基礎(chǔ)知識(shí)。我構(gòu)建過(guò) MVC 應(yīng)用、消息驅(qū)動(dòng)的應(yīng)用、EJB 和基于 Spring 的服務(wù)。我也做過(guò)前端的 JavaScript 和 CSS 開(kāi)發(fā)。我并不想成為一個(gè)可以拿獎(jiǎng)的 UX 開(kāi)發(fā)者,但最起碼可以完成基本的功能。
我計(jì)劃再干 21 年。如果我們從 Web 開(kāi)發(fā)轉(zhuǎn)向基于 D-ware 服務(wù)器的開(kāi)發(fā),我或許會(huì)落后;如果函數(shù)式編程最終一統(tǒng)天下,我或許會(huì)落后。不過(guò)真到了那個(gè)時(shí)候,我仍然心存希望。
專長(zhǎng):C、C++、Java
在我準(zhǔn)備成為一名律師的時(shí)候,我才開(kāi)始學(xué)習(xí)計(jì)算機(jī)科學(xué)(如果你可以想象這是怎樣的一種情況)……現(xiàn)在,我通過(guò)編寫(xiě)大量具有良好文檔化和功能性的 Java 代碼來(lái)獲得我的生活收入(起碼現(xiàn)階段是這樣的)。
在 Windows 3.0 時(shí)代(大約是在 1986 年前后,我也記不太清楚了)我就開(kāi)始在 Windows 上做開(kāi)發(fā)。大約是在 10 年前,我轉(zhuǎn)到 Mac 上,之后就沒(méi)有再回到 Windows 上。我感覺(jué)自己就是一個(gè)使用 MacBook Pro 工作的極客……使用 C、C++、Java 和 Swift 進(jìn)行開(kāi)發(fā)……
我最近的一份工作需要從頭設(shè)計(jì)一整個(gè)系統(tǒng),這也是我第一次做這樣的事情。我現(xiàn)在要跟上 Web 和移動(dòng)開(kāi)發(fā)的速度有點(diǎn)吃力,但離 “垂暮” 還很遠(yuǎn),盡管我已經(jīng) 60 歲了。過(guò)去我也獲得一些 “管理者” 相關(guān)的工作,不過(guò)我都拒絕了,我還是更愿意選擇編程工作……
不過(guò),我也知道,我的一些與我年紀(jì)相仿(或者年紀(jì)更大)但已下崗的同事在找工作時(shí)遇到了麻煩(“是因?yàn)榻?jīng)驗(yàn)太豐富了嗎”),所以我知道人們是怎么看待那些過(guò)了一把年紀(jì)的人,認(rèn)為他們沒(méi)有未來(lái)。但是,我認(rèn)為最關(guān)鍵的是,你要為你的雇主持續(xù)地創(chuàng)造價(jià)值。
我目前是 Apache 軟件基金會(huì) Pivot 項(xiàng)目的 PMC 主席。作為一名 Java 開(kāi)發(fā)人員(Java 相關(guān)項(xiàng)目的提交者),我希望 Java 會(huì)永生。最起碼不要出現(xiàn)更好的語(yǔ)言,要我把所有的代碼都移植過(guò)去……
專長(zhǎng):框架、解析器、建模、圖形、數(shù)據(jù)庫(kù)子系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn),數(shù)據(jù)庫(kù)設(shè)計(jì)(SQL、DML、DDL 和 LINQ)、xml 設(shè)計(jì)、單點(diǎn)登錄方案(SSO)、互聯(lián)網(wǎng)應(yīng)用、Windows 應(yīng)用和動(dòng)畫(huà)。
我已經(jīng)做了 34 年的程序員,而我的簡(jiǎn)歷只要一張紙就可以裝下。所有超過(guò) 5 年的技術(shù)在簡(jiǎn)歷上都只是一筆帶過(guò)。我有第二張簡(jiǎn)歷,上面列出了所有我用過(guò)的編程語(yǔ)言和開(kāi)發(fā)工具、數(shù)據(jù)庫(kù)、動(dòng)畫(huà)系統(tǒng),等等。這樣,大家可以更容易了解我。我只在被問(wèn)到的時(shí)候才會(huì)拿出第二張簡(jiǎn)歷。
在大公司里(至少對(duì)于我來(lái)說(shuō)),老程序員一般都想轉(zhuǎn)到管理層,這也是很常見(jiàn)的一種現(xiàn)象。我一直面臨著類似的選擇,但我不擅長(zhǎng)管理,我只喜歡成為一名程序員或架構(gòu)師。
我發(fā)現(xiàn)我的記憶力大不如前,也沒(méi)辦法記住大型系統(tǒng)的全部模型。不過(guò),我發(fā)現(xiàn)我那些豐富的經(jīng)驗(yàn)變得越來(lái)越有價(jià)值。
我們不得不承認(rèn)我們的整個(gè)職業(yè)生涯必須不斷地接收訓(xùn)練成長(zhǎng),世事變化得太快,如果止步不前,終將被淘汰。
每?jī)赡晡揖蜁?huì)學(xué)習(xí)一種新的編程語(yǔ)言,有一些是我自己想學(xué)的,不過(guò)大部分是因?yàn)榧夹g(shù)發(fā)展的需要(也有的是因?yàn)樾鹿ぷ鞯囊螅_@樣很有趣。目前我在學(xué)習(xí)數(shù)據(jù)倉(cāng)庫(kù)(OLAP)、ETL 處理、Star Schemas 和 Cubes。
專長(zhǎng):專利文件系統(tǒng)或數(shù)據(jù)庫(kù)的內(nèi)部組件、持久化數(shù)據(jù)結(jié)構(gòu)、目錄和索引搜索技術(shù)、服務(wù)器管理、DASD IO 驅(qū)動(dòng)、機(jī)器碼生成或跨架構(gòu)的代碼轉(zhuǎn)換、對(duì)象持久化、客戶端與服務(wù)器端的接口、多租戶、分布式緩存,以及大規(guī)模的授權(quán)系統(tǒng)(實(shí)施、管理和日志)。目前在 SAS Viya 平臺(tái)上做 Cloud Analytics Service 方面的研究、設(shè)計(jì)和編程工作。
我目前團(tuán)隊(duì)成員的平均年齡為 50 歲,而且每一位成員都有超過(guò) 20 年的系統(tǒng)軟件開(kāi)發(fā)經(jīng)驗(yàn)。
我和我的同事們花了很多時(shí)間在編碼、調(diào)試、測(cè)試和解答系統(tǒng)架構(gòu)問(wèn)題上面。有些同事還涉及硬件技術(shù)評(píng)估、在大會(huì)上呈獻(xiàn)演講,以及為開(kāi)源社區(qū)貢獻(xiàn)力量,等等。
在過(guò)去兩年,我一直是某軟件公司精英團(tuán)隊(duì)的成員之一,這個(gè)公司有很多非常出色的工程師,很多都有高級(jí)的計(jì)算機(jī)和應(yīng)用數(shù)學(xué)等專業(yè)的學(xué)位。在那之前,我在一個(gè)小型的團(tuán)隊(duì)里工作了超過(guò) 10 年的時(shí)間,我們從無(wú)到有設(shè)計(jì)開(kāi)發(fā)了一個(gè)多線程的元數(shù)據(jù)對(duì)象集群服務(wù)器。
團(tuán)隊(duì)里與我的關(guān)系最為密切的同事比我大 5 到 6 歲。在那期間,我獲得了 4 項(xiàng)美國(guó)國(guó)家專利……那些都是在我 40 歲之后獲得的。
只要我還能做出有意義的貢獻(xiàn),我就會(huì)一直工作下去。我多次給我的職業(yè)生涯充電,從最早的學(xué)習(xí)和研究,到后來(lái)的工作崗位的需要。這是我的本性,也是激勵(lì)我持續(xù)進(jìn)步的動(dòng)力。
我不認(rèn)為現(xiàn)今的技術(shù)只能讓我干到 70 歲。我的職業(yè)生涯從 1983 年開(kāi)始,我通過(guò)四項(xiàng)主要的計(jì)算機(jī)技能生存下來(lái):
· 匯編語(yǔ)言級(jí)別的大型機(jī)系統(tǒng)編程。
· 基于 C 語(yǔ)言的多主機(jī)平臺(tái)的可移植編程,包括桌面、中型 Unix 網(wǎng)絡(luò)、小型機(jī)的后續(xù)產(chǎn)品(如 VAX),以及大型機(jī)。
· 多層集群服務(wù)器環(huán)境,由后端的多線程 C 以及處于中間層滿足高可用要求的 Java 組成,主要面向 Windows 服務(wù)器和 Unix 環(huán)境,也包括 Linux。
· 基于多線程 C 的大規(guī)模并行網(wǎng)格計(jì)算,滿足虛擬的無(wú)限伸縮。
雖然我所擁有的這些技能可以干到退休,但在未來(lái)的幾年,我還會(huì)將我的專業(yè)知識(shí)領(lǐng)域擴(kuò)展到機(jī)器學(xué)習(xí)方面。
或許在 10 年之后,對(duì)普通程序員的需求會(huì)大幅下降。如果一個(gè)人真的喜歡計(jì)算機(jī)技術(shù),但是在編程方面達(dá)不到更高的水平,那么可以考慮成為一名經(jīng)驗(yàn)豐富的系統(tǒng)管理員。他們總有很多工作要做,比如配置、部署和維護(hù)系統(tǒng)。
專長(zhǎng):嵌入式、多線程、多進(jìn)程、驅(qū)動(dòng)、通信棧、C/C++、Java、Python、硬件。軟件架構(gòu)師 / 工程師,特別是在與硬件緊密接觸的軟件系統(tǒng),與硬件工程師一起工作,最大化發(fā)揮軟件和硬件的效能。
在我 62 歲的時(shí)候,我已經(jīng)是公司里年紀(jì)最大的開(kāi)發(fā)者了,其他人大都是 40 多歲或 50 出頭。
我最年輕的同事應(yīng)該是 20 多歲,他們與我有 35 年的年紀(jì)差別,不過(guò)這不是問(wèn)題。
我們要擁抱技術(shù)?,F(xiàn)在的世界與我的職業(yè)生涯剛開(kāi)始的時(shí)候(穿孔紙帶時(shí)期的 Fortran)已經(jīng)很不一樣了,而變化仍然在持續(xù)。但反過(guò)來(lái)說(shuō),需要解決的問(wèn)題總是很相似的,無(wú)非就是如何將人類的需求轉(zhuǎn)成計(jì)算機(jī)可以做的事情,以及如何避免犯錯(cuò)、如何找出不可避免所犯下的錯(cuò)誤。編程語(yǔ)言、開(kāi)發(fā)環(huán)境、工具套件、API 等東西只是解決問(wèn)題的手段,我們只是在需要它們的時(shí)候才去學(xué)習(xí)如何使用它們。
我是從穿孔紙帶開(kāi)始的。即使是到了磁盤文件時(shí)代,我仍然是最早從行式打印機(jī)里讀取程序的人。后來(lái)就有了普通文本編輯器?,F(xiàn)在我使用具有語(yǔ)法高亮功能的 IDE。
我認(rèn)為,在 10 到 20 年的時(shí)間里,仍然需要軟件開(kāi)發(fā)人員。在我看來(lái),軟件開(kāi)發(fā)者的工作就是把客戶的需求轉(zhuǎn)換成計(jì)算機(jī)執(zhí)行的指令,而這樣的工作是不可或缺的。這個(gè)世界總是需要一些高手,他們?cè)谟?jì)算機(jī)方面比普通人懂得更多,并且掌握了大量與工具相關(guān)的知識(shí)(軟件包、API、接口,等等)。
在選擇公司方面,我是幸運(yùn)的。我的大部分時(shí)間都花在了軟件開(kāi)發(fā)上,而且總能做一些以前沒(méi)有做過(guò)的事情。軟件開(kāi)發(fā)里總有一些重復(fù)性的工作,我可以想象得出那樣做是很無(wú)聊的。不過(guò),如果你總是在做新的東西,那就不會(huì)無(wú)聊了。
我所在的嵌入式領(lǐng)域似乎比應(yīng)用程序更加能夠扛住潮流的沖刷。應(yīng)用程序每幾年就會(huì)有新的東西出現(xiàn),有些幾乎是曇花一現(xiàn),有些會(huì)持續(xù)一段時(shí)間,經(jīng)歷巔峰,然后逝去。而嵌入式一直保持堅(jiān)挺,以 C 語(yǔ)言為基礎(chǔ),再融合一點(diǎn) C++。另一方面,硬件也在持續(xù)發(fā)生變化,這讓事情變得更加有趣。
專長(zhǎng):編程方面擅長(zhǎng) Python、Linux、C/C++、.NET,數(shù)據(jù)庫(kù)方面精通 MS Access、MySQL 和所有基于 SQL 的環(huán)境,還有 TCP/IP、企業(yè)系統(tǒng)自動(dòng)化和分布式計(jì)算方面的經(jīng)驗(yàn)。
架構(gòu)與管理是兩道平行線。在超過(guò) 250 人的公司里,技術(shù)人員一般都會(huì)有這兩條路可以走。
你喜歡你正在做的事情嗎?如果是,那么就繼續(xù)做下去。為了一點(diǎn)薪水而放棄你所喜歡的事情,整天擺弄會(huì)議和郵件,這樣會(huì)讓你得不償失。
每過(guò)兩年,游戲規(guī)則就會(huì)發(fā)生變化。不過(guò)不用為此感到苦惱。花 3 到 4 天時(shí)間學(xué)習(xí)新的編程環(huán)境,然后用它們來(lái)支持業(yè)務(wù)。在過(guò)去的 30 年,我?guī)缀趺?4 年就要學(xué)習(xí)新的東西。我所在的團(tuán)隊(duì)有 6 個(gè)人,年齡從 48 歲到 56 歲。我們經(jīng)歷了 3 到 8 次的技術(shù)更新。
以下是我的職業(yè)概覽:
· 從使用 C 和匯編語(yǔ)言編寫(xiě) MS-DOS 代碼開(kāi)始
· 學(xué)習(xí)使用 C++ 和 MFC 開(kāi)發(fā) Windows 應(yīng)用程序
· 學(xué)習(xí)使用 Unix Perl 開(kāi)發(fā)基于 CGI-BIN 的 Web 應(yīng)用
· 學(xué)習(xí) C#
· 學(xué)習(xí) Java 和 JSP
· 學(xué)習(xí)智能手機(jī)開(kāi)發(fā):iOS/Android/Blackberry
· 回到 Unix,開(kāi)始使用 Python
· AWS 開(kāi)發(fā)(EC2、RDS、SQS,等等)
專長(zhǎng):Windows、Linux/Unix、嵌入式;算法設(shè)計(jì)、C++、C、多線程和分布式、電信、安全、套接字編程、標(biāo)準(zhǔn)委員會(huì)成員、產(chǎn)品計(jì)劃和概念落地;TQM、ISO 9000、敏捷開(kāi)發(fā)和傳統(tǒng)開(kāi)發(fā)方法論。
軟件開(kāi)發(fā)仍然是一個(gè)年輕的領(lǐng)域,工具和技術(shù)仍然在發(fā)生快速的變化。如果軟件開(kāi)發(fā)人員不能持續(xù)地更新他們的技能,在不到 20 年的時(shí)間里,他們就會(huì)過(guò)時(shí)。所以,一個(gè) 40 歲的老程序員很快就會(huì)發(fā)現(xiàn)自己已經(jīng)無(wú)法勝任工作,而且前途堪憂。
好的開(kāi)發(fā)人員會(huì)持續(xù)學(xué)習(xí),直到他們退休,比如 Ken Thompsons 和 Bjarne Stroustrups。不過(guò),我們大多數(shù)人(特別是 40 歲左右的)最終都會(huì)意識(shí)到,我們并不能成為行業(yè)的大神。
C++ 變化很大,每幾年就會(huì)有新版本出現(xiàn),并且包含了全新的特性,我從來(lái)沒(méi)有停止過(guò)學(xué)習(xí)。也就是說(shuō),我已經(jīng)成為了一個(gè)非常有經(jīng)驗(yàn)的 C++ 開(kāi)發(fā)者,擁有超過(guò) 20 年的全職系統(tǒng)編程經(jīng)驗(yàn)。如果有人要我給自己的經(jīng)驗(yàn)打分,從 1 分到 10 分,那么毫無(wú)疑問(wèn),我會(huì)給打自己 9 分,因?yàn)楸任腋私?C++ 的人只有那些寫(xiě)書(shū)的人。后來(lái),我寫(xiě)了一本有關(guān) C++ 優(yōu)化的書(shū)。
編程是一件很容易的事情。你告訴它們做什么,它們就做什么。它們是可以信賴的,也是可靠的。對(duì)于代碼來(lái)說(shuō),無(wú)所謂好日子,也無(wú)所謂糟糕的日子,它們存在的意義就是在你與它們發(fā)生交互的時(shí)候。代碼可能會(huì)是難啃的骨頭,它們要求對(duì)細(xì)節(jié)的重度關(guān)注和相當(dāng)程度的腦力付出。
人類與代碼完全不一樣,人類狡猾、變化多端,而且不可能充當(dāng)工具使用。你不能直接告訴他們做什么,你要去影響他們,這樣他們才會(huì)做你需要他們做的事情。他們不會(huì)直接對(duì)你的輸入做出響應(yīng),而是間接地對(duì)你的鼓勵(lì)或者你所提供的一些獎(jiǎng)勵(lì)物品做出響應(yīng)。雖然人類對(duì)獎(jiǎng)懲很敏感,但如果只是通過(guò)這種方式來(lái)管理人類并不會(huì)奏效。管理應(yīng)該要像與家人、朋友和同伴互動(dòng)一樣。如果你喜歡與人打交道,那么你就會(huì)喜歡上管理。如果你不喜歡與人打交道,那么你就不會(huì)成為一個(gè)成功的管理者。
薪水高的管理者比薪水高的程序員賺得更多,不過(guò)他們需要有很多名校的學(xué)歷背景,擁有良好的人際網(wǎng)絡(luò)和政治同盟,也需要有一定程度的冷酷無(wú)情來(lái)震懾大部分人。而編程不需要這種冷酷無(wú)情,這也就是編程很好的一個(gè)方面。編程是關(guān)于創(chuàng)新,而不是操縱。
所以,你要問(wèn)問(wèn)自己,你更喜歡哪一種交互模式,是代碼的確定性和優(yōu)雅,還是人類的友情和領(lǐng)導(dǎo)力?喜歡代碼完全沒(méi)有問(wèn)題,那些高級(jí)架構(gòu)師和 CTO 也能賺很多錢。
專長(zhǎng):面向?qū)ο筌浖O(shè)計(jì)、測(cè)試驅(qū)動(dòng)開(kāi)發(fā)(C、C++、Java、C#)、嵌入式軟件、重構(gòu)、極限編程、Scrum、敏捷開(kāi)發(fā)、發(fā)布計(jì)劃、增量計(jì)劃。C 和 C++ 單元測(cè)試框架 CppUTest 的主要貢獻(xiàn)者之一。嵌入式系統(tǒng)大會(huì)和敏捷大會(huì)的演講人。Agile Manifesto 的初始作者之一。
保持學(xué)習(xí)。我 62 歲了還在編程,我喜歡編程。
我會(huì)花一些時(shí)間在管理上,這對(duì)我來(lái)說(shuō)是很重要的。不過(guò)我還是決定把編程和軟件設(shè)計(jì)作為我的最愛(ài)。在我從管理上學(xué)了一些東西之后,我決定還是回到我最喜歡的軟件開(kāi)發(fā)上。
為了保證你的價(jià)值,你要確保 40 年的經(jīng)驗(yàn)是不重復(fù)的。我們生活在一個(gè)快速變化的世界,不僅僅是技術(shù),也包括我們?nèi)绾螛?gòu)建軟件。
把東西做出來(lái)固然是好,但那樣還遠(yuǎn)遠(yuǎn)不夠。你還要讓產(chǎn)品和代碼更有用,能存活更長(zhǎng)的時(shí)間。你要知道如何成為團(tuán)隊(duì)的一員。要想讓職業(yè)生涯長(zhǎng)久、成功,同時(shí)能賺到錢,只是把東西做出來(lái)是遠(yuǎn)遠(yuǎn)不夠的。
小編也想說(shuō)兩句:
其實(shí)人生在世,面臨眾多的選擇,不要被外界的言論所干擾,好好做自己就行。一切都會(huì)水到渠成,一切都會(huì)柳暗花明。我們只需要做好的——待到我年老色衰,躺在病床上,回望過(guò)去,我的嘴角是上揚(yáng)的,我的內(nèi)心是無(wú)憾的,我的人生是完整的!
劍未配妥,出門已是江湖;酒尚余溫,入口不識(shí)乾坤。愿您歷盡千帆,歸來(lái)仍是少年;歲月已走遠(yuǎn),我心仍少年!
數(shù)據(jù)分析咨詢請(qǐng)掃描二維碼
若不方便掃碼,搜微信號(hào):CDAshujufenxi
SQL Server 中 CONVERT 函數(shù)的日期轉(zhuǎn)換:從基礎(chǔ)用法到實(shí)戰(zhàn)優(yōu)化 在 SQL Server 的數(shù)據(jù)處理中,日期格式轉(zhuǎn)換是高頻需求 —— 無(wú)論 ...
2025-09-18MySQL 大表拆分與關(guān)聯(lián)查詢效率:打破 “拆分必慢” 的認(rèn)知誤區(qū) 在 MySQL 數(shù)據(jù)庫(kù)管理中,“大表” 始終是性能優(yōu)化繞不開(kāi)的話題。 ...
2025-09-18CDA 數(shù)據(jù)分析師:表結(jié)構(gòu)數(shù)據(jù) “獲取 - 加工 - 使用” 全流程的賦能者 表結(jié)構(gòu)數(shù)據(jù)(如數(shù)據(jù)庫(kù)表、Excel 表、CSV 文件)是企業(yè)數(shù)字 ...
2025-09-18DSGE 模型中的 Et:理性預(yù)期算子的內(nèi)涵、作用與應(yīng)用解析 動(dòng)態(tài)隨機(jī)一般均衡(Dynamic Stochastic General Equilibrium, DSGE)模 ...
2025-09-17Python 提取 TIF 中地名的完整指南 一、先明確:TIF 中的地名有哪兩種存在形式? 在開(kāi)始提取前,需先判斷 TIF 文件的類型 —— ...
2025-09-17CDA 數(shù)據(jù)分析師:解鎖表結(jié)構(gòu)數(shù)據(jù)特征價(jià)值的專業(yè)核心 表結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 規(guī)范存儲(chǔ)的結(jié)構(gòu)化數(shù)據(jù),如數(shù)據(jù)庫(kù)表、Excel 表、 ...
2025-09-17Excel 導(dǎo)入數(shù)據(jù)含缺失值?詳解 dropna 函數(shù)的功能與實(shí)戰(zhàn)應(yīng)用 在用 Python(如 pandas 庫(kù))處理 Excel 數(shù)據(jù)時(shí),“缺失值” 是高頻 ...
2025-09-16深入解析卡方檢驗(yàn)與 t 檢驗(yàn):差異、適用場(chǎng)景與實(shí)踐應(yīng)用 在數(shù)據(jù)分析與統(tǒng)計(jì)學(xué)領(lǐng)域,假設(shè)檢驗(yàn)是驗(yàn)證研究假設(shè)、判斷數(shù)據(jù)差異是否 “ ...
2025-09-16CDA 數(shù)據(jù)分析師:掌控表格結(jié)構(gòu)數(shù)據(jù)全功能周期的專業(yè)操盤手 表格結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 存儲(chǔ)的結(jié)構(gòu)化數(shù)據(jù),如 Excel 表、數(shù)據(jù) ...
2025-09-16MySQL 執(zhí)行計(jì)劃中 rows 數(shù)量的準(zhǔn)確性解析:原理、影響因素與優(yōu)化 在 MySQL SQL 調(diào)優(yōu)中,EXPLAIN執(zhí)行計(jì)劃是核心工具,而其中的row ...
2025-09-15解析 Python 中 Response 對(duì)象的 text 與 content:區(qū)別、場(chǎng)景與實(shí)踐指南 在 Python 進(jìn)行 HTTP 網(wǎng)絡(luò)請(qǐng)求開(kāi)發(fā)時(shí)(如使用requests ...
2025-09-15CDA 數(shù)據(jù)分析師:激活表格結(jié)構(gòu)數(shù)據(jù)價(jià)值的核心操盤手 表格結(jié)構(gòu)數(shù)據(jù)(如 Excel 表格、數(shù)據(jù)庫(kù)表)是企業(yè)最基礎(chǔ)、最核心的數(shù)據(jù)形態(tài) ...
2025-09-15Python HTTP 請(qǐng)求工具對(duì)比:urllib.request 與 requests 的核心差異與選擇指南 在 Python 處理 HTTP 請(qǐng)求(如接口調(diào)用、數(shù)據(jù)爬取 ...
2025-09-12解決 pd.read_csv 讀取長(zhǎng)浮點(diǎn)數(shù)據(jù)的科學(xué)計(jì)數(shù)法問(wèn)題 為幫助 Python 數(shù)據(jù)從業(yè)者解決pd.read_csv讀取長(zhǎng)浮點(diǎn)數(shù)據(jù)時(shí)的科學(xué)計(jì)數(shù)法問(wèn)題 ...
2025-09-12CDA 數(shù)據(jù)分析師:業(yè)務(wù)數(shù)據(jù)分析步驟的落地者與價(jià)值優(yōu)化者 業(yè)務(wù)數(shù)據(jù)分析是企業(yè)解決日常運(yùn)營(yíng)問(wèn)題、提升執(zhí)行效率的核心手段,其價(jià)值 ...
2025-09-12用 SQL 驗(yàn)證業(yè)務(wù)邏輯:從規(guī)則拆解到數(shù)據(jù)把關(guān)的實(shí)戰(zhàn)指南 在業(yè)務(wù)系統(tǒng)落地過(guò)程中,“業(yè)務(wù)邏輯” 是連接 “需求設(shè)計(jì)” 與 “用戶體驗(yàn) ...
2025-09-11塔吉特百貨孕婦營(yíng)銷案例:數(shù)據(jù)驅(qū)動(dòng)下的精準(zhǔn)零售革命與啟示 在零售行業(yè) “流量紅利見(jiàn)頂” 的當(dāng)下,精準(zhǔn)營(yíng)銷成為企業(yè)突圍的核心方 ...
2025-09-11CDA 數(shù)據(jù)分析師與戰(zhàn)略 / 業(yè)務(wù)數(shù)據(jù)分析:概念辨析與協(xié)同價(jià)值 在數(shù)據(jù)驅(qū)動(dòng)決策的體系中,“戰(zhàn)略數(shù)據(jù)分析”“業(yè)務(wù)數(shù)據(jù)分析” 是企業(yè) ...
2025-09-11Excel 數(shù)據(jù)聚類分析:從操作實(shí)踐到業(yè)務(wù)價(jià)值挖掘 在數(shù)據(jù)分析場(chǎng)景中,聚類分析作為 “無(wú)監(jiān)督分組” 的核心工具,能從雜亂數(shù)據(jù)中挖 ...
2025-09-10統(tǒng)計(jì)模型的核心目的:從數(shù)據(jù)解讀到?jīng)Q策支撐的價(jià)值導(dǎo)向 統(tǒng)計(jì)模型作為數(shù)據(jù)分析的核心工具,并非簡(jiǎn)單的 “公式堆砌”,而是圍繞特定 ...
2025-09-10