幫助中心 開源
“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 ?
您還可以在GitHub上找到我并查看我的網站 ?
Happy coding ? and good luck on your own interviews! ?
編碼愉快嗎? 祝您面試順利! ?
翻譯自: https://www.freecodecamp.org/news/how-contributing-to-open-source-can-help-you-achieve-a-software-engineering-internship-5c13841452cd/
幫助中心 開源