我得忏悔一下:程序员同胞们,从某种程度上来说,我创办的Stack Overflow网站“耍”了大家。

在你找来叉子和火把准备揍我之前,请允许我先解释一下。

在过去的6年时间里,我越来越坚定地有了这样的一个想法,那就是,成为一名杰出的程序员其实跟写代码没有太大关系。做程序员确实需要一些技术能力,当然还要有坚韧不拔的精神。但除此之外,更重要的还是要有良好的沟通技巧。

勉强过得去的程序员跟杰出程序员的不同之处,不在于他们掌握了多少种编程语言,也不在于他们谁更擅长Python或Java。真正关键的是,他们能不能把他们的想法表达清楚。杰出的程序员通过说服别人来达成协作。通过清晰的注释和技术文档,他们让其他程序员能够读懂他们的代码,这也意味着其他程序员能够重用他们的代码,而不必重新写过。要不然,他们代码的价值就大打折扣了。

以上是我的合伙人Joel Spolsky说过的一段话。我对他的这个观点非常赞赏!

程序员们会争辩道,与人沟通本来就不是我们所擅长的。我们并不是因为热爱跟别人聊天才做软件开发这一行的。然而,沟通从来就是个问题,书面沟通尤其困难。既然我们选择了这个行业,还是想想如何在这方面有所提高吧。我觉得写博客是个好方法:

人们需要花一生的时间去学习如何有效地写作。这事没有捷径。这东西你也买不来。你必须自己去提高。

这也正是为什么那些担心自己写作不行的人应该开始写博客。

这是一种锻炼。不管现在的你多么不靠谱,只要你一周练习几次,你一定会有所提高的。博客内容不用太长,坚持每周写几个,你一定会越写越好的。但如果你因为写作恐惧症而不这么做,那么,你很可能永远就这样子了(别想成为杰出的程序员)!

大家都知道我抱有极大的善意,但只是简单地对一个人说“你应该写博客”,他不会理你的。对此我是有切身体会的。并不是所有人都适合写博客。对于一个普通程序员来说,要他写一篇哪怕是很短的博文,都是一个不可能完成的任务,就像要了他的命一样。那么,我该怎样让广大程序员自觉地写博客、培养起写作的习惯呢?

连哄带骗呗,别无他法!

大家来看看我曾经收到过的这封信吧:

我不知道你是否想过Stack Overflow的边际效应,不过,这个网站确确实实教会了我很多有效写作的方法,比我从以前听过的任何课程、读过的任何书、或参加过的任何其他活动中学到的都要多。

我想不出还有其他什么工具,可以用来检测我写的东西,并且如此快速地对它的质量给出反馈。当我在Stack Overflow上回答问题的时候,特别是做一些高质量的技术纠错时,我能看到其他人也在一起努力,所有的回复放在一起比较,差别自现。大家的投票是不会骗人的。他们给了我信心,让我确信将来我发给同事的电子邮件会在多大程度上被接受,也有助于我把商业企划做得更好。

在过去的5个月时间里,我可以察觉到自己写的回复在质量上面的稳步提升。如果我的回复没被选为最佳答案,我会去看别人的回复,然后去研究它为什么被选上了而我的没有。我会想:也许我写得太罗嗦了?也许太简练了?也许我没有抓住问题的关键,或者没有一针见血?

我记得你曾经说过,这么多年来一直在Coding Horror发表博文,极大地提升了你的写作能力。我想告诉你,Stack Overflow对于我起到了相同的作用,因此我要由衷地感谢你。我决定效仿你,开设一个我自己的关于编程的博客。今天我刚刚完成了域名注册。我希望它能像Stack Overflow一样出色。没有哪个评论家会像程序员那样,对每个细节都刨根究底,拼命地想从你说的话中或者语法结构中找出纰漏。如果你写的东西能够被广大程序员接受,那么你将能经得起任何读者的考验。

Joel和我一直把Stack Overflow以及其他所有的Stack Exchange问答网站定位为轻量级的、专注的、又不失趣味的写作型网站。

没错,凭良心说,我们是在“诱导”你成为一个更棒的写手。事实证明,这很奏效!Stack Overflow拥有很多非常明显的像游戏一样的元素,但这是一个能为你的进步助力的“游戏”,它也使互联网变得更加美好。更重要的是,它使你变得更为出色!看着广大程序员跟他们的同伴一起,在专门的专家问答社区里自然而然地提高了他们的书面沟通能力,我真是无比的自豪!

还有其他的一些兄弟社区,对于编程之外的写作的重要性,它们也是推崇备至。在那里,你可以自由地锻炼你的文笔。我们也有这样的网站。

如果你是一名作家、编辑、评论员、博主、撰稿人、或者有志于任何方面写作的人,职业的或非职业的,你都可以去看看writers.stackexchange.com。不管你的职业到底是做什么的,有效写作是推进你的职业生涯发展的一种基础性的技能,必须得重视!

再说一遍,你应该写作!我觉得Jon Skeet总结得非常好:

每个人都应该大量地写作,不管是撰写博客、写书、回复Stack Overflow上的问题、写电子邮件、还是写其他的什么东西。把字写下来,然后回过头去斟酌一下。依我的经验看来,这种书面沟通有助于理清我们的思路。当你要向其他人详细解释某样东西的时候,你会惊讶地发现你有多无知。于是,你不得不开始一个全新的探索过程。

写作的过程真的就是一次探索之旅,而且它会贯穿人的一生。至于你是在写一篇小说、写印刷评论、回复Stack Overflow上的问题、创作漫画故事、写博客、写一段注释、写技术白皮书、写旅游日志、或者写关于写作本身的文章,真的无关紧要。动手吧,开始写起来!

再谈程序员要注重沟通能力的提升——如何培养起写作的习惯相关推荐

  1. 程序员要注重沟通能力的提升

    你曾经在应聘一份编程工作的面试中被问及一些解谜类的问题吗?我反正碰到过.我被问到的那个问题是: 你最喜欢的那个牌子的苏打,有多少是在本省被消费的? 拜托,正确的答案不能是"关我什么事&quo ...

  2. 休闲娱乐之再谈程序员的30大关

    程序员干到30岁,好不容易从码奴混到了白领,却再也干不动了,还时时面临失业的危险.30岁,是一个程序员伤不起的年龄.明天,何去何从? 一.30岁现象 在官场上,曾经有一个59岁现象,就是官员们会在59 ...

  3. 滴滴在职iOS开发者,浅谈程序员如何进行高效的技能提升?进阶架构师?

    前言: 如何提升开发技术的方法很多,比如专注,刻苦,热情,兴趣等,不过我这里不会提这些,下面想说的是我觉得能够指数级提升的窍门和一些自己在求索路上的一些体会,也算是一个阶段性的总结吧.给大家做个分享, ...

  4. 众名家谈程序员职业规划

    众名家谈程序员职业规划 对 于大多数程序员来说,微软是一家值得崇敬的公司,能够加入微软,也是很多程序员的愿望.在付出足够的努力后,一旦进入了微软,也就意味着可以和最先进的技 术终日为伍,一直沿着技术这 ...

  5. 阿里P9谈程序员程序员的青春饭

    转载自   阿里P9谈程序员程序员的"青春饭" 导读:你是否曾经认真思考过--毕业3-5年.10年,乃至更久后,我们希望成为什么样的人?作为一名技术人,我们要如何规划自己的职业发展 ...

  6. 初级,中级,高级程序员需要具备的能力

    1:团队精神和协作能力 把它作为基本素质,并不是不重要,恰恰相反,这是程序员应该具备的最基本的,也是最重要的安身立命之本.把高水平程序员说成独行侠的都是在呓语,任何个人的力量都是有限的,即便如linu ...

  7. 百万年薪程序员的7点能力

    作者介绍 findyi,腾讯.360码农,前哒哒少儿英语技术VP,现任土豆教育CTO. 几周前,微盟爆了个大雷,数据库让内部员工删库跑路.写了篇文章,做了一些我的判断:从微盟36小时故障,谈谈数据安全 ...

  8. 华为前三季度营收4458亿元;周鸿祎谈程序员35岁就会被淘汰;金山WPS月活用户已超5.7亿 | EA周报...

    EA周报 2022年10月28日 每个星期7分钟,元宝带你喝一杯IT人的浓缩咖啡,了解天下事.掌握IT核心技术. 周报看点 1.格力给特斯拉供应底盘?格力电器:为零部件提供装备支持 2.国产办公软件崛 ...

  9. 浅谈程序员的行业选择---程序人生

    引言 本篇博文接着许久之前的一篇博文<浅谈程序猿的职业规划,看你如何决定自己的未来吧.>,继续探讨一下程序员行业相关的内容. 行业的选择不仅对于程序员来说非常重要,对任何一个人来说都是一样 ...

最新文章

  1. Android 中几个常用的分析工具的下载地址
  2. Leetcode 162. 寻找峰值 解题思路及C++实现
  3. 用文本指导文本:基于文本的自监督可控文本生成模型
  4. ps法线贴图插件_法线与置换贴图原理讲解以及烘焙制作!
  5. Mybatis自学日志04(日志工厂)
  6. 047、JVM实战总结:高级工程师的硬核技能:JVM的Full GC日志应该怎么看?
  7. matlab是以什么运算为基础,matlab基础运算
  8. 数据结构与算法之-----栈(Stack)
  9. LINUX下载编译opusfile/opus-tools
  10. java常量池在哪里_Java常量池详细说明
  11. 极路由2hc5761刷华硕固件_极路由3华硕固件下载-极路由3 Pro刷华硕固件官方完整版【附升级工具及教程】-东坡下载...
  12. 使用超级鹰模拟登录验证码报错的解决办法
  13. 笔记本电脑BIOS和硬盘加密密码设置方法
  14. ceph RBD块存储常规操作
  15. guava深入理解(3)-字符串,实用方法,函数式编程
  16. 忘记了PPT文件打开密码怎么办?
  17. Quartz源码解读-任务是如何定时执行的
  18. 2020.8.28丨蛋白质组产品介绍、方案设计和案例解析
  19. Android离线文字转语音(TTS)原生实现
  20. 阿里云ECS服务器Linux第一次登录 提示Login Incorrect的解决方法

热门文章

  1. jupyter notebook显示行号
  2. 大数据|Hive和数据仓库
  3. 小程序文档整理之 -- 场景值
  4. 公告 | CCL 2022 汉语学习者文本纠错评测结果出炉!
  5. hashCode是什么?
  6. Harris 角点检测(Harris Corner Detection)(OpenCV实现)
  7. 取云星空所有有效bom数据
  8. 【Egret插件】JSZip-ZipPlugin踩坑记
  9. 列举ospf的5种报文类型_ospf报文类型有哪些_ospf的5种报文类型
  10. 文件 MIME 类型