linux 下外语学习软件_学习外语如何帮助您学习编码

linux 下外语学习软件

The road to becoming a software developer is a long and difficult one, especially for individuals like me who come from a completely non-technical background. I am a communication-oriented person. I have a passion for speaking foreign languages, immersing myself in foreign cultures, and trying all sorts of new food.

成为软件开发人员的道路是漫长而艰难的,尤其是对于像我这样完全没有技术背景的个人而言。 我是一个注重沟通的人。 我热衷于说外语,沉迷于外国文化,并尝试各种新食品。

I am a humanities guy. A liberal arts guy. How did I learn how to code? My obsession with foreign language had a lot to do with it.

我是人文学科的人 一个文科的家伙。 我如何学习编码? 我对外语的痴迷与它有很大关系。

I grew up in Tampa, a beautiful city on the west coast of Florida with a rich Hispanic heritage. My ancestry is Scotch-Irish and my parents moved to Tampa around 30 years ago from North Carolina. My father worked in the famous Columbia restaurant where I remember eating chicken and yellow rice while watching flamenco shows at a young age.

我在坦帕市长大,坦帕市是佛罗里达州西海岸一个美丽的城市,拥有丰富的西班牙裔遗产。 我的祖先是苏格兰爱尔兰人,大约30年前,我的父母从北卡罗莱纳州移居到坦帕。 我父亲在一家著名的哥伦比亚餐厅工作,我记得在小时候看弗拉门戈舞表演时吃过鸡肉和黄米饭。

Many of my friends in school grew up bilingual. I heard them speaking Spanish with their parents at pick-up time. It always fascinated me how they could communicate between themselves without me understanding. It was a certain power I didn’t have. It was like magic. Moreover, my best friend was Brazilian. When he spoke to his family in Portuguese, even my Spanish-speaking friends couldn’t understand. I remember promising myself in the 6th grade that one day I would be trilingual. My dream was to wield the magic of language.

我在学校里的许多朋友都是双语长大的。 我听到他们在接送时间与父母说西班牙语。 这总是让我着迷,他们如何在我不了解的情况下相互交流。 这是我所没有的某种力量。 就像魔术。 而且,我最好的朋友是巴西人。 当他用葡萄牙语与家人交谈时,即使我讲西班牙语的朋友也听不懂。 我记得在六年级时向自己保证过,有一天我会说三种语言。 我的梦想是运用语言的魔力。

Fast forward about 15 years.

快进约15年。

I had accomplished my goal. I studied Linguistics, Spanish, Portuguese, Latin American Studies, and Teaching English as a Second Language at the University of Florida (GO GATORS! ?). I spent time in Sevilla, Barcelona, and Rio de Janeiro during my language studies. As a post-graduation trip, I hiked up Machu Picchu in Peru.

我已经实现了目标。 我在佛罗里达大学学习语言学,西班牙语,葡萄牙语,拉丁美洲研究,并以第二语言教学英语(GO GATORS!?)。 我在语言学习期间曾在塞维利亚,巴塞罗那和里约热内卢度过。 作为毕业后的旅行,我在秘鲁远足了马丘比丘。

My knowledge of foreign languages opened up so many doors for me. I connected with people from completely different cultures, regions, and perspectives. I chowed down on local delicacies: alpaca burgers, cow hearts, fried guinea pig, seared rabbit, roasted chicken hearts, and more.

我的外语知识为我打开了很多门。 我与来自完全不同的文化,地区和观点的人们建立了联系。 我沉迷于当地美食:羊驼汉堡,牛心,豚鼠炒,烤兔,烤鸡心等等。

But ultimately, I decided not to pursue a career in foreign language education like I had planned. The reasons behind that decision are many, and for a different post entirely.

但是最终,我决定不像我计划的那样从事外语教育事业。 做出此决定的原因很多,而且完全是另外一个职位。

I ended up as a software developer, and I couldn’t be happier. However, there was a lot of self-doubt along the way because I made such a leap career-wise. As it turns out, though, learning two foreign languages in the past greatly benefitted me as I learned how to code.

我最终成为一名软件开发人员,所以再也没有比这更快乐了。 但是,一路走来,我有很多自我怀疑的地方,因为我在职业生涯中取得了如此飞跃。 然而,事实证明,过去学习两种外语使我受益匪浅,因为我学会了编码。

I argue that anyone who has learned a foreign language is uniquely suited for learning how to program. There are a lot of similarities between learning a human language and a programming language. I think that these similarities can be boiled down to two main points:

我认为任何学习过外语的人都非常适合学习编程。 学习人类语言和编程语言之间有很多相似之处。 我认为这些相似之处可以归结为两点:

  1. The learning process

    学习过程
  2. The learning mindset

    学习心态

学习过程 (The Learning Process)

The processes through which you learn a human language and a programming language are remarkably similar. You have to pass through similar steps in the same order to learn them effectively.

学习人类语言和编程语言的过程非常相似。 您必须以相同的顺序执行类似的步骤才能有效地学习它们。

步骤1:了解基本要素 (Step 1: Learn the Building Blocks)

When you’re learning a foreign language, you start with memorizing vocabulary words. Vocabulary words are the building blocks of the language. You learn the words that are used most often and the words that form the basics of the human experience: names, numbers, colors, family members, days of the week, months of the year, etc.

学习外语时,首先要记住词汇。 词汇是语言的基础。 您将学习最常用的单词以及构成人类经验基础的单词:姓名,数字,颜色,家庭成员,星期几,一年中的月份等。

You don’t know how these words fit together, but you learn them and their definitions. You may even sing songs or chant them in order to memorize them.

您不知道这些单词如何组合在一起,但是您可以学习它们及其定义。 您甚至可以唱歌或唱歌来记住它们。

In programming, there is a similar step. How does the language handle numbers? How do you perform operations on those numbers? How do you declare a variable and store its value? How do you write, “Hello, world”?

在编程中,有一个类似的步骤。 语言如何处理数字? 您如何对这些号码执行操作? 如何声明变量并存储其值? 你怎么写“你好,世界”?

第2步:将块放在一起 (Step 2: Put the Blocks Together)

The next step in learning a foreign language is putting words together. There’s no real understanding of grammar yet, but you start to understand that words go together to create more complex meaning.

学习外语的下一步是将单词组合在一起。 对语法尚无真正的了解,但是您开始理解单词组合在一起会产生更复杂的含义。

For example, Me llamo Dylan means My name is Dylan. At this point in my journey in Spanish I wouldn’t understand that me is a reflexive pronoun that is attached to the verb llamarse, and I wouldn’t understand that llamois the first person present conjugation of llamarse, but I would know that the way to say your name is to say the phrase Me llamo [name].

例如, Me llamo Dylan意思是My name is Dylan 。 在我的西班牙语旅程中,我现在还无法理解me是一个与动词llamarse相连的反身代词,而且我也不会理解llamollamo的第一人称结合llamarse ,但我会知道称呼您的名字的方式是说短语Me llamo [name]

Similarly, while beginning to learn JavaScript, you may not fully understand why the following code is written how it is, but you’ll understand that it returns the values in the array less than 50:

同样,在开始学习JavaScript时,您可能不会完全理解为什么以下代码是这样编写的,但是您会理解,它返回的数组中的值小于50:

let prices = [25, 30, 80, 90, 100]
prices.filter(price => price < 50)
// returns [25, 30]

You could have written the above code differently. I didn’t have to write it with an arrow function. But at this point, those kinds of subtleties aren’t the most important thing. The most important thing is realizing that you can manipulate arrays through functions.

您可能以不同的方式编写了上面的代码。 我不必使用箭头功能来编写它。 但是在这一点上,那些微妙的东西并不是最重要的。 最重要的是意识到您可以通过函数来​​操纵数组。

步骤3:学习语法 (Step 3: Learn Syntax)

This is the turning point in language learning. This is where you learn how to construct meaningful ideas by using grammar to string together ideas. You learn how to conjugate verbs. You learn the difference between tenses. You learn purely functional words — words that don’t really mean anything on their own, but help us connect phrases and ideas. The Spanish word queis a good example. It is often used as a subordinating conjunction, a word that connects clauses together.

这是语言学习的转折点。 在这里,您将学习如何通过使用语法将思想串在一起来构建有意义的思想。 您将学习如何使动词共轭。 您将了解时态之间的区别。 您将学习纯粹的功能性单词,这些单词本身并不意味着任何意义,但可以帮助我们联系短语和思想。 西班牙语单词que是一个很好的例子。 它通常用作从属连词,一个将子句连接在一起的词。

Grammar is a hard part of learning a new language because it is more abstract than learning words that have real-life references. mesa in Spanish is table. That’s easy to picture. ni siquiera is a phrase that means not even, like “I wouldn’t date him not even for a million dollars.” How do you picture the idea of “not even”? But it’s an important connector put into a specific place in the sentence to determine a relationship between the desire (or lack thereof) to date him and the idea of one million dollars.

语法是学习新语言的难点,因为它比学习具有实际参考意义的单词更抽象。 西班牙文的mesatable 。 这很容易想象。 ni siquiera是一个短语,意思是“ not even ,例如“即使有一百万美元我也不会和他约会”。 您如何看待“不均匀”的想法? 但这是放置在句子中特定位置的重要连接器,用于确定约会他的愿望(或缺乏愿望)与一百万美元的想法之间的关系。

My favorite example of learning syntax in programming is this in JavaScript. It’s a confusing topic at first. Why are we writing this before function calls? What does this mean? Why is it called this? Keywords like this are the grammar of programming. this accesses the context object in which the current code is executing. It don’t necessarily mean anything on its own, but it helps us connect parts of our code.

我最喜欢的编程学习语法的例子是this在JavaScript中。 起初这是一个令人困惑的话题。 我们为什么要在函数调用之前编写this代码? this是什么意思? 为什么这样称呼this ? 像this关键字是编程的语法。 this访问当前代码正在其中执行的上下文对象。 它不一定意味着任何东西,但可以帮助我们连接部分代码。

It’s worth mentioning that grammar varies wildly from one human language to another. That goes for programming languages, too. Just imagine the differences between object-oriented languages and functional languages. Also strongly-typed and weakly-typed languages. They look and act differently.

值得一提的是,语法从一种人类语言到另一种人类语言都有很大的不同。 编程语言也是如此。 只需想象一下面向对象语言和功能语言之间的区别。 也是强类型和弱类型的语言。 他们的外观和行为有所不同。

步骤4:像当地人一样说话 (Step 4: Speak Like a Native)

At this step you can get the message across, but it sounds weird. People can tell you’re not a native speaker. Maybe you have a heavy accent. Maybe your grammar makes sense logically, but it’s just not the way people would normally express the idea.

在这一步,您可以传达消息,但听起来很奇怪。 人们可以告诉您您不是母语人士。 也许您口音很重。 也许您的语法在逻辑上是有道理的,但这并不是人们通常表达这种想法的方式。

Working on this step is the most rewarding but also the most difficult. Language students pride themselves on sounding native. Your accent is a big part of this, but there are a lot of other things to keep in mind. Using idiomatic phrases is one. Word choice is another. Register — when to be formal, when to be casual, when to be vulgar — is another complicated part of sounding native.

进行此步骤是最有意义但也是最困难的。 语言学生为自己的母语感到骄傲。 您的口音在其中很重要,但还有许多其他事项需要牢记。 使用惯用语是一种。 选择单词是另一回事。 登记-什么时候正式,什么时候休闲,什么时候粗俗-是听起来本土的另一个复杂部分。

When I was studying abroad in Rio de Janeiro, my host mother was showing me around town on the first day. I lived in Copacabana three blocks from the beach. I was thinking how beautiful it would be to watch the sunset from the beach, but I didn’t know the word for “sunset!” So I asked instead, At what time does the sun disappear? Horribly formal, very stilted way to ask about the sunset. But the way I asked was completely grammatically correct, so she shot me a weird look and answered. Then politely provided me with pôr-do-sol as the word for sunset.

当我在里约热内卢出国学习时,我的接待母亲在第一天就带我到城里逛逛。 我住在离海滩三个街区的科帕卡巴纳。 我当时在想从沙滩上看日落会多么美丽,但我不知道“日落!”这个词。 所以我问, At what time does the sun disappear? 询问日落的方式非常正式,非常固执。 但是我问的方式在语法上是完全正确的,所以她给我开了个怪异的表情,然后回答了。 然后礼貌地为我提供了pôr-do-sol为日落字。

Coding is the same. You have many options (in some languages more than others) to express an idea. There is a creative — maybe even artistic — side to coding due to the flexibility with which you can accomplish your goals.

编码是相同的。 您有很多选择(某些语言比其他语言更多)来表达想法。 由于您可以灵活地实现目标,因此在编码方面有创造性甚至艺术性。

But sounding native in code is important, too. I learned early on that your code should be readable by other developers. No one wants to read code that is improperly indented or where there’s weird unnecessary whitespace. People want logically organized code. People want variable names that make sense. People want helpful comments.

但是听起来很自然的代码也很重要。 我很早就了解到您的代码应该可供其他开发人员阅读。 没有人愿意阅读缩进不正确的代码,或者在有奇怪的不必要空格的地方阅读代码。 人们想要逻辑组织的代码。 人们想要有意义的变量名。 人们想要有用的评论。

Similarly, following conventions is important. Can you use divs to make headers and footers for a page? Yes. But why would you? HTML5 gave us header and footer tags to help with SEO, accessibility, and readability of code by other developers. If you continue to use divs, the code will execute fine, but people will raise an eyebrow at it.

同样,遵循约定很重要。 您可以使用div来制作页面的页眉和页脚吗? 是。 但是你为什么呢? HTML5为我们提供了headerfooter标签,以帮助其他开发人员提高SEO,可访问性和代码的可读性。 如果继续使用div ,代码会很好地执行,但是人们会对此感到不安。

学习心态 (The Learning Mindset)

It takes a certain mindset to excel as a language student. You have to be childlike: hungry to understand the world around you, willing to accept new information as you discover it, and unafraid of making mistakes or looking silly.

要成为一名语言专业的学生,​​必须具备一定的心态。 您必须像孩子一样:渴望了解周围的世界,乐于接受发现的新信息,并且不怕犯错误或看起来很傻。

Learning a foreign language is frustrating because you have to learn certain basics or rules of the language then later find out that there are a ton of exceptions to those rules. For example, in Spanish you usually put the adjective after the noun. So pretty woman would be mujer bonita, where “bonita” is “pretty”. This is awkward for English speakers learning Spanish because in English you generally put the adjectives before the nouns.

学习外语令人沮丧,因为您必须学习该语言的某些基础知识或规则,然后再发现这些规则有很多例外。 例如,在西班牙语中,通常将形容词放在名词之后。 这样pretty woman就是mujer bonita ,其中“ bonita”是“ pretty”。 对于讲西班牙语的英语使用者来说,这很尴尬,因为在英语中,您通常将形容词放在名词之前。

As it turns out, though, there are plenty of instances in Spanish where the adjective goes before the noun! In fact, some adjectives you can put either before or after the noun, and the placement changes the meaning of the sentence:

然而,事实证明,西班牙语中有很多实例,形容词位于名词之前! 实际上,可以在名词之前或之后放置一些形容词,并且放置会更改句子的含义:

Mi amiga vieja // My old (in terms of age) friend
Mi vieja amiga // My old (you have known her for a long time) friend

A successful language student is able to work through the frustration that comes along with these paradigm shifts. Instead of thinking, “What do you mean adjectives can come before nouns?! What a waste of time! You should have told me that in the first place!” they would say, “How interesting! So it turns out that there are instances where an adjective before a noun adds nuance to the sentence’s meaning. I’m glad I learned the general rule first and then the exceptions so I didn’t get confused.”

一个成功的语言学生能够克服这些范式转换带来的挫折感。 不用思考,“您的意思是形容词可以出现在名词之前吗?! 真是浪费时间! 首先,你应该告诉我的!” 他们会说:“多么有趣! 因此,事实证明,在某些情况下,名词之前的形容词会给句子的含义增加细微差别。 我很高兴我先学会了通用规则,然后才学会了例外,因此我不会感到困惑。”

A good language student does not seek to understand a language all at once. They realize that it’s a constant practice. And furthermore, the understanding of a language is a moving target. Languages are constantly changing and evolving. As a language student, you have to accept that standards and conventions are constantly changing and you have to keep up to date with them.

一个好语言的学生不会试图一次全部理解一种语言。 他们意识到这是一种持续的做法。 而且,对语言的理解是一个移动的目标。 语言在不断变化和发展。 作为语言学生,您必须接受标准和约定在不断变化,并且必须与时俱进。

You need a similar learning mindset when learning to program.

学习编程时,您需要类似的学习心态。

When I first learned how to iterate through arrays in JavaScript, I did so with a for loop. That was the only way I knew how to. Later on, I discovered .forEach(), .filter(), and .map(). Those blew my mind at the time! Even later I discovered .every(), .some(), and .reduce(). It turns out that there are many more ways to iterate through arrays than I originally knew, but I built my base knowledge of iteration with for loops, then added to and modified my understanding of iteration as time went on.

当我第一次学习如何在JavaScript中遍历数组时,我使用了for循环。 那是我唯一知道的方法。 后来,我发现了.forEach() .filter().map() 。 那些让我震撼! 甚至后来我发现.every() .some().some() .reduce() 。 事实证明,要遍历数组有比我原来知道的更多的方法,但是我使用for循环建立了迭代的基础知识,然后随着时间的流逝增加并修改了对迭代的理解。

Just as human languages evolve, so do programming languages. I have heard a lot of developers complain about having to learn new frameworks every several years. I don’t understand the complaints. New frameworks often make using the language easier. It’s our job as a software developer to stay current on the best practices and new trends within programming languages.

正如人类语言的发展一样,编程语言也是如此。 我听说许多开发人员抱怨每隔几年必须学习新的框架。 我不明白这些抱怨。 新的框架通常使使用该语言更加容易。 作为软件开发人员,我们的工作是随时了解编程语言中的最佳实践和新趋势。

Software developers also have to stay up to date with the release of new language versions. For example, with the release of ES6 JavaScript, arrow functions became (deservedly) popular. Oftentimes, they make code easier to read and write. Why stick with ES5 syntax when there is a better alternative? It doesn’t make sense to be stuck in old ways.

软件开发人员还必须及时了解新语言版本的发布。 例如,随着ES6 JavaScript的发布,箭头功能变得(当之无愧)流行。 通常,它们使代码更易于读写。 如果有更好的选择,为什么还要坚持使用ES5语法? 坚持旧的方式是没有道理的。

Perhaps the most important character trait in a successful language learner is the ability to make mistakes.

在成功的语言学习者中,最重要的性格特征可能是犯错的能力。

Fear holds us back from learning. Fear of failure. Fear of looking stupid. Fear of not measuring up to expectations. Fear of making mistakes. So a lot of people keep their mouth shut. They figure that if they don’t talk in a foreign language then they can’t make mistakes. This is, of course, a poor strategy since the crux of learning a foreign language is speaking.

恐惧使我们无法学习。 害怕失败。 害怕看起来愚蠢。 害怕没有达到期望。 害怕犯错误。 所以很多人闭嘴。 他们认为,如果他们不说外语,就不会犯错误。 当然,这是一个差劲的策略,因为学习外语的关键是说话。

I think that this is one reason that children are such good learners. They’re not afraid! They make mistake after mistake and don’t feel ashamed. They say nonsensical things all the time. They blabber. They make up words. They tell stories with no clear purpose or plot. They experiment. And through all their mess-ups and trials and errors, they discover the accepted patterns of their native language.

我认为这是孩子成为如此优秀的学习者的原因之一。 他们不怕! 他们犯错又犯错,不会感到羞耻。 他们一直在讲荒谬的话。 他们笨拙。 他们组成单词。 他们讲的故事没有明确的目的或情节。 他们实验。 通过所有的混乱,反复试验和错误,他们发现了可接受的母语模式。

It’s much harder for adults to adopt this mindset with a second language, but I believe that if you learn how to laugh at yourself you can take the sting out of mistakes and enjoy the learning journey.

对于成年人来说,采用第二语言来接受这种思维方式要困难得多,但是我相信,如果您学会了嘲笑自己,那么可以摆脱错误,享受学习的过程。

I remember the summer I studied abroad in Sevilla, Spain. I had just begun to take learning Spanish seriously. I was so excited to be in the beautiful south of Spain, but boy was it hot! And I’m from Florida, so that’s saying something!

我记得在西班牙塞维利亚出国学习的那个夏天。 我刚刚开始认真地学习西班牙语。 我很高兴能来到西班牙美丽的南部,但是男孩真热! 我来自佛罗里达,这是在说些什么!

One night I was walking home from a bar with a group of Spaniards and some American friends. We were all sweating it was so hot even with the sun down. I had had enough, and I exclaimed ¡Dios mío, estoy caliente!which translates to Oh my god, I'm horny! ??‍♂️

一天晚上,我正从酒吧里和一群西班牙人和一些美国朋友一起回家。 我们都汗流it背,即使在太阳下山的时候,也是如此的热。 我受够了,我惊呼¡Dios mío, estoy caliente! 意思是Oh my god, I'm horny! ??♂️

After a moment of shocked silence they erupted into laughter. What I should have said was ¡Dios mío, tengo calor!. It’s a common mistake among English speakers learning Spanish. I was embarrassed, but I was laughing as hard as they were once I realized my mistake. It became one of our favorite stories to tell back home. And trust me, I’ve never forgotten how to say I'm hot since.

沉默片刻之后,他们爆发出笑声。 我该说的是¡Dios mío, tengo calor! 。 在讲西班牙语的英语使用者中这是一个常见的错误。 我很尴尬,但是当我意识到自己的错误时,我就和他们一样笑。 这成为我们回国时最喜欢的故事之一。 相信我,此后我再也没有忘记怎么说I'm hot

底线 (The Bottom Line)

Don’t be afraid to learn how to code if you’re a humanities person like me. Many dev teams are looking for people with strong interpersonal skills!

如果您像我这样的人文学科,不要害怕学习如何编码。 许多开发团队正在寻找具有较强人际交往能力的人!

Your background is a double-edged sword. You will certainly have to play catch up, but on the other hand, you are predisposed to learn programming very effectively. And the best news is that you bring a whole swath of soft skills to the table that traditional programmers might not.

您的背景是一把双刃剑。 当然,您必须赶上赶超的步伐,但是,另一方面,您倾向于非常有效地学习编程。 最好的消息是,您将传统软件可能没有的全部软技能带到了餐桌上。

Learning a second language can be fun, rewarding, and fulfilling. I found that learning programming can be fun, rewarding, and fulfilling, too. With an understanding of the learning process and the right attitude you can succeed at — and enjoy — both.

学习第二种语言可能会很有趣,有益和充实。 我发现学习编程也可以很有趣,有益和充实。 通过了解学习过程和正确的态度,您既可以成功,也可以享受其中的乐趣。

翻译自: https://www.freecodecamp.org/news/how-learning-a-foreign-language-helps-you-learn-to-code-937e20b351f6/

linux 下外语学习软件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值