デスク周りをととのえる〜モニターをマウント〜

初回から全然続きがなかったですが、引き続きデスク周りを整えております。

今はこんな感じです。前回からの変更をまとめます。

入力周りのハードウェアをととのえた。

やっぱりWindowsのキーボードだとショートカットキーの配置がちがったり、打鍵感が違うのでマジックマウスとマジックキーボードを購入しました。どちらも一世代前で電池で動かしてます。

その他、手首への負担を減らすためのクッションも購入しました。キーボードのクッションが高すぎたため、使い終えたノートで高さ調整しています。

マウントアームを購入

一枚目の画像のとおりです。

机に置いた分モニターが遠くないてしまうためアームを購入しました。海外には発送していませんがこちらです。モニターの高さが違うのは全く想定していませんでした。解像度も画面の明るさもDELLの方が断然良いので、売ってた人に同じモニターを問い合わせてます。

そのた小物

DVIからUSBのコンバーターだったり、机からケーブルが落ちないようにするスリッパー、充電できる電池など小物をそろえました。

次はDELLのモニターとスタンディングデスクですね。スタンディングデスクは飽きたり疲れたりしたときに、座って作業できるように高さを変えられるデスクを考えてます。

配列が与えられた時、N個からなる最大値/最小値を求める

ABC 62-Dの3N Numbersを解いてるときに、N個からなる最大値/最小値を求める必要があったのでメモしときます。

Priority Queueを使う。

Priority Queueで実装できます。基本的なロジックは

  1. 最初のN個をPQにいれる。
  2. PQの中にある合計を記録する変数(sum)を用意する。
  3. N個目から先は
    1. i番目の数をPQにいれる。sumをアップデートする。
    2. PQから最小値を取り出す。取り出した値をsumから引く。

これを、配列の最後の要素にたどり着くまで繰り返す。新しい数字が入ってくるたびに、その集合の最小値が取り除かれるため、合計は常にN個からなる最大値になります。

コードはこんな感じです。

PriorityQueue<Integer> pq = new PriorityQueue<Integer>();
long sum = 0;
long max = Long.MIN_VALUE;

for (int i = 0; i < n; i++) {
    pq.add(nums[i]);
    sum += nums[i];
}

max = Math.max(max, sum);

for (int i = n; i < l; i++) {
    // Add an element
    pq.add(nums[i]);
    sum += nums[i];
    // Remove the minimum
    int min = pq.poll();
    sum -= min;
    // Update max
    max = Math.max(max, sum);
}

最小値

N個からなる最小値を求めたい場合、PriorityQueueの初期化のときに逆順を指定すればいいです。変数名などを変える必要がありますが、PQの初期化をこのようにすればN個からなる最小値を上のコードのまま求められます。PriorityQueue<Integer> pq = new PriorityQueue<Integer>(Collections.reverseOrder());

アメリカで2年間インターンしてわかったこと

はじめに

アメリカの大学で学部生をしております。専攻はコンピュータサイエンスです。インターンシップは学校のプログラムを通して行いました。時給も出て、15ドルでした。わかったことなどと、タイトルにつけましたが受験合格記のように体験談としてお読みください。

インターンを得るまで

2015年の5月にコミカレを卒業して、プログラミングの仕事をしたかったので卒業後すぐにmeetup.comでテック系のイベントに参加しました。iOSのミートアップやピッチイベントに参加して、「今年コミカレ卒業したんですけどインターンシップは探してませんか」と聞きまくりました。

4人に履歴書を送り、実際に面接まで行ったのはそのうち2つでした。一つ目はダメで、2つめは面接が終わって30分後くらいに「時給15ドルで雇いたい、いつから働けるか」という電話が来て、翌日から働き始めました。後に学校のプログラムで雇われる形になりますが割愛します。

どんな会社だったのか、やったこと

キャリアフェアをモバイル化するCareer Fair Plusを提供しています。生徒はキャリアフェアをアプリでチェックできる。学校側は低コストで自分のアプリをリリースできるといった利点があります。また、サポートも返信が10分以内に来るといった徹底ぶりでその点も高い評価を受けています。

僕は大学側が使うウェブシステムを担当していました。担当した機能で言うと、プッシュ通知、大学のロゴアップロード、ランディングページのリニューアルなどがあります。また、会社内で使うシステムにも機能を多数追加しました。

印象に残ってることを順不同であげていきます。

カルチャー編

I’m gonna work from home today.

今日家から働くから。特に事前の連絡なしにこれがスラックに来ます。規模が小さく、創業者だから出来ることですね。

I need to wait for home guy to come in. I will head in when it’s done.

家の何かの修理で誰か来るから、終わってからオフィス行くよ。もちろん事前の連絡は必要ありません。創業者だから出来(ry

I don’t know.

わかんない。これは自分が働き始めたときによく言われました。その時はいや、困るよと思ったのですが、今思い返すと自分の考えをセットに話すと良かったです。

I’m not following what you mean.

ちょっと言ってる意味わからない。これも衝撃でした。そんなに直接伝えちゃうの!?と。言われた相手も同じように説明を繰り返します。「わからなかったら、聞く」もしかしたら、これが一番インターンを通して大きな収穫だったかもしれません。

I need to go home. I need to pick up my girls.

娘たちのお迎えだから帰らなきゃ。これは、最初驚きでした。あと、みんな5時にはほぼ帰ります。6時まで残ってる人なんてほとんどいません。残業は概念さえありません。

Oh, I’m on vacation that week

ああ、その週は俺バケーションだから。バケーションで一週間くらい休みをとります。しかも、見てる感じ休みはみんな自由に取ってます。僕も日本帰るよてことで3週間くらい休みました。

So how is it going with that girl?

あの子とはどうなの? 小さい会社なので創業者と僕たちインターンでよくお昼にいきます。結構こういう会話も出て、会社でしかもボスがこういうこと聞いてくるんだと驚きました。これは小さい会社だからかもしれません。

Do you wanna try some scotch?

スコッチ飲む? フィンランドから帰ってきた創業者が言ってきた言葉。46度くらいでめちゃくちゃ強かったです。

Is there anything I can do for you?

あなたのために何が出来る? これは僕がタスクを終えてデモをしたけど、要件全てを満たしてないことが何回か続いたときに言われた言葉です。僕の確認不足が招いたことですが、その姿勢に心打たれました。

何か聞くと必ず手を止め、体をこちらへ傾けて聞いてくれる

これもものすごく衝撃でした。みんなオープンで親切でした。ずっと心がけてます。

英語編

Are you ready to kick some ball?

Ballはあそこのことではありませんよ。オフィスにフーズボールというゲームがあって、一日に一回は必ずやってました。結構エキサイトすることも多く、公共スペースにあったテーブルは最終的にオフィス内に置くようになりました。

I pushed it, baller

このballerも最初聞いたときはよくわからなかった単語です。日本語にするとイカしたやつみたいな感じです。バスケット選手がたくさん稼ぐことから来てるそうです。あとはshakalaやpimpも教えてもらいました。

インターンをするうえでのゴール

僕はこのインターンを通して、まずは言われたことが出来るようになりたいと思ってました。

これには、日本でちょっとだけウェブディベロッパーとして働かせていただいた時期が関係しています。そこもインターンだったのですが、正直自分は役立たずでした。まず、これをしてほしいと頼まれたものがよく理解できない。理解できないで進めるから、期待に答えられない。しっかり出来ない自分が情けなかったです。こんなことがあったので、まずは言われたことをしっかり出来るようになりたいと思っていました。

今なら自分がどうして、そんなことになっていたのかが理解できます。言われたことの背景が理解できてませんでした。お願いされたそれは、ユーザーのためなのか、カスタマーのためなのか、それとも社内システムのためのものなのか。そこをしっかり把握できなかったため、誰に最適化すればいいかわからず、ただ闇雲にコードを書いていただけなのです。

同じようなことが今回も起きました。始めた当初はシステムの全容がつかめません。誰のためのタスクなのかがわからなくなります。ですが、周りが立場に関係なく、質問してるのを見て単純に聞けばいいんだと思い、わからなかったら聞くようになりました。

ただ、この質問するというのが中々難しいのです。

第一に日本の教育システムは質問を促すために出来ていません。どんな質問をすればいいのかの訓練が圧倒的に自分には足りなかったです。そのため、わからないことがあってもタイミングを逃してしまったり、わけわかんないことを聞いたりしました。今でも質問力は足りないと感じてます。

ゴールは達成できたのか

上にあげたインターンをするうえでのゴールは達成できました。これは、1年に1回フィードバックをもらう機会があるのですが、そこで「Koheiに頼めば、きちんと仕上がるのはわかった。もっとパッションを持ってほしい」と言われたからです。特に最初の部分は僕が目指していたもので、仕事における信頼を得られたことがものすごく嬉しかったです。

このことが自信になり、いろんな提案や質問をしやすくなりました。

これから

2年間働いたインターンは去りますが、5/23から新しい会社でのインターンが始まります。今度はアメリカ内に支社が5つある、大きな会社でのインターンになります。言われたことはきっちりやりつつ、いかに言われたことからはみ出て価値を提供できるかをゴールに取り組みます。