|
在学校里,有“文科生”和“理科生”的区分,学习内容不同,思维方式也有差异。我是一名理科生,大学里我的专业是计算机科学,毕业后我的工作是软件工程师。在这个过程中,我发现文理科之间的鸿沟始终无法弥合。我见到的很多工程师害怕写文章,而文科生看到代码就头疼。
我认为,程序员应该养成写作的习惯。因为写文章会锻炼许多对于编程十分有益的技能。
写文章和写代码最核心的共同之处在于它们都需要清晰思考的能力。顶尖的软件工程师往往也是优秀的写作者,他们的文章和代码一样富有逻辑性,行文流畅、优雅。
文章和代码有很多相似之处:二者都是从一个空白的页面开始,把一个想法最终变成完整的产品,推向特定的受众;写文章和写代码都需要你把一系列有逻辑的语句封装进一个个模块中,这些模块可以是函数也可以是文章的段落;好代码与好文章一样都需要言简意赅,不然就会浪费 CPU 资源或人的精力。
当某个产品快要完工时,软件工程师会像作品快要发表的作家一样焦虑不安。和写文章一样,软件永远不会有彻底完成的时候,工程师需要花更多时间优化代码、开发新功能或者重做某个部分,因为他们担心发布的作品没有展现出自己最好的一面。
软件工程师应该写作因为现在开发协作变得越来越重要。开源项目可以得到来自世界各地人民的参与。开发和运营一个产品常常需要大量工程师(Google Maps 有 1100 个全职员工!)。不论是 GitHub 评论、代码注释,还是技术文档都需要清晰准确的文字。良好的写作能力方便了人们之间的交流,使得项目更好地运行下去。
可能你觉得有些项目不太需要交流协作,但是写一些关于软件的内容通常对于学习和更进一步的讨论有着促进作用。现在,我们不再需要通过 RFC 文档或技术手册中学习了,因为网上有其他工程师写的教程。此外,我们还能够从Hacker News 评论、推特和各种博客中学到很多内容。
提到博客,再来说两句。好的写作需要时间。我们一开始写出来的文字可能不怎么样,这时就需要再花点时间,多修改几遍,润色一下。如果你觉得自己太忙了没时间写博客,不知道写什么或者担心你的观点被公开记录日后留下把柄,你应该花上点时间读一读 Steve Yegge 的《你应该写博客》(You Should Write Blogs)这篇文章。即便其中的观点不能说服你,我相信在阅读之后你也会有所收获。
软件工程师需要写作,因为他们可能会享受写作的过程。很多软件工程师都期待自己开发的软件能够“产生影响”,给人们的生活带来改变。实际上,通过写文章,你也能够对人们“产生影响”,譬如说关于管理的博文可以帮助他人激励自己的团队,教授编程的内容可能会引起一个 学生学习计算机科学的兴趣,关于职业规划的文章则可以帮助毕业生找到新的职业方向。
即使没人读你的文章,写作的过程也是有益无害。它帮助你理清思路,明确对于某个问题的看法,加强或削弱你的某种观点。把凌乱的想法汇聚成精简的文字非常有价值。
总之,写作有利于提高软件开发的水平,同时更方便开发过程中的协作,即使对一个理科生来说,也是一件非常值得做的事。
免费领取LAMP兄弟连原创PHP视频教程光盘/《细说PHP》精要版,详情咨询官网客服:
http://www.lampbrother.net
大家可以订阅一下邮件,我会时不时的给大家分享IT相关教程及书籍。
http://list.qq.com/cgi-bin/qf_invite?id=ea7d919ad263169bce2be53a3e16da0f0ec55ac36513c68e
|
0
0
相关文章
为什么干净的代码很重要
人工智能时代的 PHP:不要在您的下一个智能项目中忽视这个 Web 引擎
智慧之钥:PHPStorm 打开 PHP 奥秘之门的钥匙
PHP常见问题合集开发中的错误处理与日志记录
新课程发布:快速入门Laravel 4
本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门AI工具
相关专题
本专题系统整理batoto漫画官方网站最新可用入口,涵盖最新官网地址、网页版登录页面及防走失访问方式说明,帮助用户快速找到batoto漫画官方平台,稳定在线阅读各类漫画内容。
65
2026.02.25
本专题系统整理Steam官网最新可用入口,涵盖网页版登录地址、新用户注册流程、账号登录方法及官方游戏商店访问说明,帮助新手玩家快速进入Steam平台,完成注册登录并管理个人游戏库。
6
2026.02.25
本专题面向全栈开发者,系统讲解基于 TypeScript 构建前后端统一技术栈的工程化实践。内容涵盖项目分层设计、接口协议规范、类型共享机制、错误码体系设计、接口自动化生成与文档维护方案。通过完整项目示例,帮助开发者构建结构清晰、类型安全、易维护的现代全栈应用架构。
9
2026.02.25
本专题聚焦 Python 在数据工程场景下的实际应用,系统讲解 ETL 流程设计、数据抽取与清洗、批处理与增量处理方案,以及数据质量校验与异常处理机制。通过构建完整的数据处理流水线案例,帮助开发者掌握数据工程中的性能优化思路与工程化规范,为后续数据分析与机器学习提供稳定可靠的数据基础。
0
2026.02.25
本专题围绕 Java 在复杂业务系统中的建模与架构设计展开,深入讲解领域驱动设计(DDD)的核心思想与落地实践。内容涵盖领域划分、聚合根设计、限界上下文、领域事件、贫血模型与充血模型对比,并结合实际业务案例,讲解如何在 Spring 体系中实现可演进的领域模型架构,帮助开发者应对复杂业务带来的系统演化挑战。
0
2026.02.25
《Golang 生态工具与框架》系统梳理 Go 语言在实际工程中的主流工具链与框架选型思路,涵盖 Web 框架、RPC 通信、依赖管理、测试工具、代码生成与项目结构设计等内容。通过真实项目场景解析不同工具的适用边界与组合方式,帮助开发者构建高效、可维护的 Go 工程体系,并提升团队协作与交付效率。
18
2026.02.24
《Golang 性能优化专题》聚焦 Go 应用在高并发与大规模服务中的性能问题,从 profiling、内存分配、Goroutine 调度、GC 机制到 I/O 与锁竞争逐层分析。结合真实案例讲解定位瓶颈的方法与优化策略,帮助开发者建立系统化性能调优思维,在保证代码可维护性的同时显著提升服务吞吐与稳定性。
9
2026.02.24
Golang 面试题精选》系统整理企业常见 Go 技术面试问题,覆盖语言基础、并发模型、内存与调度机制、网络编程、工程实践与性能优化等核心知识点。每道题不仅给出答案,还拆解背后的设计原理与考察思路,帮助读者建立完整知识结构,在面试与实际开发中都能更从容应对复杂问题。
6
2026.02.24
《Golang 运行与部署实战》围绕 Go 应用从开发完成到稳定上线的完整流程展开,系统讲解编译构建、环境配置、日志与配置管理、容器化部署以及常见运维问题处理。结合真实项目场景,拆解自动化构建与持续部署思路,帮助开发者建立可靠的发布流程,提升服务稳定性与可维护性。
5
2026.02.24
热门下载
最新文章
