[Grad2022] [Turnbull Zemi] Google Summer of Code でのインターン

Stephen J. Turnbull stephenjturnbull at gmail.com
Sat Apr 9 16:53:26 JST 2022


Hi, everyone

(一部の日本語説明が最後にあります。興味のある知合いに是非転送してください。)

The cherry trees are in full bloom, and we've just entered spring,
but it's time to think about summer, because the Google Summer of
Code (GSoC) application period is now open!  For complete details,
see https://summerofcode.withgoogle.com/.

Feel free to forward to other interested people, students or
colleagues with students who program.  I am happy to answer general
questions about GSoC by email, and consult on applications by email
or video chat.

SCHEDULE AND COMPENSATION

Contributor applications will be accepted until April 19th.  I believe
you can apply to up to five projects.  If accepted, you can choose the
short course from June 13 to September 12 (170 hours of work expected), 
or the long course until November 21 (340 hours of work expected).  I
believe the compensation is the same as previous years, and you
can expect it to be about US $5500 (currently about ¥680,000).[1]

The pay for GSoC interns is somewhat below market rate (I have heard
that companies like Microsoft will sometimes pay up to 3X as much, but
I believe those interns have special skills such as cryptography or
experience in device driver development).  Even if you already have
marketable skills, GSoC has three advantages to consider.  First, the
social contribution is very high, because all GSoC projects are
required to be open source and well-documented.  Second, GSoC
is frequently a stepping stone to future internships and even
employment, and in some projects will expose you to developers from
several first-class companies.  Third, GSoC projects are required to
engage in mentoring their interns while doing the project's work,
while corporate internships sometimes amount to shadowing a developer,
watching over their shoulder.  (This is not to deprecate all corporate
internships, some have excellent mentoring systems.  But GSoC is
designed and managed as a mentoring program.)

GENERAL CONDITIONS OF INTERNSHIPS

In GSoC, you will have access to at least two mentors.  Mentoring is
not tutoring.  You will be expected to recognize and solve problems
yourself.  Mentors provide advice on time management and program
structure.  They help you understand the software system you are
working on, and advise you on coding style.  They intervene when you
are really lost for understanding why things aren't working as
expected.  They help you with human relations within the project, as
well as the project's workflow.  When you submit work, they will
evaluate it, help you improve it and integrate it in to the project's
product, and explain "how professionals would do the same thing".

As you know, the primary language of the global software development
industry, and most open source software projects, is English.  GSoC is
no different.  You should expect that much of your important
communication will be conducted in English.  You may be able to find a
project with a mentor who speaks another language, but the common
language of all projects I know of is English, and you will need to
work with non-mentor developers and users interested in your feature
in English.  Alhough many projects provide documentation in several
languages, almost always the primary documentation is in English and
then translated, while developer documentation is almost never
available in languages other than English.

Programming languages vary.  Do check each project's description to
make sure it uses languages you prefer, either because you already
know them well, or because you want to learn them better.  (Of course
projects generally prefer the former, but developers who want to learn
are usually attractive as well.)

APPLICATION PROCEDURES

It takes 1-2 days of work to write an attractive application, but
because applications are project-specific, you can also submit a
minimal application and hope to hit a project with few applicants.
Here is a description of a good application for the GNU Mailman
project where I mentor (which I wrote several years ago, and
probably should update): https://wiki.list.org/DEV/SPAM.

Each application proposes to work on a specific task.  Tasks are
listed on the projects' Ideas Pages.  You can find them linked from
the GSoC site:
https://summerofcode.withgoogle.com/programs/2022/organizations.
GNU Mailman's is here:
https://wiki.list.org/DEV/Google%20Summer%20of%20Code%202022.
Tasks will usually be tagged with the expected level of skill
required and whether they are appropriate for the short course,
the long course, or both.  I'm happy to provide advice on whether
to choose a particular task, or which to choose from a short list,
but other than my own project GNU Mailman, I'm not in a position
to recommend one.  You have to do some research for yourself here.

An application starts with personal information.  You may be
surprised by some of the fields, but they're required by Google
because of payment, taxes, and (sadly) trade sanctions.  Also,
besides writing code, you are expected to communicate about your
work to the general public.  For this reason you are asked for
your social media accounts, personal blog, home page, and so on.
Other things being equal, projects prefer developers who will be
ambassadors for the project.

As an intern you will be required to have the following:

1.  An email address at Gmail.  Google uses this for
    identification.
2.  A GSoC blog.  This can be a tag on your personal blog, or it
    might be set up specifically for GSoC.
3.  An account at a public repository host, usually GitHub, so
    that Google can confirm your code contribution.

Projects also usually require

4.  Membership in project mailing lists, Discord servers, or
    Discourse servers to communicate with the community.
5.  Accounts on a messaging service for mentoring communication.
    They might be text-based such as the venerable IRC service or
    Slack, or video chat.

It's helpful in getting acceptance of your application to prepare
these requirements (where possible) in advance.  For example, in
GNU Mailman we require a GitLab (not GitHub) account, membership
in a developers list, a users list, and IRC at libera.chat.  Some
projects consider activity on social media a plus.

You will also be expected to make a personal statement about your
interest in software development in general, the particular
project and the task, as well as your background.  Some projects
demand particular experience, but many do not.

Then you make a project proposal.  (This is the part that the
https://wiki.list.org/DEV/SPAM document primarily addresses.)  It
is absolutely essential that you make specific reference to the
project and a specific task.  Applications of the form "I'm a
great programmer, I know 27 computer languages, I'd love to work
in your project, please accept me" get marked "ignore" and have no
chance.  At the very least, make clear that you understand the
basic use case for the task, and explain why you think it's
important to the project, and justify your confidence that you can
complete it.  You must provide a schedule for completion of the
task, and try to explain the changes you will make.  The most
attractive applications include a coding plan describing the
files, data structures, and functions to be changed, with specific
milestones to complete by certain dates (see "SPAM"), but this is
not necessary for acceptance to most projects.

As a mentor and organization administrator for GNU Mailman, the
Systers, and the Python Software Foundation, I have greatly
enjoyed working with GSoC interns.  The great majority of interns
consider it a very valuable experience, and many apply
repeatedly.  If you have an interest in sofwtawre development, I
whole-heartedly recommend it.

皆様

まださくらが咲いている中で夏を考えることちょっと早いと思うかもしれませんが
グーグル社が開催するコードの夏季プログラムの申請期間が始まって19日までの
締め切りなのです。プログラム貢献者(インターン)の役割の詳細については
https://summerofcode.withgoogle.com/ に参照してください。期待する
努力はショートコースで6月13日から9月12日の間に170時間、ロングコース
なら11月21日までに340時間です。報酬はグーグル社に任せるが、近年$5500
相当になりました。(国々の間に生活コストの差があるためと言います。私はたぶ
ん所得水準の高い日本にすむ人には過去と同様$5500、現在¥680,000に相当する
のです。)GSoCの報酬が少ない方といわれているが、GSoCは社会貢献が非常に高
いこともあり、GSoC卒業生は報酬の高い一流ソフト会社(Microsoft、Red Hat、
IBM等々)に昇進・入社することが多いと思います。

ほかのインターンと比べてGSoCはメンターリングを主張することがあります。別の
プログラムならソフトウエアエンジニアのシャドーイング(肩の上から仕事をのぞく
方法)が多いがGSoCの場合にはメンターがそれぞれの段階に係わりアドバイスを与
えるのです。(ただし、チュートリングと思わないでください。自分が仕事を提出し
てメンターが評価して、プロならこれする、あれすると説明し、またはグルグル迷う
ところに関与し、この機能を使えば…と提案する方法が多いですよね。)

言語なんですが基本的に英語なのです。国際オープンソースソフトウエア業の共通
言語です。ほぼのコンピュータ言語のコマンドや関数が英語ベースであり、英語が
嫌な人間は苦労するでしょう。たとえば私がメンターになっても一部のことを日本
語で喜んで教えるが、ユーザのニーズを聞くとき、他のコアデベロパーに話す時に、
英語を利用しなければなりません。説明書とコードのコメントもすべて英語で書い
てあると言えます。

英語にチャレンジできるかが、不安がある人は是非、相談してください。GSoCへ
の一般の質問はメールで送ってください。申請の作成についてメールまたはビデオ
チャットでも相談できます。

Steve


Footnotes: 
[1]    The contributor agreement says compensation is up to Google,
but the purpose is to allow Google to apply cost of living
adjustments.  Because Japan is a high-cost country, I expect the pay
to be about the same as the past, which is $5500.  I have not checked
whether the long course pays more.



More information about the Grad2022 mailing list