学习中的经验教训很重要_有时最难的教训是最重要的教训

 2023-09-05 阅读 81 评论 0

摘要:学习中的经验教训很重要by Corey Slaven 通过Corey Slaven 有时最难的教训是最重要的教训 (Sometimes the hardest lessons are the most important ones to learn) As you may know, being a software engineer is a constant process. In an industry that moves as fast as

学习中的经验教训很重要

by Corey Slaven

通过Corey Slaven

有时最难的教训是最重要的教训 (Sometimes the hardest lessons are the most important ones to learn)

As you may know, being a software engineer is a constant process. In an industry that moves as fast as tech, there are lots of new things to learn. New frameworks, new languages, new hardware.

如您所知,成为软件工程师是一个持续的过程。 在一个像科技一样快的行业中,有很多新东西需要学习。 新框架,新语言,新硬件。

It never stops.

它永远不会停止。

I just completed my first year as a junior software engineer. This year challenged me beyond anything I could have ever imagined. I have decided to share with you the most important things that I have learned in the past year as a developer.

我刚完成第一年的初级软件工程师。 今年对我的挑战超出了我的想象。 我已决定与您分享我作为开发人员在过去一年中学到的最重要的事情。

如何学习新的代码库 (How to learn a new codebase)

I cannot tell you how happy I was to start my career as a software engineer. I walked in with a smile on my face ready to learn.

我无法告诉您开始成为软件工程师的职业生涯有多高兴。 我笑着走进去,准备学习。

I was convinced that I knew everything that I needed to know to get up to speed on any project that I was put on.

我坚信,我知道我所需要了解的一切,以便快速完成我所从事的任何项目。

I was ready to conquer the world.

我准备征服世界。

I quickly learned that this was not the case.

我很快得知情况并非如此。

My jaw dropped to the floor when I started working on my first issue. The project I was working on was larger than anything that I had ever touched. I was having trouble just navigating around.

当我开始处理第一期杂志时,我的下巴掉了下来。 我正在从事的项目比我接触过的任何项目都要大。 我在浏览时遇到了麻烦。

It was difficult for me to see how all of the different pieces interacted. I was just staring at the screen at one point, when one of the senior developer told me to stop.

我很难看到所有不同部分之间的相互作用。 当一位高级开发人员告诉我停下来时,我只是盯着屏幕看。

“Stop staring at the screen! Just break the code!”

“别盯着屏幕! 破坏密码吧!”

This was a terrifying thing to be told. What if I broke something important, or something couldn’t be fixed?

这是一件令人恐惧的事情。 如果我破坏了重要的东西或无法解决的东西怎么办?

I was quickly reassured that nothing could go wrong, as all of our code is maintained in version control. As long as I was working on my own branch, everything could be reverted back to normal.

我很快就放心,不会出错,因为我们所有的代码都在版本控制中维护。 只要我在自己的分支上工作,一切都可以恢复为正常。

I really just needed to start breaking the code.

我真的只需要开始破坏代码。

I started commenting out bits and pieces, guessing what would work and what wouldn’t.

我开始点点滴滴地评论,猜测哪些行得通,哪些行不通。

Slowly but surely that helped me recognize how different parts of the system interacted with each other.

慢慢地但可以肯定的是,这有助于我认识到系统的不同部分是如何相互作用的。

By breaking things, I was able to see what was needed in a codebase and even what may not be needed. It helped me not only figure out how the code worked, but also that some code didn’t even need to be there.

通过破坏事物,我能够看到代码库中需要的内容,甚至可能不需要的内容。 它不仅帮助我弄清楚了代码是如何工作的,而且还帮助我什至不需要一些代码。

I now use this technique when learning any new codebase. I just have to make sure that I don’t push any broken code to version control.

我现在在学习任何新的代码库时都使用这种技术。 我只需要确保不将任何损坏的代码推送到版本控制即可。

如何沟通 (How to communicate)

Having largely spent most of my time learning how to code by myself, I had to learn how to code with others once I got into a professional environment. This was a difficult lesson.

在大部分时间里,我都是自己学习编码的,一旦进入专业环境,我就必须学习如何与他人编码。 这是一个艰难的教训。

I had to learn how to articulate complex concepts to others around me. This came out as a garbled mess more than once.

我必须学习如何向周围的人表达复杂的概念。 这不止一次出现乱码。

Even though there were times when other developers had no idea what I was trying to say, I didn’t get discouraged. I took deep breaths and thought long and hard about what I was trying to say.

即使有时候其他开发人员不知道我要说什么,我也没有灰心。 我深吸一口气,对自己想说的话进行了长时间的认真思考。

There was plenty of technical jargon that I simply didn’t know.

我根本不知道很多技术术语。

In time, and through a lot of practice, I was able to start describing things in a manner that other developers could follow.

随着时间的推移,通过大量的实践,我开始以其他开发人员可以遵循的方式描述事物。

Beyond describing things that I was talking about, I also had to let others know when I didn’t know what they were saying.

除了描述我在说的事情之外,当我不知道他们在说什么时,我还必须让其他人知道。

Sometimes it is easy to just nod and say you know what another developer is trying to tell you.

有时候,很容易点头并说出您知道其他开发人员想要告诉您的内容。

Though it may be easy to just nod and smile, this generally ends up being an issue.

尽管点头和微笑可能很容易,但这通常是一个问题。

I always try to let others know when I don’t understand something, no matter how simple the concept may be to them.

当这个概念对他们来说多么简单时,我总是试图让别人知道我什么都不懂。

Communication is key in this industry, as good software cannot be developed without it. How the heck are we going to build anything useful if no one takes the time to explain or understand what we are trying to do?

在这个行业中,通信是关键,因为没有它就无法开发好的软件。 如果没有人花时间解释或理解我们要做什么,我们将如何构建有用的东西?

Here are three things I consider crucial when communicating with others:

与他人交流时,以下三点至关重要:

倾听 (Listening)

I try to consume everything that the other person is trying to convey. I think about how I am going to respond and then reply. I try not to make assumptions. I try not to cut someone off mid-sentence, or claim that I know what they are going to say.

我试图消耗对方试图传达的所有东西。 我考虑要如何回应然后再回应。 我尽量不做假设。 我尽量不要将某人的句子中段砍掉,也不要声称我知道他们会说些什么。

Please listen.

请听。

忍耐 (Patience)

I try to be patient when communicating with others. I may have to explain something more than once before they understand what I am truly trying to tell them. Everyone operates at a different pace. It pays to be patient.

与他人交流时,我会尽量保持耐心。 在他们理解我真正要告诉他们的内容之前,我可能不得不解释多次。 每个人的步调都不一样。 值得耐心等待。

同情 (Empathy)

I think this is one of the most important things to develop good communication skills. As humans, we all run into differences between one another.

我认为这是发展良好沟通技巧的最重要的事情之一。 作为人类,我们都陷入了彼此之间的差异。

We will have differing opinions, incorrect assumptions, bad ideas, good ideas, terrible days, and wonderful days. I always try to take into account the other person’s perspective when communicating with them.

我们会有不同的见解,错误的假设,不好的主意,好的主意,糟糕的日子和美好的时光。 与他人交流时,我总是尝试考虑对方的观点。

Treat others the way you want to be treated. I consider that to be law.

以您想要的方式对待他人。 我认为这是法律。

As I learned how to communicate better, my days got much easier. My productivity shot up as I was able to work with others more efficiently.

当我学会了如何更好地沟通时,我的日子变得轻松了很多。 由于能够更有效地与他人合作,因此我的工作效率Swift提高。

Though I had mastered many aspected of communication, there was still one key aspect that I hadn’t mastered…

尽管我已经掌握了沟通的许多方面,但是仍然有一个关键的方面我没有掌握……

如何寻求帮助 (How to ask for help)

This was one of the hardest lessons for me to learn.

这是我要学习的最难的课程之一。

I am one that had a very hard time asking for help. I always felt like I could figure out things on my own.

我是一个很难寻求帮助的人。 我总是觉得自己可以自己解决问题。

It was a combination of me trying to prove myself (silly, I know) and my ignorance on how to ask for help that prevented me from doing so.

这是我试图证明自己(很傻,我知道)和我对如何寻求帮助的无知使我无法这样做的结合。

I finally learned how to ask for help after I had been investigating an unknown bug in a project I was working on. I worked on the bug for some time and then decided to ask another developer for help.

在调查了我正在研究的项目中的未知错误之后,我终于学会了如何寻求帮助。 我在Bug上工作了一段时间,然后决定向其他开发人员寻求帮助。

I went over to the other developer in a bit of a panic. I was basically just flailing my arms around screaming “BUG, BUG, BUG!”

我有些慌张地去了另一个开发商。 我基本上只是挥舞着尖叫着“ BUG,BUG,BUG!”。

That’s not exactly how it happened, but from the other developer’s perspective, that is probably how it seemed.

那不是真的发生的方式,但是从其他开发人员的角度来看,那可能就是它的样子。

He, and another senior developer, decided it was best for me to sit down with them and have a conversation about this particular event.

他和另一位高级开发人员认为,最适合我和他们坐下来讨论这个特定事件。

I learned that it was not constructive for me to interrupt another developer to let them know that there was a bug.

我了解到,打断另一个开发人员让他们知道存在错误对我来说不是建设性的。

It is not constructive for me to let another developer know that I need help without any context as to what I am having an issue with.

让另一位开发人员知道我需要帮助而没有关于我所遇到的问题的任何上下文,这对我来说并不是建设性的。

I learned that there is a formula to asking for help.

我了解到有寻求帮助的公式。

Instead of flailing my arms about and screaming about the presence of a bug, I learned this simple formula:

我学到了一个简单的公式,而不是挥舞着手臂并尖叫着发现一个错误:

“I did this thing, and something happened, but I wanted this to happen instead. I have had trouble figuring out why this is happening. When you have a moment, could you help me find the root of the problem?”

“我做了这件事,发生了一些事情,但是我希望这能发生。 我很难弄清楚为什么会这样。 有空的时候,您能帮我找到问题的根源吗?”

This always incites good conversations and generally will lead to a solution to the problem.

这总是引起良好的对话,通常会导致问题的解决。

I had not realized that my previous approach to asking for help was counter-productive and not good for anyone.

我没有意识到我以前寻求帮助的方法会适得其反,对任何人都不利。

I honestly had no idea how to ask for help.

老实说,我不知道如何寻求帮助。

If you are like I was, and you don’t like to ask for help (or you don’t know how) please ask for help. Remember the formula.

如果您像我一样,并且不希望寻求帮助(或者您不知道如何),请寻求帮助。 记住公式。

Others will want to help you if you ask in the manner I have suggested.

如果您以我建议的方式询问,其他人将希望为您提供帮助。

文献资料 (Documentation)

This is something that I learned out of necessity.

这是我从必然中学到的东西。

No matter how many times you tell me how to do something, some things I will never remember.

无论您告诉我多少次做某事,有些事我都永远不会记住。

There are language quirks and programming practices that I always have to Google.

我一直对Google有一些语言要求和编程习惯。

The more projects I worked on, the more I realized I was simply not able to remember everything. This led me to start documenting.

我从事的项目越多,我就越意识到我根本不记得所有事情。 这导致我开始记录文件。

There are way too many moving parts of ANY software project not have any sort of documentation. I do not care if it is in a README or a PDF.

任何软件项目的太多活动部分都没有任何类型的文档。 我不在乎它是在README还是PDF中。

Pretty much any form of documentation is better than no documentation.

几乎任何形式的文档总比没有文档要好。

Clearly, I am very opinionated on this subject.

显然,我对这个问题非常有意见。

There is nothing worse than no docs. Getting started on a project with no documentation is a nightmare. It slows everything down.

没有比没有文档更糟糕的了。 没有文档的项目入门是一场噩梦。 它减慢了一切。

Documentation should be clear and concise, providing developers with everything they need to know to get up and running with a project.

文档应该简洁明了,为开发人员提供启动和运行项目所需的一切知识。

I stress this to other developers on my team, and among my peers. I am always happy to write documentation.

我向团队中的其他开发人员以及同龄人强调这一点。 我总是很高兴写文档。

It can be tedious and time consuming, but it will make everyone's life easier. That’s the whole point!

这可能很繁琐且耗时,但是它将使每个人的生活变得更轻松。 这就是重点!

所以你有它! (So there you have it!)

I learned a lot in my first year as a software engineer, and I consider these lessons to be the most important. I still have a lot more to learn, and I look forward to doing so!

作为软件工程师的第一年,我学到了很多东西,我认为这些课程是最重要的。 我还有很多东西要学习,我期待着这样做!

Please share with me any experiences you have had as a software engineer that may align with some of these lessons that I have learned. I am very excited to hear what you may have to say!

请与我分享您担任软件工程师的任何经验,这些经验可能与我学到的一些经验教训相吻合。 听到您可能要说的话,我感到非常兴奋!

A little about me: I am a self-motivated software engineer from Florida. I used resources such as freeCodeCamp to start my career in the tech industry. Here is my website: http://coreyslaven.com/

关于我的一些事情:我是一位来自佛罗里达州的自我激励的软件工程师。 我使用诸如freeCodeCamp之类的资源来开始我在科技行业的职业。 这是我的网站: http : //coreyslaven.com/

You can follow me on Twitter here.

您可以在Twitter上关注我。

Thank you for reading!

感谢您的阅读!

Happy coding!

编码愉快!

翻译自: https://www.freecodecamp.org/news/sometimes-the-hardest-lessons-are-the-most-important-ones-to-learn-dd71e2cdadc4/

学习中的经验教训很重要

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://808629.com/985.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 86后生记录生活 Inc. 保留所有权利。

底部版权信息