程序员如何成长 今日热文
博客园 2023-06-08 04:56:33

做技术是打怪兽不是养宠物,为什么要打怪兽?因为难;为什么难很重要?因为难的事情才能带来成长;为什么要成长?承认吧,因为「如何成长」是当代人,包括你我他在内焦虑的源泉。


(资料图片仅供参考)

过去几个月内我在写一系列主题为「NodeJS实战」的文章,内容来源是过去两年独自开发和运维 site2share 网站的经验,本篇文章是对这个系列的一个暂时收尾。

今天我不聊代码,聊些更重要的事情

养宠物

从两件事情开始说起

其一是在此之前,我直接或间接听到了一些来自早已离开项目同学的声音,陈旧的项目技术栈和代码是驱使他们离开的原因之一。

其二是在偶尔浏览掘金网站的内容过程中,有一类让我印象深刻的文章标题,大意诸如「教你用xx + xx + xx 打造一个开源系统」,因为我关注前端领域的关系,标题里的 xx 通常是围绕某个前端框架的时髦技术栈,从点赞和评论数来看它们颇受欢迎。

对于前者我当然理解:一方面脱离当下容易让自己丧失竞争力,不管你愿不愿意承认,简历驱动型开发是所有程序员秘而不宣的默契;另一方面陈旧代码给开发工作带来的挫败感不言而喻,我相信每个程序员面对「屎山代码」都有宁愿把它重写也不愿意修改一行的冲动。第二件事的出现也就顺理成章了:我想毫无负担地学习新技术,还能抛开白天工作中的螺丝钉角色,体验一次愉快的项目实战经历。

我把从零开始做新项目比喻为「养宠物」,因为它能给你带来无与伦比的掌控感。假设一个代码库完全是由你一手搭建的话,那么关于它的一切,例如如何启动、如何部署、它适用于什么场景又无法解决什么样的问题你都心中有数。如果你恰巧又在Thoughtworks 工作,那么Thoughtworks 工作体验更增强了这种掌控感的正当性:对于有坏味道的代码我们允许用工作时间进行重构,对于代码内不懂的知识点,只要提出问题就一定可以得到回答。

也许是我运气不够好,我的工作经验告诉我,「养宠物」般的工作机会是可遇而不可求,在大厂晋升靠造轮子而不是填坑是公理人尽皆知,但造轮子的机会屈指可数。维护遗留系统依然是我们大部分人的工作。这也就是我接下来想说的「打怪兽」,此时我们面对的系统哪怕只上线一年,源代码也可能是满目疮痍。

这里是对于下面不中听的一些话的免责声明,我不是在否定精通

React 没有价值,我也不认为简历驱动开发有什么错,只不过要小心它们让我们的眼界变得狭隘

打怪兽

真正的常态是我接下来想说的「打怪兽」。

之所以把它称为「打怪兽」,不仅仅因为你接触的代码会超出你的预期,你甚至想象不到你会遇到什么样(啼笑皆非亦或是让你无从下手)的困难:

-这个一千行代码的文件应该从哪开始读起?-我如何才能让代码进入这个分支?-你发现项目用到的一个框架没有任何文档,在 github 上也找不到源码,原来是上一个离职的老大自己写的-项目的打包工具用的既不是webpack 也不是 grunt ,而是 shell 脚本-现在需要你优化一个超过包含上百个组件的 React 应用的性能

「怪兽」依然是一个友好的比喻,此时此刻你至少还能够把它具象化,将它和某些电影或者游戏里的角色联系在一起,这意味着它造成破坏的手段和范围是可以预知的。但工作中我们实际遇到的问题无法预测。

你一定想象不到在编写 site2share的过程中,困扰我最久的问题背后的罪魁祸首竟然是 ExpressJS 里的 trust proxy 参数,它导致 API 从来无法访问到部署在 Azure App Service 上的后端服务

为什么要打怪兽

实际的出发点正如上面所说,如果我们工作中绝大部分人、绝大部分时间面临的都是怪兽,那么逃避它就是自欺欺人。

说点不实际的,是因为打怪兽比养宠物更难——为什么「难」重要?因为难的事情才能带来成长。为什么要成长?承认吧,因为「如何成长」是当代人,包括你我他在内焦虑的源泉。

除此之外,我还想强调的是它在锻炼解决问题能力本身

随着工作的深入,越来越发现我的角色从「解决技术问题的人」变成「解决问题的人」:从 Javascript、SQL Server 到代码设计、代码规范,再到团队方向、团队培养。整个过程其实不允许你循序渐进地去适应,可能明天醒来新的问题就摆在你面前,你也永远也没有准备好的那一天。也许可以把团队管理当作一门新技术用学习编程语言的方式去学习,也许求助对的人是当务之急,也许有的问题压根可以不解决。但无论如何,思路不会有如神助般凭空出现在你脑海里,举一反三需要的是练习。问题的多样性在练习的过程中起到非常大的作用,解决新问题会带给你明确的反馈:我的经验可以移植到这个领域,亦或者我的工作模式需要调整。

或者忘掉我上面的长篇大论,通俗点说,打完怪兽以后你就是见过「地狱」的人了,还怕什么。我想起来大二时候为了制作这款软件代码被推翻了无数次,从那之后就再也不怕重构了

另一方面,养宠物的风险在于,它让我们不自觉地陷入舒适区中。

我曾经有差不多有一年的时间可以自由选择技术栈来开发各式各样前端应用。最流行的框架和搭配起来最时髦的全家桶便成了我的不二之选。在热门冷门尝试了个遍之后最终我难免会对自己产生怀疑:我似乎永远都在被输入,我永远都在给某个工具打工,如果今天哪个框架告诉我它是业内明日之星那我就要去学它,因为 fear of missing out 是每个技术人的通病。我似乎能做的也只有如此了,但这就真的足够了吗?

工具正在变得自动化,并且「帮助」我们专注于业务开发这件事带有迷惑性。这里的陷阱在于他能替你做很多事,会让你以为你具备同样的能力的错觉。例如虽然 Parcel 可以无须任何一行配置就把脚本打包得漂漂亮亮的,但你可能对背后的缓存策略一无所知。当每个人都在简历上强调「精通 xx 框架」的今天,我们应该问自己除了框架我还有没有更有力的竞争力?

这类陷阱还有另一种变形是,在团队内你只做业务开发。身处大型开发组中会让你以为你有独立驾驭一个相同体量项目的能力,但实际遇到的问题会非常受限,因为功能性需求和底层设计已经交给你们团队的 TechLead甚至是团队前成员去做了。(公允地说这不是完全负面,而是一件需要把握平衡的事情。虽然这会给团队成员的成长带来不利,但另一方面却可以让项目风险变得可控)

「打怪兽」也是在打破你的乌托邦

打怪兽的另一层含义是经历实战

「教你用 xx 打造 xx」这类系列教程的前置条件太美好了:你有无限的业余时间投入其中,你就是你自己的产品经理。但实际工作中我们永远是戴着镣铐跳舞。例如糟糕代码不一定是个人能力的结果,考虑到当时的交付压力,团队状态和历史包袱,换做你不一定能做得更好。所以大部分技术决策其实是在恶劣环境下做出的,然而如何学习在不同环境中作出恰当的反应,我不认为这是脱离实践可以达成的。

另一个问题是它缺少对方案的闭环验证:我不确定有多少此类项目投入到真实的商业运营中,如果没有,很遗憾它的代码就不一定是有效的。例如它设计有异常捕获功能,异常捕获的目的之一是帮助我们在实际运营过程中排查问题,那当异常发生时它可以提供什么样的信息帮助我们定位到错误代码?通常在捕获异常之后紧接着要把信息作为日志输出,有相当一部分公司其实购买的第三方日志系统,那集成难度如何?如果只有零星的用户上报了此类问题,我们可否在实际生产环境下,在每秒上千条日志增速的日志海洋里甄别到他们?

退一步说,即使方案完美无缺,我们还需要关注它的成本如何。再一次强调,实际工作中人力、时间都是有限的,假使我们能做到满分条件也不会允许。当你把方案拍到老板面前,但是他告诉你预算只有三成时,选择留下哪三分之一的功能,或者说如何用三成的预算做出来一个及格的功能比纯粹的编码更棘手。老板更多关心的是风险,说实话「时髦」技术表达的并不一定都是褒义,它意味着技术的关注度仍在持续提升中,意味着它还可能没有被大规模地应用,也意味着我们其实有更成熟的方案可供选择。决策者都厌恶风险,因此在推广新方案时风险可控也是因素之一。除此之外代码的学习曲线如何?代码库毕竟在依赖团队维护,你应当考虑到团队下限对于新技术的接受程度。

最后,我建议技术同学也需要掌握一些产品思维,它也是只有实战可以带给你的,只有你设身处地地把自己当作应用的运营者才会意识到某些问题,这会对技术选型带来帮助。具体请参见我的上一篇文章:《个人开发者如何选购云服务》。

你可能会喜欢

去年我是怎么解决团队问题的测试覆盖率治不好你的精神内耗昂贵的质量理解流程帮助团队成长是唯一的出路开源社区的暗面去年做 Tech Leader 犯过最大的错技术写作的困境拥抱原则与面对现实代码与质量的思考与随笔从对 Vue 中 mixin 的批评,到对模块间依赖关系的探讨

程序员如何成长 今日热文

2023-06-08 04:56:33

速读:哈登左右为难原因何在?76人聘请纳斯造争冠新幻想

2023-06-08 04:52:47

兴平阜寨镇:党建引领保障夏收夏种顺利开展

2023-06-08 04:32:08

焦点要闻:护航南太湖,它来啦!

2023-06-08 04:34:13

全球速读:饿了么关联公司法定代表人变更 方永新接替王星

2023-06-08 04:45:56

克扣供应商10%货款?长安汽车:不实 已报案-天天热点评

2023-06-08 04:13:12

让老小区焕发新生,“三驾马车”齐发力|共建美丽家园 共享美好生活

2023-06-08 04:07:16

头条:A股房企批量退市加速出清 股东高管开启增持自救行动

2023-06-08 03:43:46

津南区气象台发布雷雨大风蓝色预警/IV级/一般【2023-06-07】 今日看点

2023-06-08 03:34:13

吾尝终日不食终夜不寝以思无益不如学也翻译句子的意思_吾尝终日不食终夜不寝以思无益不如学也翻译

2023-06-08 03:14:05

渤海化学拟22.5亿元投建丙烯酸酯和树脂新材料项目

2023-06-08 03:16:45

天天热头条丨【收评】豆油日内上涨0.03% 机构称油脂反弹乏力

2023-06-08 02:48:50

世界快资讯:23安徽债49今日发布发行公告

2023-06-08 02:25:15

升能集团(02459):石墨电极市场天花板低,股价狂飙≠基本面蜕变?

2023-06-08 02:09:39

以为世无足复为鼓琴者什么意思_以为世无足复为鼓琴者的意思

2023-06-08 01:50:11

天天视点!关注“三夏”丨河北发布麦收消防安全提示:严禁焚烧麦茬麦秸,随收随打及时入仓

2023-06-08 01:42:21

坐飞机晕机吃什么药_坐飞机少吃豆类还是淡茶

2023-06-08 01:38:16

高立减930元!天猫国行PS5双手柄套装促销中

2023-06-08 00:25:24

卡霍夫卡水电站大坝遭破坏,会有哪些影响?

2023-06-08 00:12:10

今天高考返程和赴考时段广州有雷阵雨 全球视点

2023-06-08 00:14:21

安德幼儿园接待两所帮扶园教师入园跟岗学习

2023-06-07 23:21:07

柳江区气象台发布雷电黄色预警信号【III级/较重】【2023-06-07】

2023-06-07 22:49:38

海南橡胶:公司未参与投资海南万宁免税店项目

2023-06-07 22:40:21

北京住建委:加强已购共有产权住房管理 明确回购条件和方式

2023-06-07 22:19:02

锂电池板块跌0.67% 日播时尚涨10.02%居首 全球快看

2023-06-07 22:14:25

菊花画_菊花怎么画漂亮又简单 世界今头条

2023-06-07 21:59:52

全球热资讯!AI秒写2023重庆高考语文作文 你给它打多少分?

2023-06-07 21:48:46

港交所:未来内地投资者或可经“港股通”买卖人民币柜台证券

2023-06-07 21:54:58

经合组织上调2023年世界经济增长预期至2.7%|全球快资讯

2023-06-07 21:26:51

公安|湖南临武警方查处3起网络赌博案件

2023-06-07 21:01:02

海关总署:前5个月民营企业进出口总额同比增长13.1% 天天速看料

2023-06-07 20:50:03

5000mAh+1亿像素,20GB+256GB,1mm窄边框手机跌至1187元敞开卖

2023-06-07 20:30:19

【收评】豆油日内上涨0.03% 机构称油脂反弹乏力-微动态

2023-06-07 20:27:56

资讯:横州市气象台发布暴雨橙色预警信号【II级/严重】【2023-06-07】

2023-06-07 20:05:44

苹果手机开不了机怎么办_苹果手机突然开不了机_环球热门

2023-06-07 20:07:36

青岛税务推广企业注销“一站办” 积极融入政务服务事项标准化建设

2023-06-07 20:09:16

2023河北历史高考时间(开始+结束)|全球快资讯

2023-06-07 19:58:53

世界新动态:民事公益诉讼守护“蓝色粮仓”

2023-06-07 19:40:15

个人信用卡逾期债务如何处理

2023-06-07 19:39:47

中国之最有哪些 世界之最-中国之最有哪些

2023-06-07 19:04:53

手机银行系统故障屡发的背后:大手笔投入 但使用痛点仍存 世界今热点

2023-06-07 19:07:19

世界快资讯丨新型火车票来了:7天内任意时间可乘车 过期退款

2023-06-07 18:48:32

她曾是央视美女主持,2婚上《非诚勿扰》,登台1小时牵手富豪-每日报道

2023-06-07 18:52:00

苏州与北京银行签署战略合作协议 北京银行苏州分行揭牌

2023-06-07 18:29:31

当前要闻:八闽岳祖白岩山

2023-06-07 18:00:54

贝莱德中国区负责人汤晓东离职 陈蕙兰将接管在岸业务_全球快看点

2023-06-07 17:58:30

股票不能当天买入当天卖出吗

2023-06-07 17:53:45

【天天新要闻】淳于髡怎么读音是什么意思_淳于髡怎么读

2023-06-07 17:39:02

崩坏星穹铁道猎星游戏第二辑访问筛查攻略 街机挑战第二辑访问筛查位置_快资讯

2023-06-07 17:14:15

热门:国电南瑞(600406)6月7日主力资金净卖出2787.69万元

2023-06-07 16:42:34

天宫TV | “圆梦乘组”与“博士乘组”梦幻联动!-焦点快看

2023-06-07 16:43:49

全球简讯:金塔县游泳馆即将开馆试运行

2023-06-07 16:08:51

2022~2023年三门峡养老金调整方案最新消息 三门峡养老金调整方案计算公式表

2023-06-07 16:05:08

简单直指人心的人生感悟

2023-06-07 15:37:14

焦点热讯:担心培训机构不能退费?中消协:警惕不法分子以培训班退费名义实施诈骗

2023-06-07 15:25:01

烟雨江湖天外天化身属性怎么样

2023-06-07 14:45:39

今日热议:绵阳市高龄补贴新标准是多少钱 绵阳高龄补贴2023发放标准

2023-06-07 14:08:00

多样屋官网茶具(多样屋官网)

2023-06-07 13:50:13

一念永恒:印记之争开启,金刚身+不死筋,狂暴白小纯一人挑一宗-全球今亮点

2023-06-07 14:02:46

我国一季度汽车出口107万辆 还带火了这个行业

2023-06-07 13:21:23

焦点热讯:吴京将拍七部系列动作电影“刀枪剑棍长南太” 系列首部《刀》剧本打磨第四稿

2023-06-07 12:53:36

沙特政治学者:沙伊复交有助于中东地区稳定与发展

2023-06-07 12:50:30

国内商品期市午盘涨跌不一 花生跌超4%|全球新资讯

2023-06-07 12:23:10

诸葛亮死后的蜀汉,凭借什么坚持了三十年? 通讯

2023-06-07 12:04:34

2023年宁波新冠抗原检测阳性结果要上报吗

2023-06-07 11:39:38

全球观热点:提单出正本和电放是什么意思_电放是什么意思

2023-06-07 11:45:30

鑫磊股份:融资净买入191.46万元,融资余额6717.41万元(06-06) 全球今日讯

2023-06-07 10:34:25

焦点观察:汉族人的狐臭来源于哪个民族_羌族主要分布在我国的什么地区

2023-06-07 10:10:31

2000年属龙的今年多大_00年的今年多大

2023-06-07 09:50:54

全球视点!主力合约资金流向金十期货6月6日讯,截至23:00,资金流入方面,铁矿石2309流入4.38亿元,玻璃2309流入2.29亿元,豆油2309流入1.26亿元;资金流出方面,甲醇2309流出4.70亿元,螺纹2310流出1.46亿元,焦煤2309流出1.31亿元

2023-06-07 09:06:26

存款利率即将再降?银行_每日热讯

2023-06-07 08:56:41

长信长金通货币D基金暂停大额申购

2023-06-07 08:44:59

当前观察:美国51区外星人尸体照片_美国51区外星人尸体

2023-06-07 08:11:30

【天天速看料】浪姐造星能力有限:气哭任敏的汤晶媚没存在感,吴倩镜头少闹退赛

2023-06-07 07:58:33

海南椰岛:涉未及时缴税、原材料采购纠纷等,子公司部分银行账户被冻结-环球今热点

2023-06-07 07:33:39

环球今日报丨亚青赛百米大战摘银后,17岁四川“女飞人”刘峡君携手队友勇夺4x100米金牌

2023-06-07 07:13:39

视讯!钱存银行一年,如何存年利率能达到3%?内行人:可以“这样存”

2023-06-07 07:19:14

欢子歌曲试听_欢子的新歌_讯息

2023-06-07 06:58:38

河南省驻马店市2023-06-04 17:55发布暴雨蓝色预警|全球新消息

2023-06-07 06:45:30

人工糖对身体有害吗_网络用词人工糖精是什么磕CP里的人工糖精是什么意思-焦点速看

2023-06-07 05:44:11

蓝光发展摘牌 成今年A股首家退市房企_即时

2023-06-07 05:38:28

焦点滚动:安德烈·丹尼尔森

2023-06-07 05:14:03

脑部mri检查多少钱做一次_脑部mri检查多少钱

2023-06-07 04:58:01

广西贵港辣椒长势喜人 带动乡村振兴“辣”劲十足

2023-06-07 04:53:16

父亲的高考梦 环球微速讯

2023-06-07 04:42:39

“大润发”卖发霉椰子,消费者索赔1000元!消委会:支持!-热消息

2023-06-07 04:43:10

【速看料】“明年会是一个特别好的年份” 苹果首款MR头显问世 元宇宙创业圈沸腾了!

2023-06-07 03:54:14

秋葵的营养价值有哪些_秋葵的营养价值

2023-06-07 04:02:47

外交部:美军舰机跑到中国家门口挑衅,是造成安全风险根源

2023-06-07 02:50:37

每日时讯!混合农业的生产特点_混合农业

2023-06-07 02:19:59

不以阴谋论看人,是基本的文明与善意

2023-06-07 01:57:57

海润传播股东哈尔滨海润国际广告传播(集团)限公司减持64.75万股 股东林秋泓增持64.75万股 全球信息

2023-06-07 01:49:43

印尼雅加达_关于印尼雅加达的介绍

2023-06-07 02:00:19

苹果imei是什么意思_imei是什么意思

2023-06-07 01:53:05

最新快讯!(聚焦中国高质量发展)新疆“Z世代”返乡择业 上班不再“舍近求远”

2023-06-07 01:11:35

速递!高盛将未来12个月美国经济衰退的可能性从35%下调至25%,并表示美联储“极有可能”在7月份将利率上调25个基点

2023-06-07 01:18:44

qq自由幻想符号_qq自由幻想点亮图标

2023-06-07 01:07:51

地铁11号线通过竣工验收 本月下旬开通 即将组织“万人试乘”活动

2023-06-07 00:43:31

世界热消息:天然气燃烧热值多少焦耳-天然气燃烧热值是多少

2023-06-07 00:14:33

2021幼儿园停业通知(幼儿园停业整顿要多长时间) 世界热点评

2023-06-07 00:03:30