高效程序员的40个好习惯和行为方式

2023-11-19

每一个好的习惯,开头都会相应有一个唱反调的句子哦。
1 做事
“出了问题,第一重要的是确定元凶,找到那个人!一旦证实了是他的错误,就可以保证这样的问题永远也不会再发生了。”
指责不会修复bug,把矛头对准问题的解决办法,而不是人。这是真正有用处的正面效应。
也许你不相信,但确实有些人常常不把解决问题放在最高优先级上。也许你也没有。先自我反省一下,当有问题出现时,“第一”反应究竟是什么?
一个重大的错误应该被当作是一次学习而不是指责他人的机会。
团队成员们在一起工作,应互相帮助,而不是互相指责。
如果你没有犯过任何错误,就说明你可能没有努力去工作。
2 欲诉则不达
“你不需要真正地理解那块代码,它只要能够工作就可以了。哦,它需要一个小小的调整。只要在结果中再加上几行代码,它就可以工作了。干吧!就把那几行代码加进去,它应该可以工作。”
拙劣的代码工人会这样不假思索地改完代码,然后快速转向下一个问题;而优秀的程序员会挖掘更深一层,尽力去理解为什么这里需要加1,更重要的是,他会想明白会产生什么其他影响。
千里之堤,溃于蚁穴,大灾难是逐步演化而来的。一次又一次的快速修复,每一次都不探究问题的根源,久而久之就形成了一个危险的沼泽地,最终会吞噬整个项目的生命。
如果有一位团队成员宣布,有一块代码其他人都很难看懂,这就意味着任何人(包括原作者)都很难维护它。请让它变得简单些。
3 对事不对人
“当L先生在做一个新方案介绍时,下面有人会说‘这样设计很蠢!都没有考虑线程安全!’(这也暗示着L先生很蠢)。”
事实上,最适合并且最有效的表达方式应该是“谢谢,L先生。但是我想知道,如果两个用户同时登录会发生什么情况?”
尽力贡献自己的好想法,如果你的想法没有被采纳也无需生气;不要因为只是想体现自己的想法而对拟定的好思路画蛇添足。
4 排除万难,奋勇前进
“老鼠们打算在猫的脖子上系一个铃铛,这样猫巡逻靠近时,就能预先得到警报。每只老鼠都点头,认为这是一个绝妙的想法。这时一个年老的老鼠站出来说道’那么,谁愿意挺身而出去系铃铛呢?’毫无疑问,没有一只老鼠站出来。当然,这个绝妙的计划也就这样泡汤了。”
有时,绝妙的计划会因为勇气不足而最终失败。尽管前方很危险,但你必须有勇气向前冲锋,做你认为对的事情。
当你勇敢地站出来时,如果受到了缺乏背景知识的抉择者的抵制,你需要用他们能够听懂的话语表达。“更清晰的代码”是无法打动生意人的。节约资金、获得更好的投资回报,避免诉讼以及增加用户利益,会让论点更有说服力。
5 跟踪变化
“软件技术的变化如此之快,势不可挡,这是它的本性。继续用你熟悉的语言做你的老本行吧,你不可能跟上技术变化的脚步。”
如果只是掌握了工作中需要的技术并不够。那样的工作也许几年之后就不再有了—它会被外包或者会过时,那么你就将会出局。
迭代和增量式的学习;了解最新行情;参加本地的用户组活动;参加研讨会议;如饥似渴地阅读。
6 对团队投资
“不要和别人分享你的知识—自己留着。你是因为这些知识才成为团队中的佼佼者,只要自己聪明就可以了,不用管其他失败者。”
团队中的开发者们各有不同的能力、经验和技术。每个人都各有所长。不同才能和背景的人混在一起,是一个非常理想的学习环境。
一个学习型的团队才是较好的团队。
每周,要求团队中的一个人主持讲座。他会给大家介绍一些概念,演示工具,或者做团队感兴趣的任何一件事。你可以挑一本书,给大家说说其中一些特别内容、项目或者实践,无论什么主题都可以。
7 懂得丢弃
“那就是你一贯的工作方法,并且是有原因的。这个方法也很好地为你所用。开始你就掌握了这个方法,很明显它是最好的方法。真的,从那以后就不要再改变了。”
打破旧习惯很难,更难的是自己还没有意识到这个问题。丢弃的第一步,就是要意识到你还在使用过时的方法,这也是最难的部分。另一个难点就是要做到真正的丢弃旧习惯。 毕竟,汽车要比马车车厢强多了。
不是完全忘记旧的习惯,而是只在使用适当的技术时才使用它。
8 打破砂锅问到底
“接受别人给你的解释,别人告诉你问题出在了什么地方,你就去看什么地方。不需要再浪费时间去追根究底”
要不停的问“为什么”。不能只满足于别人告诉你的表面现象,要不停的提问直到你明白问题的根源。
问“为什么”,但是要问到点子上。
当你问“为什么”的时候,也许你会被反问:“为什么你问这个问题?”。在提问之前,想好你提问的理由,这会有助于你问出恰当的问题。
9 把握开发节奏
“我们很长时间没有进行代码复审,所以这周会复审所有的代码。”
在许多不成功的项目中,基本上都是随意安排工作计划,没有任何规律。那么样的随机安排很难处理。你根本不知道明天将会发生什么。
但是,敏捷项目会有一个节奏和循环,让开发变得更加轻松。Scrum约定了30天之内不应该发生需求变化,这样可以确保团队有一个良性的开发节奏。(Scrum是一种迭代式增量软件开发过程,通常用于敏捷软件开发。包括了一系列实践和预定义角色的过程骨架。)
站立会议最好每天在固定的时间和地点举行,比如说上午10点左右。要养成这样的习惯,在那时就准备好一切参加站立会议。
10 让客户做决定
“开发者兼具创新和智慧,
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

高效程序员的40个好习惯和行为方式 的相关文章

随机推荐

  • 运行软件mfc140u.dll丢失怎么办?mfc140u.dll的三个修复方法

    最近我在使用一款软件时遇到了一个问题 提示缺少mfc140u dll文件 这个文件是我在使用某个应用程序时所需要的 但是由于某种原因 它变得无法正常使用了 经过一番搜索和了解 我了解到mfc140u dll是Microsoft Visual
  • Proteus8仿真:51单片机A/D转换(ADC0808)

    51单片机A D转换 元器件 原理图部分 代码 main c 工程文件 元器件 元器件 名称 排阻 RESPACK 8 51单片机 AT89C51 数码管 7SEG MPX4 CA BLUE ADC芯片 ADC0808 滑动变阻器 POT
  • Centos设置limit最大打开文件数和最大进程数

    在 etc security limits conf添加 cat gt etc security limits conf lt
  • 【Ruff学习1】Ruff是一个物联网的操作系统,可以让开发者使用JS高效且迅速地开发物联网应用

    Ruff学习1 Ruff是一个物联网的操作系统 可以让开发者使用JS高效且迅速地开发物联网应用 官网 三分钟 点亮物联网世界的第一盏灯 ready function btn on push function led turnOn Ruff特
  • css ol 序列样式:数字带圆圈、括号

    有序ol基本的网上都有 在这里就不介绍了 1 数字带登号 如标题的这种 2 通过上面的例子可以扩展一下 1 只要修改成下面的代码 其余不变 ol li before content counter sectioncounter counte
  • K8S存储之volume

    K8S存储之volume 容器磁盘上的文件的生命周期是短暂的 这就使得在容器中运行重要应用时会出现一些问题 首先 当容器崩溃时 kubelet会重启它 但是容器中的文件将丢失一一容器以干净的状态 镜像最初的状态 重新启动 其次 在Pod中同
  • 【Python】Jupyter Notebook无法运行代码,不可重命名且提示error和自动保存失败时如何操作?

    Python Jupyter Notebook无法运行代码 且提示error和自动保存失败时如何操作 Anaconda的Jupyter Notebook作为优秀的网页编辑器 非常适用于编写Python程序 但往往可能因安装版本不兼容等原因而
  • Flutter中的依赖注入——get_it

    Flutter社区的一个library get it 视频介绍 Flutter Dependency Injection For Beginners Complete Guide 视频对应的博文 Dependency Injection i
  • JavaWeb开发中出现DataSource读取不到怎么办呢?(详细,适合初入门的程序员)

    这样的问题是怎么产生的呢 其实啊也不难 来吧 跟我走一遍 目录 前言 二 使用步骤 1 基本的JavaWeb项目的结构 1 1 创建一个JavaWeb项目 1 2 配置文件的配置 1 3 重点来了 2 DBUtil的代码内容 3 测试 总结
  • 树的广度优先遍历与深度优先遍历算法

    1 树的广度优先遍历算法 广度优先遍历算法 又叫宽度优先遍历 或横向优先遍历 是从根节点开始 沿着树的宽度遍历树的节点 如果所有节点均被访问 则算法中止 如上图所示的二叉树 A 是第一个访问的 然后顺序是 B C 然后再是 D E F G
  • 数据库实体关系图(ERD)

    数据库是软件系统中不可或缺的一个组成部分 若能在数据库工程中好好利用 ER 图 便能让您生成高质量的数据库设计 用于数据库创建 管理和维护 也为人员间的交流提供了有意义的基础 今天 我们将为你深入介绍 ER 图表 通过阅读本ERD指南 您将
  • Gikee 大数据

    据Gikee数据显示 今日13 58分 地址 1MAhRt279uYmVC1dUxKR6dWwEULBJT34Nh 向地址 1Fc4QQu6nEc4snAe4HAb4Kryd8koH89pYk 转了34010个BTC 价值约2 17亿美元
  • stm32USB之模拟U盘

    STMF0 W25Q32模拟U盘 1 第一次写博客 如有错误 请及时指正 如有表达不通顺的地方 敬请谅解 2 本篇文章主要描述如何使用STM32cube配置USB 使用的主控为STM32F072 Flash为W25Q32 使用的主控RAM只
  • scrapy爬虫错误一:无法爬到期望的数据

    最近在开始学习scrapy爬虫 遇到了一处很坑的地方 在屏幕上输出的debug信息总是没有任何结果就直接提示 scrapy statscollectors INFO Dumping Scrapy stats scrapy core engi
  • 2023算法面试题1

    1 介绍SAM模型 2 大语言模型的微调方法 3 yolov8与yolov5的区别 4 介绍LoRA和QLoRA微调技术 5 negative prompt怎么做的 6 stable diffusion的结构与原理
  • tc 流控脚本

    系统平台 RedHat AS4 root bridgenet software uname a Linux bridgenet 2 6 9 42 ELsmp 1 SMP Wed Jul 12 23 27 17 EDT 2006 i686 i
  • upf仿真例子

    原文链接 关于什么是UPF以及电源域等等概念赛宝龙在这里就不多说了 有兴趣的可以查阅IEEE1801 2013标准 先上低功耗要求 即power intent 顶层模块为TOP 而TOP中例化了一个子模块 其例化名为instA1 具体的代码
  • 危化安全生产信息化平台在煤化领域的应用

    一 背景介绍 煤化工行业是一个集煤炭 石油 化工等多种产业于一体的综合性行业 其特点是工艺流程复杂 设备繁多 安全隐患大 近年来 随着煤化工行业的快速发展 安全生产问题日益凸显 为了有效提高危化安全生产水平 某煤化工企业引入了信息化技术 搭
  • Springboot+Websocket中@Autowired注入service为null的解决方法

    使用工具类用于从Spring的上下文中去获取到类的实例 ServerEndpoint websocket userId Component 关键点1 public class WebSocket private static UserSer
  • 高效程序员的40个好习惯和行为方式

    每一个好的习惯 开头都会相应有一个唱反调的句子哦 1 做事 出了问题 第一重要的是确定元凶 找到那个人 一旦证实了是他的错误 就可以保证这样的问题永远也不会再发生了 指责不会修复bug 把矛头对准问题的解决办法 而不是人 这是真正有用处的正