twitter软件资源

by Jordan D. Jackson

乔丹·杰克逊(Jordan D.Jackson)

从Twitter实习生到全职Twitter软件工程师的学到的知识 (What I learned going from Twitter intern to full-time Twitter software engineer)

更多的编码和增长! (More coding and growth!)

*Looking at the calendar* Whoa! Has it been six months already?! On the first day of my Twitter internship, I knew it was going to take forever to see the end of the tunnel, but here we are. I am a full-time engineer at Twitter!! ?

*看着日历*哇! 已经六个月了吗? 在我的Twitter实习的第一天,我知道要看到隧道尽头将是永远的事情,但是我们来了。 我是Twitter的专职工程师!! ?

It was definitely a sprint, and I learned more than I could imagine. I am happy I could soak up most of the knowledge. Now I want to take the time to write about my experience completing the program. I know most internship programs have simple paths to full-time employment. So I want to highlight some of the phases I went through, pitfalls I faced, and reflect on everything that I learned. If I can assist one person on their coding journey from this post then → ?!!

这绝对是一个冲刺,而且我学到了很多我无法想象的东西。 我很高兴可以吸收大部分知识。 现在,我想花点时间写我完成程序的经验。 我知道大多数实习计划都有通向全职工作的简单途径。 因此,我想强调我经历的一些阶段,遇到的陷阱,并反思我学到的一切。 如果我可以通过这篇文章帮助一个人进行编码之旅,那么→?!!

Note: If you are curious about how I landed the Twitter internship, that story can be found here: How I went from enlisted Air Force to software engineer intern @Twitter

注意:如果您对我如何获得Twitter实习生感到好奇,可以在这里找到该故事: 我如何从应征空军升任为软件工程师实习生@Twitter

兴奋 (The excitement)

As soon as I found out I would be interning at Twitter, I felt like the biggest engine in the world. Full of energy, and ready to conquer whatever projects were unfortunate enough to land on my path.

当我发现自己要在Twitter实习时,我感到自己是世界上最大的引擎。 充满活力,并准备好征服任何不幸的项目,以至于无法踏上我的道路。

Except, an engine is nothing without the rest of the car, and it is unlikely that you will show up as a full car. Even if you have worked as an engineer before, there are things that vary from company to company. But on-the-job training will be your new best friend. With a good bit of this you will be cruising in no time!

除非没有其余的汽车,否则引擎一无是处,而且您不太可能出现在完整的汽车上。 即使您曾经担任过工程师,但公司之间的情况也会有所不同。 但是在职培训将是您最好的朋友。 有了这一点,您将立即进行巡游!

The first step towards building the rest of the car was the New Hire Orientation. It was here that I realized that Tech Company XYZ does not base their stack off of the FreeCodeCamp calculator project.

建造其余汽车的第一步是“新员工入职培训”。 在这里,我意识到Tech Company XYZ并未将其堆栈作为FreeCodeCamp计算器项目的基础。

During orientation week at Twitter, engineers are given an overview of how Twitter works and details about how the pieces come together to make it happen.

在Twitter的迎新周期间,工程师将获得有关Twitter工作原理的概述,以及有关各个部分如何组合以实现它的详细信息。

At first it evokes a woah-this-is-insanely-complex type of emotion. ? After you start actually working through, it will make a lot more sense. All of a sudden you will be working on a project and come across stuff you remember hearing about in orientation. Make sure you do not feel, think about, want, or consider the need to dive into every piece of the stack.

起初,它让人产生一种令人难以置信的复杂情绪。 ? 在您开始实际工作之后,它将变得更加有意义。 突然之间,您将在一个项目上工作,并且碰到一些您记得听说过的东西。 确保您没有感到,思考,想要或考虑进入每个堆栈的需求。

Still these high-level explanations are helpful. They help you see the big picture and how your team contributes to the mission of the company. So while I was anxious to get started, giving myself the time to get settled in would have allowed me to ramp up a lot more smoothly!

这些高级解释仍然有用。 他们可以帮助您了解全局,以及您的团队如何为公司的使命做出贡献。 因此,当我急于入门时,给自己时间安顿下来会让我更加平稳地成长!

新手 (The Novice)

Starting at a new company in an entirely new industry doing an entirely new job was a massive shift for me. I suddenly felt like I was in basic training all over again. When I started, I did not even know how to use a Mac. ? I have been a PC person my whole life. It is a pretty scary feeling, because as a new hire, you want to provide value — and instead you can sometimes feel pretty useless. Just be patient with yourself. Not having this patience was one of the most challenging things to deal with when I first got started.

在一个全新 行业的一家新公司开始从事全新的工作对我来说是一个巨大的转变。 我突然觉得自己又开始接受基础训练了。 当我开始时,我什至不知道如何使用Mac。 ? 我一生都是PC个人。 这是一种非常令人恐惧的感觉,因为作为新员工,您想提供价值-相反,有时您会觉得自己毫无用处。 请耐心等待。 刚开始时,没有这种耐心是要应对的最具挑战性的事情之一。

As I said, you have this engine that is ready to go all out. But there is a bit of work that needs to be put in before you can take over the world! Being patient will help you get productive faster. It will also help you not feel like a waste of oxygen while you learn. ?

正如我所说,您已经准备好全力以赴。 但是,在接管世界之前,还需要进行一些工作! 耐心等待将帮助您更快地提高生产力。 它也可以帮助您在学习时不会像浪费氧气。 ?

积累 (The buildup)

To ramp up on the skills I needed to become productive, I knew I would have to break them up into stages. I wanted to learn the most necessary skills first, some productivity-boosting skills, and so on.

为了提高我提高生产力所需的技能,我知道我必须将其分解为多个阶段。 我想首先学习最必要的技能,一些提高生产力的技能,等等。

The issue I had at first was figuring out which skill in these stages to learn first. The number of things that could be learned was overwhelming. There was just so much newness surrounding me! However, I knew only a small fraction would be pertinent to what I was trying to accomplish.

我最初遇到的问题是弄清楚在这些阶段中首先要学习哪些技能。 可以学到的东西太多了。 我周围有那么多新鲜事物! 但是,我知道只有一小部分与我要实现的目标有关。

For reference, I had never used the majority of the technologies that I would be using in the coming six months. Ok ok, except Git, but other than that I felt like I was on a new planet!

作为参考,我从未使用过未来六个月中将要使用的大多数技术。 好的,除了Git ,但除此之外,我感觉自己就像是在新的星球上 !

Eventually I made learning how to use the new IDE my first goal. The editor I would be using is called IntelliJ and it has a crazy amount of buttons on it, and I was previously using Atom. So another huge switch!

最终,我将学习如何使用新的IDE当作首要目标。 我将使用的编辑器称为IntelliJ ,上面有很多疯狂的按钮,而我以前使用的是Atom 。 因此,另一个巨大的开关!

When I was finally ready to write some code, my first instinct was to figure out how to do a small project that I was familiar with. Essentially doing a translation project with my new tools. So, here I was trying to get to a helloWorld Scala program (Yes I count this as a small project ?) to print to the console. I felt as if it was day one of FreeCodeCamp again.

当我终于准备好编写一些代码时,我的第一个直觉是弄清楚如何做一个我熟悉的小项目。 本质上是使用我的新工具进行翻译项目。 因此,在这里我试图进入helloWorld Scala程序(是的,我将其视为一个小项目吗?)以打印到控制台。 我觉得好像又是FreeCodeCamp的第一天了。

After I got that project to work, I received a bigger practice project. The only problem was I did not know how to build and test this project with my new tools. What was even crazier was that I had built this practice project before (The Bit.ly style URL Shortener). So I knew how to implement the logic, and I could even persist the data. But, without Atom, NPM, MongoDB, and NodeJS I was lost! At least I was decent at navigating around the Mac at this point.

在我完成该项目后,我收到了一个更大的实践项目。 唯一的问题是我不知道如何使用新工具来构建和测试该项目。 甚至更疯狂的是,我之前已经建立了这个练习项目(Bit.ly样式的URL Shortener)。 所以我知道如何实现逻辑,甚至可以保留数据。 但是,没有Atom,NPM,MongoDB和NodeJS,我迷失了! 至少在这一点上,我对在Mac上浏览很满意。

Learning a new language (Scala) and IDE (IntelliJ) at the same time slowed me down a bit. Needless to say it was a slow process for me to “feel” productive.

同时学习一种新语言(Scala)和IDE(IntelliJ)会使我有点慢。 毋庸置疑,这对我来说“感觉”有生产力是一个缓慢的过程。

Looking back, I’ve learned that sorting and prioritizing which topics to learn now and which ones to dig deeper into later is immensely helpful. It actually may be easier to eliminate all the things you do not need to learn, and focus on what is left.

回顾过去,我了解到,对现在要学习的主题以及以后要深入研究的主题进行排序和优先级排序将非常有帮助。 实际上,消除您不需要学习的所有内容并集中于剩下的内容可能会更容易。

There were at least two or three things I dug into that, looking back, I had no business dedicating time to. If I could start over I would have started off exclusively with a few IntelliJ tutorials. This way I could have at least run simple programs and modified them to experiment with the environment. I know this may sound like a no-brainer, but when you are bombarded with fifty things you never heard of, it is a little difficult to sift through them.

我至少要挖掘两三件事,回首过去,我没有时间专门从事这项工作。 如果我能从头再来,我会与几个教程的IntelliJ 则只启动了。 这样,我至少可以运行简单的程序并对其进行修改以在环境中进行实验。 我知道这听起来似乎很容易,但是当您被从未听说过的五十件事轰炸时,很难筛选它们。

No matter which route you take, it will all come together with time. Just do not stop. It is just a matter of how efficient you want to be! (Prius or Hellcat?) Before I knew it I was actually building projects! The joy I felt was awesome. I was writing Scala code, using IntelliJ, and even using my Mac without Googling how to use simple features. Definitely a “W” but still not the time to rest!

无论您走哪条路线,都将随着时间而流逝。 只是不要停下来。 这只是您想要提高效率的方法! ( Prius还是Hellcat ?)在我知道它之前,我实际上是在建设项目! 我感到很高兴。 我当时正在使用IntelliJ编写Scala代码,甚至在不使用Google谷歌搜索如何使用简单功能的情况下也使用Mac。 绝对是“ W”,但仍然没有休息的时间!

冒名顶替者 (The impostor)

This section touches on a topic that many may have experienced. If you have not, here is a little heads-up in case you do one day! This topic is impostor syndrome. It has quite a few forms, but they all come back to not feeling like you are capable. The weird part is that you can experience this while having a track record of getting things done or proving yourself to yourself repeatedly.

本节涉及许多人可能经历过的主题。 如果您还没有,那么这里有些提示,以防您有一天! 这个话题是冒名顶替综合症。 它有很多形式 ,但是它们都让您感觉不到您的能力。 奇怪的是,您在拥有完成工作或反复向自己证明自己的历史记录的同时可以体验到这一点。

I experience it almost every time I start working on a new project. I quickly find that there is ramping up to do for almost every project no matter how small. This knowledge gap that I have before each project makes me feel inadequate. This naturally leads me to the “Do I belong here?” mind-state. And I believe I have finally figured out why!

几乎每次我开始进行新项目时,我都会经历到。 我很快发现,无论规模多么小,几乎每个项目都有大量的工作要做。 我在每个项目之前都存在知识鸿沟,这使我感到不足。 这自然使我想到“我属于这里吗?” 心态。 而且我相信我终于弄清楚了原因!

The fact that I do not have a formal CS education or even code boot camp training is a piece of it. I mean, I know I am not a total beginner, but that I also know that I am missing bits and pieces of core CS knowledge. For a little while my CS knowledge felt like a piece of Swiss cheese. With time, though, I filled a lot of those knowledge gaps and gained more confidence.

我没有接受正规的CS教育,甚至没有进行代码训练营培训,这就是其中的一部分。 我的意思是,我知道我不是一个完全的初学者,但我也知道我缺少核心CS知识的点点滴滴。 有一阵子,我的CS知识就像一块瑞士奶酪。 但是,随着时间的流逝,我填补了很多知识空白,并获得了更多的信心。

But this is not to say that was the end of feeling like an impostor! Almost every time I came face-to-face with a new project, impostor syndrome would resurface. ? I eventually learned that this resurfacing was just due to me having 0%–25% familiarity with a given project or codebase. This sounds like a “Well duh” type of thing, but when I got assigned a project my brain would just start racing to figure out how I am going to tackle it. My brain is thinking about the finish line, and at the same time it knows I do not understand all the intricate parts of the project. So my brain says something like “Bro, we have no clue what is going on here how are we going to do this?!”.

但这并不是说那是冒名顶替的感觉的终结! 几乎每次我面对一个新项目时,冒名顶替综合症就会浮出水面。 ? 最终我了解到,这种重铺只是由于我对给定的项目或代码库具有0%至25%的熟悉度。 这听起来像“ Well duh”类型的事情,但是当我被分配一个项目时,我的大脑就会开始竞赛以弄清楚我将如何解决它。 我的大脑在思考终点线,与此同时,我知道我不理解项目的所有复杂部分。 所以我的大脑说了些类似“兄弟,我们不知道这里发生了什么,我们将如何去做?!”。

After digging into the code and reading the documentation, we would be back at “I got this!”. Please let the rest of you catch up. ? For me the analogy above is the majority of the reason why I would feel and sometimes still feel like an impostor. Now that I understand this more, I can argue with my brain and then relax to catch up. Anyone that experiences impostor syndrome knows that we always “catch up”!

在深入研究代码并阅读了文档之后,我们将回到“我明白了!”。 请让其他人赶上来。 ? 对我而言,上述类比是我有时甚至仍然觉得自己是冒名顶替者的大部分原因。 现在,我更加了解了这一点,我可以与自己的大脑辩论,然后放松以追赶。 任何经历过冒名顶替综合症的人都知道,我们总是在“追赶”!

我的建议 (My advice)

Now my internship was awesome! I learned so much. But I would be doing everyone a disservice to leave out the most important feedback I received. Of course I am not perfect! ? So here is a list of the most common feedback I received during my six months of interning.

现在我的实习真棒! 我学到了很多。 但是,我会给每个人带来伤害,从而遗漏我收到的最重要的反馈。 我当然不完美! ? 因此,这是我六个月实习期间收到的最常见反馈的列表。

  1. Take notes (I have a good memory, but after meetings about different things you can forget some things). It was awesome to talk to my teammates in Slack. I could always just scroll up 24/7 and see details. If only I could have that for every conversation. ? Oh yeahhh, a notebook or a Google Doc.

    做笔记(我有很好的记忆力,但是在开会讨论不同的事情后,您可能会忘记一些事情)。 和我在Slack的队友交谈真是很棒。 我总是可以向上滚动24/7并查看详细信息。 如果可以的话,我可以在每次对话中使用。 ? 哦,是的,笔记本电脑或Google 文档。

  2. Give teammates more context when asking questions. I feel like this is a common issue for new engineers. I would ask questions sometimes as if the other person had been working in the same file and on the same line of code I had been working on. And not surprisingly it would lead to confusion, if not a wrong answer to my question. It is almost like calling someone on your phone and saying “Hey! Can you give me directions home?”. (Before Google Maps, GPS, and stuff like that of course) But if you say “I am at the intersection of Blah and Blah headed West and trying to get home, can you help?” they definitely can help a lot more! If they have a map aka their more senior engineering brain!提问时给队友更多的背景信息。 我觉得这是新工程师经常遇到的问题。 有时我会问问题,就好像其他人正在使用同一文件并使用同一行代码一样。 即使不是错误回答我的问题,也不会令人惊讶。 这几乎就像在您的电话上打给某人然后说:“嘿! 你能给我指示回家吗?”。 (当然,在使用Google Maps,GPS之前,还有类似的东西)但是,如果您说“我在Blah和Blah的交叉路口向西行驶并试图回家,您能帮上忙吗?” 他们绝对可以提供更多帮助! 如果他们有地图,也就是他们更高级的工程头脑!
  3. Do not be a gladiator! Software development is a team sport. However, I could not shake the feeling that I had to prove myself. Not that I did not want to work as a team, but I felt I needed to show I could handle a project on my own. The only problem was…..I did not need to do this. This obsessive mission to prove myself only made me receive what I consider the only major negative feedback in my second internship. I mean unless you are creating a startup, you will have a team to support you! Work with them and everyone benefits!

    不要成为角斗士! 软件开发是一项团队运动。 但是,我无法摆脱必须证明自己的感觉。 并不是说我不想成为一个团队,但我觉得我需要证明我可以自己处理一个项目。 唯一的问题是……我不需要这样做。 证明自己的沉迷任务使我在第二次实习中收到了我认为唯一的主要负面反馈。 我的意思是除非您要创建一家初创公司,否则您将有一个团队来支持您! 与他们合作,每个人都会受益!

Bonus: In addition to being more specific when asking questions, make sure you ask any and all questions you may have. This is super helpful advice for us out here teaching ourselves to code.

奖励:除了在提问时更加具体之外,请确保您问自己可能遇到的所有问题。 这对我们自学编码非常有帮助。

There is just no quiz to take to see if your knowledge compares to current junior software engineers. So frankly, you do not know what you do not know. And I feel like most of us accept this as true.

无需进行任何测验就可以将您的知识与当前的初级软件工程师进行比较。 坦率地说, 您不知道自己所不知道的。 我觉得我们大多数人都接受这是真的

This is not an issue until you hear something that sounds like common engineering knowledge. If you ever hear other engineers chatting and you think to yourself “I probably should know that ?” this is what I am talking about.

除非您听到听起来像是常识性的工程知识,否则这不是问题。 如果您听到其他工程师在聊天,并且对自己说:“我可能应该知道吗?” 这就是我在说的。

As it turns out, it is TOTALLY fine if you do not know. As a matter of fact, some of the more senior engineers ask the exact question I was thinking of. Then you realize every engineer does not know everything. You then see that each member of the team all knowing a good amount is what makes the team powerful. And questions and sharing do the rest! Do not sit in fear of the topic being something basic that you should know. Ask away!!

事实证明,如果您不知道,那是完全可以的。 实际上,一些高级工程师会问我所想的确切问题。 然后,您意识到每个工程师都不是一无所知。 然后,您会看到团队的每个成员都知道很多,这才使团队变得强大。 剩下的就是问题和分享了! 不要担心该主题是您应该知道的基本知识。 问吧!

结论 (The conclusion)

To be totally honest, heading into this internship I had no idea what to expect. Just that I would write code at some point. I had never worked in tech or worked in a team setting developing software.

老实说,进入这个实习我不知道会发生什么。 只是我会在某个时候编写代码。 我从未从事过技术工作,也从未在团队环境中开发软件。

Overall, I think it went perfectly. From the successes I had along with the constructive feedback I received. Coming from the military definitely made it interesting! Especially after you are trained to follow orders for years and all of a sudden you have to decide most of your day-to-day workflow.

总体而言,我认为它进行得很完美。 从我获得的成功以及收到的建设性反馈。 来自军事的肯定使它变得有趣! 特别是经过多年遵循订单的培训后,突然之间,您必须决定大部分日常工作流程。

As always, though, I knew I would figure it out. Just like basic military training when we were bald and confused and had to figure out random stuff in 1.5 seconds. Only now I am not bald.

和往常一样,我知道我会弄清楚的。 就像基本的军事训练一样,当我们秃头而困惑时,必须在1.5秒内找出随机的东西。 只是现在我还不是秃头。

There are actually a lot of things I learned from the military that I feel help me a lot in tech. We will save that for another post, though. I also want to thank everyone that helped me on my journey and my family for dealing with the time away from them. I literally felt like I had a small village raising me to be a great engineer. I am super thankful and lucky for the support system I have. Thank you for reading!

实际上,我从军方中学到了很多东西,这些东西对我的技术帮助很大。 不过,我们会将其保存在另一篇文章中。 我还要感谢在旅途中为我提供帮助的每个人,以及我的家人与他们度过的美好时光。 我从字面上感觉就像我有一个小村庄,抚养我成为一名出色的工程师。 我非常感谢我所拥有的支持系统。 感谢您的阅读!

翻译自: https://www.freecodecamp.org/news/how-i-went-from-a-twitter-intern-to-full-time-software-engineer-twitter-7906bfc10984/

twitter软件资源

twitter软件资源_从Twitter实习生到全职Twitter软件工程师的学到的知识相关推荐

  1. twitter软件资源_以软件工程师的身份在Twitter上找到工作[我的工作方式]

    twitter软件资源 这是关于我如何在Twitter上担任全职软件工程师的工作,经历的经历,准备的过程以及为什么最终决定加入该公司的故事. Click-clack-click-clack . 我的手 ...

  2. 下岗职工_下岗后我如何获得多位软件工程师的面试

    下岗职工 "Opportunities to find our deeper powers come when life seems most challenging." -Jos ...

  3. 北京内推 | 智源人工智能研究院数据智能组招聘全职研究员/算法工程师

    合适的工作难找?最新的招聘信息也不知道? AI 求职为大家精选人工智能领域最新鲜的招聘信息,助你先人一步投递,快人一步入职! 智源人工智能研究院 北京智源人工智能研究院(Beijing Academy ...

  4. 北京 Java软件工程师薪资_【北京京东工资】java高级软件工程师待遇-看准网

    京东2021校招,投了两个岗位,一个是物流方向管培生,一个是物流规划,管培生当时未参加一面(形式群面),后来面了物流规划这个.1.初试(通过)一面为一对一专业面试,形式为线上视频面试,问了一些实习经历 ...

  5. 成都java高级开发工程师_【成都京东工资】java高级软件工程师待遇-看准网

    京东2021校招,投了两个岗位,一个是物流方向管培生,一个是物流规划,管培生当时未参加一面(形式群面),后来面了物流规划这个.1.初试(通过)一面为一对一专业面试,形式为线上视频面试,问了一些实习经历 ...

  6. 怎样才算高级Java开发工程师_怎样才能成为一名高级java软件工程师?

    从低级java程序员专注java技术路线发展,可以成为一个令人敬仰的高级java工程师,当然java高级工程师也不是那么容易练就的,java程序员该朝哪些方向努力向高级java工程师发展?怎样成为一个 ...

  7. 统计twitter帖子_在Kubernetes上部署InfluxDB和Grafana以收集Twitter统计信息

    统计twitter帖子 Kubernetes是市场上容器编排的事实上的领导者,它是一种令人难以置信的可配置且功能强大的编排工具. 与许多强大的工具一样,一开始它可能会让人感到困惑. 本演练将介绍创建多 ...

  8. twitter客户端_使用Twitter进行客户推荐

    twitter客户端 When reading customer testimonials on websites I sometimes wonder how genuine the words a ...

  9. twitter账户受限_如何为您的企业设置Twitter帐户

    twitter账户受限 Twitter is one of the most powerful social media marketing tools around and in today's m ...

最新文章

  1. 服务器Jmail配置问题
  2. windows一个目录下最大文件数目
  3. windows 7平台 使用 感言
  4. 叉乘点乘混合运算公式_初中数学学不会?公式这样记,让你做题效率翻倍!
  5. 统计信号处理基础 - 估计与检测理论 估计部分习题3.7公式推导
  6. Gridiew——表的内容居中
  7. Lintcode 729. 阶乘除法的最后一位数
  8. 16进制颜色转换为UIColor
  9. type python django models_django新版本(2.x)踩坑记录
  10. python小孩的报酬_孩子怎么区分报酬与奖励
  11. java 判断两个经纬度差异_计算两个经纬度点的实际距离
  12. 《算法竞赛进阶指南》tarjan做法 银河
  13. Envato不停机迁移边缘网络提供商
  14. MongoDB-使用mongo/mongosh命令行连接数据库
  15. 诸神之眼——nmap入门教程
  16. Latex之使用APA格式引用:文中作者加年份,文末不编号
  17. 由华为裁员传闻引发的思考:年轻人如何避免中年危机?
  18. 多个字段的in 和 not in 及其替代写法(exists,not exists)
  19. 【Pyecharts50例】堆叠面积图实现
  20. 2023年全国职业院校技能大赛中职组网络安全竞赛试题B模块 —湖南省Windows操作系统渗透测试任务(flag)

热门文章

  1. python学习第十天
  2. C++函数默认参数(函数传入实参个数比形参个数少)
  3. ?让孩子长高的妙法!99%的妈妈不知道
  4. 2020.2.5普及C组 Hank比赛【纪中】【DP】
  5. 抽奖!送一箱 GitHub 周边
  6. DELL PC服务器PowerEdge 管理工具OMSA的使用
  7. 质性分析软件nvivo的学习(一)
  8. FDC2214+STM32F103
  9. Codeforces - Cashback
  10. 机器人编程趣味实践20-版本课程(教学)