高赞回答:为什么高级程序员不必担心自己的技术过时?

这些软技能都有可能成倍地增加我们工作的影响力(作为个人贡献者和技术负责人)。软技能包括:

  • 代码审查礼节;
  • 如何优雅地遏制范围蔓延;
  • 如何向其他部门直观的方式解释高科技问题;
  • 如何在生产任务爆满和日以继夜的比赛中保持镇定自若等。

作为一名程序员 ,编码硬实力固然很重要。如果想不明白公司为何在花点小钱就能打发刚入行的新人的情况下,仍然乐于向我们这些“老年人”支付大笔工资,可以拿下面的问题问问自己:

  • 你的代码的可维护性如何?是否有其他工程师不停地轻敲你的肩膀,让你解释你代码的每一行都是如何工作的?你的变量名具有描述性吗?你的方法是直观、易理解的吗?当你发现自己在复制粘贴很多行代码时,你是否能将这些代码的功能写入可重用的服务中?
  • 别人能够从你在拉取请求中留下的评论中受益吗?你的反馈意见是有建设性,还是太过粗糙?当你发现别人的知识存在缺口时,你只是告诉他们“把这条线从ABC更改为XYZ”,还是有能力引导他们认识到自己的方法可能不是最佳方法,让他们成长为更优秀的开发者?
  • 如果今天有100,000个用户创建帐户,你的代码是否会开始引发大量超时和500个错误?你能保证公关能把这事儿兜住吗?你知道如何基准化你的更改并进行证明吗?
  • 你如何将非常技术的问题分解为公司其他部门可以理解的简单语言?
  • 你对面向对象的编程有深刻的了解吗?你提出的系统架构是不是“顶多算说得通”?
  • 你的写作能力如何?在回复电子邮件时,你是能把自己的意思表达清楚,还是发完邮件后同事仍然需要走到你的办公桌旁,来询问你更多的背景信息?
  • 你是否会主动提出想法,使你的团队效率更高?当需要改动现有进程时,你是否能够向所有参与方说明收益?你能使所有人都对这一变化感到兴奋吗?你是否可以持续跟进并确保新流程确实有效?
  • 你尊重别人的时间吗?当你要求别人帮助你解决问题时,你能否准确描述你遇到问题的代码库的确切定位(如抛出异常的行号、你在问别人之前已经尝试过的debug方法,免得别人再浪费时间重复你已经做过的工作)?在别人走到你办公桌前,你已经整理好要问的问题并在MacBook上打开了吗?
  • 在与其他部门一起确定大型项目的范围时,你对要开发的新功能的问题了解得有多深入?在开始编码之前,你是否能够考虑到每个边缘情况?能否及早识别范围蔓延并制止,使团队免于周六加班?
  • 你的多任务处理能力如何?你的大脑会超负荷吗?同样,在处理大型功能时,比如涉及50个文件的功能,你可以一次将它们全部保存在脑海中吗?你有养成扎实的记笔记习惯吗?你打算如何计划跟踪今天下班前弹出的500万件事?
  • 当你编写的一段代码导致帐单页面出错,搞得团队首席工程师不得不取消他们的晚餐计划、熬夜帮你解决问题时,你会如何应对?你会情绪激动吗?你还能理性思考吗?你是否能够摆脱这种情绪,并提醒自己,地球上的每个开发人员每两天就会发布错误代码?
  • 你了解业务运作方式吗?你了解为什么即使失业人数达到两位数,软件工程师也可以要求如此疯狂的薪水吗?为什么编程是如此宝贵的技能?为什么客户愿意为某些超级基本的Web表单向你的公司每年支付50,000美元?你是否觉得他们被骗了?
  • 领导可以放心地让你去负责面试候选人吗?你是否擅长通过有限的信息来对人员进行分类,并可视化他们和团队的适合程度?你能识别出在什么情况下,在工程方面优秀的候选人却不能很好地融入公司文化吗?这种候选人你会建议录取吗?
  • 假如今天是12月28日,你被困在办公室。你今年有点疯狂,在9月中旬就把今年所有的带薪休假糟蹋完了。此时此刻,同事们都休假出去high了。你还能按时上班吗?领导不在身边惩罚你,你是否打算半途而废?这种情形下,是否需要领导强迫你你才能尽全力工作?
  • 机会成本是一件必须考虑的事。你在平衡技术债务和推动业务发展方面做得如何?你是否会重构发现的每个微小的编码样式问题?毕竟大家都很难承认“这段代码很烦人,但它确实有效,需要花费四个小时的清理时间,这段时间可以花在构建其他功能上,而这是很多客户都在请求的”。
  • 你知道如何向你的下属反馈他们的绩效吗?你和他们有良好的工作关系吗?你是否将他们视为敌人?你是否正在积极尝试减轻他们的压力,使他们的生活更轻松?你是否曾经说过“你们那边有什么烦人的任务我可以帮忙削减吗?”公司雇人都是有原因的,你的下属可能比你想象的更有经验和资格。
  • 你有能力扑灭生产大火吗?你是否会在遇到大麻烦时惊慌、不知所措(比如AWS中断使网站瘫痪、不小心搞丢了customer_invoices表单、某些错误导致了不同用户帐户之间的数据泄漏等)?你是会在压力之下崩溃,还是会在解决问题的同时保持镇静,并与其他部门进行有效的沟通?

虽然我说的话不能代表所有的初级工程师,但我确实知道自己八年前开始在该领域工作时,在情绪方面的处理是非常糟糕的。

而高级开发者,就会在工作中解决问题,而非制造问题。

他们减少压力。他们按时完成任务。他们知道如何编写经得起时间考验、可维护的代码。他们值得更高的工资。他们对项目的方向可以有准确的把控。他们可以发现当前流程中的缺陷,并使每个人都接受他们的想法以进行改进。他们可以指导应届毕业生。他们处事冷静,不会在周二与你的最大客户的电话会议上情绪崩溃、破口大骂。

很多人想踏实当个技术人员,并不想一直向上升去当领导当主管,我认为这种想法没什么问题。编程是目前最令人鼓舞的职业之一,许多企业愿意给经验丰富的“老兵”开很多很多工资,来保证业务进行顺利。

如果你具有扎实的沟通技巧,并且确实愿意开会开一整天(这样你可以消除干扰、帮助队友争取更多时间来高效完成工作),那么你进入管理层就是非常有意义的。

回顾我的旅程,能从初级开发者过渡到高级开发者,归功于我每周(在繁重的编码任务之间)都试着花几个小时专注于以下事件:

  • 改进我们进行技术面试的方式,保证我们与候选人之间的沟通信噪比更高(如改善我们的面试问题、重新考虑我们的电子邮件模板、考虑是否要给面试者布置线下笔试题、反思我们对工作的描述是否准确、我们向哪里投放招聘广告、换位思考如果我正在寻找工作会如何回复该招聘信息、如何在候选人做出决定之前使其更深入地了解我们的公司文化和发展历程等等)。
  • 与产品团队合作,以更细致的方式对即将开展的工作进行分类,从而使产品团队和最终要去接收JIRA tickets的工程师之间的沟通更加顺畅,而不需要磨叽好几个来回。
  • 组织团建活动和团队聚餐。
  • 当CEO/CTO为即将到来的季度制定的目标听起来有点过于乐观时,向他们提出提醒和意见,以免团队其他成员受不了过分辛苦的工作而逃离你们公司。
  • 每周与客户进行一次确认电话–亲自回答他们所有的技术问题,确保双方关系保持健康。
  • 用6个月的时间进行积极的安全审核,不断提醒客户我们会认真对待他们的隐私,并在公司发展的每个检查点努力完善我们的流程。
  • 找出其他开发人员在知识上的不足之处,然后让他们查缺补漏(使用能激发他们学习兴趣的方式):如使用vim宏处理CSV文件、Linux终端中实用的短命令、高级SQL命令、如何使PR描述更具描述性、解释负载平衡器如何工作、讨论合并和重新定基之间的区别等。
  • 帮助设计团队在花数小时将线框转换为高保真模型之前,先弄清楚哪些功能易于开发。
  • 改进我们的流程,让其他部门知道何时会增加新功能(编写更好的发行说明、在每周的内部产品演示中回答他们的问题、帮助他们编写客户能理解的外部文档),因为没人知道的功能不会解决任何实际问题。

几年后,许多高级工程师走的路都是类似的。你可能在不知不觉中就变成了小领导,每天有 6 个人向你汇报工作。

知乎高赞回答:为什么高级程序员不必担心自己的技术过时?相关推荐

  1. 高赞回答:为什么高级程序员不必担心自己的技术过时?

    点击上方"Java基基",选择"设为星标" 做积极的人,而不是积极废人! 源码精品专栏 原创 | Java 2020 超神之路,很肝~ 中文详细注释的开源项目 ...

  2. 为什么高级程序员不必担心自己的技术过时?

    程序员是吃青春饭的吗?等我们老了,技术过时了,公司有什么理由不裁掉我们,去雇一些既有活力.薪资要求又低的年轻人呢?这个老生常谈的问题困扰着诸多渐入中年的程序员.本文告诉你如何增强自己的核心竞争力,在知 ...

  3. Java高级程序员需要学习哪些技术?

    Java高级程序员具备的特点,首先Java高级程序员必须具有一定的业务分析和流程意识.性能优化经验,大数据设计处理和功能开发.会语言设计和技能开发.很强的学习能力.具备Java内存模型.GC工作原理. ...

  4. 读书笔记第一篇:知乎高赞回答

    自从今年以来,生活发生了极大变化,自己也进入了30大关,开始奔四了.最近总觉得自己一事无成,无论物质还是精神上都没有得到满足,而且自己一个游戏程序员,越来越觉得逐渐被淘汰.所以想到的第一个挣扎的办法, ...

  5. 知乎 笨办法学python_知乎高赞回答:作为准大学生,该如何入门计算机专业?...

    相信我,绝大多数一腔热血的学弟学妹都是喜欢收藏高赞回答,然后仅此而已-- 高赞回答确实很有用,作为一个已经工作一年的学长,我非常赞同这种准备方式(对于巨量级学霸而言),但是对于大部分学弟学妹,干货的罗 ...

  6. 用Python+requests库批量下载知乎高赞回答中的所有表情包

    干货分享 二十多本Python好书,戳这领取 引言 今天研究了会requests库.发现和urllib库功能类似,很好上手,因此写了个Demo爬了爬表情包.我选取了几个知乎里关于表情包问题的高赞回答, ...

  7. 作为一名高级程序员应该掌握哪些技术

    百度首页 登录 做一个java高级程序员甚至架构师 应该掌握哪些技术 走向宇宙 百家号 09-29 17:15 我把它分为了五大专题 工程化专题 工程化专题 git git安装使用 git日常使用:f ...

  8. 知乎万赞:什么样的程序员在35岁以后依然被公司抢着要?打破程序员“中年危机”

    程序员圈子里一直流传着一个魔咒:35 岁的中年危机. 他们说,35 岁程序员的精力和体力会无法避免地下降; 他们说,35 岁程序员的丰富经验没有年轻员工的创新活力吃香; 他们说,35 岁程序员会面临越 ...

  9. 知乎高赞回答:走上科研之路,需要培养什么能力?怎样培养这些能力?

    点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要15分钟 Follow小博主,每天更新前沿干货 文章 | QbitAI 来源 | 生物学霸 国内的各种科研人才,他们到底有什么与众不同之处? ...

最新文章

  1. 用python下载美剧《天蝎》
  2. OpenCV3编程入门(毛星云)之视频读取与播放
  3. 协同过滤:基于用户的协同过滤itemCF
  4. Chrome OS 云里雾里
  5. Html 中判断某个class的个数
  6. html静态模板资源,可下载源码
  7. 基于vue2的 H5框架
  8. 学习笔记1:迟滞电压比较器
  9. 机器学习备忘录 | 二分类模型常用评价指标汇总
  10. 力扣刷题 DAY_67 回溯
  11. SSL/TLS部署最佳实践
  12. 《视频解密》中文版(第四版) 第七章 数字视频处理(第一部分)
  13. 如何确定系统上的CPU插槽数量
  14. 说的话可以转换为文字的笔记APP
  15. 改进YOLOv5系列:2.PicoDet结构的修改
  16. 浙江大学工程师学院篇|2022年电子信息/通信工程夏令营保研/考研复试经验贴
  17. 【算法设计与分析】5个数7次比较排序的算法
  18. linux root添加账户,Linux系统添加管理员root角色账户
  19. netbean+glassfish创建web项目的目录结构
  20. 牛客练习赛96 C小y的序列

热门文章

  1. 猴年马月,猴年来了,马月呢?
  2. 一文了解 Python 中的生成器
  3. 5.23 C语言练习(平均值计算:输入10个整数,求它们的平均值,并输出大于平均值的数据的个数。)
  4. C++ :四种强制类型转换
  5. 前端HTML5视频_HTML5核心-张晓飞-专题视频课程
  6. Mac OS的管理员密码重置方法
  7. 上海迪士尼盛大开幕 高德地图带你玩转迪士尼
  8. 微信服务器保留几年记录_你以为微信只是个聊天工具?看完这些刷新对微信的认知...
  9. 内网服务器安装docker
  10. 豆豆趣事[2011年12月]