软件工程师 算法工程师
What does it mean to write an effective and efficient article? There are two definitions according to the Cambridge dictionary:
写一篇有效的文章意味着什么? 根据剑桥词典,有两个定义:
1. Efficient: using resources such as time, materials, or energy well without wasting any.
1.高效 :充分利用时间,材料或能源等资源,而不会浪费任何资源。
2. Effective: producing the intended results, or (of a person) skilled or able to do something well.
2.有效 :产生预期的结果,或者(某人)熟练或能够做某事。
In other words, writing an effective and efficient article means to produce the right article in the right way. That sounded oddly familiar to me given the fact that I have a background in Computer Science.
换句话说,写出有效和高效的文章意味着以正确的方式生产正确的文章。 鉴于我具有计算机科学的背景,这对我来说听起来很奇怪。
The definitions sounded similar to two terms you often hear in the Software Engineering domain, namely:
这些定义听起来与您在软件工程领域经常听到的两个术语相似,即:
1. Verification: A test of a system to prove that it meets all its specified requirements at a particular stage of its development.
1. 验证 :对系统的测试,以证明其在开发的特定阶段满足所有指定要求。
2. Validation: An activity that ensures that an end product stakeholder’s true needs and expectations are met.
2. 验证 :一项活动,可确保满足最终产品利益相关者的真实需求和期望。
In simple terms, verification is about building the product in the right way, while validation is about building the right product.
简单来说,验证是关于以正确的方式构建产品,而验证是关于构建正确的产品。
The more I thought about these similarities, the more I thought about other parallels between building a piece of software and writing an article.
我对这些相似性的思考越多,就对构建软件和撰写文章之间的其他相似之处的思考也就越多。
Computer science is nothing more than the science of approaching and solving problems. An algorithm is nothing more than a recipe. And this list of tips can be seen as a simple algorithm for writing effective and efficient articles. Or just a checklist to validate and verify your article if you want to take the perspective of a Software Engineer.
计算机科学不过是解决问题的科学。 算法只不过是一个配方。 这份技巧清单可以看作是编写有效且高效文章的简单算法。 如果您想从软件工程师的角度出发,或者只是一个清单来验证和验证您的文章。
In its essence, this article is just a feeble attempt to help myself to become a better writer. To help myself with my messy process and not getting lost in the details while neglecting the big picture. It is a non-exhaustive list of general tips that you don’t have to follow step-by-step. You don’t even have to agree with all of them! Just take what you need.
从本质上讲,这篇文章只是为了帮助自己成为一个更好的作家而作的微不足道的尝试。 为了帮助我自己处理混乱的过程,同时又不忽略细节,而忽略细节。 它不是一般性提示的详尽列表,您无需逐步进行。 您甚至都不必同意所有这些! 随您便吧。
Although I wrote this article merely for myself, I hope that others can benefit from it too.
尽管我只是为自己写这篇文章,但我希望其他人也能从中受益。
1.有个主意 (1. Have an idea)
“A rose started off a bud, a bird started off an egg, and a forest started off a seed. “— Matshona Dhliwayo
“玫瑰从芽中生出,鸟从卵中生出,森林从种子中生出。 “ — Matshona Dhliwayo
Everything starts with an idea. It does not matter how small it is or what it is about. As long as you think it is worth sharing. It could be a tutorial, a personal story, a book review, or whatever you like to write about. Whatever it is, you should have a strong urge to get it off your chest.
一切都始于一个想法。 它有多小或有什么关系都没有关系。 只要您认为值得分享。 它可以是教程,个人故事,书评或任何您想写的东西。 不管是什么,您都应该强烈希望将其从胸口拿下来。
I usually have dozens of ideas throughout the week but only a few of them will stick. If a certain idea reoccurs over and over again in my head, I know that I have to take action.
我通常在一周中会产生数十个想法,但其中只有几个会坚持下去。 如果某个想法反复出现在我的脑海中,我知道我必须采取行动。
You don’t have an idea? Then what is it that you would like to see that doesn’t exist at the moment? Or what kind of problems do your friends or family members have that you could solve? The same questions that are valid for developing software are valid for writing articles. As long as your idea solves someone’s problem, you are on the right track. Even if it is just your own problem.
你不知道吗 那么,您希望看到什么目前不存在? 或者您的朋友或家人有什么问题可以解决? 对于开发软件有效的相同问题对于撰写文章也有效。 只要您的想法能够解决某人的问题,您就可以走上正确的道路。 即使这只是您自己的问题。
Take this article for example. It merely exists because I wanted to have a kind of guide or checklist that I can use for my future articles. Then I thought that others may profit from it too. And here it is.
以本文为例。 它之所以存在是因为我想要一种可以在以后的文章中使用的指南或清单。 然后我认为其他人也可以从中受益。 在这里。
2.做你的研究 (2. Do your research)
“Learn from the mistakes of others. You can’t live long enough to make them all yourself.”― Eleanor Roosevelt
“从别人的错误中学习。 你不能活到足以让他们自己生活。”-埃莉诺·罗斯福(Eleanor Roosevelt)
Whenever a certain idea strikes me I’m all excited and think that nobody in the world has ever written about that specific topic. Or has ever written such a piece of software.
每当有一个主意打动我时,我都会感到兴奋,并认为世界上没有人写过关于该特定主题的文章。 或曾经编写过这样的软件。
I recently had the idea to write a parallelized web scraper in Python for different kinds of media types. After a quick web search, I discovered that my idea had already been covered by a lot of people. People who are probably way smarter than me. If you ever encountered a similar situation then you probably feel discouraged, too.
最近,我想到了用Python针对不同类型的媒体类型编写并行化的网络抓取工具的想法。 经过快速的网络搜索,我发现我的想法已经被很多人所接受 。 可能比我聪明的人。 如果您遇到过类似的情况,那么您可能也会感到灰心。
But you shouldn’t because that doesn’t mean the end of it. These types of situations occur all the time. It only shows that you encountered a real-world problem. A problem that was worth the time of others who already tried to solve it. That doesn’t mean that their solution is any good.
但是您不应该这样做,因为这并不意味着它的结束。 这些情况一直在发生。 它仅表明您遇到了实际问题。 这个问题值得其他已经尝试解决此问题的人付出。 这并不意味着他们的解决方案有任何好处。
Facebook gradually superseded MySpace although they both approached the same problem.
Facebook逐渐取代了MySpace,尽管他们都遇到了同样的问题。
According to Wikipedia,
根据维基百科 ,
Competitor analysis in marketing and strategic management is an assessment of the strengths and weaknesses of current and potential competitors.
市场营销和战略管理中的竞争对手分析是对当前和潜在竞争对手的优缺点的评估。
Take your idea and see if other people already tried to solve it. Is their solution any good? Learn from their mistakes and make it better. Aggregate their findings and get new insights on your initial idea. Maybe your initial idea evolves into something different. Something better.
了解您的想法,看看是否其他人已经尝试解决它。 他们的解决方案好吗? 从他们的错误中学习并使其变得更好。 汇总他们的发现并获得有关您最初想法的新见解。 也许您最初的想法演变成不同的东西。 更好的东西。
Validate your idea with a quick research session. The time you spend in the early research phase is a great investment because it’s the worst feeling in the world to build something that nobody wants.
通过快速的研究会议验证您的想法。 您花在早期研究阶段的时间是一笔巨大的投资,因为这是世界上最糟糕的感觉,那就是建造没人想要的东西。
Build a product that people want to pay for. In the specific case of Medium articles, people don’t pay you directly with their money but with their reading time. And people want valuable information in return for that.
开发人们想要支付的产品。 在中型文章的特定情况下,人们不会直接用钱付钱,而是用阅读时间付钱给您。 人们想要有价值的信息作为回报。
3.创造价值 (3. Create value)
“Try not to become a man of success, but a man of value. Look around at how people want to get more out of life than they put in. A man of value will give more than he receives. “ — Albert Einstein
“不要成为成功的人,而要成为有价值的人。 环顾四周,人们如何从生活中获得更多收益,而不是投入。有价值的人会付出比得到的更多。 “ - 艾尔伯特爱因斯坦
It does not matter if your idea is unique or others already had the same. All that matters is that your product creates value for the user.
您的想法是否独特或其他想法是否相同都没有关系。 重要的是您的产品为用户创造了价值。
When it comes to Medium articles you have to ask yourself the question: Will someone actually gain something by reading this?
当涉及中型文章时,您必须问自己一个问题:有人会通过阅读这篇文章真正获得一些收获吗?
Don’t be a copycat but don’t reinvent the wheel either. Aggregate your research findings and build upon that. Make it better!
不要成为模仿者,也不要重塑方向盘。 汇总您的研究结果并以此为基础。 做得更好!
Readers should be eager to read your article until the end. Play with their FOMO (Fear of Missing Out). Get some nice quotes. People love to learn something new. It’s even better if they can use that new knowledge at the next family gathering to spread some wisdom. I did the same in this article.
读者应该渴望阅读您的文章,直到最后。 和他们的FOMO玩(害怕错过) 。 获得一些不错的报价。 人们喜欢学习新事物。 如果他们可以在下一次家庭聚会中使用这些新知识来传播一些智慧,那就更好了。 我在这篇文章中做了同样的事情。
Be creative in the way you add value. Take my example of the parallelized web scraper from point 2. Most of the mentioned web scraping libraries are just command-line tools. However, when I use these libraries to implement a larger online platform that is easy to use for the end-customer, I suddenly created additional value. Try to do the same with your articles and be creative.
以增加价值的方式发挥创造力。 以我从第2点开始的并行化Web抓取工具为例。大多数提到的Web抓取库只是命令行工具。 但是,当我使用这些库来实现对最终客户来说易于使用的更大的在线平台时,我突然创造了附加价值。 尝试对您的文章做同样的事情,并发挥创造力。
Moreover, think about the lifetime of your product. Will it be obsolete after one month or still valuable after one year?
此外,请考虑产品的使用寿命。 一个月后会过时还是一年后仍然有价值?
4.第一个原型 (4. The first prototype)
“Good stories are not written. They are rewritten.” — Phyllis Whitney
“没有写好故事。 它们被重写了。” —菲利斯·惠特尼
The first prototype is similar to a draft and can serve many purposes. It could be similar to exploratory prototyping in product design to discover new ideas while creating something. It could be a proof of concept or a minimum viable product for yourself to see if your idea still makes sense when it materializes.
第一个原型类似于草稿,可以用于许多目的。 这可能类似于产品设计中的探索性原型设计,以便在创造新事物的同时发现新想法。 它可能是概念验证或最低限度的可行产品,让您自己看看您的想法在实现时是否仍然有意义。
For others, it just serves the purpose of seeing their thoughts written down in one place to get a clearer picture. Writing something down activates different neurological pathways than just thinking about it.
对于其他人来说,这样做只是为了将他们的想法记录在一个地方,以便获得更清晰的画面。 写下一些东西可以激发出不同于思考的神经通路。
Whatever it might be, most of the time it is a dirty mess that nobody ever needs to see. And that’s fine. A pottery maker doesn’t start with a finished vase, she starts with a messy pile of clay. And you should do the same. Allow yourself to write extraordinary bad content.
无论是什么,大多数时候它都是一个肮脏的烂摊子,任何人都不需要看到。 很好。 陶艺家不是从完成的花瓶开始的,而是从一堆乱七八糟的粘土开始的。 您也应该这样做。 让自己写一些非常糟糕的内容。
Whenever I have an idea for an application that I can’t get rid of, I usually create a Github repository and create a very small prototype with a couple of notes. I write bad code and just try to make it work somehow.
每当我有一个无法摆脱的应用程序想法时,我通常会创建一个Github存储库并创建一个带有一些注释的非常小的原型。 我编写了错误的代码,只是尝试使其以某种方式工作。
For an article, I usually create some notes or I just create a Medium article in draft mode and start writing. My first notes contain bullet points, example sentences, ideas for titles and subtitles, how to structure the article, what the goal of my article could be. It is a mess.
对于一篇文章,我通常会创建一些注释,或者只是以草稿模式创建一个中型文章并开始撰写。 我的第一批笔记包含项目符号,例句,标题和副标题的想法,文章的结构,文章的目标。 这是一团糟。
Choose for yourself how you want to approach the first draft. Some people like to approach it in a deductive way which means that you work from the more general to the more specific. Others prefer to work in an inductive way which is the other way around. You move from the specifics to the more general. Or a mix of both. Whatever works for you.
自己选择要处理初稿的方式。 有些人喜欢以演绎的方式进行处理,这意味着您的工作从更一般到更具体。 其他人则喜欢以归纳法工作,反之亦然。 您从细节转向更一般。 或两者兼而有之。 一切为您工作。
I like to use one Pomodoro session of 25 minutes for my first draft because that puts me under time pressure. Working under time pressure supports two important laws.
我喜欢在初稿中使用25分钟的Pomodoro会议 ,因为这使我承受了时间压力。 在时间压力下工作支持两个重要定律。
Parkinson’s law states the following:
帕金森定律规定如下:
“Work expands so as to fill the time available for its completion” — Cyril Northcote Parkinson
“工作不断扩展,以填补完成所需的时间” —西里尔·诺斯科特·帕金森
The Pareto principle (also called the 80/20 rule) on the other hand states:
另一方面, 帕累托原理 (也称为80/20规则)指出:
“For many events, roughly 80% of the effects come from 20% of the causes.” — Vilfredo Pareto
“对于许多事件,大约80%的影响来自20%的原因。” — Vilfredo Pareto
Following these two laws means that I only have 25 minutes to come up with valuable content. Since I only have 25 minutes for that I’m more likely to write down only the important 20% of my thoughts that would probably contribute 80% to the finished product.
遵循这两个定律意味着我只有25分钟的时间来提出有价值的内容。 因为我只有25分钟的时间,所以我更有可能只写下重要的20%的想法,而这些想法可能会占成品的80%。
Moreover, I’m less likely to wander off with my thoughts because the clock is ticking and I have one specific goal in mind.
而且,我不太可能随心所欲,因为时钟在滴答作响,并且我有一个特定的目标。
5.设定SMART目标 (5. Set SMART goals)
“If you can’t measure it, you can’t improve it.” — Peter Drucker
“如果无法衡量,就无法改善。” - 彼得·德鲁克
Goals are important. That’s nothing new. One goal could be:
目标很重要。 没什么新鲜的。 一个目标可能是:
“I want to get better at programming!”
“我想在编程方面变得更好!”
That’s a nice goal but it is rather broad and undefined. How do you want to get better? How long will it take? What do you want to improve specifically? Do you want to learn more about data structures? You should have SMART goals. SMART is an acronym often used in the project management domain and stands for:
这是一个不错的目标,但它是广泛而未定义的。 您想如何变得更好? 这需要多长时间? 您想具体改善什么? 您是否想了解有关数据结构的更多信息? 您应该有SMART目标 。 SMART是项目管理领域中经常使用的首字母缩写,代表:
Specific: Your goal shouldn’t be too general. Otherwise, how do you want to determine the point when you reached your goal? Your goal should be specific and you should choose a specific metric that tells you when you actually reached it.
小号 pecific:你的目标不应该是太笼统。 否则,您如何确定达到目标的时间点? 您的目标应该是特定的,并且应该选择一个特定的指标来告诉您实际何时达到目标。
Measurable: You should be able to track and quantify the progress of your goal. This also increases motivation because you now have a tool to give yourself feedback about the progress.
可衡量的:您应该能够跟踪和量化目标的进度。 这也增加了动力,因为您现在有了一个工具来向自己提供有关进度的反馈。
Achievable: Evaluate your own, current abilities, and check if you can reach your goal with your current skill set. Try to be realistic. Underpromise and overdeliver is a principle that works for many people to achieve small goals step by step.
一个 chievable:评估自己,目前的能力,并检查是否可以与您现有的技能达到自己的目标。 尝试现实一点。 承诺不足和过度投放是一项原则,许多人都可以逐步实现小目标。
Relevant: Does your goal contribute to a higher goal? Is it a sub-solution to a bigger problem? In how far does it help you? Will it lead to more revenue?
[R elevant:你的目标作出贡献向更高的目标? 这是一个更大问题的子解决方案吗? 它对您有多大帮助? 会带来更多收入吗?
Time-bound: A goal that is bound to a deadline helps to keep you on schedule. Setting a deadline for yourself can help to achieve a goal in a more efficient way. Reaching a goal is great, but not if it takes too long.
定时器绑定:绑定到一个最后期限目标,有助于保持你的日程安排。 为自己设定截止日期可以帮助您更有效地实现目标。 达成目标固然很好,但是如果花费的时间太长,就不会达到目标。
Every time you set a goal, it should have these five characteristics. Use whatever tool you may seem fit. Use a piece of paper and write down five columns for a SMART goal. You can even use a Scrum or Kanban board like Trello to assist you. Write down SMART goals before you start working on an article or software product. It will benefit you in the long run.
每次设定目标时,它都应具有以下五个特征。 使用可能适合的任何工具。 用一张纸写下5列以实现SMART目标。 您甚至可以使用Trello之类的Scrum或看板来帮助您。 在开始撰写文章或软件产品之前,请写下SMART目标。 从长远来看,它将使您受益。
Reaching a goal fast is good. Reaching the right goal fast is better.
快速达到目标是好的。 快速达到正确的目标更好。
6.结构 (6. Structure)
“Give me six hours to chop down a tree and I will spend the first four sharpening the axe. “— Abraham Lincoln
“给我六个小时砍下一棵树,我将用头四个时间来削斧头。 “- 亚伯拉罕·林肯
It does not matter if it is an article or a software product you want to create, both of them should have a proper structure and foundation. It is almost like building a house. You start with the foundation, not the roof.
无论是要创建的文章还是软件产品都没有关系,两者都应具有适当的结构和基础。 几乎就像盖房子一样。 您从基础开始,而不是屋顶。
Take my sketch of the human body as an example. I’m not a professional artist as you can see but it helps to explain the analogy I’m after.
以我对人体的草图为例。 如您所见,我不是专业艺术家,但可以帮助解释我所追求的类比。
Sketching is important in the early drawing phases. Sketching helps to get the proportions right. You can add as many details as you want later on trying to mask the underlying mistakes but all the details won’t compensate for bad proportions.
在早期的绘图阶段,素描很重要。 绘制草图有助于正确设置比例。 您可以在以后掩盖潜在错误时添加任意数量的细节,但是所有细节都不能弥补不良的比例。
The same principle is true for software development. You can implement a piece of software that looks great but if the functionality is not right, you cannot compensate that with shiny buttons.
对于软件开发,同样的原则也适用。 您可以实施一个看起来不错的软件,但如果功能不正确,则无法使用闪亮的按钮来弥补这一点。
Writing is no different and you can save yourself a huge amount of time by getting the structure and foundation right before adding the details. Your thoughts should follow a logical line. One step after the other. Build up everything in small increments and have one main point to convey.
写作也没有什么不同,通过在添加细节之前获得结构和基础,您可以节省大量时间。 您的想法应该符合逻辑。 一个接一个的步骤。 逐步构建所有内容,并传达一个要点。
Provide some context by introducing the problem or anything else that is necessary to understand the article. After that, provide a solution to a problem or the main content. Take the reader by the hand and be a guide.
通过介绍问题或理解本文所需的其他任何内容来提供一些背景信息。 之后,提供解决问题或主要内容的方法。 牵着读者的手,成为向导。
I usually think about article structure in terms of sections and their headings. I create sections until the point that I think that every aspect of my article is covered. The sum of all sections should then result in one coherent product. Only after that, I try to fill the sections with details.
我通常根据章节及其标题来考虑文章的结构。 我创建各节,直到我认为涵盖本文的每个方面为止。 然后,所有部分的总和将得出一个连贯的乘积。 只有在那之后,我才会尝试在各个部分中填充细节。
7.了解您的目标受众 (7. Know your target audience)
“Always make the audience suffer as much as possible. “— Alfred Hitchcock
“总是使听众遭受尽可能多的痛苦。 “-阿尔弗雷德·希区柯克
You do not have to take Hitchcock’s advice literally and scare off your users and readers. Unless that’s what they are after. And that’s the main message here.
您不必从字面上接受希区柯克的建议,也不必吓users您的用户和读者。 除非那是他们所追求的。 这就是这里的主要信息。
People who buy books by Alfred Hitchcock or Stephen King have certain assumptions in the back of their heads. They want to be entertained by getting scared. They want horror, thriller or a combination of both, and not a love story.
购买阿尔弗雷德·希区柯克(Alfred Hitchcock)或史蒂芬·金(Stephen King)的书的人在脑海中有些假设。 他们想被吓到被娱乐。 他们想要恐怖,惊悚片或两者兼而有之,而不是爱情故事。
You have to build the right product for the right people. In order to build the right product, you have to know the desires and problems of your customers. You have to know your audience. Who are the people you are writing for? It is a similar concept to software validation which is defined as follows:
您必须为合适的人打造合适的产品。 为了生产合适的产品,您必须了解客户的需求和问题。 您必须了解您的听众。 您正在为谁写作的人? 它与软件验证类似,定义如下:
“An activity that ensures that an end product stakeholder’s true needs and expectations are met.”
“一项确保满足最终产品利益相关者的真实需求和期望的活动。”
Software validation tries to answer the question: Am I building the right product?
软件验证试图回答以下问题:我是否在构建正确的产品?
When you start writing your article you could ask yourself several questions with regards to your target audience such as:
当您开始撰写文章时,您可能会问自己一些与目标受众有关的问题,例如:
- Do they want hard, boring facts, or an emotional rollercoaster? 他们想要困难,无聊的事实,还是情绪激动的过山车?
- What is my niche I am writing for? 我在写什么是我的利基?
- Is the content appropriate according to the skills of my audience? Is it too technical? Is it not technical enough? 内容是否符合听众的技能? 太技术性了吗? 技术不够吗?
- What is the main takeaway of my article? In how far does that help my audience? 我文章的主要内容是什么? 这对我的听众有多大帮助?
Try to see things from the reader’s perspective. A famous quote by Sun Tzu says:
尝试从读者的角度看事情。 孙子的一句名言说:
“If you know the enemy and know yourself, you need not fear the result of a hundred battles. If you know yourself but not the enemy, for every victory gained you will also suffer a defeat. If you know neither the enemy nor yourself, you will succumb in every battle.” — Sun Tzu
“如果您认识敌人并了解自己,则不必担心一百场战斗的结果。 如果您认识自己而不是敌人,那么每获得胜利,您也会遭受失败。 如果您既不认识敌人也不认识自己,那么您将在每场战斗中屈服。” —孙子
While readers and users are not your enemies… in most cases… you can learn a lot from this quote.
尽管读者和用户不是您的敌人,但在大多数情况下,您可以从此报价中学到很多东西。
When you write something that you are not convinced of yourself for an audience that is unknown, you are certainly doomed to fail. When you write something great but you do not know for whom, it is just a gamble if your article will become a success. Finally, when you write great content for the right people, you increase your chances immensely.
当您为陌生的听众写一些自己不相信自己的东西时,您注定会失败。 当您写出很棒的文章而又不知道为谁而写时,如果您的文章获得成功,那只是一场赌博。 最后,当您为合适的人撰写出色的内容时,您的机会将大大增加。
Again, it’s the worst feeling in the world to build something that nobody wants.
同样,构建任何人都不想要的东西是世界上最糟糕的感觉。
8.紫牛 (8. The purple cow)
“The key to success is to find a way to stand out — to be the purple cow in a field of monochrome Holsteins.” — Seth Godin
“成功的关键是找到一种脱颖而出的方法-成为单色荷斯坦牛领域的紫牛。” 塞思·戈丁
Imagine you are driving with your car and you come along a field full of cows. They may differ in size and may have variations of black and white patterns. It is a common sight and you wouldn’t even give them much of your attention. None of them stands out of the herd. However, that is what you want to achieve. Standing out of the herd of articles. You want to be the purple cow that everyone notices immediately.
想象一下,您正在开车,而您却遇到了一片牛群。 它们的大小可能不同,并且可能会有黑白图案的变化。 这是很常见的现象,您甚至不会给予他们太多的关注。 他们都没有脱颖而出。 但是,这就是您想要实现的。 从众多文章中脱颖而出。 您想成为所有人立即注意到的紫牛。
The purple cow example is a common business analogy. Tailored towards Medium, there are different approaches to the problem of getting noticed such as:
紫牛的例子是一个常见的商业类比。 针对中量身定制的解决方法有多种解决方法,例如:
- An engaging title and subtitle 引人入胜的标题和副标题
- A “kicker” 一个“踢球者”
- Customizing the title and subtitle for SEO purposes 自定义标题和副标题以进行SEO
Free stock images from websites like Unsplash, Pexels, Burst, The Stocks, Pixabay for your featured image.
免费库存图片来自像网站Unsplash , Pexels , 突发 , 股票 , Pixabay的精选图片。
Users usually only take a second to decide if they want to click on your article or not. A good title and featured image certainly help.
用户通常只花一秒钟的时间来决定是否要单击您的文章。 好的标题和特色图片肯定会有所帮助。
The same principle is applicable to Apps in the App-store. You have to come up with creative ways to stand out from the crowd. Be the purple cow.
同样的原则适用于App Store中的Apps。 您必须想出新颖的方法来脱颖而出。 成为紫牛。
9.分而治之 (9. Divide and conquer)
“Divide and Conquer.” — Julius Caesar
“分而治之。” - 凯撒大帝
This famous saying by Julius Caesar is also applied in the computer science domain. Divide and conquer can be used as an algorithm design paradigm where
朱利叶斯·凯撒(Julius Caesar)的这句名言也被应用在计算机科学领域。 分而治之可以用作算法设计范式,其中
the algorithm works by recursively breaking down a problem into two or more sub-problems of the same or related type, until these become simple enough to be solved directly. The solutions to the sub-problems are then combined to give a solution to the original problem.
该算法通过将问题递归分解为两个或多个相同或相关类型的子问题来工作,直到这些问题变得足够简单以至于可以直接解决。 然后将子问题的解决方案合并以给出原始问题的解决方案。
If you treat an article like a bigger problem you want to solve then it makes sense to divide the article into smaller sub-problems.
如果将文章视为要解决的较大问题,则将文章分成较小的子问题是有意义的。
On the one hand, this creates motivation and momentum for yourself because you now have small and easy sub-problems instead of one big, monolithic problem. You can link each sub-problem to a milestone you want to achieve and therefore you are creating a way to measure your progress.
一方面,这为您自己创造了动力和动力,因为您现在拥有小的和简单的子问题,而不是一个庞大的整体问题。 您可以将每个子问题链接到要实现的里程碑,因此您正在创建一种衡量进度的方法。
On the other hand, dividing the article into smaller sub-problems can also mean to divide the article visually for the reader. Most of the time, readers find it easier to read an article if they find little breaks in between. You can use a link, image, video, or whatever you like.
另一方面,将文章划分为较小的子问题也可能意味着为读者视觉上划分文章。 在大多数情况下,如果读者之间没有什么休息,他们会更容易阅读文章。 您可以使用链接,图像,视频或任何您喜欢的东西。
Take this article as an example. I divided the article by using images for each section.
以本文为例。 我通过在每个部分使用图像来划分文章。
10.大局 (10. The big picture)
“If you spend your life over analysing every encounter you will always see the tree, but never the forest.” — Shannon L. Alder
“如果您将生命花费在分析每一次相遇上,您将始终看到这棵树,却看不到森林。” -Shannon L. Alder
Are you getting lost in the details? Are you writing on one sentence for almost ten minutes? Can’t you see the forest for the trees?
您是否迷失了细节? 您要用一个句子写将近十分钟吗? 你看不到树林里的树木吗?
From time to time you have to take a step back and look at the problem as a whole. Details mean nothing if they do not contribute to the big picture, i.e., the main problem.
您不时需要退后一步,并从整体上看问题。 如果细节对整体没有帮助,那就是什么,即主要问题。
Take a break and think about what you actually want to achieve with your product. In how far does your current activity contribute to the product? Is it worth it?
休息一下,思考一下您的产品真正想要实现的目标。 您当前的活动对产品有多大贡献? 这值得么?
11.不要成为完美主义者 (11. Don’t be a perfectionist)
“At its root, perfectionism isn’t really about a deep love of being meticulous. It’s about fear. Fear of making a mistake. Fear of disappointing others. Fear of failure. Fear of success.” — Michael Law
“从根本上说,完美主义并不是真正的对细致的热爱。 这是关于恐惧。 害怕犯错误。 害怕让别人失望。 害怕失败。 害怕成功。” —迈克尔·罗(Michael Law)
There is a nice story about a ceramics class that is demonstrating the importance of quantity before quality.
关于陶瓷课 ,有一个很好的故事,它证明了数量先于质量的重要性。
The works of highest quality were all produced by the group being graded for quantity. It seems that while the “quantity” group was busily churning out piles of work — and learning from their mistakes — the “quality” group had sat theorizing about perfection, and in the end had little more to show for their efforts than grandiose theories and a pile of dead clay.
最高质量的作品全部由按数量分级的小组制作。 看起来,虽然“数量”小组忙于进行大量工作,并从错误中吸取教训,但“质量”小组却在理论上探讨了完美,最后,除了宏大的理论和一堆枯死的粘土。
Don’t try to come up with a perfect product and don’t waste too much time theorizing about your product. Practice makes perfect. The master has failed more times than the beginner has even tried.
不要试图提出完美的产品,也不要浪费太多时间对产品进行理论化。 实践使完美。 大师失败的次数比初学者尝试的次数还要多。
Write down the minimum amount of content to get your point across. You can create a temporary appendix section with additional content that may or may not be part of your final article.
写下最少的内容,以表达您的观点。 您可以创建一个临时附录部分,其中可能包含或可能不包含最终文章的其他内容。
Remember the Pareto Principle from tip 4:
记住技巧4中的帕累托原理:
“For many events, roughly 80% of the effects come from 20% of the causes.” — Vilfredo Pareto
“对于许多事件,大约80%的影响来自20%的原因。” —维尔弗雷多·帕累托
Publish your article when you think it’s almost ready. Don’t waste too much time polishing it because you will probably spend 80% of your time getting the last 20% of your article just right. You can still correct small mistakes later on and incorporating your reader’s feedback.
当您认为文章已准备就绪时,请发表文章。 不要浪费太多时间来完善它,因为您可能会花费80%的时间来正确处理文章的最后20%。 您以后仍然可以纠正一些小错误,并吸收读者的反馈。
Done is better than perfect.
做完比求完美强。
12.让它成为愉快的经历 (12. Make it a pleasant experience)
“They may forget what you said but they will not forget how you made them feel. “— Carl Buechner
“他们可能会忘记您说的话,但不会忘记您如何使他们感到。 “ —卡尔·布希纳( Carl Buechner)
Humans are emotional beings. There’s no denying. The content of your articles should also convey emotions to make it a pleasant experience.
人类是情感的存在。 无可否认。 您文章的内容还应传达情感,使之成为愉快的体验。
Many software companies have people who are responsible for the user experience (UX):
许多软件公司都有负责用户体验(UX)的人员 :
User experience (UX) is a person’s emotions and attitudes about using a particular product, system or service. It includes the practical, experiential, affective, meaningful and valuable aspects of human–computer interaction and product ownership.
用户体验 ( UX )是一个人对使用特定产品 , 系统或服务的情感和态度。 它包括人机交互和产品所有权的实践,体验, 情感 ,有意义和有价值的方面。
There is no fixed set of rules on how to achieve a pleasant user experience. It could be a fast loading time, encouraging messages, nice visual effects. Your imagination is the limit.
关于如何获得令人愉悦的用户体验,没有固定的规则集。 这可能是快速的加载时间,令人鼓舞的消息以及不错的视觉效果。 您的想象力是极限。
For Medium articles, you could try to use the several formating options that Medium has to offer. Use stylistic features and see if they make your article more enjoyable.
对于中型文章,您可以尝试使用中型必须提供的几种格式设置选项。 使用样式功能,看看它们是否使您的文章更有趣。
In one of my articles on How To Read Scientific Papers, I tried to be very encouraging because I know how hard and intimidating it can be to face your first research paper.
在我的一篇有关如何阅读科学论文的文章中 ,我试图感到非常鼓舞,因为我知道面对您的第一篇研究论文可能会多么艰辛和令人生畏。
Be creative and picture the reader as a good friend you want to approach in a benevolent manner.
要有创造力,将读者描绘成您想以友善的方式与之交往的好朋友。
13.保持简单,愚蠢 (13. Keep it simple, stupid)
“Everything should be made as simple as possible, but not simpler.” — Albert Einstein
“一切都应该尽可能简单,但不要简单。” - 艾尔伯特爱因斯坦
The KISS principle is an acronym for “keep it simple, stupid”. The KISS principle can not only be applied to software design but also to writing. Try to use simple sentences and make your content easily digestible. Don’t overcomplicate things. Josh Kaufman once said:
KISS原则是“保持简单,愚蠢”的首字母缩写。 KISS原则不仅可以应用于软件设计,而且可以应用于编写。 尝试使用简单的句子,使您的内容易于消化。 不要使事情过于复杂。 乔什·考夫曼曾经说过:
“The more complex a system is and the longer it operates, the more likely it is to suffer a major failure.”
“系统越复杂,运行时间越长,发生重大故障的可能性就越大。”
If you write overly complicated sentences and include a lot of repetitions, your readers will lose interest. Be precise.
如果您写的句子过于复杂,并且重复很多,您的读者将会失去兴趣。 精确点。
14.工具 (14. Tools)
“It may not be the problem that’s the problem. Rather, the problem might be the tool that I’m using to try and solve the problem. “— Craig D. Lounsbrough
“可能不是问题,而是问题。 相反,问题可能是我用来尝试解决问题的工具。 “-克雷格·D·伦斯布鲁
A programmer is nothing without her/his tools. Programmers use IDEs to make their lives easier and they love to automate things. Moreover, most programmers are lazy. I am no exception.
没有他/他的工具,程序员就算什么。 程序员使用IDE使他们的生活更轻松,并且他们喜欢使事物自动化。 而且,大多数程序员都是懒惰的。 我也不例外
A writer can also benefit from a variety of tools to be more efficient. You can use a spell checker like Grammarly. You can add visual aids to your article to support your content. Add images or videos but make sure that you are not violating any copyrights.
编写者还可以受益于多种工具来提高效率。 您可以使用语法检查器(如Grammarly) 。 您可以在文章中添加视觉辅助以支持您的内容。 添加图像或视频,但请确保您没有侵犯任何版权。
15.给予,它将被给予你 (15. Give, and it will be given to you)
“For it is in giving that we receive.” — Francis of Assisi
“因为它是给予我们的回报。” —阿西西的弗朗西斯
There exists this strange universal rule that states those who give generously receive more. I followed this principle in this article by linking other articles that I consider helpful. I use references and give credit where credit is due.
存在着一条奇怪的普遍规则,该规则规定慷慨捐赠的人会得到更多。 在本文中,我通过链接其他我认为有帮助的文章来遵循这一原则。 我使用参考,并在应得的信用额度上给予信用。
When it comes to programming, the same principle applies when you contribute to open source projects. At first sight, it could seem like you worked for free but you get valuable feedback on your programming skills by the community which might help you more in the long run.
在编程方面,为开放源代码项目做出贡献时应遵循相同的原则。 乍一看,您似乎是免费工作,但社区提供了有关编程技能的宝贵反馈,从长远来看可能会为您提供更多帮助。
Build connections with others and you will not regret it.
与他人建立联系,您不会后悔。
16.首先,使其工作,然后使其变得更好 (16. First, make it work, then make it better)
“Make it work, make it right, make it fast.” — Kent Beck
“使它起作用,使其正确,使其快速。” 肯特·贝克
This tip goes hand in hand with the tip about your first draft. Write the minimal amount of sentences to get your point across. Add the details later. First, make it work.
该技巧与您的初稿有关。 写下最少的句子以表达您的观点。 稍后添加详细信息。 首先,使其工作。
Have the mindset of a minimalist and approach the problem in an iterative and incremental way. Iterative means that you work in cycles and iterate over the problem. Incremental means that you build upon the results which you achieved so far. Use a deductive or inductive approach but first make it work.
具有极简主义者的心态,并以迭代和渐进的方式解决问题。 迭代意味着您需要循环工作并迭代问题。 增量意味着您可以基于到目前为止所取得的成果。 使用演绎或归纳方法,但首先使其起作用。
17.不要试图出售 (17. Don’t try to sell)
“Approach each customer with the idea of helping him or her solve a problem or achieve a goal, not of selling a product or service.” — Brian Tracy
“向每个客户提供帮助他们解决问题或实现目标的想法,而不是销售产品或服务。” —布赖恩·特雷西
Imagine you purchased a mobile app. You start it for the first time just to see that it still contains annoying popups and advertisements. You probably feel scammed.
假设您购买了一个移动应用程序。 您是第一次启动它,只是看到它仍然包含烦人的弹出窗口和广告。 您可能会感到被骗。
The same is true for Medium articles. If you publish your articles behind a paywall then the readers already paid Medium to be able to read those articles ad-free. They want the product and nothing more. Don’t lose your reader’s trust by including affiliate links and repeated calls-to-action (CTAs). Don’t abuse your articles with the primary objective of selling a product.
中型文章也是如此。 如果您将文章发布在付费专页后面,那么读者已经付款给Medium,以便能够无广告阅读这些文章。 他们想要产品,仅此而已。 通过加入会员链接和重复的号召性用语(CTA),不要失去读者的信任。 不要以销售产品为主要目的滥用您的文章。
Just try to solve their problems and sales will follow.
只要尝试解决他们的问题,销售就会随之而来。
18.睡在上面 (18. Sleep on it)
“Practice does not make perfect. It is practice, followed by a night of sleep, that leads to perfection. “— Matthew Walker
“实践并不完美。 经过实践,再经过一夜的睡眠,才能达到完美。 “-马修·沃克(Matthew Walker)
In his book, “The First 20 Hours: How to Learn Anything … Fast” Josh Kaufman talks about the importance of sleep. He explains that most of the learning process doesn’t happen while you practice but while you sleep. You achieve the best results when you practice just before going to sleep. Your subconscious will handle the rest.
乔什·考夫曼(Josh Kaufman)在他的书《最初的20小时:如何学习任何东西……快速》中谈到了睡眠的重要性。 他解释说,大多数学习过程并不是在练习时发生,而是在睡觉时发生。 在就寝之前进行练习时,可以达到最佳效果。 您的潜意识将处理其余的事情。
Even if you don’t write your articles just before going to bed, it is almost always a good idea to sleep on a problem when you are stuck. Writing and programming are both creative works and sometimes you just can’t push it.
即使您不是在睡觉前就写文章,也总是在被困时睡个好觉,这总是一个好主意。 写作和编程都是有创意的作品,有时您无法推动。
It often happens that you can come up with a simple solution to a seemingly hard problem after a good night of sleep.
通常情况下,经过一夜的睡眠后,您可以提出一个简单的解决方案来解决看似困难的问题。
19.重构 (19. Refactoring)
“An intuitive definition is that a safe refactoring is one that doesn’t break a program. Because a refactoring is intended to restructure a program without changing its behavior, a program should perform the same way after a refactoring as it does before.” — Martin Fowler
“一个直观的定义是,安全重构是不会破坏程序的。 因为重构的目的是在不改变程序行为的情况下重构程序,所以重构后的程序应以与以前相同的方式执行。” —马丁·福勒(Martin Fowler)
Refactoring is a term mostly heard by Software Engineers. Refactoring makes code easier to read while the functionality remains the same. You can apply the same principle to general writing.
重构是软件工程师经常听到的一个术语。 重构使代码更易于阅读,而功能保持不变。 您可以将相同的原理应用于一般写作。
You probably heard this sentence before: “If it’s easy to read then it was hard to write!”. But nearly nobody writes elegant sentences the first time. It is a process of revising your work repeatedly to the point that it is easy to read without losing the main message.
您可能之前曾听过这句话:“如果容易阅读,那么就很难写作!”。 但是几乎没有人第一次写优美的句子。 这是一个反复修改您的工作,以使其易于阅读而又不会丢失主要信息的过程。
Have the courage to remove sentences. Make your product lean.
有勇气删除句子。 使您的产品精益。
20.营销与分销 (20. Marketing and distribution)
“If a tree falls in a forest and no one is around to hear it, does it make a sound? — George Berkeley
“如果一棵树掉在森林里,没人在周围听到它,它会发出声音吗? —乔治·伯克利
The above citation is a nice analogy to writing an article or creating any type of product. It probably took you some time to write your article. However, how sad would it be if no one ever noticed that it existed in the first place? All your efforts would be in vain.
上面的引用是写一篇文章或创建任何类型的产品的一个很好的类比。 您可能花费了一些时间来撰写文章。 但是,如果没有人注意到它首先存在,会感到多么悲伤? 您所有的努力都是徒劳的。
I recently wrote an article about How To Backup WordPress. I spent several days on it but it was not curated, nor distributed anywhere. Don’t make the same mistakes as I did. The article you are currently reading arose out of the frustration about my WordPress article.
我最近写了一篇有关如何备份WordPress的文章。 我花了几天时间,但它没有策划,也没有分发到任何地方。 不要像我一样犯同样的错误。 您当前正在阅读的文章是出于对WordPress文章的沮丧之情。
Marketing and distribution are almost as important as the product itself. Maybe even more important. Ask yourself: How can I reach as many people as possible who are interested in my product?
营销和分销几乎与产品本身一样重要。 也许更重要。 问问自己:如何吸引尽可能多的人对我的产品感兴趣?
Medium offers different solutions for that:
中号为此提供了不同的解决方案:
Use proper tags for your article. If your article gets curated than it will appear within the topics that it has been curated in. The curation of your article is called “distribution”. Medium has certain guidelines to get curated.
为您的文章使用适当的标签。 如果您的文章得到策划 ,那么它将出现在其策划的主题之内。您的文章的策划被称为“发行”。 中型媒体有一定的指导原则 。
- Submit your article to a publication. Most of them have writing guidelines. Read them and apply them to your article before submitting it. 将您的文章提交到出版物。 他们大多数都有写作指南。 在提交之前,请阅读它们并将其应用于您的文章。
Look up the most active Medium publications and see if one of them would be a good fit.
查找最活跃的Medium出版物 ,看看其中是否合适。
Besides Medium’s built-in features for distribution, you can submit your article everywhere else. Search for online communities that might be interested in your content like Reddit, Forums, Facebook, Instagram. The choice is yours.
除了Medium的内置分发功能外,您还可以在其他任何地方提交文章。 搜索可能对您的内容感兴趣的在线社区,例如Reddit,论坛,Facebook,Instagram。 这是你的选择。
最后的话 (Final words)
I hope you enjoyed this article. Feel free to adjust this list to your own needs. If you have any questions or remarks regarding this article, feel free to leave a comment below.
希望您喜欢这篇文章。 可以根据自己的需要随意调整此列表。 如果您对本文有任何疑问或评论,请随时在下面发表评论。
Are you interested in upcoming updates about my articles or projects? My newsletter keeps you up-to-date once per month!
您对我的文章或项目的近期更新感兴趣吗? 我的时事通讯使您每月更新一次!
翻译自: https://towardsdatascience.com/how-to-write-articles-like-a-software-engineer-d7a1857de81
软件工程师 算法工程师