僕がエンジニアとしてやっていくために(おそらく)必要なこと

 

 営業職からwebエンジニアに変わったわけだけど、そんな僕がすーぱーはかーになるために必要なことはどんなことだろう。

 勉強しなくちゃいけないことばかりで少し焦りを覚えてきたので、簡単に箇条書きでも書き出してみようかと。

 

アルゴリズム

・なんか重要らしい

 

■数学

・なんか重要らしい

 

■データーベース

・当然のごとく重要。

・来年にDBスペシャリストでもとるかな。

 

■OS(Linux

LPICで勉強している。

・ただ、実践の場がないと本当には身につかないのではないかという懸念。

 

オブジェクト指向とかコーディングに関する知識

・リーダブルコードとかオブジェクト指向に関する本何冊か読んで、あとは業務でやってくしかないかなー。

 

上に上げたようなことをだいたいざっと1年半くらい?でやろうと思うと、

各分野に費やせる時間は 18ヶ月 ÷ 5分野 = 2ヶ月強。

2ヶ月強か、まぁまぁある気がする。

 

とりあえずLPICをちゃっと取ってしまうか。で、その次はDB。

アルゴリズムはとりあえず継続的にやることにするかな。

あと、コーディング系の本も。

 

 

自分の趣味を肯定する

 

僕はバスケがとても好きです。

観戦もプレイするのも両方とても好きです。

 

でも、観戦はともかくプレイするとなると、

バスケとかなかなかにハードなスポーツだし、

部活の友達なんかは結構やめてった人も多いし、

未だに続けてるのはなんでなんだろうとか思うんですよね。

 

ここで趣味についてちょっと考えてみました。

 

まず、趣味には2種類あるんじゃないかなぁ、と。

 

1つは、何かを見る、何かを食べる、どこかへ行くといった種類のもの。

もう1つは、バスケをプレイする、楽器を演奏する、ランニングするといった種類のもの。

 

この2つを分けているものは、

趣味からいったん離れたら戻り難くなるということです。

 

前者は、単純に楽しむものですね。

もちろん、違いが分かってきてより楽しめるようになるとか、

その趣味において守備範囲が広がるとかってことはあるかもしれないけど、

でも基本的には、ただ心を軽くして楽しもうってものだと思います。

 

後者は、けっこう辛かったりするのかなと。

僕とか走ることとか死ぬほど嫌いだし、

痛いのだって絶対やだし、疲れたくないし。

 

なんか、すごくゴミみたいな人間みたいだな。。。

 

、、、まぁともかく、ただ楽しもうってわけにはいかなかったりするわけです。

しかも、レベルを維持するのも大変だったりするわけです。

 

だからいったん離れてしまうと、再開することが難しくなる。

 

言うまでもないことかもしれないけど、

バスケで例えると、体力がなくなる、下手になる、

体も弱くなってるから怪我もしやすくなる。

自分の中のイメージにある自分と、現実の自分が大きく乖離してしまう。

 

こうなることが目に見えてるから、腰がどんどん重くなる。

 

 

バスケをするのはけっこう大変です。

今日は走りたくないなぁって思う日も正直あります。

 

だけど、バスケはとても楽しい。

 

だから、大好きなバスケが自分から離れていってしまうことがないよう、

大変なこと、辛いことは少々飲み込んで、

できる限りバスケはこれからも定期的にやっていこうと思うわけです。

 

ああ、でもほんとに走りたくない。。。

 

ノスタルジー

最近懐かしい気持ちになることがよくある。

 

昼下がりに外を歩いている時の夏特有のむせ返るような空気。

 

宇多田の「ヒカリ」、昔好きだったHIPHOP

 

皮膚から、耳から懐かしい気持ちが呼び起こされる。

 

最近懐かしい気持ちになることが多いとか言っていてなんだが、

あの頃に戻りたいとかっていう、自分の中の黄金時代みたいなものは存在しない。

 

いじめられていたりとかしていたわけではないし、むしろ楽しかったなー、とは思う。

 

じゃあ、なんでだろう。なんでだろう。

 

物事の感じ方が一つ原因として考えられる気がする。

楽しいと思うことは多いけど、心の底からから楽しめている時がないのではないだろうか。

 

楽しい、すごく楽しい。けど終わってしまえば、はい、終了みたいな。

自分の中に深く刻み込まれることなく、どこか表面的なものに留まっている。

鈍感というのか。

 

今だって楽しい、けっこう楽しい。

遊ぶとかあんまりなくて、仕事するか勉強するかバスケするかって生活だけど十分楽しい。

 

辛いのは嫌だけど、

そうじゃないならどんな生活だってあんまり変わらないのかもしれない。

楽しく感じられる上限が決まってしまっているのだから。

 

 

僕は隣のビルに飛び移れるのだろうか

 

ビルの高層階にいて外を見ている時に思う。

「本気で助走して飛んだらあっちのビルに飛び移れるのだろうか?」

 

実際に試みることはないだろうけど、考えずにはいられない。

 

僕はジャンプ力には自信がある。

中学校から今に到るまで中断期間は少なからずあったが、ずっとバスケをやっている。

頻繁にNBAの動画を見て、飛ぶイメージもバッチリできいる。

高く飛ぶ時でも、両足踏切ではなく片足踏切の方が得意だ。それも全力の助走で。

 

橋幅跳びの世界記録は8.95mらしい。

予想だと僕は6mくらい飛べる。

、、、ちょっと歩いて6mを測ってみたけど6mは無理だ。

まぁだいたい5m弱くらいだろう。

 

 

さて、今回の問題は隣のビルに飛び移ることだ。

 

ビルの高さが同じくらいだった場合、

単純に考えれば僕の幅跳びの距離が飛び移れる距離と等しくなるだろう。

 

それでは、ターゲットとなるビルの高さが自分のビルより低い場合はどうだろう。

何の根拠もない予想だが、自分の幅跳びの距離を超えた時点から、

1mの距離を進むにつれて50cmほど下降する。

うん、だいたいこんなもんだろう。

 

これを式にした場合、

( 目標ビルまでの距離 - 自分の走り幅跳びの記録 ) * 0.5

となる。

 

50m先のビルに飛び移ろうとした場合には、

( 50 - 5 ) * 0.5 = 42.5 m の高低差があればいい。

 

この計算式さえあれば、今度から余計なことを考えずに済む。

 

 

プリンシプルオブプログラミング ー 5 ~ 7 章 ー

第5章 習慣 〜プログラマのルーティーン〜

 

■三大美徳

・「怠慢」全体の労力を減らすために手間を惜しまない気質

 ー手動部分を自動化、手順を知って効果の大きいところから。

 ードキュメントはフォーマットを残す。検索にかかりそうなワードを入れる。

・「短気」コンピュータがサボっていることに怒りを感じる気質

 ー起こりうる問題を想定

・「傲慢」プライドを持って人に対して恥ずかしくないコードを書く

 

ボーイスカウトの原則

・担当した箇所のリファクタリング

ユニットテスト、目的に見合ったシステムのみ流用、不適切なライブラリの入れ替え

 

■パフォーマンスチューニングの箴言

・まずはいいコードを書く。その後、最適化を考える。

・いいコードは可読性が低かったりといいことばかりではない。

・コードよりまずは実行環境、デプロイまたはインストールの設定、ミドルウェア、ライブラリ、アーキテクチャを見直すべき。

・最適化する時でも、ホットスポットのみ直す。

 

■エゴレスプログラミング

・プライドを捨てて、ちゃんとレビューしてもらう。

 

■一歩ずつ少しずつ

・複数の作業を同時並行しない。こんがらがってしまう。

リファクタリングも複数をいっぺんにやらない。名前変更、場所の移動とか一つずつやっていく。

 

TMTOWTDI

・ツールを設計する場合には、やり方の選択肢を多く用意する。

 

 

 

ーー 第6章 手法 〜プログラマの道具箱〜 ーー

 

■曳光弾

・プロトタイプは作って捨てる

・曳光弾はその後も使われる土台を作る。

 

■契約による設計

・呼び出し側と呼び出される側の取り決め

・関数側では、引数の調整、ユーザーの入力チェックを行わない。

 

■防御的プログラミング

・外部ソースからのデータ入力の値を確認する。

・関数の入力引数の値を確認する。

 

ドッグフーディング

・ユーザー視点で使う。継続的に使う。

 

■ラバーダッキング

・問題解決が停滞したら、「誰か」にそれを説明する。無機物でもよい。

 

■コンテキスト

・コンテキスト ー 周りの状況や背景、文脈

・コードの読み書きと思考のツールにコンテキストを利用

・コードの読み書き

 ー モジュール名などの大きなくくりの名前で何について責任を持っているかを示す。その中に含まれている関数についても、そのモジュール名を文脈として、さらにその中で何について処理しているかを名前にする。

・思考のツール

 ー 細部にとらわれず大きな枠の中で把握する。

・コード共通化はコンテキスト志向で行う。同じコードでもコンテキストが異なるのであれば共通化しない。

 

 

ーー 第7章 法則〜プログラミングのアンチパターン〜 ーー

 

ブルックスの法則

・期日が迫っても要員追加しても解決しない。リスケしよう。

 ー教育に時間取られたり、依存関係によるオーバーヘッドが発生するから。

 

コンウェイの法則

アーキテクチャは組織の構造に従ってしまうので、アーキテクチャを決めた後に組織編成しよう。

 

■割れた窓の法則

・コードの良くない部分が放置されると、コードの腐敗が進む大きな要因になる。

・割れた窓はすぐに直すか、コメントしておこう。

 

エントロピーの法則

・コードは無秩序へ向かう

・コード腐敗の兆候を掴んで修正しよう。

 

■ 80-10-10 の法則

・高水準のツールや言語でソフトウェアを開発すると、ユーザーの求める80は短時間で実現できる。残りの10は骨をおって実現できるが、最後の10は実現できない。

・ツールは適材適所に用いる。

 

■ジョシュアツリーの法則

・チーム内共通言語であるユビキタス言語を使う。普段の会話にもコードにも用いる。

 

セカンドシステム症候群

・2番目のリリースは機能過多になりがち。ユーザー視点になって、本当に必要な機能を追加しよう。基本機能の改善を求めていることも少なくない。

 

車輪の再発明

・標準ライブラリ、オープンソースライブラリ、標準プロトコルがないか調べる聞く。

・ただ、ビジネス目的や学習目的であれば再発明はおっけー。

 

■ヤクの毛刈り

・問題を解決しようとすると、芋づる式に問題が現れ根本問題にたどり着けないことが少なくない。

・この状態になったら、目的を思い起こすこと。時間に見合うのかを考えること。

 

アンケート回答

【3年生向け】

 

■勉強時間

■勉強方法

・まず聞く。自分なりの計画を立ててみようか!

・なぜを考えること。

■勉強のモチベーション(自信、苦手科目)

■大学の選び方(場所含め)

■いい大学に行く利点

東京大学について

■ユナイテッドについて

プログラマーという仕事について

■将来の夢は決まっていたか

■大学の授業ってどんな感じ?何が楽しかった?

・卒論持って帰るか、、、?

■部活動との両立

■受験のときの雰囲気

■内職をしていたかw

■勉強のメリハリについて

■高校3年間をどう過ごしていたか?

■なぜ誠英に行ったのか

■自分のこと頭がいいと思っているかw

 

【2年生向け】

 

【自分から話したいこと】

■受験について

・大学に合格することはとても大事。でも合格したという事実よりも自分の中で財産になっていることは、合格という目標に向けて自分で考えて計画をたて努力できたこと。この先少々大変なことがあったとしても、自分は努力できる人間なんだと思えばすごく自信になるし、なんとかなる気がしてくる。

 

月頭訓話スクリプト

 初めまして。ここの卒業生の吉永昌平といいます。

 

 今日はみなさんの時間を頂いて少しだけお話させてもらいます。

 

 この人だれなんだろう、って感じだと思うので、まず簡単に自己紹介をさせて下さい。

 

ーーー 自己紹介(3分くらい) ーーー

 

・自己紹介(東大のことや自分の高校時代など身近に感じられるようなこと?)

 ー東大生って意外と普通だよ、と。バスケと筋トレしてー、

 ー高校生の頃はバスケ部で西村先生にしょっちゅ怒られて-、、、

 ーあの頃から10年くらい経ったけどその頃と違うことと言えば、、、肌に潤いがなくなったことと額が広くなったことくらい。

 ー大学で色々な将来な夢を持っている人に出会って、将来そんなことを目指すことができるんだって知った。そんな職業や趣味があるってことを知ってても、自分がやるはずがないと思って全く視野に入っていないか、そもそもそんなものがあるなんて事自体知らないことも多い。

 

ーーー 自己紹介 終わり ーーー

 

 今日、みなさんに伝えたいと思っていることはこんなことです。

 「それってもしかしたらできることかもよ」

 

 僕が高校生の時、自分が実際に見聞きしたこと以外全くイメージできませんでした。

テレビで、もしくは国語か道徳の授業だったりで、「みなさんには無限の可能性があります」とかって言われても、全くピンとこなかったし、可能性いったいなんのことを言ってるんだろう、くらいにしか思いませんでした。

 

 例えば、僕が卒業した東京大学がそうです。東京大学に行ったことはなかったし、大学の知り合いもいませんでした。唯一の接点と言えば、さんまのテレビで「東大生は頭の変な人ばっかりだ」みたいなのを見るくらいでした。

だから高校生の頃の僕は、まさかテレビでしか見たことのない場所に自分がいるなんて夢にも思っていませんでした。

 例えば、今やってるプログラマーという仕事がそうです。パソコンでなんかカタカタやる仕事があるらしいねくらいにしか考えたことがありませんでした。自分がそんな仕事をやることになるとは夢にも思っていませんでした。

 例えば、海外旅行だってそうです。ハワイとか台湾とかだったら、周りにも行ったことがあるって人が少なくないから、そのうち自分も行くかもしれないなぁって思っていました。でも、まさかこんな風にイランに行って、現地人みたいに髭もじゃもじゃでイラン人と写真を撮ることになるなんて全く思っていませんでした。

 

 今言ったような、僕の中ですごく大きな経験になった、大学、仕事、旅行、、、どれも、高校時代に自分が経験することになるとは思っていなかったし、そんな可能性があるということにすら気づいていませんでした。

 

 僕がそんな経験をできたのは、それぞれがテレビの中の出来事じゃなくなったからだと思うんです。もっと言うと、大学に行った人、仕事をしてる人、旅行をした人に話を聞いて、それぞれがとても身近になって現実にありえるものなんだって僕自身が認識できたからです。

 

 最初に僕が東大のことを話して、もしかしたら少し身近に感じられるようになったんじゃないかなと思います。よし、ちょっと行ってみようかな、とはならないかもしれないけど、高校生クイズに出たりするような何喋ってるのか分からない天才高校生たちが行く場所ってイメージから、バスケと旅行が好きでプログラマーやってる、この前自分たちと話しに来た人が行ってたところ、って感じで少しだけ身近に感じられるようになったんじゃないでしょうか。

 

 だからこそ、みなさんには僕が伝えられる限りの可能性を伝えるとともに、テレビやスマホで見るようなことってみんなにもできることもしれないってことが少しでも伝わっていたら、今日みんなにもらった時間も無駄には

 

 僕が今日話した大学も仕事も旅行も世の中の人がやってることのほんの一部です。

 いろんなことに興味を持ってやってみるといいと思います。先生、自分や友達の親とかいろんな人に話聞いたり、テレビやネットで出てくるような職業を調べてみたりするのもいいと思います。みんなが見聞きしたことは、今日僕が話したように、みんなの将来に本当につながっていくことかもしれないので。