一言でざっくりと言ってしまえば、少なくとも今までの私のキャリアで化学の知識はまったく必要ありませんでした。
数学や英語は何をやるにも必須ですが、物理も多くのコンピュータサイエンス分野においてほぼ不要でしょう。
一言でざっくりと言ってしまえば、少なくとも今までの私のキャリアで化学の知識はまったく必要ありませんでした。
数学や英語は何をやるにも必須ですが、物理も多くのコンピュータサイエンス分野においてほぼ不要でしょう。 続きを読む
個人的な見解ですが、日本で卒業した大学のネームバリューはあまり関係ないと思います。
東大に入るのが難しいということは有名なようなので、そこは考慮はされるかもしれませんが、その他の大学に関してはまず関係ないと思います。 続きを読む
ワールドカップで日本代表が活躍しています。
私が小学生の頃はいつも10時前には寝るように言われていたので、夜中に起きていることをはじめて許された1993年のワールドカップ予選はよく覚えています。
キャプテン翼という漫画が始まったのは1981年ですが、『なんでサッカーは世界では人気なのに、日本では人気ないんだろうね?』という台詞から物語が始まります。 続きを読む
女性からすれば馬鹿馬鹿しいくらいに当たり前の話かもしれません。
しかし姉や妹がおらず、さらに男子校に通っていた10代の私は、女性はセックスが好きではないと考えていました。
私が当時手に入れることのできた性に関する情報は、快楽に関するものはどちらかというとアンダーグラウンドで語られるものであり、学校やニュースなどで出てくる性に関する情報はセクハラや望まない妊娠など『被害者女性、加害者男性』という文脈で語られるものばかりだったのが大きかったと思います。
10代後半の私にとって、カップルの女性とは『無理してパートナーとのセックスに付き合っている』ものだと思っていました。
しかし実際のところは女性もセックスを(男性以上に)楽しんでいます。
https://twitter.com/shiumachi/status/1009753112976896000
『女性(男性)だから~という能力』がない、『女性(男性)だから~という職業に向いていない』という言い方には問題があります。
しかし私個人としては『女性エンジニアが少ないと男性がやる気が出ない』という発言が、(たとえ女性と男性を入れ替えても)懲戒解職に見合うほどの問題発言だとは思えません。
ただ性的なものを職場にもちこんでいるという文脈で批判されるのは理解できます。
この手の炎上はTwitterなどでは目立ちますが、しかし現実問題としてこういうのにいちいち反応する人はほんの一部です。
あなたがこの手の炎上を真に受けて、職場や学校で異性をまったく意識しないのは非常にもったいないことです。
この手の言説は男性のちょっとした行動を思いとどまらせる効果があり、これは社会全体で見ると大きな機会損失だと私は考えています。
日本の男女関係は付き合うまでに、多くの場合告白というステップがあり、さらにその告白は男性から女性に対して行うものという習慣がある以上、男性が行動を起こさなくなるのは、女性にとっても本来出会える人に出会えなくなるということなので男女双方にとってよくない状況でしょう。
男性のあなたはこの手の言説を真に受けずに、職場でもどこでもよさそうな人がいたら異性として意識して問題ありません。
それを仕事に持ち込まなければいいだけの話です。
またあなたが女性の場合は、男性はこういうご時世ゆえに動きにくいので、あなたからより積極的に行動を起こした方がいいと思います。
あまり好きではない職場でも、そこに会いたい人がいるのならばそれは仕事を続けるいいモチベーションではないでしょうか?
もちろん炎上していることからわかるように、この手のことを嫌がる人はゼロではないのでちゃんと人は見極める必要があります。
究極には、この手のことやミスコンなどに文句をつけるような人は実際の社会ではマイノリティです。
性別問わず、(特に若い方ならば)チャンスがあればいい人に出会いたいと思っているのはとても普通のことなので、その気持ちを不必要に抑制する必要はありません。
「女性エンジニアが少ないとやる気が出ない」と無邪気に発言した男性エンジニアが叩かれていますが、ではここで総合商社の一般職内定者の写真を見てみましょう。 pic.twitter.com/HyWDB01wUM
— 遊撃部長F/S&RWAs (@fstora) June 22, 2018
カップルを長く続けていると、だんだんと感情が家族的になってくるのもあり、セックスをしなくなってきます。
はじめに書いたように、過去の私は女性は無理してセックスに付き合ってくれていると考えていたので、だんだんとしなくなるのは良いことだと思っていたのですが、それは大いなる勘違いでした。
女性はセックスが求められないと自分に魅力がなくなったと考えるようです。
そうなると関係が終わっていきました。
セックスレスという言葉がいつ頃から日本で使われるようになったのかは知りませんが、カップルが別れる理由の大半は結局ここだと思います。
もう関係が続かないかもしれないというときには、一緒にカウンセラーに行くのは効果がありました。
またなによりも仕事が忙しすぎるのは、パートナーに対するケアが下がるので非常によくないです。
難しいけどセックスはとても大切なコミュニケーションですし、そこから性別問わずみんな幸せをもらえます。
最後に、セックスをするときは必ず毎回コンドームを使ってください。
コンドームが嫌いな男性も少なくないようですが、それはサイズが合っていないだけの可能性があるので別のものを試してみるといいと思います。
難易度はわかりませんが、仕組みとしては高卒から大学院に直接入学することは可能なようです(こちらを参考)。
こちらは東大工学部大学院の募集要項ですが、”個別の入学資格審査をもって、日本の大学を卒業した者と同等以上の学力があると本研究科において認めた者で、平成 31(2019)年 3 月 31 日において 22 歳に達しているもの”であれば出願資格があるようなので、高卒でも修士課程に入学するチャンスがあるはずです。
また必要な金額は、こちらによると入学金と授業料を合わせて2年間で135万円ほどのようなので、学位を取得することが将来のキャリアにつながるという確信があれば、進学する価値はあるかと思います。
とても興味があるので、うまくいったらぜひ教えてください!
私が活躍しているのかどうかはわかりませんが、アメリカの大学院に進学して、アメリカでそのままプログラマとして就職するというのがとりあえずの目指すべきところであれば、どの分野を選んでも特に大きな違いはないかと思います。
私はグラフィックスを選びましたが、それは単純に自分がやっていて面白いからで、例えばこれをやっていれば給料の高い仕事に就職できるという目算はありませんでした。(何よりも2000年代初頭のグラフィックスプログラマに対する一般人からの印象は、お世辞に言ってもポジティブなものではありませんでした。)
個人的には、表面的な流行りよりもその根底にあるアイデアを意識することで、特定の分野に依存しない知識を深めていった方が、分野間の移動が容易になり、その時々の流行りにのりやすくなると考えています。
具体的には例えば、python、OpenCV、ReactやjQueryのような特定のプログラミング言語やライブラリ・フレームワークに関する知識を深めるよりも、それらの根底にある数学やアルゴリズムのアイデアを意識して理解するようにした方がいいという意味です。
先日専門家でも未来のことは本当にわからないという記事を書きましたが、これから何が流行るかは本当にわからないです。
しかしコンピュータサイエンスに限らず、たとえ現在注目されていない分野でも、真面目にやっていればいつか日の目を見るものではないかと思います。
例えば15年前は数学科を出ても学校の先生くらいしか就職先がないという意見をよく聞きましたが、今ではそんなことをいう人はいないでしょう。
以前に知性を重視しない昭和の価値観を平成の次の時代には持ち込ませないという記事を書きましたが、20世紀に比較してより知性がものをいう社会に移行してきている感じがします。
研究というものに関わり始めたのは、私が20歳であった2002年頃でした。
その時のテーマは先生の言われるがままにGPGPUに関するものでした。
決まった処理しか行うことのできなかったGPUがプログラム可能になり、かつ32ビットのデータを扱うことができるようになったことにより、GPUをグラフィックス以外の処理に用いて計算の高速化をしようという雰囲気が生まれていたころです。
まだ当時は短いプログラムしか実行できず、またGPUでのプログラミングはCPUのそれと比較して面倒であり、私はあまりGPUプログラミングが好きではありませんでした。
特に当時は『CPUからGPUに処理を移すことで得られる計算速度向上』が、すべてCPUで計算していれば必要のない『CPUとGPU間のデータ転送速度の遅さ』に簡単に食われてしまい、全体として計算速度が上がった感じがいまいちしなかったのも好きでなかった要因です。
できるだけCPUとGPU間のデータ転送をなくすような方法を考えるといった、かなり地道な作業がGPUの処理速度を活かすには必要で、これをやっていてもあまり未来がないような感じもしていました。
また具体的には誰だったか忘れましたが、当時high-performance computingで有名な大学の先生も、将来的にはGPGPUは来ないだろうと予測して、私の指導教官が軽くショックを受けていたのも覚えています。
しかし15年ほどたった現時点でこの予測は外れています。
現在では例えばCPU上で動く画像処理のプログラムを、そのまま何の工夫もせずにGPUに移植するだけでCPUで計算するのが馬鹿馬鹿しいくらいに処理速度が上がります。
GPUがいくら早くなろうとも中毒的なゲーマーにしかその恩恵が感じられなかったのも今は昔で、GPGPUは機械学習という応用分野で産業とつながり、仮想通貨のマイニングによる需要急増のために本来GPUを必要としているグラフィックスアーティストやプログラマがGPUの在庫不足による値段の高騰を嘆く、といった状況が来るとは10年前には誰も想像できなかったと思います。
同じ2003年頃、私はニューラルネットワークという科目を大学で履修しました。
排他的論理和のような離散的な論理演算を連続的な関数を組み合わせることで表現できるなど、その不思議さにとても魅了されたのを覚えています。
授業の最後のプロジェクトではこちらのお絵描きパズルを自動で解くプログラムと、自動着色のプログラムを書いてみました。
ニューラルネットワーク自体が非常に強力であることは今では疑いのない事実ですが、これに関しても当時とあるアメリカのコンピュータビジョンの研究者が、自著でニューラルネットワークは来ないだろうと書いていたのを覚えています。
先ほどのGPUの話もそうですが、どんな分野が産業界で花開くかを予測するのは専門家にもとても難しいのだと思います。
私が初めて渡米した2006年頃はスマホは世界に存在せず、日本の携帯電話は格好いい携帯電話でした。
また当時の人々が描く未来のコンピュータの利用方法は、現在でも主流であるアプリをクライアント側(スマホやコンピュータ)にダウンロードするのではなく、クラウド側にアプリケーションを置き、クライアント側はただのユーザーインターフェースになるだろう、というものだったのを覚えています。
私自身もネットワークの速度やコストがボトルネックにならなくなるにつれて、そのスタイルがより未来的だと思っていました。
しかしiPhoneの登場はその流れを完全に断ち切った感があります。
スマホでの処理はブラウザ上で行うのではなく、アプリを介して行うのが今では主流です。
しかし2014年のHTML5の登場により、GPUを用いた処理がブラウザ上でも容易になり、この流れは数年後にまた変わるかもしれません。
また2018年現在、コンピュータサイエンスはその技術者の待遇を含めてとても花のある分野ですが、何度か書いていますが私が学生だった2000年初頭の日本ではそうではありませんでした。
当時は『プログラマ=技術に興味のない人たちに振り回される徹夜・休日出勤を強いられるIT土方』であり、東京大学でも情報工学に進学する学生が減っていると先生が嘆いていたのを覚えています。(現在はどうなのでしょうか?)
当時の私自身は、自分のやっていることはもっといいもののはずだという気持ちがありました。
このまま日本にいてもいいことなさそうだなと思ったのは、私がアメリカに行くことにした理由の一つです。
Twitterを見ていると日本のプログラマを取り巻く環境もだいぶよくなってきたような印象がありますが、みなさまいかがでしょうか?
日本のプログラマの皆さまが幸せな毎日を過ごしていることを願っております。
技術力というものを具体的に定義するのは難しいですが、アメリカでプログラマとして就職するための戦略で書いたように、Coding Interviewをそつなくこなせれば技術的には問題ないかと思います。
こちらからいつも紹介している本のサンプルが見れますので、Coding Interviewの問題がどんなものかチェックしてみてください。
面接を受けるまでの道のりは、シリコンバレーでプログラマとしてスタート地点に立つ方法を考えるを参考にしてみてください。
大学院に興味があれば、アメリカの大学院への進学はアメリカで就職するための王道ルートではないかと思います。
私も学部を卒業した後、新卒で日本でサラリーマンをやってからアメリカの大学院に進学しました。
以前アメリカでプログラマとして就職するための戦略という記事を書きました。
記事の最初に、プログラマの採用の流れとして、”1. まずリクルータと電話をして応募条件にマッチしている人材かチェックされます。”とさらっと書きましたが、ここにたどり着くまでが、後のCoding Interviewをパスするよりもずっと難しいかもしれません。
エンジニアとの面接にたどり着いてしまえば、Coding Interviewというある種の人工的なゲームでの勝負なので、そのゲーム対策は個人の努力です。
少なくともCoding Interviewに対するいい準備が出来ていれば、いくつか面接を受けるうちにいつかオファーをもらうことが出来ると思います。
どの会社もホームページやLinkedInを通じて誰もが応募できるような仕組みになっていますが、問題はそこから応募してもリクルータから返事が来ることはほとんどないことです。
なぜならオンラインからの応募は誰でも気軽にできるので、リクルータは一日にいくつも応募の書類を受け取り、すべてに目を通していないからです。(本当かどうかは知りませんが、こちらによるとGoogleには年間200万人の人が応募するそうです。)
逆に言うと、真正面から応募すると、技術的に確かな実力があってもリクルータのお眼鏡にかなわないとそもそも面接を受けさせてもらえない可能性が高い。
だから元同僚を通じたりOSSに参加したりして、中のエンジニアの知り合いを作り、リクルータを経由せずに面接を受ける手段を探すのがとても大事。
— yu. (@yu_phd) January 31, 2018
日本は新卒一括採用という『業界未経験でも就職できるチャンス』が(ある程度名のある学校を卒業していれば)誰にも与えられますが、そのような習慣がないアメリカではそもそも面接を受けるというスタート地点に立つのが非常に困難だという印象があります。
アメリカでは日本と異なり社員をいつでもレイオフすることができるとはいえ、レイオフが日常茶飯事の会社は評判が下がるので、一度雇った人間は簡単に切れません。
会社は一般にfalse negative(能力のある人を間違って落とす)よりもfalse positive(能力のない人を間違って採用する)を嫌います。
つまりフルタイム社員の採用はとても慎重なので、新卒など過去に就業経験のない人はなかなか相手にされません。
インターンがアメリカで一般的なのは、万が一変な人を雇ってしまったとしても、インターンはせいぜい数か月間の有期雇用なので、会社側からするとフルタイムの採用よりもリスクが低いからです。
したがって、学生や業界未経験者は採用基準の低いインターンで実務の経験を積み、その実務経験をもってフルタイムの就職先を探すというのがアメリカで就職するための王道アプローチだと思います。
あなたが学生であればインターンの機会はたくさんあるので、ぜひ興味があれば応募してみるといいと思います。(インターンに対するビザは就労ビザと異なり簡単に出ます。)
日本の大学(院)の学生でも、アメリカの会社でインターンをしたことのある方はたくさん知っているので、将来日本で就職するとしても、ちょっとした海外旅行気分で行ってみるのもいい経験になると思います。
また既卒者に対するインターンも学生対象のものに比べれば少ないですが存在します。
このブログで度々紹介しているElements of Programming Interviews: The Insiders’ Guideからの引用です。
Whenever possible, have a friend or professional acquaintance at the company route your resume to the appropriate manager/HR contact – the odds of it reaching the right hands are much higher. At one company whose practices we are familiar with, a resume submitted through a contact is 50 times more likely to result in a hire than one submitted online.
上記の引用をざっくりまとめると、『会社への応募の際にはその会社の求人ページからresume(職務経歴書)を提出するのではなく、可能な限りその会社に勤めている知り合いを通じて直接マネージャーや人事にresumeを手渡してもらうべき。それだけで採用されるかどうかの可能性は50倍くらい変わってくるかも。』となります。
つまり面接にたどり着くのに一番必要なのは、自分のことを評価してくれている知り合いを作ることです。
一番無難なのは元同僚や大学の研究室の仲間などでしょう。
日本の会社で働きながらオープンソースに参加することで、そこで知り合った人たちを通じ、シリコンバレーの会社に入社のきっかけを作ってもらったという方も知っています。
以下は最近私が個人的にやってみてうまくいった方法です。
創業1-2年未満のまだ社員が10人いないような本当のスタートアップは人を集めるのにとても苦労をしている印象があります。
そういう会社であればそもそも応募する人が少ないので、ホームページから直接応募してもresumeを見てもらえる可能性が高いと思います。
もしその会社の業務と関連するような研究業績やプロダクトがあれば、resumeと一緒にそれも提出してください。
もしそういうものがない場合は、『業務に関する何か具体的な課題を報酬ゼロ』でもらってください。
私が先日試した方法では、その会社が興味を持っている学術論文を送ってもらい、それをC++で実装するという課題をもらいました。
結果としてCoding Interviewすら受けずに採用のオファーをもらうことが出来ました。
実際にプログラムが書けるということを直接示すことができれば、それほど説得力のある方法はないからです。
アメリカにまったく知り合いがいない場合は、面接のスタート地点に立つことはとても難しいと思いますが、それでも何らかの方法で実際にプログラムを書けるということを示せればチャンスはあるはずです。
しかしここまでやってもビザの壁に阻まれる可能性がまだあるので、アメリカの大学院に進学したり、日本でアメリカ資本の会社に就職しそこから転籍を狙う方が、時間がかかっても結局は無難なのかもしれません。
参考: