老程序员的定义
很久以前就有人在网上说,软件开发30岁不行,35岁不行,40岁不行,45岁不行.众说纷纭,所以我写了一篇题为《程序员的年龄天花板》的文章来讨论这个问题。有兴趣的可以进去看看。
这里我取一个流行的观点,30岁以上的程序员都是老程序员,只是为了讨论方便。不同意请保留意见。
人生阶段发展理论
《论语为政》篇文章:
子曰:“十之五,吾立志学;我三十岁了;四十而不惑;五十岁时,我知道我的命运;六十岁我听话;我七十岁还听话;我没有越界。”
这是至圣先师孔对人生发展阶段的精辟概括,他在其中讲到了三十而立。所谓30岁立身,就是人过了30岁,要在某个职业稳定下来,做出成绩。
在现代社会,研究人生职业发展阶段最著名的学者是美国的D.E.Super,他是世界职业规划发展史上的标志性人物。舒伯对人类生命的发展过程提出了以成长、探索、建立、维持、衰退为中心的五阶段模型。每个阶段都有不同的职业主题需要完成。如果目前的职业课题没有完成,会影响后续的职业发展和生活。
如果你对舒博感兴趣,可以问问贴心的度娘,她会告诉你舒博在恋爱O2O的职业阶段理论的详细内容。我在这里只涉及与老程序员相关的阶段。
舒伯的职业生涯有一个既定阶段,从25岁到44岁。在此阶段,职业发展主题如下:
逐渐适应一份工作
建立自己未来的安全感。
找到合适的晋升途径
作为一个程序员,请好好理解这个老手提出的这些话题,看看自己,自省三分钟再往下看。
建立阶段可细分为两个小阶段:
25~30岁,矫正期
31~44岁,正规。
大家可以看到,我们所说的老年程序员是那些已经过了孔老夫子所说的30岁阶段的人,老年程序员基本上处于舒伯前辈提出的稳定期。如果你说你已经超过44岁了,按照孔的说法,卖蛋糕的人应该不会被弄糊涂。
31-44岁的稳定期,其实是人生最有创造力的阶段。如果能安下心来做一份工作,一定会有所成就,为未来打下保障。
30岁是每个人都会遇到的事,不仅仅是程序员和软件开发工程师,更是人生的一个节点。所以,你不是一个人。程序员,世界上每个人都会经历这个阶段。而且也有人经历过,提出过一些有效的对策。
还有一点很重要,25~32岁是婚育高峰期,所以这个时候人会面临工作和生活的双重压力,事业和家庭两头忙,身心俱疲。如果两端都不确定,基本不可能活得开心。
我不想说太原了,还是把重点放在程序员身上吧。
技术生活的三个方面
本节将向程序员讲述三个要点:
知识、技术
技术能力和经验
商业积累
前面的文件里提到过,30岁是每个人都会面临的人生转折点。这个节点对程序员有什么特殊的表现和意义?和水。
软件现在已经成为各行各业的基础服务,它有着非常特殊的属性:软件本身已经形成了一个产业,它与其他产业相结合,形成了一个跨学科的领域。
说白了,纯代码是没有意义的,解决实际问题才是软件存在的最大意义。真正的问题来自各行各业,所以大部分软件产品都是软件技术和行业需求的有机结合。
因此,大多数程序员都是这样工作的:利用某种开发工具和编程语言,实现一个解决特定问题和需求的软件。有了这个定义,我们才能真正开始水。
知识、技术
程序员需要掌握编程语言、应用框架、开发工具等特定的知识和技术。这是第一点,很有必要。
不同的语言和技术有特定的应用场景。这种语言能有效地解决这个问题,那种语言也能有效地解决那个问题。
随着人类社会的不断发展,随着信息化、互联网化的深入,现实问题越来越多,越来越复杂。旧的知识和技术在新的问题面前可能会显得力不从心或者效率低下,所以新的语言和技术不断涌现,比如Go、Scala、Swift和ROR,这些语言和技术出现的时间不长,都是因为特定领域的问题。没有最好的语言,只有最合适的语言。
面对这种情况,程序员需要不断学习。为了更好地解决问题,他们可能需要掌握很多语言和技术,他们会随着社会和技术的发展不断调整自己的知识和技术图谱。
所以早在几千年前,我们的儒家经典《大学》就预言了未来会有程序员,对他们的生活做了一个大概的预言:“有新的进步,有新的进步,有新的进步。”
好了,这就是程序员面临的知识和技术现状,所以有人认为,30岁以上,忙于家庭事业两端,身心疲惫,没有时间充电学习,就不再适合做程序员了。
这是一个现状,当然对某些人是这样,但对另一些人不是。其实31~44岁是人年轻、精力充沛、富有创造力、有能力学习第二春的黄金阶段。不信你去看看舒伯的职业彩虹图,一看就知道了。
例如,正是在这个时候(38岁),王江民转向了软件开发。后来(45岁时),他一个人白衣骑行,来到中关村,创造了姜敏杀毒的传奇历史,塑造了一代软件神话。
30岁到44岁,如果还在做程序员,一定要对自己的学习模式有所了解。再加上之前的积累,可以很快学习到新的东西,要不断获得举一反三的愉快体验。
技术能力和经验
对于程序员来说,知识和技术是一方面,容易获取,浅薄。更深层次的是技术能力和经验。
技术能力是指具体知识和技术的应用水平。很大程度上决定了一个程序员的技术价值。
技术能力是在不断运用知识和技术书籍解决实际问题的过程中培养出来的。在这个过程中,有些人喜欢琢磨总结,升华总结,技术能力会提升很快。工作一年后,他们可能会获得普通人两三年的技术经验。有的人可能停留在写一段代码就完事的水平,所以干三年可能比别人干一年还不如。
《天龙八部》里的神仙姐姐王语嫣,受到了很多少年的喜爱。从IT的角度来说,她其实是一个典型的程序员,掌握了很多知识和技术,但实际上并不能开发出来。当然,她也可以是一个很棒的程序员鼓励者,不仅可以极大地激励程序员,还可以在必要的时候提供字典般的帮助和指导。
王语嫣对应的另一个角色是扫地僧,超越知识和技术,阅历深厚,不拘泥于招式。他一举手,就“干掉”慕容博、萧远山这样的超级高手。他是我们专业技术人员的最爱。
说了这么多,我想说的是,随着程序员年龄和工作经验的增加,他们的重要性和价值会超越知识和技术本身。这是我们必须认识到的,这也是老江湖的价值所在。
三两个月就能学会服务器开发,但是如何应对大用户、大业务量、大数据、大并发带来的挑战,绝对不是三两个月能解决的。没有五八年的积累,没有随着企业产品和服务的发展经历技术架构的变化,你很难解决这些问题。
商业积累
大部分软件是技术和业务的结合,甚至一些行业软件,开发技术只占20%,80%是业务层面的知识和流程。所以对于一个程序员来说,熟悉业务是非常重要的。做电商网站和做地图软件,绝对是天壤之别。
商业和工业密切相关。你选择了一个行业,一个企业,就决定了你能积累的行业、业务知识和经验。这部分业务积累才是程序员的重要价值,经得起时间的考验,也经得起技术经验的考验。
有句老话已经告诉了我们商业积累的重要性:隔行如隔山。还有一句老话也说明了同样的道理:男人怕入错行。
学习一门编程语言很容易,但要深入理解业务就没那么简单了。而你不懂业务,也没有编程语言和应用技术框架,其实是没用的。这也是我们强调商业积累的原因。
企业分类
我曾经在《程序员的年龄天花板》一文中提出过软件企业的分类:
外包类型
项目类型
产品类型
在这里,我们来说说前面提到的“技术生活的三个方面”。
外包公司通过承接其他企业的部分或全部软件业务来发展。这就导致了业务、编程语言、技术框架等技术层面的不稳定。
外包公司做软件的心态是“干活,交活儿,拿钱,搞定”。在这样的心态下,程序员很难有机会仔细打磨产品,对技术能力的积累会有一些影响。另一方面,由于业务会随时发生变化,也会对行业知识的积累产生较大影响。
还有,从企业的角度来说,考虑到成本,成本低的年轻人更愿意用,所以年龄大的程序员在这家公司的前途不够乐观。你是35岁的程序员和22岁的程序员,做同一个App。老板不会认为你35岁做的比你22岁做的好太多。他会觉得,年轻人多加几节课,多做些改变就差不多了。这个时候劣币驱逐良币。
项目型公司以承接电信、银行、电力、政府或其他单位的软件项目为生,比外包稍强。他们可以选择自己的技术,长期积累某个行业的经验。如果这类公司的项目小而多,行业不集中,类似于外包公司。另外,做项目的心态和外包有些类似,更注重成本,不利于程序员持续的技术开发。比如,新技术出现时,公司不一定会使用,为了快速规避风险,可能会选择较老的技术来完成项目,这样一方面会减缓开发人员的技术更新周期,另一方面也会减少培训机会,减缓技术的增长速度。
产品公司是最好的,一个产品,产生竞争力,要么靠对业务的深刻理解,要么靠技术领先。这种公司对程序员的技术经验和业务知识都有好处,我觉得是程序员更好的选择。
老年程序员的未来
通过前面的分析,我们知道程序员这个技术职业有三个价值:
语言、技术
技术能力和经验
商业积累
一句话总结,程序员最大的价值就是能够利用技术解决问题。在这种能力的构成中,技术能力、经验和业务具有持久的价值,比语言和技术更经得起时间的考验。
程序员的未来关系到价值维护。请参考我的文章《的四个秘密》
企业家
管理者分为职能型管理者和综合型管理者。CEO、总经理等角色属于综合型经理,开发经理、R&D部门经理、项目经理、项目总监、HR经理属于职能型经理。
专业技术人员是指依靠技术谋生的人,如程序员、测试工程师、UI设计师、会计、律师、编辑等.这些人的共同点是,他们有独特的技能和技术,他们能用自己的技术解决问题,为别人创造价值。他们通常和一个组织一起工作。
自由职业者一开始是专业技术人员,后来离开了特定的组织,单干,自己安排,今天想干就干,今天不开心就明天干。
企业家是一种特殊的功能取向。他们特别想拥有自己的产品和服务,于是拉一批人成立一个组织,协调各种资源实现梦想。
程序员的功能定位,大多会落在专业技术人员身上。我个人从010到310167做管理,现在回到专业技术,因为做具体的技术工作会让我更自然,更舒服,更快乐。每个程序员都应该明确自己的功能定位。只有功能定位明确了,才能更靠谱的谈未来。
“成功”
有人说,三十出头的程序员,如果你不够成功,会面临很大的压力。这听起来是对的,但并不完全正确。有一个关键问题需要澄清。这就是“成功”的定义。
世俗的成功,在古代是“十年无人问,一朝成名,天下皆知”,是“春风傲马蹄病,终日见长安花”。现在也差不多了,财富多了,老婆多了,社会地位高了,但就是这样,你看广为流传的“做个CEO,嫁给白走上人生巅峰”就是这种观念的反应。
但我这里说的成功,是指找到适合自己的职业,实现自我。简单来说,你在做自己想做的事,有成就感,很开心。就这么简单。
我们不必活在社会团结的价值取向中,也不必活在别人的期待中。你的人生是你自己的,即使你的父母坚持要你成为什么样的人,你也不必听。
有了这个基本认识,我们就可以继续了。
程序员在企业中的发展
程序员的直接发展路径如下:初级工程师-中级-高级-架构师(专家)-技术总监-》CTO。
技术总监和CTO带一些管理职能,也可以从另一条路过来。这条路就是程序员的管理之路:工程师-项目负责人-项目经理-项目总监-技术总监-》CTO。
一个技术渠道,一个管理渠道。这是程序员常见的职业晋升渠道。
此外,还有一些交叉发展的机会。比如从开发到测试,从开发到产品经理,开发前到转售,开发后到销售,从开发到销售.
最后还有一个选择,就是离开软件行业,在其他行业自由飞翔。啊哈,再见朋友,再见朋友,再见再见。我祝你好运。
走管理路线的人不一样,这次就不说了(后面我会写文章);我已经和转行的朋友告别了;那么剩下的就只能说说技术的未来了。
走技术路线的程序员呢?
事实上,这不是问题。你说,哪一行没有老手?
之所以这又成了问题,是因为程序员“知识渊博,技术娴熟,理想主义,焦虑不安”。他们觉得自己学了这么多,付出了这么多,以后不能原地踏步。他们不能走下坡路,所以他们必须繁荣。所以他们担心这个,担心,迷茫,觉得这个生意几年都是青春饭。
其实根据我之前的分析,结论已经准备好了:保持学习能力,丰富技术能力和经验,积累行业知识和经验,然后你就可以继续走下去了。即使会有衰退阶段,也是正常的。人生就像一朵花,有一个萌芽、绽放、凋零的过程,我们需要自然地接受。
程序员28定律
得出结论只是第一步,我们还要明确一个事实:程序员群体中的二八定律。
先说技术路线和管理路线的选择,基本都是28-20(或者19-20)。
少部分人走管理路线,剩下的程序员大部分走技术渠道。在那个技术渠道有多少人能成为高级软件工程师、架构师、技术专家、CTO?
百分之二十。
剩下的80%在技术道路上走不动了,但还是要保持竞争力,不让价值下降,才能继续做下去。如何保持竞争力之前已经说过了。
大量的老程序员会面临得不到提升,如何保持竞争力的问题,这是大家必须看到的事实。
从晋升的角度来看,任何行业的员工分布都是金字塔形的。锅饭不存在,共产主义按需分配还没到。我们必须接受和接受这个事实,才能在这个基础上寻求发展。
如何面对未来
已经确认技术路线可以走下去。现在我们来看看,如果一个程序员的四大功能定位是面向专业技术人员,那么三十多岁的时候怎么走好,怎么适应。
选择企业
就技术而言,要想保持竞争力,在选择公司时就要做一些考虑。未来选择一个好的行业,一个注重技术和产品的公司,这很重要。会严重影响你以后在技术路线上能走多远。
前阵子找工作的时候,只按照行业、企业、产品选择了三家公司面试。我35岁了,需要安定下来。
有人问是否可以选择创业公司。我的看法是,如果你能承担一定的风险(金钱和时间成本),而且创业公司的创始团队和产品可靠,可以尝试。小米成立时,他从摩托罗拉和其他公司找到了大量开发工程师。
在一份工作中安顿下来
根据舒伯的职业阶段理论,31~44岁是一个固定的时期,程序员要在一份工作中稳定下来,找到合适的晋升渠道,建立自己的未来保障。
在这个时期,频繁跳槽对未来发展不利,这是毋庸置疑的,所以要慎重选择。尤其是当你40岁的时候,你在任何一个行业呆的时间都不长,技能都变了。那么你出去找工作就会遇到很大的麻烦。
在招聘网站上逛一逛,看看招聘信息里的年龄要求,你就知道我是对的。除了技术总监、架构师、技术专家和高级软件开发工程师的年龄范围在30到45岁之间,其他大多数职位都要求你在30岁以下。所以,如果你在不同的行业,不同的公司里游荡,到了34、55岁还没有稳定下来,没有达到一个高级软件开发工程师应有的水平,那么你再找工作的时候肯定会遇到尴尬的局面。
如果我不能升职怎么办?
技术路线可以是初级、中级、高级、架构师(技术专家).如果一个程序员在一定程度上发现自己走不下去了,就会很沮丧或者很累。通常这种情况会在你稳定一份工作7年左右后出现,所谓七年之痒。对于本科毕业生来说,这个年龄大约是33~35岁。
这时候我该怎么办?这是一个很现实的问题。
我们需要具体问题具体分析:你是不是因为公司环境太傲慢而不能升职?还是你已经到了天花板,不能升职了?
不同的原因对应不同的行动。对于前者,我们或许应该考虑改变它。后一种情况,需要调整心态,建立第二生活中心,发展专业之外的其他爱好来平衡。
到了这个年龄,会有大量的程序员因为升职受挫或者职业倦怠而成为创业者或者参与创业。这是一个需要注意的现象。
竞争力是区域性和相对性的。
程序员的价值和竞争力其实是相对的。比如你在腾讯,要提拔的人太多了。其实可能有一个鸡头的职位在别处等着,比如其他行业小公司的技术总监,部门经理。如果你看重职位和头衔,可以试试。这也是典型的路线。有些程序员在大公司镀金,回其他行业的小公司做管理或技术专家。
如果你比别人更在乎自己的职位高低和被尊重,那就找一个能凸显自己价值的环境。比如乒乓球运动员何智丽,在第39届世乒赛上,因为没有听从领导的指示,被取消了参加奥运会的资格。她移民日本,继续活跃在乒乓球领域,并取得了辉煌的成就。她还在亚运会上击败邓亚萍获得乒乓球女单金牌。同样,一些外国业余足球运动员或退役足球运动员来到中国,迅速成为受欢迎的球员。都一样。
因此,对于老程序员来说,为了发挥价值和竞争力,有以下几条路径可供选择:
去其他公司,不换行业,利用自己的技术优势,寻求管理职能,走管理渠道。
去一个能突出技术价值的公司继续发展。
去平均技术水平差的地区,继续发展,展示自己的优势。
学习其他技能
哦,亲爱的,如果你有时间,你也可以学习其他能赚钱的技能,因为虽然我们说老程序员总是能做技术,但估计只有20%能一直做到退休。如果你是那80%,当你不得不离开你心爱的发展岗位时,你将能够做好准备,不会突然失重。
专业以外的兴趣
这是我们必须讨论的问题。程序员的生活中不应该只有软件和工作。生活是多中心的,我们应该有一些其他的爱好,可以滋养心灵,修复纯技术工作带来的磨损。
提笼养鸟,雕刻,书法,围棋,游戏,写作,读书.都很好,但有些比没有好得多。很多人(包括我)缺乏信仰,没有爱好,太容易内分泌失调。
你能有多大?
还问.让星爷回答你:
“曾经,有一份真挚的爱情摆在我面前,我没有珍惜。失去的时候很后悔。世界上最痛苦的事莫过于此.如果上天能再给我一次机会,我会对那个女孩说三个字:‘我爱你。’如果非要给这份爱加上一个期限,我希望是……一万年!"