我是靠谱客的博主 紧张眼睛,最近开发中收集的这篇文章主要介绍学软件工程实习的水平_我在软件工程实习期间学到的东西 我在软件工程实习期间学到的东西 (What I learned during my software engineering internship),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

学软件工程实习的水平

by Carmen Chung

通过钟Car

我在软件工程实习期间学到的东西 (What I learned during my software engineering internship)

As part of my coding bootcamp at Coder Academy, I was placed as a software engineering intern at Valiant Finance, winner of the Australian Fintech Start Up of the Year (2017) Award. In the four weeks I have been here, I have made more intellectual discoveries than I can count: all thanks to the incredible mentorship and patience of the team I have been working with.

作为我在Coder Academy进行编码训练营的一部分,我被聘为 Valiant Finance的软件工程实习生,并获得了澳大利亚金融科技年度最佳启动奖(2017)。 在我到这里的四个星期中,我取得了无数智力上的发现:这一切都归功于与我一起工作的团队令人难以置信的指导和耐心。

Here are the top 10 things I learned during my internship, divided into technical and non-technical lessons.

这是我在实习期间学到的十大知识,分为技术和非技术课程。

技术 (TECHNICAL)

一丝不苟 (Be meticulous)

Having been a corporate lawyer for seven years, I have always prided myself on attention to detail. But mistakes do happen.

作为公司律师已经七年了,我一直以对细节的关注为荣。 但是错误的确会发生。

In the third week of my internship, I hit Ctrl + F to find a word I was searching for in my file. Then I must have accidentally hit the space bar, deleting the word entirely.

在实习的第三周,我按Ctrl + F在文件中找到要搜索的单词。 然后,我一定不小心按下了空格键,将单词完全删除了。

To my mortification, I didn’t notice that I had done this . It was something that would not have thrown an obvious error — otherwise our tests would have picked it up. Rather, it would have gone unnoticed and “failed silently”…if it hadn’t been for the sharp eyes of our Co-Founder, Ritchie.

令我遗憾的是,我没有注意到自己已经这样做了。 这不会引发明显的错误-否则我们的测试就会发现它。 相反,如果没有我们的共同创始人里奇的敏锐眼光,它就会被忽视并“默默地失败”。

To avoid making my mistake, check out GitHub Desktop. It displays all the changes you’ve made to a file, and allows you to comb through line-by-line, one final time before committing. It’s easy to skip through this part. But taking the time to review your changes one last time before you commit / push can save you serious heart-ache — and embarrassment — at a later stage.

为了避免犯错,请查看GitHub Desktop。 它显示您对文件所做的所有更改,并允许您在提交前的最后一次逐行梳理。 跳过这一部分很容易。 但是,在提交/推送之前花一些时间最后一次检查您的更改可以在以后避免严重的心痛和尴尬。

I can’t stress enough how important attention to detail is. One missing semi-colon in some languages can stop your code dead in its tracks. Other things are less insidious, but still annoying.

对细节的重视有多重要。 在某些语言中,缺少一种分号可以阻止您的代码陷入僵局。 其他事情不那么阴险,但仍然很烦人。

Even simple things like checking your company’s Git commits to see how they write them — for example, we use a specified emoticon to indicate what the commit is, capitalize the first word in the commit, use present tense, and don’t add punctuation to the end — saves you from irritating your colleagues when you stray from the path of consistency.

甚至是简单的事情,例如检查公司的Git提交以查看其编写方式-例如,我们使用指定的表情符号来表示提交是什么,将提交中的第一个单词大写,使用现在时,并且不添加标点符号。最后—当您偏离一致性之路时,可以避免使您恼怒的同事。

做笔记(努力学习) (Take notes (and study hard))

Forget the Fountain of Knowledge.

忘记知识的源泉。

Almost every day that I’ve been at Valiant Finance, I’ve felt like I’m drinking from a fire hose. The amount of sheer knowledge and wisdom that comes spouting out from the mouths of our Head of Engineering (Kris Hofer) and our Co-Founder (Ritchie Cotton) is enough to make anyone’s head swim. Much to my relief, these two guys are very well-structured and patient in the way they teach, so everything clicks neatly into place.

几乎每天我在Valiant Finance上班时,我都觉得自己在用消防水带喝酒。 从我们的工程主管( Kris Hofer )和我们的共同创始人( Ritchie Cotton )的嘴里涌出的大量知识和智慧足以使任何人的头都畅游。 令我大为欣慰的是,这两个家伙的教学结构非常好,而且很有耐心,所以一切都整齐地排列到位。

They click faster, though, if you take notes.

但是,如果您做笔记,它们的单击速度会更快。

I have an organized notebook with headings and a Table of Contents page to help me keep track of everything I’ve learned. Bits of code that I use repeatedly are highlighted, and I have brass tabs for sections that I use frequently.

我有一个组织的笔记本,带有标题和“目录”页面,可以帮助我跟踪所学的内容。 我反复使用的一些代码突出显示,并且我经常使用的部分带有黄铜制的标签。

On top of this, I have a Weekly Planner where I jot down all the tasks that we need to tackle every day, and a non-lined notebook for drawing out flowcharts — for more complicated programming logic — and wireframes.

最重要的是,我有一个每周计划器,其中记录了我们每天需要处理的所有任务,还有一个无衬线的笔记本,用于绘制流程图(用于更复杂的编程逻辑)和线框。

Most importantly, I write a list of all the things that Ritchie and Kris mention that I know I will need to do more research into on my own time.

最重要的是,我列出了Ritchie和Kris提到的所有事情,我知道自己需要自己做更多的研究。

不要重新发明轮子 (Don’t reinvent the wheel)

One of the things I discovered was that Ritchie had set up an incredible CSS system, with his own fully-customized stylesheets (using the BEM method) — and a style guide that would make any documentation-aficionado’s heart sing.

我发现的一件事是Ritchie建立了一个令人难以置信CSS系统,带有他自己的完全自定义的样式表(使用BEM方法 ),以及一个可以使任何文档爱好者心动的样式指南。

Before I became familiar with the system, I was tempted to create certain CSS classes that I figured would be easy for me to access and apply. What I came to realize and respect was that there was basically no need for me to do so. In almost every case there was already a set of clear and flexible styles that I could switch in and out — like interchangeable Lego pieces — all at my fingertips. By creating unnecessary styling classes, I would be cluttering up a structured and clean system, making it harder for people to navigate at a later stage.

在不熟悉该系统之前,我很想创建某些CSS类,这些类我认为对我来说很容易访问和应用。 我意识到并得到尊重的是,我基本上没有必要这样做。 几乎在每种情况下,我都可以触手可及的就已经有了一套清晰灵活的样式,我可以切换进出切换样式,例如可互换的乐高积木。 通过创建不必要的样式类,我会弄乱结构化和整洁的系统,使人们在以后的工作中更加难以导航。

避免冗长 (Avoid verbosity)

One of the key principles of Ruby on Rails is DRY (Don’t Repeat Yourself). It’s something that has been drilled into junior Rails developers from day one…but oh, how the struggle is real.

Ruby on Rails的主要原则之一是DRY(不要重复自己)。 从一开始,初级Rails开发人员就已经开始研究它了……但是,哦,这是多么真实的斗争。

My fellow intern and I were tasked with creating code that would count the number of people a user had referred to the platform. For every three referrals, the user would receive $50. The logic was manageable, but what we discovered was that we had to account for one friend vs. many friends when displaying the result.

我的实习生和我的任务是创建代码,该代码将计算用户推荐给该平台的人数。 对于每三个推荐,用户将获得$ 50。 逻辑是可以管理的,但是我们发现我们不得不考虑一个朋友许多朋友 显示结果时。

This was how our code initially came out:

这就是我们的代码最初出现的方式:

- if @invite_count == 1
%p
You have invited 1 friend to be part of Valiant Finance.
— if @invite_count > 1
%p
You have invited
%strong #{@invite_count} friends
to be part of Valiant Finance!
- if (@invite_count % 3) == 0 || (@invite_count % 3) == 1
%p
Invite another
%strong #{3 — (@invite_count % 3)} friends
to receive $50!
— if (@invite_count % 3) == 2
%p
Invite another
%strong friend
to receive $50!

When I showed Ritchie, he told us to look into pluralize.

当我向里奇展示时,他告诉我们要多元化 。

Mind. Blown.

心神。 吹

This was how our code came out afterwards:

这就是我们的代码随后出现的方式:

%p You have invited #{@invite_count} #{“friend”.pluralize(@invite_count)} to be part of Valiant Finance.
%p
Invite another
%strong #{3 — (@invite_count % 3)} #{“friend”.pluralize(3 — (@invite_count % 3))}
to receive $50!
%p

注意您的编程语言的复杂性 (Be aware of your programming language’s intricacies)

A number of junior web developers use certain terms interchangeably without being aware that there are — sometimes minute, sometimes not so minute! — differences between them. I’m guilty of frequently Googling the differences between .present?, .exists?, and .any?; and .empty?, .nil?, and .blank?. Made all the more cringe-worthy because .exists? has actually been deprecated. Oops.

许多初级的Web开发人员可以互换使用某些术语,而不会意识到有时-有时很短,有时甚至不是那么短! —它们之间的差异。 我经常谷歌搜索.present?之间的区别.present?.exists?.any? ; 和.empty?.nil?.blank?. 因为.exists?所以.exists?更值得一.exists? 实际上已被弃用 。 哎呀。

Sometimes the intricacies are almost unnoticeable — in the first week of my internship, I was typing Product.all.map(&:name). But I was later taught that I could instead just use Product.pluck(:name). There is a difference between the two in terms of efficiency — both with respect to me actually typing it out, and in terms of search speed. For more info, take a look at this article.

有时错综复杂几乎不明显-在实习的第一周,我输入Product.all.map(&:name) 。 但是后来有人告诉我,我可以改用Product.pluck(:name). 效率方面的差异-相对于我实际输入的效率和搜索速度而言。 有关更多信息,请参阅本文 。

Try to figure out the various ways things can be done in your programming language — and if there is more than one way, see if you can learn the differences between them.

尝试找出可以用编程语言完成工作的各种方式,如果有多种方法,请查看是否可以了解它们之间的区别。

Top Tip: Asking the differences between certain functions/methods/queries is also a favorite pass time of technical interviewers, so study up.

提示 :询问某些功能/方法/查询之间的差异也是技术面试官最喜欢的通过时间,因此请继续学习。

非技术 (NON-TECHNICAL)

参与公司 (Get involved in the company)

Sounds simple, right? But when you’re juggling a lot of tasks and trying to get yourself oriented at a new company, it’s easy to forget the little things that matter to the people around you.

听起来很简单,对吧? 但是,当您忙于处理许多任务并试图使自己适应新公司时,很容易忘记对周围人重要的小事情。

On our first day at the company, the other intern and I were encouraged to sign up for Twitter. On the train to work the next morning, I dutifully set up an account, and followed our company’s account, plus the accounts of a few colleagues.

在公司的第一天,另一个实习生和我被鼓励注册Twitter。 第二天早上,在上班的火车上,我尽职尽责地开设了一个帐户,并跟踪了我们公司的帐户以及几个同事的帐户。

Given that I already have multiple social media accounts, I was initially reluctant to add another to the mix. But it has turned out to be really beneficial.

鉴于我已经有多个社交媒体帐户,因此最初我不愿意再添加一个。 但是事实证明这确实是有益的。

I’ve been able to keep up-to-date on the company’s news plus the news of key partners, as well as check out interesting tweets from my colleagues. I have been tweeting posts about company events and new product features that our team has been working on. It’s an easy way to get involved, and shows that you actually care about where you work.

我已经能够了解该公司的新闻以及主要合作伙伴的最新消息,以及查看同事们的有趣推文。 我一直在发布有关我们团队一直在努力的公司活动和新产品功能的推文。 这是一种参与其中的简单方法,它表明您实际上在乎自己的工作地点。

提出问题-但更重要的是,听 (Ask questions — but more importantly, listen)

Kris, our Head of Engineering, very kindly told us that “there are no stupid questions,” and that we are encouraged to ask whatever comes to mind.

我们的工程主管克里斯(Kris)非常友好地告诉我们,“没有愚蠢的问题”,并鼓励我们提出任何想法。

I, on the other hand, firmly believe there is such thing as a stupid question. Usually those occur when you just haven’t been paying attention, or when you’re too lazy to think for yourself about what has been said. Asking questions is important, particularly when you genuinely don’t understand something. But listening to answers is even more so.

另一方面,我坚信有一个愚蠢的问题。 通常,这些情况发生在您只是不专心的时候,或者您懒得自己思考一下自己所说的话。 提出问题很重要,尤其是当您确实不了解某些内容时。 但是听答案更是如此。

Take the time to listen to what is being said, and think about it. It’s human nature to hear the words coming out of someone else’s mouth, and start mentally preparing a response while they’re talking. Don’t do it. Pay attention to what you’re being told.

花一些时间听别人说的话,然后再想一想。 听到别人的话是人类的天性,并在他们说话时开始进行心理准备。 不要这样 注意您被告知的内容。

知道要跟谁说话 (Know whom to talk to)

One of the great things about this internship was that we were encouraged to reach out to members of other teams to discuss what product features they wanted, and how we could implement them. We learned to defer to their expertise in some respects, and to the judgement of our Product team in others.

这次实习的一大好处是,我们被鼓励与其他团队的成员联系,讨论他们想要的产品功能以及如何实现它们。 我们学会了在某些方面尊重他们的专业知识,并在其他方面尊重我们产品团队的判断。

For example, we were tasked with building the tabs on the broker dashboard so that the leads that have been submitted by a broker are neatly divided into Active, Inactive, and Settled. In addition, we created a referral link card — as mentioned earlier.

例如,我们的任务是在经纪人仪表板上构建选项卡,以便将经纪人提交的销售线索整齐地分为“活动”,“不活动”和“结算”。 此外,我们还创建了引荐链接卡-如前所述。

Both of these tasks required liaising with the Head of Third Party Partnerships so that the functionality and language of the feature was suitable for the broker audience.

这两项任务都需要与第三方合作伙伴负责人联系,以便该功能的功能和语言适合经纪人受众。

Having said that, there were times where we were trying to build something that attracted a great deal of interest from a number of people in the company — resulting in (sometimes conflicting) input. At times like these, we would defer to our Product team leaders, who would give us guidance — and equally importantly — step in as a buffer if the noise from other teams got too loud.

话虽这么说,有时我们还是试图建立一种吸引公司中许多人极大兴趣的东西,从而导致(有时是相互矛盾的)输入。 在这种情况下,我们会请产品小组负责人向他们提供指导,同样重要的是,如果其他团队的声音太大了,他们可以作为缓冲。

Don’t be afraid to ask your supervisors for assistance in these cases — they are usually better equipped and more experienced to tell other teams that what they are asking for is u̶t̶t̶e̶r̶l̶y̶ ̶r̶i̶d̶i̶c̶u̶l̶o̶u̶s̶ going to take a while longer than expected to implement and that because it is u̶t̶t̶e̶r̶l̶y̶ ̶r̶i̶d̶i̶c̶u̶l̶o̶u̶s̶ not business critical, it will be added to the u̶t̶t̶e̶r̶l̶y̶ ̶r̶i̶d̶i̶c̶u̶l̶o̶u̶s̶ ̶l̶i̶s̶t̶ developer log list of things to do.

在这些情况下,请不要害怕向主管寻求帮助-他们通常配备更好的设备,并且更有经验,可以告诉其他团队他们所要的是比预期的实施要花更长的时间,这是因为如果不是关键业务,则将其添加到开发人员日志列表中,并将其添加到开发人员日志列表中。

保持谦虚 (Stay humble)

Because there are so many ways to skin a cat in the dev world, it’s easy to get caught up in a particular way of doing things, and assume that your way is better than everyone else’s way.

由于在开发人员世界中有很多方法可以为猫做皮,因此很容易陷入特定的处事方式,并认为自己的方式比其他人的方式更好。

Don’t get me wrong — there are best practices, and there are, no doubt, good rules that each company follows in order to ensure code consistency. But don’t dismiss what others have done just because it doesn’t conform to what you’re used to. It may (or may not) be even better than your code.

不要误会我的意思-有最佳实践,并且毫无疑问,每个公司都遵循良好的规则以确保代码一致性。 但是,不要仅仅因为它不符合您的习惯而忽略其他人的所作所为。 它可能(也可能不是)比您的代码更好。

On that note: when you have messed up, know that it’s time to eat some humble pie.

关于这一点:当您搞砸了时,请知道该吃一些不起眼的馅饼了。

Own up to it, apologize, learn from the mistake, and try not to let it eat at you. The last part is the hardest for me. I had nightmares for a week after the deletion mistake mentioned in the beginning.

承担起自己的责任,道歉,从错误中吸取教训,并尽量不要让它吞噬您。 最后一部分对我来说是最难的。 一开始提到删除错误后,我做了一个噩梦。

玩得开心 (Have fun)

At Valiant Finance, we celebrate wins. We have an entire Slack channel dedicated to cheering each other on in both our professional and personal endeavors.

在Valiant Finance,我们庆祝胜利。 我们拥有一个完整的Slack渠道,致力于在我们的专业和个人努力中相互加油。

We do team building activities, we have soft toys and dogs in the office, and we do casual Friday night drinks.

我们进行团队建设活动,在办公室里有毛绒玩具和狗,并在星期五晚上提供休闲饮品。

It seems obvious, but people want to work around happy people. While you’re not there to make drinking buddies at your internship company (bonus points if you do though!), you want to enjoy your time there — and the company should want you to as well. The whole point of the internship is to try to see if you are a good fit for the company — and vice versa.

看起来很明显,但是人们希望与快乐的人一起工作。 当您不在那里在实习公司结交好友(如果可以的话,加分!),您想在那里度过时光-公司也希望您也喜欢。 实习的重点是尝试看您是否适合该公司,反之亦然。

Try to enjoy yourself during the internship — but if what you’re working on is tedious and mundane, try to make a game out of it. I’m a seasoned connoisseur at making boring work seem fun — perhaps something I’ll dive into further in another post.

尝试在实习期间玩得开心-但是,如果您正在从事的工作既乏味又平凡,请尝试使用它来制作游戏。 我是一位经验丰富的鉴赏家,使无聊的工作看起来很有趣-也许我会在另一篇文章中进一步介绍。

If you’re unhappy as an intern, chances are, you’ll be unhappy as a full-time employee.

如果您不满意实习生的机会,那么您作为全职员工将不满意。

And no one wants that.

没有人想要。

Big shout out goes to Co-Founder Ritchie Cotton and Head of Engineering Kris Hofer and for their incredible patience, mentorship and knowledge throughout my internship at Valiant Finance. I never imagined learning so much in such a short period of time — or having so much fun doing it. Thank you guys.

共同创始人Ritchie Cotton和工程负责人Kris Hofer表示了极大的感谢,他们在我在Valiant Finance的整个实习期间都表现出了令人难以置信的耐心,指导和知识。 我从来没有想象过在这么短的时间内学到如此多的东西,或者做得如此有趣。 感谢你们。

Follow me on Twitter.

在Twitter上关注我。

翻译自: https://www.freecodecamp.org/news/10-things-i-learnt-during-my-software-engineering-internship-bb88369cb13c/

学软件工程实习的水平

最后

以上就是紧张眼睛为你收集整理的学软件工程实习的水平_我在软件工程实习期间学到的东西 我在软件工程实习期间学到的东西 (What I learned during my software engineering internship)的全部内容,希望文章能够帮你解决学软件工程实习的水平_我在软件工程实习期间学到的东西 我在软件工程实习期间学到的东西 (What I learned during my software engineering internship)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(72)

评论列表共有 0 条评论

立即
投稿
返回
顶部