慎于说Yes

在没有搞清楚开发需求、任务工作量、团队期望值之前,有前途的程序员不会轻易答应。特别是对于新人来说,比较急于表现自己,对于同事或者老板的工作安排来者不拒,精神可嘉,方法不可取。承诺太多,会出现自己无法按时完成的情况,即使按时完成,也可能没有达到别人的期望值,长期以往别人对你的失望会越来越多。

敢于说No

看起来和第一条雷同,其实细究起来不一样。第二条执行起来比第一条难得多。当遇到明显不合理的要求时,可以考虑拒绝,前提是准备好了全面充分的理由。不要经常说No,但是一旦说了,就要切中要害。有前途的程序员不会闷头干活,知道自己的定位和团队期望,分清楚哪些是不合理的要求,哪些是合理的要求,然后把明显不合理的要求和领导沟通下,取得支持。

构建自己的知识体系

在信息爆炸的年代,碎片化的知识很多,系统学习的时间越来越少,如果没有自己的知识体系,很容易被淹没在知识的海洋中,而且难以记忆。100分程序员推荐的做法,通过Wiki或者其他知识管理工具构建一个知识框架,大的分类可以包括软技能、架构、语言、前端、后端等,小的分类可以更细化。

培养大局观

程序员比较容易陷入的困境是专注于自己的一亩三分地,不关心团队的进度和业绩,也不关心软件的整体架构和其他模块。这种状态长期下去没有好处,特别是在大公司中,逐渐成长为一颗螺丝钉。100分程序员会在工作之余,多看看其他在做什么,看看团队的整体规划,看看软件系统的架构和说明文档。对自己的工作更理解,而且知道为什么这个产品应该这样设计,为什么领导应该这样做规划,这种大局观非常有利于自己的职业生涯。

代码规范

程序员在新手时期需要培养良好的代码规范。最直接的办法,遵循公司已有的代码规范(如果没有类似的规定,也是醉了),从简单的变量命名到模块划分,有些规则可以导入到编码工具中,更多的部分需要自己体会和遵守。关于此方面的知识,最权威的书籍是《代码大全》,别误会,书名是个美丽的错误,里面不是代码集锦。对于新手来说,养成一个统一的编码风格非常重要,是基础一步。

代码审查

把这个单独拎出来说,是因为对于程序员来说很重要。很多快速成长的公司没有这个步骤,建议大家能够坚持下来。让别人审查自己的代码,可以得到更多的反馈,也是和同事交流的好机会;审查别人的代码,可以借鉴别人的经验和思路。通常情况下,代码审查比自己写代码的收获更大,对于新手来说更有价值。只要你想做,不论形式是不是正规,都可以执行下去,最好形成团队的习惯。

一个时间段内只专注于一种类型的语言

如果你正在设计或开发网站,你将需要同时熟悉多种不同的语言。你可能会想同时学习所有的这些语言,特别是考虑到它们是如何相互关联的。

我想,在某种程度上,这是不可避免的。但如果你真的想快速提高,我建议你专注于一个特定领域的专业知识。你想更好地利用CSS?把你的重点放在这一点。尝试使用一个单一的HTML文档只使用CSS实现不同的布局。CSS Zen Garden 是一个使用相同布局实现不同页面样式非常棒的例子。你也可以通过查找元素的列表,并把精力集中在里面。举个例子来说,你熟悉CSS2,但想提升对 CSS3 的理解,你可以学习CSS3属性并逐一的实现它们。你可以阅读当前的 CSS3规范 ,还可以通过每个模块的学习来了解它在浏览器上能(或不能)做什么。

通过注释来写逻辑

说到编码,我有坚持很多原则和想法。其中一个就是,代码中95%都是逻辑。另一个就是从人类语言到编程语言,逻辑并没有改变。

这也就是意味着,如果你能在代码中写出来,也就可以用英语或者其他语言写下来。

良好的时间管理

迟到对于任何一家公司都是个头痛的问题。作为一个程序员,有时候为了完成任务常常不得不熬夜,从而导致第二天上班就迟到了。但是我们忽略了这一点,我们的工作时间至关重要,因为在这段时间里我们要和客户同步,也要与团队其他成员一齐协作。

深入理解客户需求

仅仅了解单一用户的表面意思是远远不够的。一个伟大的程序员应该具备能把繁琐的要求理解并分解成项目的技术任务或子任务的能力,并且最后拿到的成果应精确满足客户的需求。

绞尽脑汁还是“NO”

假如抓耳挠腮还是找不出解决办法,我们该如何是好?一个伟大的程序员应该足智多谋,能灵活应对困境。他们会去询问同事,或者是向团队领导者请教;在互联网上面搜索,然后耐下心来一遍又一遍地试验。相信山穷水尽疑无路,柳暗花明又一村,投降两个字从未出现在他们的字典上。

编程之前准备好全套算法

亲~还记得我们老师逼我们画的流程图吗?还记得一个个案例和伪代码吗?他们都是灰常重要的软件开发手段。一个伟大的程序员如果木有事先准备好算法,那他会不会像个傻小子似的只顾写代码呢?所以,在开工之前,做好全套的算法是必须的。

理解and帮助定义验收标准

是否需要高成次测试脚本是产品所有者决定的,但是,作为一个伟大的程序员必须能够编写技术测试脚本,并且也要认识到如果跳过了这一步骤可能会带来的后果。

主动一点点

一个优秀的程序员不需要别人告诉他该做什么,他的主动性要比别人强一些,他可以自觉的关注流程,提高应用程序的灵活性以及快速的解决开发过程中出现的Bug。

————

编辑 ∑Gemini

来源:伯乐在线

☞数学家探索两个几何世界之间的镜像链接

☞数学天才帕吉特:他有如电影般的人生际遇

☞世界上最奇怪的数学天才,被奖励100万却拒领,宁愿过得像乞丐

☞斯坦福大学教育学院院长:学习本身就是一门学问

☞如果没有数学,我们如何测量

☞数学的真相:物理时空的数字模型还是现实本身?

算法数学之美微信公众号欢迎赐稿

稿件涉及数学、物理、算法、计算机、编程等相关领域,经采用我们将奉上稿酬。

投稿邮箱:math_alg@163.com

欢迎加入算与数学术交流群,请添加微信:nhyilin(备注:算数粉丝)

有前途的程序员的14个习惯,你有几个?相关推荐

  1. 【连载】高效程序员的45 个习惯(不断更新中。。。)

    高效程序员的45 个习惯 本书收集了成功人士在开发过程中的 45 个个人习惯.思想观念和方法,有助于开发人员在开发进程.编码工作.开发者态度.项目和团队管理,以及持续学习等 5 个领域改善其开发工作. ...

  2. 《高效程序员的45个习惯》读后感

    为什么80%的码农都做不了架构师?>>>    感受 敏捷开发人员必读. 关于书名.从内容看来,原书名<Practices of an Agile Developer>比 ...

  3. 优秀程序员的45个习惯

    优秀来自好的习惯.怎样成为优秀的开发人员?图灵公司最近热销的<高效程序员的45个习惯>一书给出了很好的解答,非常值得一读. 这本书的英文原版荣获了有软件奥斯卡之称的Jolt生产效率大奖,在 ...

  4. 书评:卓有成效的ThoughtWorks程序员的45个习惯

    这个书名看起来似乎有些莫名其妙,因为其实它包含了三本书: Practices of an Agile Developer(中文名<高效程序员的45个习惯>,即将出版) The Produc ...

  5. 转:优秀程序员的45个习惯

    今天看到这篇文章,觉得有我们要学习的地方,不过有几条不大符合中国的国情!!! 拿过来给大家看看. 优秀来自好的习惯.怎样成为优秀的开发人员?图灵公司最近热销的<高效程序员的45个习惯>一书 ...

  6. 《高效程序员的45个习惯》-之二

    请您在阅读本文之前,先了解<高效程序员的45个习惯>-之一. 每一期都会涉及15个话题,用3期来列出这45个习惯,每次不贪多,贪精,大家如果有空,一定要细细品味这15个习惯. 注意:每一个 ...

  7. 《高效程序员的45个习惯》-之一

    敏捷开发是当下最流行的开发方法,它采用的是一种以人为核心.迭代.循序渐进的开发思想,值得你关注和学习. 最近我就阅读了一本有关敏捷开发的书籍,<高效程序员的45个习惯>. 它以" ...

  8. OSChina 周三乱弹 —— 程序员的专属小习惯

    2019独角兽企业重金招聘Python工程师标准>>> Osc乱弹歌单(2018)请戳(这里) [今日歌曲] @亚麻仔 :分享 JZlee;阿克江LilAkin 的歌曲<I W ...

  9. 【初级程序员】的十点提升建议,以及10个【程序员】的好习惯,让你“秃”然变强

    前言 工作前三年是职业生涯中成长最快的几年,在这段时间里你会充满激情,做事专注,也容易养成良好的习惯.在我们公司有些同学在前三年中就快速成为某一个领域的技术专家,有些同学也可能止步不前.本文和大家一起 ...

最新文章

  1. docker strace ptrace 报错 Operation not permitted 解决方法
  2. Java多线程间的通信
  3. 最简单java设计模式:工厂方法模式
  4. 20165334 《java程序设计》第2周学习总结
  5. 最后 24 小时,赶紧来领取这 50 本送书福利吧!
  6. flex java 开发环境搭建_Flex+JAVA+BlazeDS开发环境配置(Java工程和Flex工程独立)
  7. CentOS7 编译安装golang和rpm安装golang
  8. 华为被起诉了!你肯定想不到原告是谁!
  9. ant指定servlet版本_[转载]程序开发常见错误
  10. IntelliJ IDEA中怎么创建xml文件?
  11. mysql 廖雪峰_讨论 - 廖雪峰的官方网站
  12. HTML入门学习笔记(二)
  13. matlab批量将csv转换成xls,如何批量将CSV格式的文件转化成excel格式 |
  14. jenkins不识别mvn命令
  15. 仓储机器人的3位鼻祖
  16. PHP毕业设计项目作品源码选题(2)电子商务网上购物商城毕业设计毕设作品开题报告
  17. BUUCTF MISC刷题笔记(一)
  18. jmeter分布式压测,远程机器来运行脚本,察看结果树中的响应数据项为空白问题
  19. 关于jsp网页弹出窗口
  20. python Object Oriented Programming

热门文章

  1. 指针数组下标JAVA_C语言中下标与指针的转换以及指向指针的指针的例子
  2. ARM体系结构与汇编指令
  3. java 昵称1到32位字符_Java期末考试编程题复习
  4. mysql 递归查询树型结构_MySQL递归查询所有子节点,树形结构查询
  5. linux 和服务通讯,Android 的Activity和Service之间的通信
  6. hive 2.3 mysql_Note23:Hive-2.3.6安装配置
  7. 外设驱动库开发笔记27:ESP8266无线通讯驱动
  8. mysql 报错 Specified key was too long; max key length is 767 bytes,开启系统变量:innodb_large_prefix
  9. 现代软件工程 作业 3 团队作业
  10. python虚拟环境 pyenv_Python 虚拟环境 pyenv、venv(pyvenv)、virtualenv之间的区别