编者按:都说编码是二十一世纪的职业。在软件蚕食世界的情况下,软件工程师的工作似乎高枕无忧。但情况真是这样吗?现在各种“低代码/无代码”工具已经像雨后春笋,而在AI的不断演进下,机器写代码已经不是什么新鲜事,比方说Github就推出了自动写代码的Copilot。只会写代码的软件工程师最后必然会被淘汰。但幸好,软件开发的工作并不只有编码,只要我们把机器做不了的部分不断磨砺,未来仍将高枕无忧。文章来自编译。
工程师把大部分的学习时间都花在技术实现的内容上面了。比方说,新的框架、语言或云平台之类的东西。
但是把解决方案变成代码只是你要做的工作的一小部分,而且这部分工作的价值正在逐年降低。
就像我们从“无代码”以及GitHub Copilot 等工具身上所看到的那样,我们的角色当中实现那部分正日益被商品化。
对于这一点,你可以归纳成工程师给团队带来的真正价值是这个:分析问题以及综合处理上下文的能力。作为工程师,你的这种高级认知的角色作用,是永远也不会被“无代码”或人工智能取代掉的。
作为一名工程师,真正人性的一面是在团队里面工作,一边思考其他人的想法、思想,考虑他们的情绪,一边解决这些问题。
这么看来,难道你不应该像训练特定技术一样,训练自己的这些元认知技能吗?
每个工程师都应该花时间去学习和应用一般的思维工具。这些工具几乎适用于所有问题,因此,在这些上面投入时间所带来的复利回报是巨大的。
更清晰的思考会放大你所拥有的所有其他技能,以及你学会的任何框架或工具,让你在今后的职业生涯当中开花结果。
就像任何一种技能一样,改进思维方式也需要刻意学习与练习。
身心健康,精力充沛才会带来更好的认知。所以要花时间照顾好自己。
工作是做不完的,除了我们给自己施加限制,否则工作就没有尽头。紧接着总会有下一个问题需要解决。所以,你得自己管理好工作负荷。时不时加几天班没问题,但如果工作过度的话,你的情绪、认知能力还有决策能力都会受到负面影响。
当你发现自己的情绪开始变得不正常,或者已经完全被问题困住不得其法时,很简单,先别干了。现如今,如果你早退几个小时,大多数组织都不会注意到,或者对此太过在乎。如果我的团队里面有谁感觉不太好的话,我宁愿他下午提前下班,不需要告诉任何人。
当不正常的情绪出现时,想让我们所有人都意识到这一点是很难的。通常,我们必须有其他人向我们指出来。能够注意到我们自己的情绪是正念要修炼的一个方面,现在有数以百万计的关于正念技巧的博客文章、书籍与播客。我就置顶了一个账号,每次用了他们的会话我都能得到精神上的支持与感悟。
照顾自己还有其他一些直截了当的做法,比如获得充足的睡眠,比如自我同情。这里说是直截了当,是因为概念很直截了当,但实际上终生习惯是很难改变的。诀窍是不断去学习,不断去尝试。
我们都有偏见,偏见是人类与生俱来的一部分。但我们可以通过意识到它们的存在来减少偏见的影响。一个很好的例子是开会,通过给会议实施严格的结构,可以防止团队成员的趋同思维或者专横跋扈。花几分钟时间,让每个人单独或者以小团队的形式写下他们对某个主题的想法,然后让每支团队按顺序阐述自己的观点。
在解释我们存在的一些偏见方面,汉斯·罗斯林(Hans Rosling) 、欧拉·罗斯林(Ola Rosling) 、安娜·罗斯林·罗朗德( Anna Rosling Rönnlund)合著的《事实-用数据化思考,避免情绪决策》(Factfulness)就做得非常出色,书里面还提供了降低偏见影响的方法。
他们还制作了这张很方便的海报,可以提醒你如何应对常见的偏见。不过没有看过这本书的话那张海报也没有多大意义,所以我强烈建议看看这本书。
关于减少偏见,我最近看到的一个机会是解决招聘当中的“文化契合”问题。 用“文化契合”来衡量应聘对象是否合适其实是很糟糕的,因为文化契合说到底就是“我是不是喜欢这个人?”或者“这个人像我吗? ”如果在招聘过程中,如应聘对象在“文化契合度”方面的得分是满分的话,你应该考虑把这项指标更改为“公司价值观契合度”。这样一来,候选人要看齐的就是组织而不是招聘团队。
心智模型是关于事物运作方式编码化的思维过程。心智模型往往以封闭系统为基础,而这种系统会有很多假设。
如果我们能够对问题和假设进行分类,然后将它们与特定的心智模型相关联的话,那就可以降低风险,或者就能够找到通往解决方案的道路。心智模型与第一性原理密切相关,你要从“什么是我们绝对可以确定的?”这个问题开始思考。然后在此基础上逐步推演。
学习和应用心智模型会改变你的思维方式。
心智模型的一个很好的例子是科学方法。运用科学方法的时候,你先要做假设,然后设计实验来检验这个假设。得到的结果会加入到你的知识体系里面,这会为你提供给下一个假设。如果结果证明你的假设是错误的,那仍然是一次有用的学习,结果可以用于下一次实验。
现如今,我们已经习惯于在每个行业里面运用科学方法,以至于不宜成文的形式存在都是难以想象的了。
这些模型以及成百上千,太多了,以至于没法全部都了解。最好是去学习一些能引起你共鸣的心智模型。
软件工程的角色需要创造性、沉思以及协作。这个角色的“编码”部分是实现。你还是得生成可执行某些操作的代码,这一点没什么可以争议的。但这部分工作并不像你想象的那么重要。
在过去,工程师的工作往往由组织根据特定输出来衡量,比方说完成的工单量或发布的功能数。这些属于编码实现的输出。把注意力放在开发者,尤其是特定开发者的的输出,这种做法是错误的,大多数优秀的组织现在已经意识到了这一点。
如果你是一名刚进来的工程师的话,就应该知道,并不是每一家组织都希望你每天把 8 小时都花在写计算机编码上面。这不是好的情况,只要有机会,你应该考虑找一个更好的地方。
跟上面的做法相反,你应该聚焦在产生出色的业务成果上。这需要在写任何代码之前去思考、研究以及协作。你需要为自己腾出空间来做这样的思考。怎么做?以下就是一些简单可行的做法来保证有时间去思考。
以下这些事情是你马上就可以做出改变,从而给自己创造思考空间的:
- 控制好你的日程——屏蔽会议,减少干扰
- 在估算的时候把思考时间考虑在内——减少自己的时间压力
- 去散步,这可以改善思考——步行对大脑的功能是有生理作用的
- 如果被一个问题卡住,请尽早完成——试图强迫这个问题是行不通的,你的大脑在后台还会继续处理问题
- 去写作,这样思路会清晰些——写作会迫使你对方案进行深入思考
“比较是快乐的窃贼”
——西奥多·罗斯福(Theodore Roosevelt)
“不管你崇拜什么,那东西都会摧毁你。如果你崇拜权力,你总会感到软弱,如果你崇拜美丽,你总觉得自己丑陋。” ——大卫·福斯特·华莱士(David Foster Wallace)
此处的大概意思是,如果你拿自己跟别人进行比较,那你会一直觉得自卑,因为不管你比较任何东西,总会有人比你好。
当然,如果在特定主题上你有着很强的自尊心,或者总体而言你这个人的自尊心很强的话,那跟他人进行比较是可以带来积极影响的,因为这会激励你。但必须小心的是,因为自尊心受到威胁可能会把积极的比较变成消极的比较。
所以你可以用比较来增加你的内驱和动力,但要小心不要让它影响到你的自尊心。相反,你可以把注意力放在帮助他人并跟他们建立密切关系上面。请记住,根据定义,我们大多数人都是普通人,但这没关系!
对于你正在处理的某一类问题,很可能是有工具可以帮助解决的。比方说,你可以用 倾斜策略(Oblique Strategies) 来打破创意僵局。
倾斜策略是由布赖恩·伊诺(Brian Eno)与彼得·施密特(Peter Schmidt)开发的一组卡片。
卡片上面会写上可用于打破僵局或困境的提示。
试着对你每天处理的各种问题进行分类,然后搜索一下其他人都使用了哪些工具。然后你就会发现一些好东西了!
工程这个角色要求你总是得去学习新事物,这样才不会过时,才不会被淘汰。
你学到的每一样新东西都会为你的知识库添砖加瓦,但所有的工程师都必须时不时地回到初学者的心态,这样才能跟上技术的步伐。
重要的是要记住,不管学什么,初学者都需要很长时间才能把工作干好。
关于这一点,Ira Glass 做出来很好的解释。
“这一点没人告诉过初学者,当初要是有人告诉我就好了。对于我们所有这些从事创造性工作的人来说,我们之所以做这一行是因为我们有品味。但是这里面有一条鸿沟。你刚开始的头几年的时候,做得还不是那么好。你试着想做好,也表现出了潜力,但结果并非如此。
但是你的品味,让你进入到这场游戏的那个东西,依然是杀手锏。你的品味正是你的工作让自己失望的原因。很多人都熬不过这个阶段,他们中途就退出了。但我认识的大多数从事有趣的创意工作的人,他们经受住了考验。
这个特别的东西我们都想要,但我们知道我们的工作里面没有这个东西。我们都经历过这个。如果你刚刚开始或者还处于这个阶段,你得知道这种情况很正常,你能做的最重要的一件事就是做大量工作。给自己设定一个截止日期,好每周都能完成一个故事。
只有通过大量的工作,你才能缩小这个差距,你的工作就会变得和你的抱负一样好。我也是花了很长时间弄清楚怎么做到这一点的,比我见过的任何人都要长。
这需要一段时间。需要一段时间是正常的。你只需要奋力拼搏就行。”
每天都会出现新框架、新功能、新技术,这很容易就会让人不知所措。很容易就会陷入落后和“框架疲劳”的陷阱。请记住,一个工程师不可能精通所有东西,所以没有必要担心。
在新技术得到大量采用之前,请忽略相关博客的垃圾邮件。选择一些你感兴趣的技术,好好钻研清楚就行。
软件工程师这门职业,其主要价值是由思考而非实现驱动的。
软件工程工具正在变得越来越好,5 年前需要工程师完成的任务如今已被商品化,只需点击一下按钮。现如今,解决这些问题的价值在于知道哪种方法可以最好地解决手头的业务问题。这需要有很好的综合能力,并能够跟其他学科的专家很好地合作。
在改善特定技术知识方面你可能已经花费了大量时间。现在,你应该花同样多的时间去思考一下思考的问题。基于知识与元认知的角色需要一个健康的头脑,所以请好好照顾你的心理健康吧!