计算机编程术语_如果您是编程新手,这些是您应该知道的最重要的计算机科学术语...

计算机编程术语

by Zhia Hwa Chong

志华化

如果您是编程新手,这些是您应该知道的最重要的计算机科学术语 (These are the top Computer Science terms you should know if you’re new to programming)

关键的CS术语和概念用简单的英语解释 (Crucial CS terminologies and concepts explained in simple English)

Since many friends and family from non-CS backgrounds ask me about different terminologies and concepts, I will attempt to explain the following Computer Science concepts in the simplest language possible.

由于来自非CS领域的许多朋友和家人向我询问不同的术语和概念,因此,我将尝试以最简单的语言来解释以下计算机科学概念。

In this quick guide, you’ll learn about what each term/concept means, and why it matters:

在此快速指南中,您将了解每个术语/概念的含义以及重要性

  • Backend Development

    后端开发
  • Frontend Development

    前端开发
  • Programming languages

    编程语言
  • Algorithms

    演算法
  • API

    API
  • Bug

    虫子
  • Open Source

    开源的
  • Crowdsource

    众包

At the end of this article, I’ll also share some resources for you to learn more!

在本文的结尾,我还将分享一些资源供您学习更多!

后端开发 (Backend Development)

You might’ve heard the term “Backend Development” thrown around quite a bit. Especially if you’ve been hanging around LinkedIn.

您可能已经听说过“后端开发”一词了。 特别是如果您一直在LinkedIn闲逛。

“Backend”, in this case, refers to a layer of the technology stack. This mostly involves writing, or maintaining, a web service with a database for keeping data.

在这种情况下,“后端”是指技术堆栈的一层。 这主要涉及编写或维护带有用于保存数据的数据库的Web服务。

Often times, backend development is associated with technologies such as Java, Scala, Python, DynamoDB, MongoDB, nodeJS, MySQL, MapReduce and many, many more.

通常,后端开发与Java,Scala,Python,DynamoDB,MongoDB,nodeJS,MySQL,MapReduce等许多技术相关联。

This is in contrast with front-end development, which often refers to the user interface (UI) layer, or customer-facing side of a feature.

这与前端开发相反,前端开发通常指的是用户界面(UI)层或功能的面向客户方面。

为什么这很重要 (Why is this important)

Understanding the differences between frontend and backend development lets you know what components you should think about before you start developing an app in the future.

了解前端和后端开发之间的差异,可以了解在将来开始开发应用程序之前应该考虑哪些组件。

前端开发 (Frontend Development)

Frontend development often entails working on customer-facing features, such as a web page, or an iOS/Android app.

前端开发通常需要使用面向客户的功能,例如网页或iOS / Android应用程序。

There are different types of technologies involved here, such as HTML, CSS, JavaScript, jQuery, React, Angular, Swift etc.

这里涉及不同类型的技术,例如HTML,CSS,JavaScript,jQuery,React,Angular,Swift等。

The reason I call them technologies and not programming languages is because some of these are frameworks that help you set up your bases and guide the way you program, but they are not programming languages in themselves. Examples of these are React and Angular.

之所以将它们称为技术而不是编程语言,是因为其中一些框架可以帮助您建立基础并指导编程方式,但它们本身并不是编程语言。 这些示例是React和Angular。

A programming language is simply a way for humans to communicate with computers. Some might argue that HTML is a programming language… I think that’s a topic for another day. ?

编程语言只是人类与计算机通信的一种方式。 有人可能会认为HTML是一种编程语言……我认为这是另一天的话题。 ?

它为什么如此重要 (Why is it important)

Frontend development used to be just HTML, CSS and JavaScript. Today, it’s a whole beast by itself with its own technology stack and build tools. Frontend technology is progressing at lightning speed. I highly encourage learning frontend tools so that you can understand what’s happening in today’s programming world.

前端开发过去只是HTML,CSS和JavaScript。 今天,它本身就是一个完整的野兽,拥有自己的技术堆栈和构建工具。 前端技术正在飞速发展。 我强烈建议您学习前端工具,以便您可以了解当今的编程世界。

程式语言 (Programming language)

A computer is very good at executing the commands it is told. In order for us human beings to communicate with a computer, we need a common set of understandable languages —a set of instructions that both humans and computers can agree on and communicate with.

计算机非常擅长执行被告知的命令。 为了使人类能够与计算机进行通信,我们需要一套通用的可理解语言 -一组人类和计算机都可以同意并与之通信的指令。

In the human world, we use languages such as English, Mandarin, Spanish etc to communicate.

在人类世界中,我们使用英语,普通话,西班牙语等语言进行交流。

When it comes to computers, we call it a programming language. A programming language allows humans and computers to communicate. Examples of programming languages are Java, C++, Python and many more.

在计算机方面,我们称其为编程语言 。 一种编程语言允许人与计算机进行通信 。 编程语言的示例包括Java,C ++,Python等。

它为什么如此重要 (Why is it important)

Learning a programming language allows you to understand how something you see on the Internet works underneath the hood — it’s like knowing how and why your car runs. With some elbow grease, you will be able to build your own apps, like Candy Crush or Twitter too.

学习编程语言可以使您了解在引擎盖下如何在Internet上看到某些东西,就像知道汽车的运行方式和原因。 有了一些肘部润滑脂,您就可以构建自己的应用程序,例如Candy Crush或Twitter。

演算法 (Algorithms)

A process or set of rules to be followed in calculations or other problem-solving operations, especially by a computer. — Google :)
计算或其他解决问题的操作(尤其是计算机)要遵循的过程或一组规则。 - 谷歌 :)

Computers are great at executing instructions, and as software engineers we write instructions for the computers to execute. An algorithm is a list of steps or instructions that can be performed with or without a computer in order to solve a specific problem.

计算机擅长执行指令,作为软件工程师,我们为计算机编写指令以执行。 算法可以使用或不使用计算机执行以解决特定问题的步骤或指令的列表。

One of the first problems we learn as computer science students is the problem of sorting. The essence of it is to sort a set or a collection of items in the most efficient manner.

作为计算机科学学生,我们学习的第一个问题是排序问题。 它的本质是以最有效的方式对一组或一组项目进行排序。

There are many ways of sorting. A popular one is Bubble Sort, otherwise known as “comparison sort”. It involves comparing and picking the larger of two items and repeating for all other elements until everything is eventually sorted. Others include Insertion Sort, Merge Sort and many, many more!

有很多排序方式。 流行的是冒泡排序 ,也称为“比较排序”。 它涉及比较和挑选两个项目中较大的一个,并重复所有其他元素,直到最终将所有内容排序。 其他还包括插入排序 , 合并排序等等!

I highly encourage you to explore them, as it’s a fascinating introduction to algorithms. Here’s a Youtube video to learn more about sorting algorithms.

我强烈建议您探索它们,因为这是对算法的有趣介绍。 这是一个Youtube视频,以了解有关排序算法的更多信息。

它为什么如此重要 (Why is it important)

Algorithms are the core of Computer Science — understanding what algorithms are and how they work makes you a better software engineer. Period.

算法是计算机科学的核心-了解什么是算法以及它们如何工作使您成为一名更好的软件工程师。 期。

API (API)

API, a.k.a application programming interface, a.k.a a source of information. In more concrete terms, imagine you had a lemonade well at home. Your neighbors want a sip of your lemonade well, but you don’t want the well to get polluted. What do you do, then?

API,又名应用程序编程接口,又名信息源。 具体来说,假设您在家中有柠檬水。 您的邻居想要well一口柠檬水,但是您不想让这口水受到污染。 那你怎么办呢?

You decided to build a hose that connects to a small hose outside your house. All your neighbors who want a taste of your magical lemonade will line up and open the hose to access your lemonade. All this without ever coming close to your well, and you can also control when to pump the lemonade, swap out the lemonade if your well runs dry someday, or maybe charge people who drink a lot of lemonade.

您决定建造一条软管,以连接到房屋外的一条小软管。 您所有想要品尝神奇柠檬水的邻居都将排队,打开软管进入您的柠檬水。 所有这些都不会靠近您的井,您还可以控制何时抽柠檬水,如果一天中的井干了,换掉柠檬水,或者对喝大量柠檬水的人进行收费。

This is the idea behind many companies these days — these companies build a “well” of precious data and then sell it to others who wish to access that data via an API.

这就是如今许多公司背后的想法-这些公司建立了“大量”的宝贵数据,然后将其出售给希望通过API访问该数据的其他人。

它为什么如此重要 (Why is it important)

The internet today relies on seamless communication between different services. That’s how we’re able to build tools/websites that talk to each other. The API is the foundational layer that allows all of the communication to happen. That’s why it’s important to know how and what the Internet uses to communicate.

今天的互联网依赖于不同服务之间的无缝通信。 这就是我们能够构建相互对话的工具/网站的方式。 API是允许所有通信发生的基础层。 这就是为什么重要的是要知道互联网用于通信的方式和方式。

虫子? (Bug ?)

You might’ve seen the following meme on social media websites, and might not have understood what it really meant.

您可能已经在社交媒体网站上看到了以下模因,但可能没有真正理解它的含义。

A bug is an error in a computer program that prevents the program from running as expected.

错误是计算机程序的错误,它阻止程序按预期运行。

For example, let’s assume you downloaded an iOS application, which is a type of computer program, that is supposed to show the local weather temperature in Fahrenheit. However, the iOS application might show the temperature in Celsius only, instead of the Fahrenheit you expected.

例如,假设您下载了一个iOS应用程序,它是一种计算机程序,应该显示华氏温度。 但是,iOS应用程序可能仅显示摄氏温度,而不是您预期的华氏温度。

In such a case, the program is not performing as expected (should show Fahrenheit, not Celsius), and you would call the error a bug.

在这种情况下,程序无法按预期方式运行(应显示华氏温度,而不是摄氏温度),并且您将错误称为错误。

This is so common in the industry that software engineers turned it into an inside joke, hence the meme, “it’s not a bug, it’s a feature”.

这在行业中非常普遍,以至于软件工程师把它变成了一个内在的笑话,因此,模因“这不是错误,而是功能”。

为什么重要 (Why it is important)

Bugs happen all the time. Knowing this helps you navigate the Internet and point things out when you see something not working right. Next time around, you’ll call it a “bug” correctly rather than “that thing there doesn’t hover right”.

漏洞始终存在。 知道这一点有助于您浏览Internet并在发现不正常的情况时指出问题。 下次,您将正确地将其称为“错误”,而不是“那里的东西没有正确悬停”。

开源的 (Open Source)

I’ll try to explain Open Source with a simple analogy I thought up :)

我将尝试用我想到的一个简单的类比来解释开源:)

Imagine that you are the owner of a lemonade stand, and you own a special recipe for making the best lemonade in the city. You don’t share the secret recipe with anyone because you’re afraid that someone else might take it and steal your customers. Your secret recipe is considered “Closed Source” in this case, where no one but you is allowed access to it.

想象一下,您是柠檬水摊位的所有者,并且拥有一种特殊的配方,可以制作出城市中最好的柠檬水。 您不会与任何人共享秘密食谱,因为您担心其他人会窃取并窃取您的客户。 在这种情况下,您的秘密秘方被视为“隐藏源”,除您之外,任何人都不能访问它。

Alternatively, imagine that you share your lemonade recipe freely online, and use the power of the Internet to help you improve it so that everyone can enjoy and benefit from the best lemonade possible. In this case, your recipe is considered “Open Source” because it is made freely available and others may contribute, use and/or modify it.

或者,假设您在网上自由共享您的柠檬水配方,并利用Internet的功能来改进它,以便每个人都可以享受最好的柠檬水并从中受益。 在这种情况下,您的食谱被视为“开源”,因为它是免费提供的,其他人可能会贡献,使用和/或修改它。

This term has become much more popular with the rise of Facebook and the wave of tech companies that encourage the Internet community to participate in the development of new and exciting technologies.

随着Facebook的兴起和鼓励互联网社区参与新的激动人心的技术发展的科技公司浪潮,这一术语变得越来越流行。

它为什么如此重要 (Why is it important)

The Internet has progressed that much faster in the past few years due to open source. It’s a revolution, and everyone should know why it makes sense to make things for free and share them with the world.

过去几年中,由于开放源代码,互联网的发展速度大大提高。 这是一场革命,每个人都应该知道为什么免费制作东西并与世界分享这些东西才有意义。

众包 (Crowdsourcing)

Crowdsourcing — To obtain (information or input into a particular task or project) by enlisting the services of a large number of people, either paid or unpaid, typically via the Internet.
众包(Crowdsourcing)—通过征集大量有偿或无偿人员的服务来获取(信息或输入特定任务或项目),通常是通过Internet。

Crowdsource is the idea of getting a large group of people to contribute to a common cause.

众包(Crowdsource)的想法是使一大群人为共同的事业做出贡献。

Let’s assume you’re running that same lemonade stand again. Your customers are saying your lemonade needs a new flavor. You realize that using the power of the Internet, you can ask people to help you brainstorm the best lemonade recipe.

假设您再次运行同一柠檬水架。 您的客户说您的柠檬水需要一种新口味。 您意识到利用互联网的力量,可以要求人们帮助您集思广益的最佳柠檬水配方。

You can then start a Twitter account and start getting people to contribute their best lemonade recipe from around the world. This is called Crowdsourcing, which is the act of getting people to contribute to a common cause (in this case, lemonade-making).

然后,您可以启动Twitter帐户,并开始促使人们贡献来自世界各地的最佳柠檬水食谱。 这就是所谓的众包(Crowdsourcing),它是促使人们为共同事业(在本例中为柠檬水制作)做出贡献的行为。

它为什么如此重要 (Why is it important)

The Internet has allowed the entire population to unite and put its best brains behind some of the toughest challenges in the world. Crowdsourcing has allowed us to do it seamlessly through the Internet. I think that’s a huge step forward for humankind.

互联网使全体人民团结起来,尽全力解决世界上一些最艰巨的挑战。 众包使我们能够通过Internet无缝地做到这一点。 我认为这是人类向前迈出的一大步。

  • Stanford’s Online CS 101 — the course gives you a basic overview of CS terminologies, how the Internet works, how digital images are formed and processed etc. Best of all, it’s FREE!

    斯坦福大学的在线CS 101 —本课程为您提供CS术语的基本概述,互联网的工作方式,数字图像的形成和处理方式等。最重要的是,它是免费的!

  • Python Crash Course — One of the best resources to get started with Python programming. If you’d like to get your hands dirty with programming, I recommend starting with Python and the following book.

    Python速成课程 —入门Python编程的最佳资源之一。 如果您想动手编程,我建议您从Python和下一本书开始。

  • Python, Practical Guide — This is an interesting book to get, after you’re done with the Python Crash Course. I imagine you can do most of the stuff in here without the book, but it does give you more detailed step-by-step instructions on how to do it. Great for people who prefer to learn by example.

    Python,实用指南 —在完成Python Crash课程之后,这是一本有趣的书。 我想您可以在无需本书的情况下完成此处的大部分工作,但是它确实为您提供了有关操作方法的更详细的分步说明。 非常适合喜欢通过榜样学习的人。

  • Introduction to Algorithms — If you’d like to learn more about algorithms, which is a core tenet of computer science, this book comes highly recommended. This is THE textbook for many CS courses.

    算法简介 —如果您想了解有关算法的更多信息,这是计算机科学的核心宗旨,强烈建议您本书。 这是许多CS 课程教科书。

  • Acing the Coding Interview — This is my personal coaching course, where I show you how I prepared for my interviews, my tips and tricks for acing the coding interview, and many more.

    进行编码面试 —这是我的个人教练课程,向您展示如何为面试做准备,如何提高编码面试的技巧和窍门等。

Zhia Chong is a software engineer at Twitter. While not slinging code, he’s playing tennis, writing articles, or making Youtube videos.

Zhia Chong是Twitter的软件工程师。 他不花代码,而是打网球,写文章或制作Youtube视频 。

If you enjoyed this article and would like to get a copy of this in PDF, do consider subscribing to my mailing list where I share industry news, programming tidbits, interview notes, and much more!

如果您喜欢这篇文章,并希望获得PDF的副本,请考虑订阅我的邮件列表 ,我在其中共享行业新闻,编程花絮,面试笔记等等!

翻译自: https://www.freecodecamp.org/news/these-are-the-top-computer-science-terms-you-should-know-if-youre-new-to-programming-fc8592242622/

计算机编程术语

你可能感兴趣的:(计算机编程术语_如果您是编程新手,这些是您应该知道的最重要的计算机科学术语...)