大齡程序員怎樣渡過中年危機?(轉)

大齡程序員怎樣渡過中年危機?

作者前言:

話說再有十幾天就進入2016年了,想到這,我不由得五味雜陳。2016年對我來說是一個特殊的年份,因為我即將40歲了,人生正式告別青年期,進入中年了。

在娛樂圈,哦不,是在程序員這個吃青春飯的行業,有一個人人聞之色變的話題,曰:「年老色衰」。只要是個程序員,心里都會惴惴不安的想:「我老了以后賣不動色相,哦不,寫不動代碼了,我還能干啥呢?」。今天咱們來談談這個禁忌話題。

在我還是25歲的時候,我和很多程序員一樣,其實有同樣的擔心,老了以后怎么辦?寫代碼難道還能寫到30歲?

當我30歲的時候,我發現自己創業去了,雖然非常苦逼,但是苦中作樂,還挺有挑戰的。當然創業是沒有退路的,創業要是失敗了,估計更加沒人要了。所以還是先想創業的事吧,35歲的大齡程序員問題還是5年以后再說。

一晃我就35歲了,創業公司賣給CSDN了,我在CSDN當CTO了。話說這個CTO其實也很苦逼,操心的事太多,每天各種雜事,壓根沒空想中年危機的話題。

然后我馬上就40歲了,不算有錢,但養活自己完全沒問題,想著趁自己還能蹦跶幾年,再做點什么吧,就到丁香園了。

現在回想25歲的時候,當初的擔憂真的是杞人憂天了。我現在寫代碼也完全沒問題,偶爾也會寫點代碼練練手,自娛自樂一下。但是從2010年我34歲開始,工作上我已經不適合寫代碼了。不是我不愿意親自寫代碼,我反而覺得寫代碼很有成就感,而是我不寫代碼對公司的價值更大,我需要把時間和精力放在規劃產品方向、決策技術架構、培養團隊,提升公司戰斗力上。

那些70后的程序員都消失了嗎?

如果你現在去一家互聯網公司看看,你會發現程序員的主力都是90后了,80后都很少,至于70后幾乎絕跡。那么一個有趣的話題是:「70后的程序員都消失了嗎?」

其實沒有消失,而是70后的程序員已經成為各個互聯網公司,各個IT公司的高層了。那么你會問:「一個公司就幾個高層職位,哪有那么多職位給70后呢?」

答案是:「20年前根本就沒有多少IT公司,70后的程序員也沒有現在動輒幾百萬的規模」。這20年來,整個IT和互聯網行業擴大了100倍都不止,創造了海量的就業機會,無論是高層還是一線崗位。

那么還有70后程序員奮戰在coding第一線的嗎?當然有!比我還大一歲的高春輝,中國互聯網的活化石啊。老高身為一家公司的老板,仍然不肯放下coding的樂趣,至今堅持親自寫代碼。

所以看起來,到了40歲,無論自己寫不寫代碼,似乎都不至于年老色衰,程序員這個職業的保鮮期似乎沒有娛樂圈短。作為一個年輕程序員的你來說,應該怎樣延長自己的保鮮期呢?

20-27歲:技術積累階段

假設本科22歲畢業,那么工作的前5年對你來說是打基礎的階段。在這5年時間里面,你要積累足夠的代碼量,打磨自己的技術實力,成為某一個技術細分領域的牛人。

而我自己當年在這個階段的努力程度是如饑似渴的,春節都不回家,蹲在出租房里面啃技術文檔。剛參加工作的時候,曾經連續一個月在公司打地鋪睡覺。

28-35歲:形成思維方法論和知識體系的階段

當你積累足夠的代碼量,例如超過10萬行代碼以后,你應該形成了自己的思維方法論和自己獨立的學習技巧,任何新的技術在你眼中都能迅速的看到技術的本質,快速吸收成為你的知識體系的一部分。

到了這個階段,你會發現你所完全不了解的新技術新知識是非常少的,新技術對你來說也不過是幾天時間就把玩的很好的玩具,學習越來越輕松,掌握的知識儲備越來越多。

你開始逐漸的不再滿足于純技術領域的探索,而是思考更多的問題:如何將技術轉化為生產力;什么技術在什么樣的場合能夠發揮最大的價值;技術團隊應該怎樣構建;在一家公司里面,我怎樣才能將自己的技術能力最大化的發揮出來?

在這個階段,積累技術對你來說簡直是小菜一碟,你更需要磨練的是思考能力,形成自己的思維方法和知識體系,這將是你幫助你一生的武器。

35歲以后:了解自己,把自己變現的階段

毋須諱言的是,35歲以后你的一線coding能力一定是下降的,你寫代碼絕對不如25歲的程序員快,效率高。但是這不重要,因為編程只是你整個武器庫當中相對最不重要的了,你的經驗,你的視野,你的架構能力,你的管理能力,你分析和解決問題的能力已經遠遠不局限于技術這個領域。

30-35歲這個階段,最關鍵的是了解自己。知道自己擅長什么,自己的優勢在哪里,怎樣才能夠最大化自己的價值,同時也知道自己有什么缺陷,怎樣避開做自己不擅長的事情,不勉強自己,不讓自己處于對自己不利的環境,這是人生的智慧。

一個人能夠客觀的認識自己是非常困難的,很多人終其一生都沒有活明白,既不知道怎樣發揮自己的天賦,也拒絕承認自己的缺陷。在35歲以后,要接受一個不完美的自己,知道怎樣揚長避短,最大化個人價值。能夠做到這一步的程序員,人到中年完全不是程序員生涯的終結,反而會走向個人事業的巔峰。

一些后話

在這篇文章當中,我沒有提到很多具體的技術人員選擇發展道路的問題,例如:

  • 成長為核心業務的核心骨干
  • 成長為技術管理層
  • 轉型業務專家,轉型做業務咨詢顧問
  • 轉型產品經理,產品總監,走產品線

這些都可以,都是一些具體的職業發展道路的選擇問題。然而無論選擇,只要你始終保持開放的學習心態,不斷積累知識和經驗,構建個人的知識體系,磨練自己的思考能力,并且時常自省,中年對你來說完全不是危機,而是巔峰。

轉自:http://zhuanlan.zhihu.com/robbin/20427809

轉載于:https://www.cnblogs.com/moyuling/p/5220698.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/375048.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/375048.shtml
英文地址,請注明出處:http://en.pswp.cn/news/375048.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

靶場練習第十二天~vulnhub靶場之dc-4

一、準備工作 1.靶機下載鏈接 鏈接: 百度網盤 請輸入提取碼 提取碼: 3hq4 2.用ifconfig查看kali的ip 二、信息收集 1.nmap的信息收集 (1)主機發現 命令:nmap 192.168.101.0/24 (2)掃描靶機詳細信息 發現主機 192…

網絡命令-nc(二)

繼續Netcat 這個命令吧 1&#xff1a;遠程拷貝文件 在本地輸出 文件debian.img 到 192.168.5.40 主機12345端口監聽 nc -v 192.168.5.40 12345 < debian.img 在192.168.5.40 主機12345端口監聽&#xff0c;將文件指定為debian-copy.img nc -l -v 12345 > debian-copy.im…

靶場練習第十三天~vulnhub靶場之dc-5

一、準備工作 1.靶機環境搭建 下載鏈接: https://pan.baidu.com/s/1csvuJ_NVCBvVr75KhxyM3Q?pwdxie7 提取碼: xie7 2.kali的ip 命令&#xff1a;ifconfig 3.kali和靶機的都設置為NAT模式 二、信息收集 1.nmap的信息收集 &#xff08;1&#xff09;尋找靶機的ip 命令&…

Ubuntu中輸入輸出重定向及管道技術簡述

輸出 1、標準輸出 定義&#xff1a;程序在默認情況下輸出結果的地方&#xff08;stdout&#xff09;。 2、輸出重定向 定義&#xff1a;用于把數據的輸出轉移到另一個地方去。 3、Ubuntu中例子 $ls > ~/ls_out ##不顯示在顯示器上而是輸入到文件ls_out中 uname -r > ls_…

activex打包

http://www.cnblogs.com/weiwin/p/4493835.html activeX 打包 原文 http://www.docin.com/p-409284488.html CAB打包文檔說明 文檔目的本文檔的目的在于說明將ocx和dll以及相關的文件打包成一個CAB包&#xff0c;以便在網頁下調用ocx控件時免去手工將dll和其他一下文件拷貝到客…

靶場練習第十四天~vulnhub靶場之dc-6

一、準備工作 kali和靶機都選擇NAT模式&#xff08;kali與靶機同網段&#xff09; 1.靶場環境 下載鏈接: 百度網盤 請輸入提取碼 提取碼: bazx 2.kali的ip 命令:ifconfig 3.靶機的ip 掃描靶機ip 命令&#xff1a;sudo arp-scan -l 二、信息收集 1.nmap的信息收集 &#…

最短路徑Dijkstra算法和Floyd算法整理、

轉載自&#xff1a;http://www.cnblogs.com/biyeymyhjob/archive/2012/07/31/2615833.html 最短路徑—Dijkstra算法和Floyd算法 Dijkstra算法 1.定義概覽 Dijkstra(迪杰斯特拉)算法是典型的單源最短路徑算法&#xff0c;用于計算一個節點到其他所有節點的最短路徑。主要特點是以…

Java Script 中 ==(Equal) 和 === (Identity Equal) 的區別和比較算法邏輯

判斷兩個變量是否相等在任何編程語言中都是非常重要的功能。 JavaScript 提供了 和 兩種判斷兩個變量是否相等的運算符&#xff0c;但我們開始學習的時候 JavaScript 的時候&#xff0c;就被一遍又一遍的告知&#xff1a; 要求變量的類型和值均相等&#xff0c;才能返回true…

靶場練習第十五天~vulnhub靶場之dc-7

一、準備工作 kali和靶機都選擇NAT模式&#xff08;kali與靶機同網段&#xff09; 1.靶場環境 下載鏈接:https://download.vulnhub.com/dc/DC-7.zip 2.kali的ip 命令:ifconfig 3.靶機的ip 掃描靶機ip sudo arp-scan -l 二、信息收集 1.nmap的信息收集 &#xff08;1&…

ubuntu系統下如何修改host

Ubuntu系統的Hosts只需修改/etc/hosts文件&#xff0c;在目錄中還有一個hosts.conf文件&#xff0c;剛開始還以為只需要修改這個就可以了&#xff0c;結果發現是需要修改hosts。修改完之后要重啟網絡。具體過程如下&#xff1a;1、修改hostssudo gedit /etc/hosts2、添加解析記…

Matplotlib不顯示圖形

安裝好了Matplotlib&#xff0c;使用官方一個例子測試運行時&#xff0c;發現使用畫圖功能時&#xff0c;運行腳本老是顯示不出圖像&#xff0c;Google了一下&#xff0c;后來發現是matplotlibrc文件沒配置好。 參考了官方文檔&#xff0c;修改步驟如下 1.查找matplotlibrc文件…

靶場練習第十六天~vulnhub靶場之dc-8

一、準備工作 kali和靶機都選擇NAT模式&#xff08;kali與靶機同網段&#xff09; 1.靶場環境 下載鏈接:https://download.vulnhub.com/dc/DC-8.zip 2.kali的ip 命令:ifconfig 3.靶機的ip 掃描靶機ip sudo arp-scan -l 二、信息收集 1.nmap的信息收集 &#xff08;1&…

【SpringMVC】SpringMVC系列4之@RequestParam 映射請求參數值

4、RequestParam 映射請求參數值 4.1、概述 Spring MVC 通過分析處理方法的簽名&#xff0c;將 HTTP 請求信息綁定到處理方法的相應人參中。Spring MVC 對控制器處理方法簽名的限制是很寬松的&#xff0c;幾乎可以按喜歡的任何方式對方法進行簽名。必要時可以對方法及方法入…

Sprint3

進展&#xff1a;今天主要是各自熟悉安卓應用開發平臺&#xff0c;設計了圖標&#xff0c;沒什么實際上的進展。 燃盡圖&#xff1a; 團隊工作照&#xff1a; 轉載于:https://www.cnblogs.com/XJXYJ/p/4495810.html

靶場練習第十七天~vulnhub靶場之dc-9

一、準備工作 kali和靶機都選擇NAT模式&#xff08;kali與靶機同網段&#xff09; 1.靶場環境 下載鏈接:https://download.vulnhub.com/dc/DC-9.zip 2.kali的ip 命令:ifconfig 3.靶機的ip 掃描靶機ip sudo arp-scan -l 二、信息收集 1.nmap的信息收集 &#xff08;1&am…

Linux內核分析 02

二&#xff0c;操作系統是如何工作的 1、函數調用堆棧 三大法寶&#xff1a;存儲程序計算機 函數調用堆棧 中斷機制 堆棧&#xff1a;是C語言程序運行時必須的一個記錄調用路徑和參數的空間。是計算機內部現成的東西&#xff0c;我們直接使用。 包括函數調用框架、傳遞參數、保…

一 UI基本的用法

1. UIView的基本用法 //打印屏幕的寬和高CGRect screenBounds [[UIScreen mainScreen] bounds];NSLog("%f, %f", screenBounds.size.width, screenBounds.size.height);//創建一個UIView//UIView表示一個矩形區域UIView *v1 [[UIView alloc] init];//1.確定大小CGR…

靶場練習第十八天~vulnhub靶場之hackableII

一、準備工作 kali和靶機都選擇NAT模式&#xff08;kali與靶機同網段&#xff09; 1.靶場環境 下載鏈接:Hackable: II ~ VulnHub 2.kali的ip 命令:ifconfig 3.靶機的ip 掃描靶機ip sudo arp-scan -l 二、信息收集 1.nmap的信息收集 &#xff08;1&#xff09;掃描靶機開…

Object-c基礎(2)

類和對象 類 在Object-c中類&#xff0c;其接口&#xff08;interface&#xff09;和實現&#xff08;implementation&#xff09;是分離開來的 類的聲明 interface 類名:父類名{實例變量的定義;}方法聲明;...end類的實現 implementation 類名方法定義...end對象 一個類提供…

arm linux 下移植busybox 的tftp

&#xff08;1&#xff09;進入busybox目錄&#xff0c;make menuconfig &#xff0c;然后在networking中勾選tftp項跟tftpd項。 &#xff08;2&#xff09;配置/etc/inetd.conf 中關于tftp的選項&#xff08;此部未驗證&#xff0c;不需要應該也可以&#xff09; tftp dgra…