刚入职的学弟一直埋头写代码,我却让他做这件事。。
大家好,我是鲏。
很多初入职场的程序员朋友,可能很长一段时间都在重复下面的过程:
组长分配一个任务 --> 你埋头写代码 --> 收到 Bug 反馈 --> 你埋头改代码 ...
有位刚入职的学弟就是这样,虽然每次的工作都能按时完成,但总感觉自己是一个 “写代码的机器”(听别人的,负责把需求翻译成代码),也没有什么成长。
快别这样了!写代码真的只是唯一能做的吗?
需求的背景你清楚了么?需求方是谁?为什么提这个需求? 为什么要这么做需求,还有其他的方法么? 这条需求背后是关于哪些业务的?上下游是什么?
真实的是,成为程序员与写代码其实没有必然的联系。比如很多逻辑思维能力强的同学可以做算法工程师,写的代码可能不多,但都是精髓。
除了编程能力和逻辑思维能力外,做程序员还需要一些其他技能:
业务分析能力 技术学习能力 问题排查能力 协调沟通能力 项目管理能力
何谓业务分析能力?业务是活的,如果能知道什么业务能赚钱,简直就是大杀器。
何谓技术学习能力?如果你的技术学习能力强,不论新技术如何层出不穷,你都能第一时间掌握,做到对症下药。所以建议大家多去阅读官方文档,掌握读文档自学的能力。
何谓问题排查能力?对,改 Bug... 不依赖别人,利用搜索引擎和往期经验自主解决问题。
何谓协调沟通能力?与上级沟通,与同事沟通,与需求方沟通,与甲方沟通。。。
何谓项目管理能力?推进项目,管理人,这个能力也很重要,领导能力不可欠缺。
最后,也是今天要说的重点,写作表达能力。
锻炼写作的方式
写作不是专业作者才能做的事。我们在学习和工作日常中就有很多方式可以锻炼。
那对于程序员来说,可以有哪些方式呢?(以下难度依次增加)
写注释
没错,写作的成本甚至可以小到只写一段注释!从细微之处也能看出一个人的写作表达能力的强弱。
回复问题
比如回复 GitHub Issues、Stack Overflow、知乎、51 CTO、CSDN 、思否上他人提出的问题。
像鱼皮自己今年回答了至少 5000 多个星球小伙伴的问题,也在持续锻炼自己的表达能力,易于别人理解。
写电子邮件
与人沟通,回复邮件,反馈问题,汇报工作等等
写博客
51CTO、CSDN、博客园、掘金、InfoQ 都是很好的博客平台,或者你可以自己搭建自己的博客平台,更加可控。麻烦一点可能是需要自己搭建服务器和图床。
写技术文档、技术白皮书
程序员最痛苦的工作写技术文档,但最需要的可能也是技术文档。自己写不太想写,自己想看的又是技术文档。如何把文档写的准确易懂也是可以需要学习的。
写书
“合抱之木,生于毫末;九层之台,起于累土,千里之行,始于足下。” 一篇篇博客可能就是一本书的其中一点内容。就算不出版,也可以有写书的目标,写书更能锻炼写作的能力,很多博客写得好的,反而出书效果没那么好了。
写作是倒逼成长的最佳方式
写博客也是一种向内求索的过程,自己是否真的掌握了?自己能解释的更好吗?高质量的输出倒逼输入和思考,写作是倒逼成长的最佳方式。通过写作能带来更多的输入和思考。只有学习不同的技术,看不同的书,引发思考,形成自己的观点,然后输出检验自己是否真的掌握。然后形成这种双向循环:
输入 --> 输出; 输出 --> 输入。
保持良好的态度:写代码=写作
程序员的工作大多以代码为主,经常专注于如何实现复杂的运算。而写作,首先需要将想要表达的核心内容下定义,并用修饰性的语言对其进行解释。
程序员和作家有什么区别,作家是写作时脑袋呈现一个个人物和故事,而程序员写代码脑子里更多的逻辑和数据。
以前在学习写作和文章赏析的时候,学过很多写作手法:托物言志(托物喻人)、欲扬先抑、倒叙法、穿针引线法、插叙法等等。但程序员写作并不需要,如何描述问题,解决问题,怎么简单怎么来。
写文章良好的表达能力确实能对编程架构设计有非常大的帮助。但实际情况是,大部分程序员都没有时间熟练掌握写作。
大部分人强调开发能力,但很少有人愿意写文档。但残酷的事实是:无论从事什么行业,写作都是最基本的技能。
先梳理再动笔
和写代码一样,编程高手往往不会直接敲代码,而是先画好设计图再写代码。
所以,写作也是如此。一旦有了自己的想法,先不用急着马上记录,而要在脑海里梳理好流程,再用笔记记下最简单的结构,之后再整理成文字。
写文章时,要把自己的惯用表达或专业术语换成大家耳熟能详的词语,文章要通俗易懂,表达准确。
像简单的技术类博客,首先让自己的代码跑通,然后根据项目结构依次解释这样写代码的原因,依次形成一篇文章或教程。代码实现的过程即是梳理的过程。
那么如何培养写作习惯呢?
如果不擅长面对面沟通,那么书面沟通呢。书面沟通能力就是写作,如何培养这一种能力呢?有时候需要花一生的时间去学习如何有效地写作,这件事没有捷径,你也买不来,因此如何写作正是我们需要提高的原因。
杰出的程序员跟勉强过得去的程序员之间的差别,不在于他们掌握了多少种编程语言,也不在于他们谁更擅长 Python 或 Java。真正的关键是,他们能不能把他们的想法表达清楚,杰出的程序员通过说服别人来达成协作。通过清晰的注释和技术文档,他们让其他程序员能够读懂他们的代码,这也意味着其他程序员能够重用他们的代码,而不必重新去写。要不然,他们所写的代码的价值就大打折扣了。-- Joel·Spolsky
从小到大,如果学习知识是从看课本,听老师讲开始的,那么当我们看完听完,是否有一种与他人分享的想法?
仍记得小时候学完一个知识,迫不及待跟小伙伴、爸妈分享今天学习了什么。
其实,现在我们也可以一样。
当我们看完一本书的一个章节,就可以写出来,一开始也不一样会写的很好,开始写就对了;
当我们听完一个视频,也可以总结视频的重点和自己的盲点,毕竟等哪一天忘记了,重头再来看视频就很复杂,看一下自己的博客还是很轻易高效的;
当我们解决了一个真实问题,也可以把如何解决的这个问题也可以记录下来,帮助其他人,说不定别人搜到这个问题的时候也会感谢你的解决方案。
等等,方式很多。
把写博客这个过程每周练习几次,博客不用太长,坚持每周写几个,一定能越写越好。
所以,总结起来,培养写作的习惯需要:保持分享的习惯。
总结
熟悉编程是一个需要长期坚持的过程,写作也是如此。说出想说的话很容易,但让对方理解并理解对方的想法则不那么简单。
多写代码可以提高编程能力,同样,经常练习写作也可以提升文字表达能力。
如果你还没开始写作,请立刻开始; 如果你觉得自己的写作水平欠佳,那么请坚持练习。
本文来源:https://juejin.cn/post/7159810286583545869
欢迎学编程的朋友们加入我的 编程知识星球 ,我会 1 对 1 解决你的问题,并且直播带大家开发完整项目(第三期项目进行中)。可以加微信 yupi1085,备注【加入星球】和自己的情况领取优惠加入星球,不备注不通过,非诚勿扰谢谢。
往期推荐