帮助中心 开源
“Accomplished X by implementing Y which led to Z.”
“通过实现导致Z的Y来完成X。”
When I interviewed for software engineering internships this past fall, my open source contributions helped me stand out from the crowd.
去年秋天,当我接受软件工程实习机会的采访时,我的开源贡献使我在人群中脱颖而出。
我是谁? (Who am I?)
I am a 2nd year student pursuing a computer science major, as well as minors in applied mathematics and business management at Wentworth Institute of Technology (WIT) in Boston, MA.
我是二年级学生,攻读计算机科学专业,并在马萨诸塞州波士顿的温特沃斯技术学院(WIT)攻读应用数学和商业管理专业。
My main programming languages are JavaScript (Node.js & React.js) and Java. I’m also familiar with Python, R, SQL, NoSQL, MySQL, Firebase, HarperDB, and MongoDB.
我的主要编程语言是JavaScript(Node.js和React.js)和Java。 我也熟悉Python,R,SQL,NoSQL,MySQL,Firebase,HarperDB和MongoDB。
技术面试 (Technical Interviews)
You can find so many resources on how to prepare for a technical interview. All of them will tell you to study your data structures and algorithms, and definitely do not forget that lovely Big O notation. Some articles will also tell you to have side projects and put them in a wonderful virtual portfolio. I’d like to share one more thing you can do to set your self apart, contribute to open source projects.
你可以找到这么 多 的资源 就 如何 以 准备 为 一个 技术 面试 。 所有这些都会告诉您研究数据结构和算法,并且绝对不要忘记那个可爱的Big O表示法。 一些文章还将告诉您拥有辅助项目,并将其放入一个出色的虚拟产品包中。 我想分享您可以做的另一件事,以使自己与众不同, 为开源项目做出贡献 。
为开源做贡献 (Contributing to Open Source)
Many of my interviews began by discussing my contributions to the freeCodeCamp curriculum and guides projects as well as some higher level Git concepts such as handling merge conflicts, cherry-picking commits, and managing commit history during squashing.
我的许多采访都是从讨论我对freeCodeCamp课程的贡献开始的,并指导了项目以及一些更高层次的Git概念,例如处理合并冲突,精心挑选的提交以及在压榨期间管理提交历史。
It is extremely easy to get involved in the freeCodeCamp open source community. There is an incredibly active Gitter chat room and plenty of exciting projects being developed. If you are looking for an easy introduction to open source development join the Gitter chat and you may even see me there!
进入freeCodeCamp开源社区非常容易。 有一个非常活跃的Gitter聊天室,并且正在开发许多令人兴奋的 项目 。 如果您正在寻找开源开发的简单介绍,请加入Gitter聊天室,您甚至可以在那里看到我!
Another popular interview topic are my open source side projects. My first NPM module, harperdb-nodejs-driver, was a very common discussion topic. I learned a lot through developing this such as unit testing, code coverage, deployment scripts, branch management, and automatic builds. It still needs some work, but it introduced me to a lot of niche open source development practices.
另一个受欢迎的采访主题是我的开源项目。 我的第一个NPM模块harperdb-nodejs-driver是一个非常常见的讨论主题。 通过开发此工具,我学到了很多东西,例如单元测试,代码覆盖率,部署脚本,分支管理和自动构建。 它仍然需要一些工作,但是它向我介绍了许多利基的开源开发实践。
Finally, in almost every single interview, I was asked about my contributions to the React.js, Node.js, and Fastify projects. Contributing to larger projects can be difficult but it is not impossible, and in fact a lot of developers love it when new contributors want to contribute to their project! Below, I’ve broken down how I got involved in contributing to these 3 projects.
最后,几乎在每一次采访中,我都被问到我对React.js,Node.js和Fastify项目的贡献。 对较大的项目进行贡献可能很困难,但并非不可能,事实上,当新的贡献者想为他们的项目贡献力量时,很多开发人员就会喜欢它! 在下面,我细分了如何参与对这三个项目的贡献。
Node.js (Node.js)
My first contribution to the Node.js project was in October of 2016 when I attended the Node.js Code & Learn at the Node.js Interactive North America conference in Austin, Texas. I was only a first-year student and my university helped pay for part of the trip. The conference was such an incredible experience that I attended it again this year in Vancouver, Canada. I have multiple merged pull requests on the Node.js project, a majority coming from the Code & Learn event. Recently I’ve been trying to branch out and find other open issues.
我对Node.js项目的第一份贡献是在2016年10月,当时我参加了在德克萨斯州奥斯汀举行的Node.js互动北美会议上的Node.js代码和学习。 我只是一年级的学生,我的大学帮助支付了部分旅行费用。 这次会议真是令人难以置信的经历,我今年又在加拿大温哥华参加了会议。 我在Node.js项目上有多个合并的合并请求,大多数来自Code&Learn事件。 最近,我一直在努力寻找其他未解决的问题。
React.js (React.js)
React.js is my favorite framework. It was fun to learn and it is even more fun to build applications with. Even more so, the React community is one of the best I have ever been apart of. One of my biggest developer role models, Dan Abramov, is very active in the React.js open source community and I’ve had the incredible opportunity to work with him directly on multiple issues.
React.js是我最喜欢的框架。 学习很有趣,使用它构建应用程序更有趣。 更重要的是,React社区是我有史以来最好的社区之一。 我最大的开发人员角色模型之一Dan Abramov在React.js开源社区中非常活跃,我有不可思议的机会直接与他合作处理多个问题。
I’ve been able to find open React issues by doing 2 things:
通过做两件事,我已经能够找到开放的React问题:
- Following the React repository and looking at every issue opened. If I think it is something I can handle I ask if I can work on it and see if there is any other good information I should have before starting. 跟随React仓库并查看每个已打开的问题。 如果我认为这是可以解决的问题,请问我是否可以进行处理,并在开始之前查看是否还有其他好的信息。
- I follow as many React contributors I can on Twitter and keep a lookout for new, exciting projects as well as any open issues. Sometimes Dan will post ‘good first issue’ tweets! 我在Twitter上关注尽可能多的React贡献者,并关注新的,令人兴奋的项目以及任何未解决的问题。 有时,丹会发布“好第一期”推文!
Some other awesome React developers to follow include:
其他一些很棒的React开发人员可以关注的包括:
Sophie Alpert Ryan Florence Sebastian Markbage Brian Vaughn Andrew Clark Michael Jackson Cassidy Williams Kent Dodds
苏菲阿尔珀特 瑞安佛罗伦萨 塞巴斯蒂安Markbage 布赖恩·沃恩 安德鲁·克拉克 迈克尔·杰克逊 卡西迪·威廉姆斯 肯特兹
Also check out this list put together by Dan himself.
还请查看Dan自己整理的这份清单 。
There are many incredible React projects to contribute to as well including React Router, Redux, React Native, React VR, and Create React App.
还有许多令人难以置信的React项目,包括React Router,Redux,React Native,React VR和Create React App。
固定 (Fastify)
Fastify is a fast and low overhead web framework for Node.js. It is inspired by projects such as Express and Hapi. Created by Tomas Della Vedova and Matteo Collina. I was introduced to the project during the 2017 Node.js Interactive North America conference where I met Matteo. Matteo encouraged me to dive head first into the project. He also shared some incredible tips for contributing and learning new things:
Fastify是一个用于Node.js的快速,低开销的Web框架。 它受到Express和Hapi等项目的启发。 由Tomas Della Vedova和Matteo Collina创建。 在2017年Node.js互动北美会议上,我认识了Matteo,并向我介绍了该项目。 Matteo鼓励我首先投入该项目。 他还分享了一些令人难以置信的技巧,以帮助他们学习新事物:
Do not be afraid of failing
不要害怕失败
There will be times when you get things wrong, or you simply don’t have the skill set to complete an issue. This is perfectly okay and many project maintainers will be there to support you and show you the way.
有时候,您会出错,或者根本就没有能力解决问题。 这是完全可以的,许多项目维护人员将在那里为您提供支持并向您展示方法。
The only way you will learn new things is by putting yourself out there
学习新事物的唯一方法就是将自己放在那里
When I first contributed to Fastify I knew very little about back-end servers. From working on that project I added many new skills to my tool-belt and have a significantly better understanding of the back-end ecosystem.
当我第一次为Fastify做出贡献时,我对后端服务器了解甚少。 通过从事该项目,我为工具带增加了许多新技能,并对后端生态系统有了更好的了解。
结论并带走 (Conclusion and Take Away)
Interviewing is an exciting experience and will be different for everyone. Open source software is a growing community, “GitHub reached 24 million developers working across 67 million repositories” (GitHub).
面试是一次激动人心的经历,每个人都会有所不同。 开源软件是一个不断发展的社区,“ GitHub吸引了2400万开发人员,工作在6700万个存储库中”( GitHub )。
Capitalize on your skills and leverage your experience whenever you can. Don’t be afraid of making mistakes (I made one in the middle of writing this article!), and make sure to learn from them. Even though the open source world may seem scary, be brave and remember there are other developers out there looking to support you!
充分利用自己的技能,并尽可能利用自己的经验。 不要害怕犯错误 (在撰写本文时,我犯了一个错误 !),并确保向他们学习 。 即使开源世界似乎令人恐惧,也要勇敢一点,并记住还有其他开发人员希望为您提供支持!
*My contribution graph is sparse in July and August because during the summer I was a summer camp counselor and did not spend much (if any) time on my laptop. I would encourage everyone to take time off every once and a while, I promise it won’t hurt your progress and will actually feel really refreshing!
*我的贡献图在7月和8月比较稀疏,因为在夏天,我是夏令营的顾问,并且没有花很多(如果有的话)时间在笔记本电脑上。 我鼓励大家每隔一段时间抽出一点时间,我保证这不会损害您的进步,并且会真正让您精神焕发!
If you have any questions feel free to reach out on Twitter.
如果您有任何疑问,请随时联系Twitter 。
You can also find me on GitHub and check out my website ?
Happy coding ? and good luck on your own interviews! ?
编码愉快吗? 祝您面试顺利! ?
帮助中心 开源