程序员如何跨越35岁危机?这篇给点干货建议!

职场&认知洞察 丨 作者 / findyi

这是findyi公众号的第83篇原创文章

这两天在我的读者群里做了一个职业小调研,发现关注我公众号的70%以上都是程序员。

毕竟程序员吸引程序员,这也算猿粪吧,哈哈。

这个小调研也引发大家对程序员行业的激烈探讨,一个读者丢出了一张图,是大刘老师发的一段话:

不得不佩服大刘老师的洞察力和敏锐,不干这一行居然对我们这么了解!

突然瑟瑟发抖....

前文其实也写过一篇给码农后浪的六点建议,也提到程序员不是老中医,极容易被淘汰替代。

没办法,这的确是残酷的现实。

事实上,我们不用去抱怨也不用去郁闷。

我们更应该思考:如何尽可能的延长我们的程序员生涯。

另外一个事实是:优秀的程序员,从来不担心因为年龄大而被淘汰。

我身边有好几个45+还奋斗在架构一线的老哥,干的生龙活虎。

年龄增长的同时,竞争力和薪资依然同步增长!

今天我想跟大家聊聊优秀程序员必须掌握的那些知识。


 1 

程序员必读书单

除了工作实践,我们要精进技术,一定要多读技术书籍。

为了给大家推荐这份书单,我先后问了10多个技术大牛,要求他们只推一本觉得最牛逼的。

这些大佬包括阿里P9、百度T9、58技术总监、前58技术委员会主席等等。

结合我自己过去看过的技术书,挑出10本:

《代码大全》 

虽然这本书有点年头了,且厚到可以垫显示器。

但是这绝对是一本经典的书。

《程序员修练之道》 

这本书也是相当经典,我觉得就是程序员的指路明灯。

《代码整洁之道》

细节之处的高效,整洁成就卓越代码。

《计算机的构造和解释》 

经典中的经典,必读。

《算法导论》 

美国的本科生教材,这本书应该也是中国计算机学生的教材。

《设计模式》 

这本书是面向对象设计的经典书籍,掌握设计模式是让你的代码做到「高内聚、低耦合」的第一步。

《重构:改善既有代码的设计》

代码坏味道和相应代码的最佳实践。

《人月神话》 

软件开发这个行业能不能堆人数?怎么做好项目管理?如何敏捷迭代?

看完这本书,都会有答案,它适合任何软件开发行业的从业人员阅读。

《深入理解计算机系统》

这本书以程序员的视角全面讲解了计算机系统,深入浅出地介绍了处理器、编译器、操作系统和网络环境。

《C程序设计语言》

无论是做不做C/C++,这本书都值得推荐!

C语言是除了汇编之外,最能让你洞察计算机体系知识、计算机系统运行原理的语言。


 2 

一些硬核技能

程序员行业新技术发展迅猛,可以说是日新月异。

也正是这个原因,中年危机成为我们必须面对和攻克的问题。

思考一个问题:那些能工作到45、50、甚至60的程序员们,究竟具备了哪些过人的能力?

就我过去的经历和观察来说,我认为:他们掌握了一些硬核技能。

这些硬核技能帮助他们克服了年龄带来的劣势。

1.算法能力

很多程序员朋友觉得:如果我不从事算法相关工作。

算法可能对我没有价值。

虽然大多数程序员可能在工作中用不到算法,但这一点都不妨碍算法的重要性。

培养算法能力,就是训练了我们的编码能力、解构能力和超强的逻辑能力。

我一直认为编程的本质其实类似解数学题,那么算法就是最难的数学题。

码皇MIT教授Erik Demaine的建议更为直接:

If you want to become a good programmer, you can spend 10 years programming, or spend 2 years programming and learning algorithms.

如果你想成为一个码农或是熟练工(Code Monkey),你大可以不学算法,因为算法对你确实没有用。

但如果你想成为一个优秀的开发者(Developer),扎实的算法必不可少,因为你会不断的掉进一些只能借助算法才能爬出去的坑里。

2.裸编程能力

什么是裸编程能力?

处理程序实际实现部分的子任务,实现函数或者算法之类的能力。

听起来很简单对吧?实际上很多程序员缺失这样的能力。

不知道大家有没有见过「复制粘贴工程师」,Review他们的代码甚至会发现一些网上的注释,又或者其他人的编写错误。

并不是所有程序员都具备利用必备的基本编程结构有效的实现某个产品或者某个模块。

不少工作多年的程序员甚至连一个简单算法排序都没有考虑,当然这并不影响普通工作的输出。

充当代码世界的搬运工,如同搬砖工人一般,完全可以在职业生涯初期求得苟存。

但在面临调优或者攻坚,这类型的程序员的表现甚至比刚毕业的优秀程序员还要糟糕。

当他们步入中年,当他们承担越来越复杂的任务之际,无力感会与日俱增。

3.Debug能力

调试能力某种程度上比编码能力更重要。

在工作中,编码只占据了我们一部分时间,查找和解决BUG会占用更多时间。

查找BUG产生的根源不是一件简单的事情。

需要整体的分析和经验的沉淀,同时还需要对各种调试工具熟练应用。

团队的架构师除了架构设计,最重要的工作就是去解决那些其他人解决不了的BUG。

4.底层系统知识

处理复杂任务或解决复杂BUG时,具备深厚的底层系统知识非常重要。

比如数据结构、网络协议、操作系统相关知识,等等。

程序的很多问题都是源于对计算机工作原理的误解。

即使是使用高级语言开发的程序也一样。

另外,一些更偏应用层的架构或框架,基础一定是更底层的系统。

了解了底层原理,我们才能看穿眼花缭乱的技术背后的东西,不被层出不穷的新技术所累。

比如Docker技术兴起,改变了CI/CD的方式,推动了云原生技术的发展。

那么Docker到底是什么东西呢,其底层无外乎:CGroups进行资源限制、Namespace对进程视图修改、rootfs为容器进程提供隔离后执行环境的文件系统。

了解了Docker的底层原理,才能在实际工作中更好的驾驭Docker。

以上四点,作为程序员,需要深耕取得突破。

大家可能会注意到,我并没有推荐任何一门语言作为基础能力。

对于真正的程序员大牛,语言只是工具,并不是本质。

这些大牛可以很轻松的熟练使用多种语言来实现业务目标。


 3 

领略代码之美

你如何看待编码这件事?

是把它当作一份简单重复的工作,还是像打造艺术品一样精雕细琢?

这个问题的答案恐怕决定了你是否能成为一名优秀的程序员。

代码世界充满了美轮美奂的风景,充满了领略美丽之后的喜悦。

如果不具备找到代码之美的能力,恐怕并不适合这个行业。

下面说说有哪些代码之美:

一.优美的代码

可读性高的代码才有可能是优美的代码。

相信大家都有过这样的经历:接手一个项目要修复bug或者开发新功能,发现代码可读性非常差。

哪怕是在有说明文档的情况下,都不太敢提交代码,唯恐引入新的bug或者直接导致系统崩溃

《重构》里有这么一段话:“任何一个傻瓜都能写出计算机可以理解的代码。唯有写出人类容易理解的代码,才是优秀的程序员。“

那么如何写出可读性高的代码呢?

有如下建议:

1.不要写过长函数

可读性差的代码有很多特征,其中最典型的就是存在大量过长的函数。

2.过于复杂的类

3.过于复杂的依赖关系

4.注释要简单明了

二.优美的架构

并不是架构师,才会跟架构打交道。

一旦我们开始编码,架构就是必备技能了。

我尤其建议:在写任何功能之前,先想清楚代码架构。

设计优美的架构要做到如下几点:

1.稳定性原则

架构尽可能的简单,清晰,不过度设计。

2.高内聚低耦合

鉴于这个展开讲完全可以写一篇文章,下次专门写下。

3.隔离

稳定业务和易变业务要分离处理,核心业务和非核心业务要分离处理。

应用和数据要分离,服务和实现细节分离,前台和后台分离。

三.重构之美,不断打磨你的艺术品

无论我们怎么努力,也很难一下子就写出可读性很强的代码。

这就像写文章一样,我们的大部分精力都放在表达思想上面,文从字顺有的时候就不太顾得上。

写代码,第一要务是能运行,能实现软件系统的功能。

《代码整洁之道》的作者写道:“我没指望你能够一次过写出整洁、漂亮的程序。如果说我们从过去几十年里面学到什么东西的话,那就是编程是一种技艺甚于科学的东西。要编写整洁代码,必须先写肮脏的代码,然后再清理它。”

很多人写出了可以运行的、“肮脏”的代码,或者说接手了一个可读性比较差的系统,往往不愿意去重构它们。

他们的理由看上去是十分充分的,那就是容易引入新bug。

事实上,不断重构才能让你的代码始终具备「可维护性」。

同时重构的过程,是一个飞速提升代码能力的过程。

多年前,我曾接受一个几十万行代码的工程。

一个类就有2万行,一个函数几千行.....

我花了半年时间,在保证上线迭代的同时,把这个工程彻底重构。

这个过程的确收益良多。


最后的话

成为优秀程序员的路并不好走,你可能要经历孤独、自我怀疑、放弃、痛苦、绝望。

但,这世间所有好走的路,都不值得去走。

只有那些难走的路,征服它才会收获巨大。

跨越泥泞小路,才能抵达理想彼岸。

祝我的程序员读者朋友们,都能成为优秀程序员。

祝大家都能开心Coding每一天。


其他原创文章可以戳:

马斯克推崇的第一性原理,究竟有多重要?

韭菜的自我修养-认知篇

腾讯碾压小公司全纪实:血腥的3Q大战


博主是一个从业多年的互联网老兵。爱学习爱分享,立志终身成长。此公号主要分享管理&认知&成长,偶尔分享技术&产品&运营相关干货。你可以长按这个二维码关注findyi公众号,回复【1】,获取职场发展&管理认知PPT一份:


【您的在看,我的莫大鼓励】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/65533.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

35岁是人生分水岭?一定要做这7件事

在网上看到这样的帖子,说的是35岁以上的员工,有人脉的卖保险,没人脉的跑滴滴,实在不行送外卖。招聘时,35岁以下优先。调整时,35岁以上优化。对绝大数人来说,35岁是一道坎,35岁是人生…

32岁大龄女程序员的职场经历总结,分享重回职场的感受

不知不觉已经三十过二,我2016年研究生毕业就来到了苏州一家国企。我对自己并没有清晰的职业规划,还记得来这家公司面试时,面试官问我,为啥选择我们公司。我说因为他是国企又有互联网公司的性质,即稳定又能写代码&#…

麦肯锡:给20、30岁职场年轻人的14条建议!条条珍贵

点击“技术领导力”关注∆ 每天早上8:30推送 来源: 《麦肯锡决断力》 1、 选择工作的标准: 选择有利于自己成长的公司; 选择可以从事国际性工作的公司; 选择可以充分发挥自身能力,创造出价值,并且可以为社会做出贡献…

给还没到35岁中年危机的程序员们一些建议

前言 上周,我一个同学被柔性辞退了,是一个外企,给了n 1的补偿,十来万人民币。他在那家公司干了三年多,毕业十年换过四家单位,都是国企或者外企。他今年三十四岁,年前就知道要走的消息&#xff…

30岁程序员回顾人生、展望未来

活动地址:http://blog.csdn.net/blogdevteam/article/details/42172979 一、回顾毕业以来这么多年走过的路 从2007年7月份走出校门到今天2014年12月份,已经整整7年半了。想想7年半之前的自己,再看看现在的我,这么多年走过的路&a…

作为40岁的IT过来人,我有3个建议想对年轻程序员说!

见字如面,我是军哥! 我刚毕业的时候也认为技术可以改变世界,如今 40 岁了,N 多年过去了觉得太可笑了! 我总结了三个点,分享给年轻的程序员,请一定要看到最后哦~ 1、 大部分公司的程序…

35岁+的大龄程序员:面对“中年危机”,这份书单或许能帮到你

摘要:对于多数程序员来说,40岁之前赚到别人60岁的钱是普遍目标,不过职业的进阶也印证着人生的进阶,所以何时开始思考未来的职业规划,都不算早。 知乎上有个话题叫做“程序员的悲哀是什么?”,有个…

冯唐:我给20、30岁IT职场年轻人的建议

说起冯唐,多数人的印象只停留在“春风十里不如你”、“如何避免成为油腻腻的中年人”上,以为他只是个当代作家。 其实,冯唐曾就职于麦肯锡公司,从事旧时被称为军师、幕僚或师爷的工作。也曾担任华润集团战略管理部总经理、中信资…

2020年,冯唐49岁:我给20、30岁IT职场年轻人的建议

点击“技术领导力”关注∆ 每天早上8:30推送 作者| Mr.K 编辑| Emma 来源| 微信公众号 技术领导力(ID:jishulingdaoli) 前天的推文《冯唐:职场人35岁以后,方法论比经验重要》,收到了不少读者的反馈,觉得挺受启发。其…

如何优化供应商采购系统,提升供应商管理和采购流程效能

随着企业采购向数字化转型的发展,供应商采购系统的使用也越来越广泛。如何优化供应商采购系统,提升供应商管理和采购流程效能,已成为企业面临的重要问题。本文将为大家介绍一些优化供应商采购系统的方法,以提升采购效率和管理水平…

采购工作内容是什么?如何成为一名优秀的采购?

最近在看采购,供应链管理相关的书,梳理下思考的内容,希望大家对采购工作有一些认识。 1、采购工作概述 根据公司销售计划,采买到物美价廉的产品,且在这个过程中搭建并管理供应链,满足日常运转。 02采购的…

如何确保采购过程中的产品质量

在企业采购过程中,确保采购的产品质量是至关重要的。采购的质量直接关系到企业的生产和销售质量,影响企业的形象和利润。为了确保采购过程中的质量,企业需要采取一些措施来保证采购物料和商品的质量,以下是一些有效的方法&#xf…

如何做好采购供应商管理工作?

图为简道云采购全流程管理 首先先简单的说一下供应商管理出现的问题: 供应商合作当单品数很多,很难被淘汰;一线品牌供应商很牛,无账期,必须现付,很难管理;总是缺货,有没有更好当供应…

在采购管理过程中使用技术有什么好处?

采购过程不总是简单直接的,人工采购过程非常耗费人力和时间,并且涉及大量文书工作。另一方面,当你在采购过程中使用技术时,比如使用SRM采购管理系统,会节省很多时间,使整个过程变得更加简单和轻松。 在讨…

Midjourney入门必看课程

课程介绍: 本课程适合零基础同学以及希望使用AI提升工作效率的设计师同学。这是一个可以让你从0到1,从小白到熟悉AI绘画工具,最后能够熟练应用生成自己绘画作品的课程。在我们的课程里,你将学会如何使用midjourney等各种AI绘画软件与chatgpt…

chatgpt赋能Python-python对话机器人代码

介绍 Python是一门流行的高级编程语言,可以用于开发各种类型的软件。其中,Python还被用于制作聊天机器人,也就是能够和人类用户进行交互,并回答用户提出的问题的机器人。 要开发一款Python对话机器人,需要使用一些Py…

chatgpt赋能Python-pythonpenup

结论 PythonPenUp是一个全新的Python技术社区,旨在为Python程序员和开发者提供一个交流、学习和分享的平台。在PythonPenUp上,您可以浏览最新的Python技术资讯,探索最新的Python工具和框架,分享您的Python编程经验,与…

chatgpt赋能Python-pythonplace

PythonPlace——一个Python编程者的天堂 PythonPlace是一个全球领先的Python编程者社区,它为Python爱好者们提供了一个交流和学习的平台,实现了从初学者到专业程序员的全方位发展。本文将为您全面介绍PythonPlace的特点,帮助您深入了解这个P…

chatgpt赋能Python-pythonorge

Pythonorge - 推广 Python 的全球组织 Pythonorge 是一个非营利组织,致力于推广世界各地的 Python 技术和社区。Pythonorge 的目标是帮助 Python 开发者们轻松地与其他开发者、企业和社区成员联系和互动,使他们能够更好地学习、分享、创造和推广 Python…

chatgpt赋能Python-pythonbus

PythonBus: 为Python 开发者量身打造的社区 对于所有Python 开发者而言,PythonBus 是一个非常值得加入的社区平台。该平台汇聚了全球最顶尖的Python 开发者,同时也是一站式排除各种问题并交流经验的平台。在PythonBus,无论你是初学者还是专家…