docs:: Update GSoC application tips.

- Add missing link for GitHub.
- Fix broken links to Matt Ringel's blog post.
- Add link to Julia Evans blog post.
- Add section heading for "Questions Are Important."
- Rearrange some content to fit with new section heading.

With additional tweaks from tabbott:
* Avoid linking to chat.zulip.org not via our documentation.
* Avoid the CZO abbreviation.
This commit is contained in:
AEsping 2021-11-19 08:11:08 -06:00 committed by Tim Abbott
parent fdd63546b2
commit 6ad1c5c8ed
1 changed files with 88 additions and 71 deletions

View File

@ -80,29 +80,29 @@ tasks that are great for first-time contributors. Use
[our first-time Zulip developer guide](../overview/contributing.html#your-first-codebase-contribution) [our first-time Zulip developer guide](../overview/contributing.html#your-first-codebase-contribution)
to get your Zulip development environment set up and to find your first issue. If you have any to get your Zulip development environment set up and to find your first issue. If you have any
trouble, please speak up in trouble, please speak up in
[#GSoC](https://chat.zulip.org/#narrow/stream/14-GSoC) in [#GSoC](https://chat.zulip.org/#narrow/stream/14-GSoC) on
[the Zulip development community server][development-community] [the Zulip development community server](https://zulip.com/developer-community/)
(use your name as the topic). (use your name as the topic).
## Application tips, and how to be a strong candidate ## Application tips, and how to be a strong candidate
You'll be following You'll be following [GSoC's application process
[GSoC's application process instructions](https://developers.google.com/open-source/gsoc/). And instructions](https://developers.google.com/open-source/gsoc/), and
we'll be asking you to make at least one successful pull request making at least one successful pull request before the application
before the application deadline, to help us assess you as a developer. deadline, to help us assess you as a developer. Students who we accept
Students who we accept generally have 5 or more pull requests merged generally have five or more merged, or nearly merged, pull requests
or nearly merged (usually including at least a couple that are (usually including at least a couple which are significant,
significant, e.g. having 100+ lines of changes or that shows you have e.g. having 100+ lines of changes or show you have done significant
done significant debugging). debugging).
Getting started earlier is better, so you have more time to learn, Getting started earlier is better, so you have more time to learn,
make contributions, and make a good proposal. make contributions, and make a good proposal.
Your application should include the following: Your application should include the following:
- Details on any experience you have related to the technologies that - Details on any experience you have related to the technologies used
Zulip has, or related to our product approach. by Zulip, or related to our product approach.
- Links to materials to help us evaluate your level of experience and - Links to materials which help us evaluate your level of experience and
how you work, such as personal projects of yours, including any how you work, such as personal projects of yours, including any
existing open source or open culture contributions you've made and existing open source or open culture contributions you've made and
any bug reports you've submitted to open source projects. any bug reports you've submitted to open source projects.
@ -110,7 +110,7 @@ Your application should include the following:
- A description of the project you'd like to do, and why you're - A description of the project you'd like to do, and why you're
excited about it. excited about it.
- Some notes on why you're excited about working on Zulip. - Some notes on why you're excited about working on Zulip.
- A link to the initial contribution(s) you did. - A link to your initial contribution(s).
We expect applicants to either have experience with the technologies We expect applicants to either have experience with the technologies
relevant to their project or have strong general programming relevant to their project or have strong general programming
@ -125,43 +125,65 @@ contributions throughout the application process, including after the
application deadline. application deadline.
We are more interested in candidates if we see them submitting good We are more interested in candidates if we see them submitting good
contributions to Zulip projects, helping other applicants on GitHub contributions to Zulip projects, helping other applicants on [GitHub](https://github.com/zulip/zulip)
and in and on [chat.zulip.org](https://zulip.com/developer-community),
[the Zulip development community][development-community], learning from our suggestions, [trying to solve their own obstacles and
learning from our suggestions, then asking well-formed questions](https://www.mattringel.com/2013/09/30/you-must-try-and-then-you-must-ask/),
[trying to solve their own obstacles and then asking well-formed and developing and sharing project ideas and project proposals which
questions](https://blogs.akamai.com/2013/10/you-must-try-and-then-you-must-ask.html),
and developing and sharing project ideas and project proposals that
are plausible and useful. are plausible and useful.
Also, you're going to find that people give you links to pages that ## Questions are Important
answer your questions. Here's how that often works:
1. you [try to solve your problem until you get stuck, including A successful GSoC revolves around asking well-formed questions.
looking through our code and our documentation, then start formulating A well-formed question helps you learn, respects the person answering,
your request for and reduces the time commitment and frustration level of everyone
help](https://blogs.akamai.com/2013/10/you-must-try-and-then-you-must-ask.html) involved. Asking the right question, to the right person, in the right
1. you ask your question way, at the right time, is a skill which requires a lifetime of
1. someone directs you to a document fine-tuning, but Zulip makes this a little bit easier by providing a
1. you go read that document, and try to use it to answer your question general structure for asking questions in the Zulip community.
1. you find you are confused about a new thing
1. you ask another question
1. now that you have demonstrated that you have the ability to read,
think, and learn new things, someone has a longer talk with you to
answer your new specific question
1. you and the other person collaborate to improve the document that you
read in step 3 :-)
This helps us make a balance between person-to-person discussion and This structure saves time answering common questions while still
documentation that everyone can read, so we save time answering common providing everyone the personal help they need, and maintains balance
questions but also get everyone the personal help they need. This will between stream discussion and documentation. Becoming familiar and
help you understand the rhythm of help we provide in the developers' comfortable with this rhythm will be helpful to you as you interact
Zulip livechat -- including why we prefer to give you help in public with other developers on
mailing lists and Zulip streams, instead of in one-on-one private [chat.zulip.org](https://zulip.com/developer-community). It is always
messages or email. We prefer to hear from you and respond to you in better (and Zulips strong preference) to ask questions and have
public places so more people have a chance to answer the question, and conversation through a public stream rather than a private message or
to see and benefit from the answer. [More about that in this blog an email. This benefits you by giving you faster response times and
post.](https://www.harihareswara.net/sumana/2016/10/12/0) the benefit of many minds, as well as benefiting the community as
other contributors learn from reading the conversation.
- Stick to the [community norms](https://zulip.com/developer-community/).
- Read these three blog posts
- [Try, Then Ask](https://www.mattringel.com/2013/09/30/you-must-try-and-then-you-must-ask/)
- [We Arent Just Making Code, Were Making History](https://www.harihareswara.net/sumana/2016/10/12/0)
- [How to Ask Good Questions](https://jvns.ca/blog/good-questions/)
- Understand [what makes a great Zulip contributor](../overview/contributing.html#what-makes-a-great-zulip-contributor)
This is a typical question/response sequence:
1. You [try to solve your problem until you get stuck, including
looking through our code and our documentation, then start
formulating your request for
help](https://www.mattringel.com/2013/09/30/you-must-try-and-then-you-must-ask/).
1. You ask your question.
1. Someone directs you to a document.
1. You go read the document to find the answer to your question.
1. You find you are confused about a new thing.
1. You ask another question.
1. Having demonstrated your the ability to read,
think, and learn new things, someone will have a longer talk with
you to answer your new, specific question.
1. You and the other person collaborate to improve the document you
read in step 3. :-)
As a final note on asking for help, please make use of [Zulip's
Markdown](https://zulip.com/help/format-your-message-using-markdown)
when posting questions; code blocks are nicer for reading terminal
output than screenshots. And be sure to read the traceback before
posting it; often the error message explains the problem or hints that
you need more scrollback than just the last 20 lines.
## Mentors ## Mentors
@ -170,21 +192,19 @@ projects. We usually decide who will mentor which projects based in
part on who is a good fit for the needs of each student as well as part on who is a good fit for the needs of each student as well as
technical expertise as well as who has available time during the technical expertise as well as who has available time during the
summer. You can reach us via summer. You can reach us via
[#GSoC](https://chat.zulip.org/#narrow/stream/14-GSoC) in [#GSoC](https://chat.zulip.org/#narrow/stream/14-GSoC) on [the Zulip
[the Zulip development community server][development-community], development community server](https://zulip.com/developer-community/),
(compose a new stream message with your name as the topic). (compose a new stream message with your name as the topic).
Zulip operates under group mentorship. That means you should Zulip operates under group mentorship. That means you should generally
generally post in public streams in post in Zulip public streams, not send private messages, for
[the Zulip development community][development-community], not send private assistance. Our preferred approach is to just post in an appropriate
messages, for assistance. Our preferred approach is to just post in Zulip public stream .org and someone will help you. We list the Zulip
an appropriate public stream in contributors who are experts for various projects by name below; they
[the Zulip development community][development-community] and someone will help will likely be able to provide you with the best feedback on your
you. We list the Zulip contributors who are experts for various proposal (feel free to @-mention them in your Zulip post). In
projects by name below; they will likely be able to provide you with practice, this allows project leadership to be involved in mentoring
the best feedback on your proposal (feel free to @-mention them in all students.
your Zulip post). In practice, this allows project leadership to
be involved in mentoring all students.
However, the first and most important thing to do for building a However, the first and most important thing to do for building a
strong application is to show your skills by contributing to a large strong application is to show your skills by contributing to a large
@ -198,11 +218,9 @@ few contributions! Everyone makes mistakes getting started. Just
make sure you don't make the same mistakes next time). make sure you don't make the same mistakes next time).
Once you have several PRs merged (or at least one significant PR Once you have several PRs merged (or at least one significant PR
merged), you can start discussing with merged), you can start discussing with the Zulip development community
[the Zulip development community][development-community]
the project you'd like to do, and developing a specific project plan. the project you'd like to do, and developing a specific project plan.
We recommend discussing what you're thinking in public streams in We recommend discussing what you're thinking in Zulip public streams,
[the Zulip development community][development-community],
so it's easy to get quick feedback from whoever is online. so it's easy to get quick feedback from whoever is online.
## Project ideas ## Project ideas
@ -587,13 +605,12 @@ two before the application deadline. That way, the whole developer
community -- not just the mentors and administrators -- have a chance community -- not just the mentors and administrators -- have a chance
to give you feedback and help you improve your proposal. to give you feedback and help you improve your proposal.
Where should you publish your draft? We prefer Dropbox Paper or Where should you publish your draft? We prefer Dropbox Paper or Google
Google Docs, since those platforms allow people to look at the text Docs, since those platforms allow people to look at the text without
without having to log in or download a particular app, and you can having to log in or download a particular app, and you can update the
update the draft as you improve your idea. In either case, you should draft as you improve your idea. In either case, you should post the
post the draft for feedback in [the Zulip development community][development-community]. draft for feedback in
[#GSoC](https://chat.zulip.org/#narrow/stream/14-GSoC).
[development-community]: https://zulip.com/developer-community/
Rough is fine! The ideal first draft to get feedback from the Rough is fine! The ideal first draft to get feedback from the
community on should include primarily (1) links to your contributions community on should include primarily (1) links to your contributions