1 of 23

社会に出て感じたギャップTOP10

(※スライド内容は全て個人の見解であり、所属会社と一切の関係はありません。)

↑社会性を学んだため↑

2 of 23

自己紹介

こんな感じで生きてきました

  • (小5) peryaudoと知り合いHSPを教わる�    (奇跡的にアニメの話で意気投合して知り合う)
  • (公立中学生) 引きこもりFPS漬け � (奇跡的にROMってたskypeチャットにIOIerとか居た)
  • (大阪府立高専入学) 2010年 (15歳) 競プロ開始� (奇跡的にPCKとかで優勝してたOBがいた)
  • 情報オリンピックとかに出る� (奇跡的にJOI本戦本番で初めてDPを解いて通過)
  • (大阪大学編入) 2015年 (20歳) � (色んな奇跡が重なってICPC World Finalとか出る)
  • (今の会社 就職) 2017年 (22歳)� (時代のおかげで奇跡的に就職できる)

三上 和馬kyuridenamida �

3 of 23

なんで就職したの?

  • 単純に行儀の良いソフトウェア開発に興味があった
  • 英語を使う環境が欲しかった
  • 周りがみんな優秀な環境があったら行きたかった(JOIでその大切さは学んだ)
  • 研究よりはソフトウェアエンジニアの方が向いてそうだった

Pro: ソフトウェアエンジニアリングの能力がつく�Con: CS学部とはいえ将来学歴的に不利になる可能性はある

4 of 23

今どんな仕事してるの?

  • サーチクオリティチームで検索エンジンの結果精度改善
    • 色んな精度改善方法があって、正統派機械学習をしている人もいる
    • 僕はオレオレヒューリスティクス作ったり(マラソンの経験が活きた!?)
  • 最近はJavaScript + Javaで社内ツール開発

5 of 23

今の会社に入ってみて

  • 語学力のサポートがある
  • みんな協力的 / 勤怠の管理がゆるい
  • クソみたいな質問をしても許される社風
  • データが一番えらいので上下関係・社内政治感がない
  • ほとんどネガティブなフィードバックが飛び交わない
    • やむを得ないときは最大限に気を使って行われる(それに講義さえあるw)
  • 各地の新卒がテキサスの本社に集められて3ヶ月くらい社内スタートアップをする
    • 国によって新卒の傾向が全く違って新鮮だったw
    • ところで英語で最初に挫折させてくるのはスーパーの店員さんの挨拶

6 of 23

社会に出て感じたギャップ TOP 10

7 of 23

10位 エンジニアにもマトモな人が多い

  • 入社前� なんか優秀な人は自分の強さを誇示してそう� インターネットの悪い者たちがいそう� 良い人でもやはり変わり者タイプが多そう�
  • 入社後

偏見でした

8 of 23

9位 ドキュメントには価値がある

  • 入社前 � 世の中のドキュメントとか誰が書いてるんだ� こんな丁寧なものを片手間でかける人間がいるの恐ろしすぎでしょ�
  • 入社後

ドキュメント書くのコーディングと同じくらい時間かけていいんやな....� 誤魔化さず簡潔に説明する能力本当に大事

9 of 23

8位 1を100にすることは大変

  • 入社前 � 今の会社とかサービス1つやし正直そんなエンジニアいらんやろ�
  • 入社後� オートコンプリート機能とかそういう小さい機能ひとつひとつに� 大量のエンジニアリングリソースが投入されているのだなあ� (正直小さいと思ってたのに全然小さくない!)

10 of 23

7位 コーディングインタビューには意味がありそう(?)

  • 入社前 � こんなもんでエンジニアリング能力測ってどうすんねん�
  • 入社後� エンジニアリング能力じゃなくてコーディング能力を測りたいだけ� (それを測ることにいろいろ恩恵がある)

まともなコーダー→ソフトウェアエンジニアの教育は成功率が高いっぽい?(知らん)

同時にスクリーニングにも意味がある

11 of 23

6位 関数型のパラダイムは実用的

  • 入社前 � こんな定数倍重そうな操作のどこが生産性が高いんだTLEしちゃうだろ!�
  • 入社後� ソフト開発というのはここまで単調作業でひたすら� コレクションに対するメソッドチェーンで記述できるのか...(驚愕)

速さを要求されるのは限られた状況だけ� (大体ミドルウェアとかがボトルネックになるため)

12 of 23

5位 英語は難しい

文法ブーストあれど短期間で英会話が出来るようになるわけではない

英語研修前の僕: 1ヶ月一日8時間も少人数レッスン受けたら英ペラでしょw

終わった後の僕: 無理でした...

社内は英語と言えど喋らないとすぐにできなくなる

アメリカ研修後の僕: 英語そこそこ喋れます

今の僕: 全く単語がスラスラ出てこねえ...

13 of 23

4位 クリック型広告は思いの外高い

  • 入社前 � 1クリック平均1円くらいで高くて50円とかでしょ�
  • 入社後� 1クリック高いと$10超えることあるんだなあ

(※念のため、うちの会社のサービスの話に限った話ではないです)

14 of 23

3位 ソフトウェアエンジニアはコードを書くだけではない

  • 入社前 � コーディングしてない(e.g.バグ取り,チケット書く)のは給料泥棒だから� あらゆるものを犠牲にしてコーディングに集中するぞ
  • 入社後� それらは全部仕事

ドキュメント読んだり、社内にあるコード資産を探したりしてして� ベストな方法を考える時間のほうが長いのは当たり前

コミュニケーションは仕事(絶望)

15 of 23

2位 全てがトレードオフとの戦い

  • 入社前 � 開発には唯一王道が存在して社会の人間はそれを知っているはず�
  • 入社後� 様々なトレードオフにぶち当たる(そして個別対応するのが重要)
    • チケットは細かくする vs 粒度大きめでやる
    • コードレビューは丁寧にする vs 雑にする
    • 一長一短な実装A vs 別の一長一短な実装B
    • 低級言語だが高速 vs 高級言語だが低速

その時の人件費 vs 他のコスト(維持コスト/ハードウェアコスト/etc…)

16 of 23

1位 コードは生き物

  • 入社前 � キレイなコードは永久に生き続けるでしょ�
  • 入社後� コード変更の度にダメージを食らい続け、やがてHPが0になり死ぬ� HPをできるだけ減らさないようにみんな頑張る� ほんの少し変数名とかコード構造に気を抜くことでたくさんHPを削れる

(競プロのコードは大体寿命が数時間)

17 of 23

まとめ

1位 コードは生き物�2位 全てがトレードオフとの戦い�3位 ソフトウェアエンジニアはコードを書くだけではない�4位 クリック型広告は高い�5位 英語は難しい�6位 関数型のパラダイムは実用的�7位 コーディングインタビューには意味がありそう?�8位 1を100にすることは大変�9位 ドキュメントには価値がある�10位 エンジニアにもまともな人が多い

結論: 常識知らずでした

18 of 23

反省してること TOP 3

19 of 23

3位 ある程度のところで慢心してしまう癖

  • 結局予言通りになってしまった
  • 中級→上級の壁を破る成功体験が欲しかった

20 of 23

2位 IDEを使っておけばよかった

  • 統合開発環境(僕はJetBrains製品愛用)の生産性はヤバい。もったいなかった。
  • オンサイトで環境変化のパフォーマンス低下を恐れて使ってなかった
    • フルスクラッチの車輪の再発明能力高めてどうすんねん�
  • ICPCでJetBrainsのIDEが使えるようになるらしい、めでたい!�このままライブラリも電子媒体OKにしてくれ。

21 of 23

1位 型に嵌らないタイプだった

  • いわゆる自己流が好きなタイプの人間だった
    • 自分の感覚と異なる型に合わせるためのオーバーヘッドが嫌い
    • 与えられた具体例に対して無理やり一般性を損ないつも何か共起する特徴とかを捉えて�行儀の悪い方法とかでサクッと感覚的に解ける方法を模索し続けてきた。
  • 勉強とか競プロはこのタイプだった
  • 業務でも論理が雑になるタイプの悪癖orz

長期的に見て損をする学習方法だった

22 of 23

(おまけ)月刊競プロに対する解答

  • 未だに競プロer特有のアドバンテージというのは思いつけていない
    • コーディング速度はやっぱりアドバンテージある
    • 計算量とか論理的正当性に対するリテラシーみたいなのは当然ある
    • あと部分問題に落とし込むところとかは慣れてると思う�
  • 結局役に立つかどうかは思考アプローチの汎用性みたいなのがキモ
    • 例えば「これはここを緩和したらこう解ける...」みたいなのとかは大切
    • この制約だからbitDPでしょ!wみたいなのは...ダメ�
  • ロジックが簡潔かどうかもやっぱり取り組み方に依存する気がする
    • ACすれば良いというスタンスだと正しいが汚い可能性はある
    • 少しでもコードレビューの仕組みを競プロに持ち込めないかなあと思っている

23 of 23

Q&Aタイム

  • 僕がいろいろ知っておいたほうが良いこととかあれば手を上げて教えてください