この記事はpyspaアドベントカレンダー2021の三日目です。前日の記事はykubotaさんです。
はじめに
「自分には才能がある!」と信じてこの業界に踏み込んだものの右も左も怪物だらけで肩身が狭い思いをしているのは僕だけではない。
憧れるのは異世界転生のような俺TUEEEE展開であり「何ってクイックソートをしただけだが?」とか言ってたら地位と名声が向こうから転がり込んできて欲しい。
しかし世の中そんなに甘くなく、標準ライブラリを使って威張れるのは学生ぐらいのものである。
学生?そうだ!学生の頃から精進しまくっていたら今ごろすごいソフトウェアエンジニアになれていたはずなんだ!という後悔を抱えて生きている社会人が世の中にはいっぱいいる。
そんな立場から若者を見ていると「大学に入ってプログラミングを始めました」という大学生を見かけるたびにアドバイスをしたくなる衝動に駆られるが、毎度同じような事を話すのは老害っぽいのでここで一気に書き出して以後は口にしない事にした。これは最初で最後の「駆け出しエンジニアと繋がりたい」ハッシュタグ投稿である。
念頭に置いている対象読者は、プログラミングを始めたばかりだけど楽しいからこれを仕事にして俺TUEEEEEをやっていきたい日本の高校生・大学生で、プログラミングが好きなら現時点での実力は問わない。
基本的には情報系に限らず更には学生でなくても応募資格がある物を紹介するが年齢の制限はものによって違うので各自確認して欲しい。上にあるほどおすすめ度は高いが僕の主観に過ぎなくて人によっては全く違う優先度になることは充分ありうる。
それぞれの記述は僕の偏見を多く含むし、驚くような新情報はどこにもないが「若者向け」という観点でこれらの情報がまとめられた資料が見当たらなかったので、それらを一箇所に集めて一覧できるようにする事がこの記事の意義だと割り切って書いている。
日本のソフトウェアエンジニアリング界隈は年々盛り上がっており、先人達が敷いた学びの高速道路は至るところに敷設されている。その高速道路は入場無料、それどころかお金が貰える事も珍しくない。
夢見る学生は是非それらの高速道路を全速力で駆け抜けて人生を幸福にできる最強のビルドを作り上げて欲しい。
ビルド: ゲームにおける装備やスキルなどの構成の事
未踏
IPA(情報処理推進機構)が毎年応募された中から20プロジェクト程に対して数百万円の資金を付けて応援してくれる取り組み。
良い所
数百万というお金はアルバイトを辞めてコンピュータに向き合い続けるに充分なお金であり、完璧な引きこもりとして自分の趣味にフルコミットできる。
未踏界隈は縦横のゆるい繋がりが強く、未踏自体のネームバリューも国内ではそれなりに通用するため、就職活動や起業においてもそれなりに大きなアドバンテージを得ることができる。採択さえされれば技術面でも時間面でも交流面でも資金面でもプラスになるチート級のルートが未踏である。
未踏アドバンスト事業という発展版は年齢制限が無いので若者以外や未踏卒業生も応募できる。
イマイチな所
採択数は毎年最大20件程度で正直狭き門である。応募件数はレポートによると100件前後というので倍率は5倍前後なのでメリットと比べると低いとすら思うが、5倍というのは誰でも確定で通れる事を約束できるような倍率ではない。
また、未踏のPM自身は努めてバリエーションに富んだ提案を採択しようとしているがやはり成果が説明しやすく派手な内容に寄りがちである。
過去の採択事例を見るともちろん低レイヤーの地味で重要な技術の提案などもあるのだが、それら含めてもなお個人のやりたい事と乖離するのは珍しい事ではない。例えば「車輪の再発明がしたいだけです」というだけの提案ではまず採択はされない。楽しいのにね車輪の再発明。
それと未踏事業の資金で数百万というお金を受け取ると親の扶養から外れてしまう事が多々ある。
雑感
未踏という名前の響きは凄いが必ずしも提案ネタは人類未踏である必要はなく、毎年の採択傾向と技術動向を追っているとその時々で流行りそうな技術にひねりを加えた物が採択される傾向が強い。
採択される学生のいる大学に偏りが出がちだがそれは書類・プレゼン審査を通す提案のコツが先輩から代々引き継がれているというカラクリであって、適当な未踏界隈の人と仲良くなって提案書を添削してもらったり一緒にアイデアを考えてみるとすんなり通ったりする。
また採択された提案は調べてみるとその学生が所属する研究室で代々やっている家業の亜種だったりして、そこの教授が裏で糸を引いていたりする。そうやってコンスタントに未踏採択者を出している研究室もあるので興味のある人は調べて見ると良い、その研究室の内容が肌に合うなら未踏はきっと大きなステップアップになる。
Google Summer of Code
GoogleがOSS界隈と学生に対して行っている事業。
著名なOSSプロジェクトに対し学生がプロジェクトの提案を書いて応募し、OSS側のメンターとマッチングができたらGoogleがその学生に報酬を支払いながらOSS活動をしてもらうというもの。
公式サイトに過去のアーカイブが載っている。例えばChromiumプロジェクトのideasリストやLinuxのidasリストを見ると肌感覚が掴めると思う。
日本ではまだそこまで有名ではないが参加した学生のブログ等は検索すれば日本語含めていろいろ出てくるので探してみて欲しい。
良い所
延べ17,000人もの学生が参加したというので総数は多く、プロジェクトもたくさんあるので提案さえしっかりしていれば未踏程の倍率にはならないはずである。
3ヶ月というプロジェクト期間は短いが日本ならそれに対して2700ドル(執筆時のレートで約30万)という報酬(奨学金)が出る。これは夏休みに一切のバイトをやらずにコンピュータに向き合う事ができる額である。
OSS側のメンターと仲良くなって有力なOSSプロジェクトの貢献者となれるのはその後のソフトウェアエンジニアのキャリア形成の上で途轍もない利点となりうる。極端な例えを出すならLinuxのコア機能のメンテナまで上り詰めたのなら生涯仕事には困らないだろう。そうでなくても大きなコードベースのソフトウェアに対して何かをメンター付きで取り組むというのは今後のキャリア形成においても重要な経験となって大幅なレベルアップが図れる。
イマイチな所
基本的に英語で全てが行われるので(OSSは基本的にそうだが)英語が辛いという人には茨の道となると思う。とはいえソフトウェアエンジニアとしてやっていくなら遅かれ早かれ英語とは上手く付き合っていかなくてはならない。
また、期待される成果まで達しなかった場合は報酬額が満額支払われない。
雑感
正直よく知らない。
セキュリティキャンプ
未踏と同じくIPAが開催する若者向けの合宿イベントという事業である。夏休みの時期にソフトウェアに思い入れのある若者を募集し課題で選考して合宿させ、ソフトウェア業界の強い人達による集中講義をたて続けに浴びせて最強エンジニアを促成栽培しようという画期的な試み。(最近はコロナ禍でオンライン化したようだが)大学生はもちろん高校生も参加しており、恐るべき才能のるつぼとなっている。
学生は毎年100人程度を集めているが倍率は2倍程度のようである、またクジではなく課題と選考なので真摯に取り組めば通りやすくなる。
タイトルに「セキュリティ」とあるが必ずしもセキュリティだけをやるわけではなく、希望者はミドルウェアやカーネルにもどっぷりと浸かる事ができる。
良い所
同世代や業界人たちと知り合いながら一方的に知見を詰め込んでくれるのは刺激になるしクオリティはIPAのお墨付き。
参加費無料で業界人すら垂涎な敏腕講師陣による指導は正直僕が受けたいぐらいであるが22歳以下の学生という制限がある。
今この界隈で活躍している若手はそれなりの割合でキャンプ卒業生だったりする。
イマイチな所
参加しても金銭的な報酬は出ない(無料なのだし内容はそれ以上に魅力的なのだが)。
雑感
知り合いのつよつよ人材達が講師として参加してて羨ましい。
サイボウズラボユース
サイボウズ株式会社が主催する未踏っぽいプロジェクト。
親の扶養を出ない103万という上限の奨励金でメンターの指導のもと自分の取り組みたいプロジェクトにフルコミットさせてもらえる。
成果報告などを行う必要があるが、サイボウズという私企業の事業であるがためか未踏よりもプロジェクトの自由度が高いように見える。
メンターはtwitter上で探すとそれなりにアクティブなので興味があればリプライやDMで相談すると応募プロジェクトの方針が立つかも知れない。
良い所
募集期間が長く、通年でサイボウズラボの人たちに相談しながらアルバイトに一切時間を使わず自己プロジェクトに打ち込める環境に飛び込めるのはかなり懐が広い。
ラボユースとラボユース研修生(無報酬)に同時に応募できるので、まずは研修生狙いのつもりで併願すると良いかも知れない。
採択プロジェクトはメンターの味が色濃く出ており、メンターが面白いと思いさえすれば堂々と車輪の再開発だってできる。
成果物の著作権は作った本人に帰属するのでそれをベースに更に未踏に応募といったステップアップも夢ではない。
イマイチな所
何を作りたいのかという希望が自分の中から一切湧き出てこない人には辛い道になる。
また、メンターの人数とキャパシティ的な問題からおそらく同時に走るプロジェクトは未踏より少ない。
ただ知名度も未踏ほどは無いので倍率としてはそれほど高くないかも知れない。
雑感
すごい、この資金どこから出てくるの。僕も学生だったら是非応募したかった。
各種インターンシップ
ソフトウェアエンジニア界隈は青田刈りが激しく、優秀な学生を少しでも早く見つけようとGAFAに限らずいろんなところがインターンを実施している。
どれも基本的に選考があるが難度はまちまちで、報酬も出る。働ける力を証明しておくと後々の採用がスムーズになることもあるし、関係ない業界のアルバイトをするよりはよっぽど血肉になる経験を積むことができる。
報酬に関しては結構開きが大きくて、50万円/月以上をドーンと出してくる所もあれば時給1000円クラスでアルバイト並のところ、果ては日給2000円といった最低賃金法違反を疑われる物まで様々である。イマドキの企業程インターンの価値を高く見積もっているので報酬が高い傾向がある(もちろん例外はある)。
良い所
まとまったお金が貰えるのとプロの働きっぷりが近くで見れること、将来就活する際にもインターン先に就職しようと思った際にスムーズになるしそこ以外に就職するにも履歴書に少しだけ箔を付けてくれる(どこまで重視するかは会社によるが)。
世界中のいろんな企業がインターンを募集しているので枠の数で言ったらこれまで挙げたどれよりも総数は多い。
イマイチな所
企業によって当たりはずれが大きく、ただの期間限定アルバイトとして最低賃金以下でこき使われたみたいな話も無いわけではない。予め評判の良いインターン先を狙って応募するのが良い。
企業の内部の事を知れるというのはそれはそれで勉強にはなるがそれと同じ時間をひたすらソフトウェアエンジニアリングの学習に叩き込む気概のある人にはそれすらタイムロスに感じるかも知れない。
雑感
NTT研究所のインターン、昔は日当1000円で社食を食べたら半額吹き飛ぶような薄給だったけど今は日給9000円に上がったらしい。
PFNのインターンに通った報告が毎年僕の観測圏を揺らしていて優秀な学生は猫も杓子もPFNでインターンしているような錯覚すら覚えるが、そこのインターンシップの応募課題は結構骨があるので勉強を真面目にやっていない人には厳しい戦いになると思われる。
Googleも当然インターンシップを募集しており、中でもSTEP(Summer Trainee Engineering Program)というタイプの事業は「科学技術への情熱を持つ大学 1 年生と 2 年生(特に、これまでこの分野では少数派に属するグループ出身の学生)を対象に、技術開発を体験する機会を提供します。」と書いており、科学技術分野において少数派に属する学生に特化して門戸を開いている。我こそは少数派と信じる学生の方々は奮ってご応募いただきたい。STEPインターンの体験談は検索すると結構ブログが出てくるので雰囲気が掴めると思う。
他にもソシャゲ界隈のインターンは給料と学びの質が高めな傾向がある気がする。
インターンに関しては小町先生が良い記事を書いているので是非目を通してもらいたい。
AtCoder
国内最大の競技プログラミングのコンテストサービス。学生のうちから取り組んで緑色コーダー以上を狙っていきたい。高ランクになれば就活が顔パスとなるわけではないが、少なくとも大抵の企業の入社面接で出るような問題なら緑色を安定してキープする程度の力があればそれなりに健闘できるはずである。プログラミングに関わる仕事をするならまず腐らないスキルなので情報系の大学生は四の五の言わずに取り組むべきである。AtCoder Problemsでひたすら簡単そうな問題から全部埋めて、ACの数を増やす趣味を若いうちに持つかどうかで生涯の収入が億単位で変わりうるのがソフトウェアエンジニアリングの世界であり、ものすごくコスパが良い。
良い所
無料。パソコンさえあれば今日からでもコツコツと鍛錬できる(世の中にはスマホでやってる人すらいる)。色が自分の能力を大雑把に示す名刺代わりになるので自己紹介にも便利。
イマイチな所
過去問を解くこと自体ではお金は稼げない。賞金付きのコンテストはたまに開催されるがそこから賞金をもぎ取れるような学生はこんな記事を読まなくても覇道を突き進んでゆくことでしょう。
雑感
精進(コツコツと過去問を解き続ける事)は正直しんどいが、幸い問題も腐るほどあるので緑色に上がるまでは問題は5分悩んでわからなかったらガンガン答えを見て良いし他人の提出結果もガンガン読んで自分の血肉にしていい。過去問は毎週増え続けるので「全部解説読んでACして血肉になる前に問題が無くなっちゃった」なんてことにはならない。もし本当にそうなったならAOJとかCodeforcesとかTopCoderとかCodeChefとかにいくらでも過去問はあるし「それらの過去問を全部答え見て理解してACしたけど全然上達しませんでした」なんて人は見たことがない。CodeSignalとかCheckiOみたいにゲーム風味の味付けをしている奴もあって易しめの問題も多いので英語勉強がてら挑んでみると腕力になるかも知れない。
ISUCON
いい感じにスピードアップするコンテスト。予め用意されたwebアプリが環境ごと渡されるので、高速化してスコアを競うゲーム。年1回ペースで大会が開催されており学生も活躍しているが、まずは公開されている過去問をあの手この手で高速化して高スコアが出せる構成の作り方を学ぶこと。この大会でまともに戦える程の腕力があれば当面の間は都内で職にあぶれることは無いと考えて良さそう。
良い所
血肉になる技術が身につけられる。「スコアが伸びた!」「別の要因から来るノイズでした」みたいな実際の仕事でもよくあるような問題を本当によく引き当てるので、課題発見から解決までのサイクルをしっかりと身につけていく事ができる。
AtCoderのように解いたらおしまいではなく、スコアに上限は無いのでやりこみ要素は無限大。
イマイチな所
過去問を本番さながらに再現した環境を再構築するのはおよそ無理で、他に過去問を取り組んだ人のスコアもその環境に依存したスコアなので比較対象にしにくい。
過去問がそもそもそんなに多くないし年1回しか増えないので全部やりこんでしまうとできることが無くなる。
測定用環境をクラウドに用意すると利用時間で課金されるし、自宅にサーバを置くのもタダではない。
雑感
ISUCONで活躍してる学生あれ何食べたらああなるんだろう…。
ICPC(International Collegiate Programming Contest)
大学対抗プログラミングコンテスト。雑に言うと大学ごとにチームを組んでAtCoder的な問題を解いてスコアを競う大会。大学によってはクラブ・サークル活動としてこれに挑む人たちがいて、学生時代にここで研鑽した人はよく職場でも活躍しているのを見かける。正直よく知らない。
終わりに
書きたいことをおよそ書いてスッキリしたのでこの辺にする。他にも統計・機械学習のパワーで競うデータサイエンティストの登竜門Kaggleや毎年良質なセキュリティ寄り問題をコンスタントに出してくれるpicoCTFとかあるけど語れる程やりこんでいない。
あと無料でオンラインでアルゴリズムを基礎から学んでいけるアルゴ式とか、無料でエンジニア養成をする42tokyoとかも合う人には合うのかも知れない。何にせよ言えることは無料で学べるコンテンツや資源は大量にあるので、有料のサロンだのプログラミングスクールだのを検討するのは無料の資源をしゃぶり尽くした後でも全然遅くない。
これからの時代を作っていく新世代のエンジニア達に幸あれ。