面試官怎么看你的Github profile

Udacity的Machine Learning納米學(xué)位課程中,關(guān)于Github的筆記。

聽(tīng)課范圍:
Github Profile
Git 和 Github
Readme

Profile
Readme
Commit
Contribute to open source community

課程聽(tīng)了一半,筆記繼續(xù)更新,有待排版。

show your work and how you work

照片
twiter,個(gè)人博客

recruiter最先看的是這里,看你有多活躍,幾乎每天都會(huì)coding。

點(diǎn)進(jìn)一個(gè)最popular的contribution的repository,可以看到scott做了最多的貢獻(xiàn),寫(xiě)了大部分代碼。

頁(yè)首加了get hub page for this library。

readme是repository里最重要的部分之一。
便于其他人閱讀和使用代碼。

comments里面可以加入版本的說(shuō)明,feature增加的說(shuō)明等。

hiring manager的職責(zé) figure out what attributes do value in engineers。

第一要看的,就是活躍熱圖,看綠色的分布,看這個(gè)人是否熱愛(ài)編程。是否經(jīng)常做貢獻(xiàn),不需要總是在編程,但至少會(huì)有比較穩(wěn)定的趨勢(shì)。

接下來(lái)看這個(gè)人建立的repository,和他貢獻(xiàn)過(guò)的repository。
挑一個(gè)最豐富的repo,花一個(gè)小時(shí)去讀他們的code,從而看出他們是什么樣的工程師。
也會(huì)看他是否在其它repo中有貢獻(xiàn),看他怎樣和別人互動(dòng),協(xié)作,討論。


寫(xiě)readme

便于自己記憶code,回頭再看看你寫(xiě)過(guò)的代碼,你是否還記得你當(dāng)時(shí)是怎么想的嗎,是否還記得你當(dāng)時(shí)為什么做了這些決定嗎,便于別人使用,便于別人協(xié)作。

看如何使用這個(gè)code,有沒(méi)有example,如果沒(méi)有好的document,別人就會(huì)轉(zhuǎn)向其它更方便的library,如果非要讀這樣的code,就會(huì)花費(fèi)很多時(shí)間,

Paste_Image.png

https://github.com/thoughtbot/factory_girl
https://github.com/zkat/can.viewify
https://github.com/udacity/create-your-own-adventure

項(xiàng)目簡(jiǎn)介,Description
其它文檔,Documentation
安裝,Install
額外信息:Contribution,當(dāng)你想讓別人更方便地加入進(jìn)來(lái),或者Issue
License

看下面這個(gè)例子
https://github.com/github/ledbetter

readme需要提供給user足夠的信息以便于up and running your code

題目
描述:一兩句,清楚并且精準(zhǔn)地描述項(xiàng)目的精髓

Installation, common Usage, known Bugs
readme的長(zhǎng)短取決于你的項(xiàng)目,沒(méi)有必須的要求,只需要提供給使用者必要的信息。

copyright和licensing information,或者link。
下面這個(gè)網(wǎng)站,可以學(xué)習(xí)如何選license。
http://choosealicense.com/
這里有關(guān)于license的指南,
https://github.com/blog/1530-choosing-an-open-source-license
這里可以告訴你為什么要選license,以及不選license的情況:
https://help.github.com/articles/open-source-licensing/

建立license很簡(jiǎn)單:

提供一下已經(jīng)知道的bug,這樣用戶就不用發(fā)愁為什么他的code無(wú)法成功運(yùn)行。

用markdown寫(xiě)readme,易讀,而且排版容易。
Github,Stack Overflow,Slack,Reddit

Here's a link to the basic Markdown documentation. You can also check out the differences in GitHub flavored Markdown here.

github中常用markdown命令
加粗
Isn't today a wonderful day?
斜體
And in that moment I thought to myself: Did I turn off the stove?
代碼
You should use the strong tag.
標(biāo)題

This is an h2.

Working with .md
Files
Much like how your HTML files should be saved with a .html
extension, your Markdown files should be saved with a .md
extension.
Markdown itself can't be opened in the browser like an HTML document. If you want to preview your Markdown files, Dillinger is a great online resource for you to do so.
If you are using Sublime Text, there is a plugin you can download to let you preview Markdown files right on your computer. If you are using Atom text editor, Markdown preview is baked right into the program (in the 'Packages' menu).

Here's a link to the basic Markdown documentation. You can also check out the differences in GitHub flavored Markdown here.
To preview Markdown in the browser, try Dillinger.

什么那個(gè)不好用,下面這個(gè)好用
http://dillinger.io/


well formatted commit messages

讓別人知道,為什么這里有這樣的code,何時(shí)做了怎樣的修改。
方便別人解讀,使用,維護(hù)你的代碼。
hiring manager會(huì)看這個(gè)人有多么地擅長(zhǎng)溝通,傳遞。

Udacity上的例子
http://udacity.github.io/git-styleguide/

The first line is the subject.This should be a short description of what changed.should be 50 characters or less, with the first letter capitalized, and end without a period. At Udacity, we also include a short annotation about the type of the commit, if it is a bug fix, a feature, change to the documentation, etc.

The body is next, this is where you give a more detailed description of why you made the change. The body should typically have around 72 characters per line. This is to ensure that the message fits into a terminal window when using git on the command line. You’ll also need to make sure there is a blank line between the subject line and the body.

Some commits don’t require a body in the message. If you fix a typo for example, it’s okay to only have a subject line.
You can also include a footer, typically this will be used to indicate which issues or bugs the commit addresses.

This does come with an exception of course. If you are working on an open source project, be sure to follow the message format for that project. This will make the maintainers happy and increase the chance your pull request is accepted.

從你的代碼里可以看出,你是否善于協(xié)作,喜歡幫助別人,并且熱愛(ài)編碼。
面試官是怎么樣從你的github上看出你是個(gè)好的協(xié)作者的,在一個(gè)團(tuán)隊(duì)里是如何表現(xiàn)的。
看他們參與的repo里的issue,
是否在on po requests里評(píng)論,
看他們?nèi)绾闻c其它工程師互動(dòng)。
看他們是否有耐心對(duì)待剛進(jìn)入這個(gè)社區(qū)的成員,
找找是否有internet relay chat關(guān)聯(lián)于這個(gè)repo,
看log,看他們是否helpful,kind,patient。

作為hiring manager,你想向new programmer提些什么建議,關(guān)于他們?cè)趨⒓觕ontribute to很大很復(fù)雜的開(kāi)源項(xiàng)目中。
break the ice in a new project,
找文檔看,readme,clone the project,try to build it, try to get it running, follow the steps in readme.
try to clarify some problems I have, submit a poll request with a few changes in the readme.
just move on to fix the bugs, and maybe actually contributing the features.


如何為開(kāi)源項(xiàng)目做貢獻(xiàn)

Github
https://guides.github.com/activities/contributing-to-open-source/
找一些最喜歡的開(kāi)源的library,pandas:
https://docs.google.com/document/d/1ULcO23Edlydaf82zycRdSWHKUme5pmNnC4OoMefIZ-c/pub

python: pandas, numpy, scipy, seaborn, scikit-learn, orange, nltk
r: dplyr, ggplot come to mind
also 'stan' for r
pymc for python as well.
http://www.datakind.org/
http://databits.io/ for data and data vis related competitions
https://www.kaggle.com/ - Kaggle is a platform for data prediction competitions. Companies, organizations and researchers post their data and have it scrutinized by the world's best statisticians.

讀documentation,不會(huì)的問(wèn)題就create issue,尋求幫助。
創(chuàng)建issue,這個(gè)項(xiàng)目的,也可以是你自己的,
要nice,都是public的,
最好的contribution方式,就是improve the documentation。


check list
https://docs.google.com/document/d/1a9AKnNyqfGgdQV5ohPCN5H9ntnEUhMptWMwVBWURCN0/pub?embedded=true

GitHub Profile Checklist

= Optional Udaciousness
Link to associated GitHub Profile Rubric

General
I’ve uploaded at least four projects to GitHub.
I’ve verified that my account shows knowledge about how to make incremental commits.


For the last two weeks, I’ve made and pushed some sort of commit, no matter how small, to repo(s) each day.


I have more than 2 projects on GitHub, indicating that I have uploaded more projects than required.
I’ve contributed to an open source project.

Personal Profile
I have a professional GitHub name. If at all possible this GitHub name is my own name.
I have a professional profile photo (recommended to be a photo of yourself, but could also be stylized).
My profile is up to date.
Profile includes at least one up-to-date links for: 'URL' and/or 'Company' fields and/or ‘Contact Email’ and current location.

Projects
I have starred at least one repository I’d like to keep track of.

My projects have meaningful names.

My projects have a completed README that says what the purpose of the project is, any instructions about how to use or view it, and what kind of collaboration is sought.

Not all forked repos/changes require modifications to the README, especially when contributing upstream to another's project (would need to be a substantial change). All changes should be documented with commit messages to explain the changes.

The last commit I made to a project matched the commit style guide I chose. If I did not follow the Udacity git commit style guide, then I have included a link to the guide I did use to show consistency.

career resource

http://career.udacity.com/resource-center/contributing_open_source.html

end

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容