每天推荐一个 GitHub 优质开源项目和一篇精选英文科技或编程文章原文,欢迎关注开源日报。交流QQ群:202790710;微博:https://weibo.com/openingsource;电报群 https://t.me/OpeningSourceOrg


今日推荐开源项目:《游戏引擎 Xenko》传送门:GitHub链接

推荐理由:这个项目是个 C# 游戏引擎,它不仅具备了该有的 UI 可视化编辑和场景编辑等等各种基础功能,还支持有关 VR 的测试预览,各种动画粒子效果也没有落下。如果有使用 C# 的朋友想玩游戏开发的话,这个应该是一个很好的选择。


今日推荐英文原文:《Why developers should know how to write》作者:Derek Mei

原文链接:https://medium.freecodecamp.org/why-developers-should-know-how-to-write-dc35aa9b71ab

推荐理由:之前推荐如何写新闻报道的时候有人问我们为什么要学写作,要想得到这个问题的答案,看完这篇文章,就知道了

Why developers should know how to write

I recently came across an article by John Maeda about how writing — not coding — is design’s unicorn skill. That got me thinking about how writing plays a role in the life of developers.

In today’s data-driven, data-heavy world, there’s so much content to consume. We’re constantly bombarded by videos, pictures, advertisements, podcasts, and articles. Each of these media has a different type of appeal, and it always seems like there’s strong competition to try to attract and retain our attention.

A sampling of the different types of media channels available (image from Change Conversations).

With the proliferation of different media channels in the past several decades, there has been a less of an emphasis on written content and more on the visual — specifically videos and images. According to this memo from 3M from 1997, people can process visuals 60,000 times faster than text.

However, knowing how to write is still an important skill. Words can be one of the purest forms of expressing one’s thoughts. Words can be presented as letters, articles, or text messages. A writer will disseminate and share their thoughts in the form of ink on paper or digitized pixels on a screen.

I’ve learned that writing well can be a catalyst for success, whether it be in the realm of personal growth, professional development, or social prosperity. A lot of the skills I’ve developed from writing dozens of articles in the past few years have translated over to my new full-time role as a software engineer at Putnam Investments.

Photo by Aaron Burden on Unsplash.

As a developer, here are five benefits I’ve come across by learning to write.

1. Writing well makes you a better communicator

The most obvious benefit I’ve realized from writing frequently is that writing well has made me a better communicator. As humans, we rely primarily on our words to convey our thoughts and feelings to others. By writing often, I’m able to express my thoughts easier, without having to worry about whether I’m using the right words, writing too much or too little, or being too vague or convoluted.

Image from https://zalarieunique.ru.

At work, I can draft concise emails or send instant messages without having to resort to a dictionary for the correct spelling of a word or a thesaurus to make myself sound smarter. When thoughts can flow freely from your mind to your hand, the words that come out on paper flow fluidly and don’t have to be manipulated to achieve a specific purpose.

Writing, like many other crafts, takes years of practice to hone. The best part of writing is that the improvement is detectable. You can look at previous works and see visible improvement over time.

2. Writing for an audience helps you write better documentation

Part of the criteria for being a good developer is knowing how to communicate technical requirements and specifications to other stakeholders. Knowing your audience is an important part of writing — the same applies when communicating with stakeholders or writing any type of documentation.

Photo by John-Mark Smith on Unsplash.

When working with less technical team members, you have to explain technical terms and concepts in a way that makes sense and resonates to whoever you’re working with. For example, when working with product owners and designers, I usually try to provide a high-level overview of whatever I’m working on without getting bogged down in the details. For designers, I try to communicate how the feature should be implemented from a UX or UI perspective. For product owners, I try to frame my work from the perspective of the business.

In addition, developers also have to communicate their work to other developers. Whether it be naming variables or function names, writing inline comments, or documenting how the system should work from a high-level, developers need to know how to write good documentation so that code is understandable and maintainable. Whenever I write documentation, I try to make it as complete as possible. Any developers working on my codebase will be able to understand the high-level structure, and also be able to contribute instantly without having to deconstruct and reverse-engineer the code.

3. Writing makes you appreciate the idiosyncrasies of programming

Back in 2011, a Redditor posted in the /r/programming subreddit about the differences and similarities between writing and programming. Some say that programming is akin to writing in that it’s a skill that isn’t conceptually difficult, but is something that is refined over time. Others state that writing is completely different than programming in that writing is a creative endeavor, whereas programming is a more involved science that requires a deeper understanding of the fundamental concepts.

The general consensus, with minor disagreements in the nuances of each, is that both writing and programming require basic knowledge of the fundamentals — syntax, structure, and semantics. However, what differentiates an amateur from a veteran in each field is the ability to be creative and deal with the complexity of the system or topic at hand.

A lot of these ideas touch upon the fields of linguistics and language.

Writing teaches developers to think differently. For developers, writing code can feel restricted as there are a limited number of keywords, functions, and libraries that can be used. However, written languages allow for complete freedom in expression in a way that programming languages usually don’t allow.

Ted Kaminski brings up another interesting point around the purpose of words as we use them in code and in other mediums.

“For one, writing is meant to be read. Code is meant to be read and changed.” -Ted Kaminski

Within the realm of writing, it appears as if a strict dichotomy has been created over time to separate the concerns of the writers from the readers. Writing seems to be set in stone, whereas code is an ongoing endeavor that seeks to improve upon the old.

In many ways, writing “creatively” and writing code share many similarities, but knowing their differences makes me appreciate both much more.

4. Writing gives you a chance to apply what you learn

When I write, it always feels like I’m having a conversation with myself. Upon finishing a book or discovering something significant, I try to let my thoughts ruminate by writing an article on what I’ve learned. For me, I’ve found the best way to nudge my knowledge forward in a particular area is to write about that topic.

On freeCodeCamp and so many other websites that provide basic development tutorials, authors write about a variety of different topics and concepts. Part of the reason why so many volunteer their time to write articles is not only so they can share their experiences and help others, but also so they can reinforce their learned knowledge of the topic they’re writing about.

freeCodeCamp, one of the best resources for development tutorials and articles.

When I write about topics I learn about, I usually conduct additional research that often results in me coming across snippets of information I wouldn’t otherwise be exposed to. When I write, I’m more inclined to remember what I’ve learned for the long term. Additionally, I sometimes also come across different perspectives and viewpoints that challenge my initial outlook. The whole process of writing is a living and ongoing conversation that allows me to process the information I come across and make my own judgments.

Writing is a great way to organize and collect your thoughts (Photo by Radu Florin on Unsplash).

Writing is a great way to digest and process the information we take in. However, erudition and intellect stem not from the quantity of information that we take in, but from our ability to process that information and draw meaningful conclusions from it.

5. Writing as a form of catharsis

This last reason why I think writing is important might not be as directly relevant to the role of a developer as the last four reasons. But I think it’s just as, if not more, important. A big part of the reason why I choose to write is because writing is a great outlet for my emotions and feelings. I don’t like keeping my feelings and thoughts bottled up, so I seek out writing as a form of catharsis.

Photo by Álvaro Serrano on Unsplash.

When I was younger, I used to write journal entries in a diary. Now I write about a variety of topics and publish them for the world to read. But every now and then, I’ll return to pen and paper to express my personal thoughts. I keep a private journal that I write in occasionally when I have doubts about my professional goals, personal life, social relationships, and everything in between.

There’s nothing to writing. All you do is sit down at a typewriter and bleed.

When I write about my feelings, it feels like I’m talking to a friend who is really good at listening. It’s a way for me to purge negative emotions and speak to an empty page without the fear of judgment.

Writing has a lot of benefits, and although it might not be your preferred way to express your thoughts, it’s a needed and useful skill even in today’s cacophonous and chaotic world. Even if you’re a beginner to the world of writing, I recommend that you try sitting alone with your thoughts and let your mind flow freely. It’s amazing what you can come up with.


Thanks for taking the time to check out my article!

If you liked this article, drop a few claps, follow me on Medium, and recommend this article to your friends. Feel free to follow me on Instagram or connect with me on LinkedIn!


每天推荐一个 GitHub 优质开源项目和一篇精选英文科技或编程文章原文,欢迎关注开源日报。交流QQ群:202790710;微博:https://weibo.com/openingsource;电报群 https://t.me/OpeningSourceOrg