当你看到一个程序员的两只手在键盘上上下翻飞,行云流水的时候,多半不是在敲击代码
大概率是在跟产品经理撕逼讨论需求另一种可能就是在跟测试打口水仗
10%几率是在论坛码字摸鱼或者和人家开喷了。
1%几率是在跟MM聊天
可以手速飞快而不需要停下思考的代码,多半也可以靠Ctrl + C/V 搞定。
而当你看到程序员双目呆滞,遥望天际的时候,多半编程开始了
程序员们都知道的,程序的灵魂是可复制性。可复制性也是软件开发区别于其他行业的最显者待点。可复制性有两层含义。一层是说代码客户有多个实例在运行,同样的程序可以在你的电脑上跑,也可以在別人的电脑上跑。另一则含义就是代码可以开源,大部分通用需求都有开源代码可以用。
在敲代码的过程可以很快,可以基本上不停,但是在实际工作中占比很少。因为前期杂事比较多,会议多,沟通多,讨论多。有产品经理,有测试工程师,有PM,有设计师,还有leader,有bug。
在编程过程中,脑子中思考的是各种各样的逻辑和架构,注重先思后写。在开发一个较复杂的程序前,会经历很多步骤,比如画流程图,写文档,画架构图等等,而真正的编码则是在一切都想清楚以后才会开始进行的。
甚至,高级程序员可以使用编辑器和IDE的自动完成功能,避免手动输入代码的错误。除了intellisense之外,还有很多其他自动完成功能可以同时启用。比如自动完成行,自动完成文件路径,搜索所有打开的文件自动完成词等等。某些程序员不用这些功能并不等于它们不存在或者不重要。
所以程序员总是在面对新的问题,这也就是为什么大家说敲代码时间不长的原因,查资料、讨论、调试才是真正要花时间的。
练成熟练而快速的敲击并不是一件很难的事情,也许不到半年就能练成,但是能够编写出低耦合高效能的代码却是一个程序员毕生的追求。
事实上大部分程序员敲代码的速度远小于文员敲键盘的速度,或者是打字员敲键盘的速度。
所以别被电影中的那些镜头给欺骗了。理想很丰满,现实很残酷,各位同仁还需多多努力。