当前位置:首页>编程日记>正文

《编程匠艺》读书笔记之十四

第十六章 代码猴子——培养正确的编程态度和方法
  • 面对同一件事情,不同的程序员会以不同的方式工作,他们会各有各的解决方法,总是会有“不止一种方法来做这件事情”的想法,不同程序员的态度也会导致他们作出截然不同的决策。
  • 软件工厂中居住着许多奇怪的不能适应社会的人,我们把他们叫做代码猴子,任何重要软件系统都是由这些人来构建的,他们具有不同的技术水平和态度,并且都为同一个目标而努力。
  • 我们在一起工作的方式以及我们所编写的代码的类型,将不可避免的受到我们工作态度的影响,就像收我们的技术能力影响一样。

    我们可以将程序员分为以下种类:
  • 卖力工作的程序员。他会一边编码一边思考,常常会因为时髦而试着使用新的功能或语言习惯,这种尝试新技术的渴望,意味着他甚至在不恰当的情况下使用技术。这类程序员非常多产,喜欢学习新东西,而且对编程抱有特别的热情。这类程序员的缺点是比较急躁,在进行仔细思考之前就开始编码。
  • 代码猴子。编写的代码很可靠,但是没有创意。这类程序员性格恬静,他们把自己定位为维护程序员,在具有开拓精神的人去开发替代产品的时候,他们却在维护这旧代码库的运行。教代码猴子学习新东西是件很困难的事。
  • 权威。通常很安静和谦虚,他编写的代码很出色,但是却无法与凡人很好的沟通。他一般会独自做最基础的工作:框架、体系结构和内核等,他是万能的,无所不知无所不晓。但是能够良好的沟通的权威是很少的,某个权威的沟通能力越差,他就越有可能是个糟糕的导师,权威很难理解为什么其他人懂得不如他多,或者思考问题没有他们快。
  • 半权威。这类人可能是代码猴子中最危险的一种,他们自认为是天才,但是不是。他们通常比真正的权威更加张扬,并且非常自以为是,他委任自己做权威人士。
  • 傲慢的天才。这是各种权威中数量很少但是非常重要的一支,他们速度快,效率高,并且编写高质量的代码,虽然不完全算是权威,但是很受关注。他们非常爱与人争辩,因为他们通常是正确的,并且总是需要让自己正确的观点压倒其他人错误的意见。
  • 牛仔。这是一类糟糕的程序员,他们故意逃避艰苦的工作,一头扎到代码中,做最小量的工作来解决直接的问题,到处寻找捷径。他们急于完成每个任务,并转到下一个,如果他多少对过程有些了解,他就会把这叫做敏捷开发。
  • 规划者。他们会对要做的事情做太多的思考,以至于在他开始编写任何代码之前,项目早就过期了。这主要是“过度设计”的原因,他们的开发更集中于方法和建模,而不是原型设计和解决方案的创建。
  • 老前辈。这是老派的资深程序员,他们要么对从事最喜爱的工作而感到非常幸福,要么对错过了无数次升职机会而十分痛苦。他们一般不会乐于遭受愚弄。
  • 狂热者。他们盲目的认为所有大公司制作的东西都是最优秀的,他们追随大公司的产品,排斥任何其他的方法,并且很少知道其他的可选产品。他们既不实际,也不客观,这样会错过很多更好的非大公司的设计。
  • 单线条程序员。这类人以技术为生,呼吸的都是技术,这就是他的全部生命。他们具有明显的单向思维,专心致志,他将确保项目能够正常运行,否则他会拼命的努力。他的最大问题是会忽略一些事情,因为他总是和问题距离太近了。
  • 拖沓者。这是一种不愿意工作的懒散的人,这种人很难发现,因为他已经学会如何让自己看起来很忙碌。还有一种情况,他只会做自己想做的事,或者做一点他认为应该做的事,而不是他必须做的事情,所以虽然他总是在不停的工作,但是他从来也做不完。
  • 勉强的团队领导。这是很典型的情况:一位开发人员被提拔为团队领导,原因只是对他而言在技术上已经没有再升职的余地。这类人是程序员,他们愿意编程,不是团队的组织者和管理者,并且沟通能力很差。如果团队领导试图编写代码,事情就会变得很糟糕。我们要有同情心,尽一切可能去帮助团队领导。

    传说中理想的程序员应该具有以下品质:
  • 政治家。必须很老练,去应付那些怪异代码猴子的小过失,能够协调人员。
  • 亲切。可以愉快的和别人合作。
  • 艺术感。可以设计出优雅的解决方案。
  • 技术天才。编写的代码可靠耐用。

  • 我们要了解自己是哪种类型的程序员,确定如何利用你的有点,如何弥补你的缺点。

    作为一名优秀的程序员,你必须学会:
  • 团队精神。
  • 诚实和谦虚。
  • 不断的提高。
  • 体贴。
  • 热情。

  • 优秀的程序员:具备了优秀程序员的所有气质。
  • 糟糕的程序员:1. 对于编写优秀的代码不感兴趣;2. 在团队中与别人无法很好的合作;3. 总想让自己看起来比实际情况要好;4. 停滞不前——他们不努力提高自己。

http://www.coolblog.cn/news/8e7e59e50a6c392c.html

相关文章:

  • asp多表查询并显示_SpringBoot系列(五):SpringBoot整合Mybatis实现多表关联查询
  • s7day2学习记录
  • 【求锤得锤的故事】Redis锁从面试连环炮聊到神仙打架。
  • 矿Spring入门Demo
  • 拼音怎么写_老师:不会写的字用圈代替,看到孩子试卷,网友:人才
  • Linux 实时流量监测(iptraf中文图解)
  • Win10 + Python + GPU版MXNet + VS2015 + RTools + R配置
  • 美颜
  • shell访问php文件夹,Shell获取某目录下所有文件夹的名称
  • 如何优雅的实现 Spring Boot 接口参数加密解密?
  • LeCun亲授的深度学习入门课:从飞行器的发明到卷积神经网络
  • Mac原生Terminal快速登录ssh
  • java受保护的数据与_Javascript类定义语法,私有成员、受保护成员、静态成员等介绍...
  • mysql commit 机制_1024MySQL事物提交机制
  • 支撑微博千亿调用的轻量级RPC框架:Motan
  • jquery 使用小技巧
  • 2019-9
  • 法拉利虚拟学院2010 服务器,法拉利虚拟学院2010
  • vscode pylint 错误_将实际未错误的py库添加到pylint白名单
  • 科学计算工具NumPy(3):ndarray的元素处理
  • 工程师在工作电脑存 64G 不雅文件,被公司开除后索赔 41 万,结果…
  • linux批量创建用户和密码
  • newinsets用法java_Java XYPlot.setInsets方法代碼示例
  • js常用阻止冒泡事件
  • 气泡图在开源监控工具中的应用效果
  • 各类型土地利用图例_划重点!国土空间总体规划——土地利用
  • php 启动服务器监听
  • dubbo简单示例
  • 【设计模式】 模式PK:策略模式VS状态模式
  • [iptables]Redhat 7.2下使用iptables实现NAT
  • Ubuntu13.10:[3]如何开启SSH SERVER服务
  • CSS小技巧——CSS滚动条美化
  • JS实现-页面数据无限加载
  • 阿里巴巴分布式服务框架 Dubbo
  • 最新DOS大全
  • Django View(视图系统)
  • 阿里大鱼.net core 发送短信
  • 程序员入错行怎么办?
  • 两张超级大表join优化
  • 第九天函数
  • Linux软件安装-----apache安装
  • HDU 5988 最小费用流
  • Sorenson Capital:值得投资的 5 种 AI 技术
  • 《看透springmvc源码分析与实践》读书笔记一
  • 正式开课!如何学习相机模型与标定?(单目+双目+鱼眼+深度相机)
  • Arm芯片的新革命在缓缓上演
  • nagios自写插件—check_file
  • python3 错误 Max retries exceeded with url 解决方法
  • 行为模式之Template Method模式
  • 通过Spark进行ALS离线和Stream实时推荐