Web総合研究所

1990年生まれ文系プログラマーのまとめ

【まつもとゆきひろ氏 特別講演】若手エンジニアの生存戦略 要約

なぜ参加したか?

このイベントに参加しました。

supporterzcolab.com

ruby kaigi直前なんで、ホットな話題だったため

若手エンジニアの生存戦略

自己紹介

「松本」というありふれた苗字なので、「まつもと」とひらがなで名乗るようになった。

英語圏では「Matz」

Rubyを作ったことで日本で一番有名なプログラマになる。

松江市名誉市民

若手エンジニアの生存戦略

結論

「死なないこと」

戦略を立てて、実行しないと生き残るのは厳しい!!

戦略とは「人によって違う」

他人の成功を真似しても、成功する可能性は低い。

スタートアップ成功者に共通していることは「パターン認識能力」

Matzの来歴

12歳でボードマイコンに遭遇

15歳でポケコン遭遇

pascalを通して、プログラミング言語とは何か目的があって作られていることに気がつく。

人が作ったものではなく、プログラミングを作ってみたいという思いが芽生える。

大学でプログラミング言語研究室に入る。

既存言語のコンパイラの最適化をやる研究室

就職に関して東京で就職したくないと思い始めた。

結果として、浜松に就職

同期200人、CS選考6人

最初の仕事は、社内システムの開発

ここでのよかった経験は「どうあるべきか」決められる。

この頃の一般的なSIerは、クライアントが構成等を決定するため裁量権がなかった。

我慢の価値

「みんながやっている」は我慢の理由にならない。

会社ではスーツを着用していたが、嫌いで仕方なかった。

就業規則には、服装の規定がなかったので、ある日ジーンズで出社した。

そしたら特に何も言われずに、退職までずっとそのスタイルを維持した。

プログラマーの3大美徳」

  • 怠惰
  • 短気
  • 傲慢

3大美徳の優先順位は、上記の通り

怠惰なプログラマーほど良い

逆にプログラマーとして勤勉は危険

我慢して勤勉に務めるのは危険、無意識の価値構造を作る。労働は我慢ではない。

我慢して勤勉が美徳とされる無意識の社会的圧力は、おかしい。

Matz自身、「周囲の子供と同じことができて当たり前」という社会的圧力のせいで辛い幼年経験を送った。

理不尽を要求してくるのは「死の鎖」

我慢に対して耐性がつく === 鈍感になる

しかし、「致死量」は変わらない。 === 我慢の許容の限界は変わらない。

そのため、我慢して、体が限界までいってるのに気がつかず体を壊すこともある。

ルールに書いてないことをやって楽をして、我慢しないことが大切

空気を読まない

目的を明確化する。

Matzの場合は、就職する場所を東京以外にしたいという目標のもと就職活動をした。

どうやって「拒否」するか

転勤を正面切って断った。

その結果、リモートワークのような働き方になった。

社会的圧力を自覚する。

理不尽に声をあげること。

Matzは、職場はリスペクトできる関係を構築できる職場を、選んでいる

リスペクトできる関係を構築する方法は以下の2通り

  • Win - Win
  • No deal

理不尽な取引は行わない。

会社と従業員は、対等な立場である。

生存戦略

■我慢に価値を置かない

前述の通り

■自分を知る

スキル、得意なこと等を棚卸する。

その中で競争率が低い領域を選択する。

Matzはプログラミング言語の作成する能力が高く、プログラミング言語作成に興味がある人が少ないため、そこの領域を選択した。

■継続する

Ruby一筋25年

■勘

社会的圧力を嗅ぎとる勘がよかった。

意識的キャッシュバリデーション

There are olny two hard things in Computer Science:
cache invalidation
and  naming things.
-- Phil Karlton.

キャッシュの扱いは難しい。

昨今は大企業でも潰れることもある。バブル期の大企業信仰は崩れた。

なのに未だに大企業信仰があるところもある。

その思い込み(キャッシュ)を削除する。

プログラマーの仕事は問題解決

プログラマーの業務は多岐に渡る。

  • 問題把握
  • 問題分析
  • ソリューション提案
  • ソリューション実装
  • テスト
  • 改善

トータルとしての問題解決ことがプログラマーの本質と言える。

コントロール意識

生産性が落ちる原因は「貶す」「叱る」

叱るとエンジニアの生産性が60%低下

強制されると生産性低下

コントロール意識が生産性を高める。

裁量権が大きいと、生産性が高くなる。

プログラミングのメリットは「万能感」

マチュア、初心者でも結構いいセンまでいく。

インプット・アウトプット

インプットは必要だが、それはエンジニアの差別化には繋がらない。

差別化に繋がるのは、アウトプット

Youtuberなんか「誰でもできる」と思い込む。

これは半分本当

Youtuberの素晴らしいところは、心理的障害を乗り越えているところ

心理的障害 === アウトプットが怖い

人間の可塑性

しょぼいアウトプットでもやっていけば、成功の可能性がある。

やらないとそれがない。

心理的側面に興味をもつ

まとめ

理不尽を拒否

問題解決を極めよう

心理的側面に興味をもつ

思い込みを捨てよう

感想

Matzさんは、こんなに空気を読まない人だとは思いませんでした。

(良い意味で)

一番参考になったのは、自分のスキルを定期的に棚卸をしてブルーオーシャン目指すという戦略

これは真似すべきかなと思っています。

はじめよう! 要件定義 ~ビギナーからベテランまで 感想

はじめよう! 要件定義 ~ビギナーからベテランまで

なぜこの本を読んだか

転職試験で、「小売のアーキテクチャーの構成を背景を含めて400文字で述べなさい。(要約)」という課題が出ました。

提出には時間をかけてよかったので、この本買って、要件定義の観点を洗い出そうとしました。

感想

要件定義とは何か、定義を決める

実は、要件を日常的な単語に置き換えると「注文(オーダー)」が妥当なものになります。では「注文」とは何でしょうか。それは 作ってほしい人が 作る人に出す 依頼事項(リクエスト) ということになります。


依頼した人ができあがったものに対して「これならOKです」と言うために、「何がどうなればよいのか」ということを明確に定めたもの それが仕様書です。

ここで言えるのは、「依頼人」が「求めているものを文章化したもの」が仕様書です。

そんなの当たり前じゃんと思うかもしれないですが、こういう基本的なことを言語化しとかないと後で矛盾が生じる可能性が上がるので、あらかじめ定義しておくのが重要です。


要件定義の完成形は何か(成果物は何か)

UIとはUser Interface(ユーザインターフェース)の略です。インターフェースは接面と訳されることもあります。つまり「ユーザに接するもの」ということになります。 UIの代表例は何と言っても画面(スクリーン)です。そしてもう1つは帳票(プリンタからの印刷物)です。


機能とは「ソフトウェアにやらせる仕事」の総称だと考えてください。 たとえば「消費税を計算する」などが機能になります。処理という表現を使うケースもあります。本書でも今後、機能といったり処理といったりすることがありますが、基本的には同じ意味だと理解してもらってかまいません。


そして3つ目が「データ」です。先ほどの「消費税を計算する」という機能の場合、計算結果の「消費税」はデータです。また計算のもととなる「売上金額」もデータです


この3つの要素、つまり「UI」「機能」「データ」が明確に定まって、そこで初めてプログラマはソフトウェアを作ることができるようになります。

要件定義の完了とは

  • UI
  • 機能
  • データ

の定義の完了を意味します。

UIの定義は、「スクリーン」か「帳票」か

機能の定義は、どんな「処理」か

データは、どんな「情報」か

この3つを押さえていれば、完璧です。


データベースとは何か プログラミング的な観点で言えば、データベースはワークセットを越えて、さらにはシステムをすら越えて共有する、超グローバル変数です。

さらにデータベースについても記述があり、上記のように定義されています。

データベースはプログラミング言語としてのスーパークローバルとしての性格を持ち合わせています。


完成形を実現するためのプロセスとは

まずは「ソフトウェアを作る」という取り組みのゴールを確認しましょう。仕事でソフトウェア開発を依頼する・作るからには、当然思いつきだけではない何らかの企画意図が明確に定義されているはずです。そうでなければ予算などが決定しないからです。 そしてこれから作るソフトウェアはその企画意図を達成できるものでなければなりません。つまり企画意図から外れた要件を定義してしまったら、いくらそれをきちんと作ったとしても納得が得られません。

まず目標設定です。

最初に述べたように顧客の求めるものを明確に言語化する必要があります。


ITの本質はプロセスイノベーションであり、つまりは「中抜きの実現」です。余分な中間コストを排除してエンドツーエンドを実現するフォースこそがITの真骨頂です。


本書の肝をひと言で言うなら「画面遷移図を描こう」になります。ここでいう画面遷移図とは、本書で紹介した画面と画面の間にイベントと機能を図示するものです。つまり要件定義とはこの画面遷移図を描くことができればほぼOKであり、それ以外は実は要件定義そのものではなく、その前後の工程で行うべき作業だということです。

最後にこの本が、上記のようにまとめられています。

「画面遷移図」とは、UIと機能説明を含めていると考えれらます。


最後に

役立った箇所のみ抜粋しました。

転職試験では、目的を明らかにしてから、アーキテクチャの構成を書けたので、満足のいく論述ができたと思います。

その後、論述試験の合格がきました。

メンタル・タフネス 成功と幸せのための4つのエネルギー管理術 感想

メンタル・タフネス 成功と幸せのための4つのエネルギー管理術

気に入った箇所をいくつか抜粋

疲れ果てて倒れてしまうか、燃え尽きるか、逆に退化するか、情熱を失うか、であり、ひどい場合は若くして死に至ることもある。残念なことだが、私たちは回復の機会をもつことを持続的なパフォーマンスに不可欠なものとはとらえず、弱さの象徴のように考える傾向がある。

去年は持続的に過負荷をかけていて、この症状を痛感した。

日常生活においても、回復という概念を取り入れるべき


私たちがあらゆる面における「筋肉」をなかなか強くできないのは、ちょっとつらさを感じただけでも、あわてて負荷をかけるのをやめてしまう人が多いからである。だが、覚えておいてほしい。あらゆる面において、自分が不快と感じるほどのストレスがかかるのは、そのあとに適切な回復の機会をもつかぎり、成長できるチャンスなのである。

辛いとすぐに逃げたす自分にとっては耳が痛いお話です。

負荷と回復のバランスを考えなくてはいけないですね


ニーチェが言ったように「人を殺さない程度の不幸が、人をより強くする」。前述したように、ビジネス社会に生きる人々の置かれた状況はスポーツ選手よりも厳しい。だからこそ、計画的なトレーニング方法を学ぶことがいっそう重要になる。

エンジニアでも日々のトレーニングは大切。

トレーニングがコードを書くのか、読書するのか、それ以外なのかの定義を決めなくちゃ


仕事中毒は、強迫神経症の一種であり、自らハードルを高くする、仕事をセーブできない、仕事に没頭しすぎて仕事以外のことをほとんど排除してしまう、といった症状が見られる」


精神的なエネルギーを消費しなくても楽しむことはできる。でも、本物の満足感が味わえるのは、心をいつもよりも深く傾けたあとだけだ」

テレビを見るだけでは、それは本当の感動ではない

最強伝説黒沢の冒頭でも、黒沢が言っていたな


ジェームズ・プロチャスカという研究者によると、人生において大きな変化を起こそうと試みた人は、その変化が軌道に乗るまでに、数回は失敗することが多いという。


四〇歳を過ぎた人が神経科医に持ち込んでくる訴えで最も典型的なのが記憶力の減退だ。その原因が病気にあることは少なく、脳を活発に動かさないために記憶をつかさどる「筋肉」を退化させてしまっているケースが非常に多い。

文字通りの筋肉の場合と同じく、脳の場合も使わないとそれだけで悪影響が出る。若くて脳がとてもやわらかいうちは、言語など複雑な技能でも比較的楽に習得できる。ところが年をとり、脳の「筋肉」を動かす割合も減ってくると、新しい言語や技術の習得は難しい作業となり、イライラさせられることが多くなる。そうした不快さ(場合によっては屈辱)を避けようと、新しいことの習得をあきらめるようになる。すると、脳の退化はかえって進行していくのである。

「新しいことを学ぶ度に、脳細胞には新しい回路ができていく」と、ハーバード大学医学大学院助教授(心理学)で高齢者の研究を専門とするマージェリー・シルバーは言う。「そうすれば、もしちょっとした変化が起こっても──たとえばアルツハイマー病によって回路が少し詰まったり、いくつかの脳細胞が損傷を受けても──これまでに作りためてきた脳細胞を活用することができる」。つまり、脳を常に働かせていれば、老化による衰えから脳を守ることができるというわけだ。

エンジニアだから、少しは頭を使っていると思うが、そういう思い込みこそが思考を硬直化させるのではと感じます。

脳のトレーニングとは、社会に対しての課題に対して考え抜くということなのかなと思います。


実際に多いのは、無意識のうちに自分を欺いて一時の安息を手に入れ、あとで苦しむというパターンである。そもそも私たちは、自尊心を守るために自分を欺く。自分がこうありたい、というイメージを守るのである。自分にとって最もつらく、受け入れがたい真実から目を背けるため──特に自分が大事だと思う価値基準と実際の行動が矛盾しているとき──人はさまざまな戦略を使う。

この気持ちすごいわかります。山の中腹に留まり続けるようなものですね。

人間って楽な方に流されますけど、あえて流れに逆らう時も必要なのです。

書くのは簡単だけど、実践は計画的にしないと挫折しそう。


会社を絶好調に導いたのは、カリスマ性が強かったり、見るからに才気あふれるタイプのリーダーではなく、不屈の精神と謙虚さ、という一見相反する性質をバランスよくもっているタイプのリーダーだった。

自分はカリスマ性など皆無なので、今から目指すリーダー像としては、このタイプがもっとも戦略的だと思っています。

なめらかなお金がめぐる社会。 感想

いつも通りの殴り書き

なめらかなお金がめぐる社会。 あるいは、なぜあなたは小さな経済圏で生きるべきなのか、ということ

社会が成熟するにつれて、人間の欲求のステージは変化していく。

生理的欲求、安全欲求、所属と愛の欲求、承認(尊厳)の欲求、そして自己実現欲求へ……というマズロー欲求五段階説を聞いたことのある人も多いはずだ。現代の日本は課題の多い国だけど、同時にとても成熟した状態にあり、最上位の「自己実現欲求」に突入しているのだ。つまり、目的が達成されること自体に喜びがあり、お金は付随的なものにすぎないということだ。

「豊かになることが正解であり、幸せへの近道であり、国も会社も個人も町もみんな豊かになっていこう」という価値観を持っているのは、おそらく僕たち76世代が最後の世代なんじゃないかと思う。

大多数の幸せの定義の価値観が同一だった時代は終焉を迎えました。

お金を稼ぐことに意義を見出していない仲間に対して給料の話を持ち出しても心は動かない。なので僕はそういう経営者には、仲間たちに対して、その仕事が社会でどのような形で貢献しているのかとか、会社としてどんなところを目指しているのかといった、内的欲求を見極めて話をしてあげたほうが良いですよとアドバイスしている。 特に海士町の人たちと接するようになって、なおさらその思いが強まった。

前職のSier時代は退職時に給料の話をされても全く心に響かなかったです。

自分もお金以外の価値観を見いだしつつあるのかな

そんな社会を作るためには、僕たちは世の中のお金をもっと、なめらかにしないといけない。活動のためにお金を借りたり、集めたり、誰かをお金で支援したりといった、お金を介したコミュニケーションはまだまだ限定的だし、硬直的だ


取引から信頼へ。 自己や孤立からコミュニティーへ。 恐怖や欠乏から祝福と豊かさへ。


「お金を稼ぐことができないなら、評価を稼げばいい」という選択肢が存在することを彼は体現してくれている。

社会全体のお金に対する価値観が明らかに変化しています。

お金とSNS上の評価が同価値かそれ以上に扱われている場面もあります。

誰もが得をする仕組みを考えることは、社会変革を仕掛けていくときにとても大事なことで、それは僕の今までの活動にも共通して言えることだ。

起業もお金目的ではなく、社会正義の方が優先される時代の到来です。

今でも社内で「まずは人力でやろう」とよく言うけど、それはシステムありきで考えてしまうと、かなりの時間とお金が取られてしまうことに由来する。そうやって予算と工数を使ってがっつりしたものを作ってしまうと、「このコストを取り戻さないといけない」というバイアスがかかってしまい、「もしかしたらうまくいかないかも」と思っても、「いや、きっとうまくいくはずだ」と勝手に思いを転換させてしまい、あまりいい方向に進んでいかないことがある。

エンジニアとして働いていると、なんでも自動化前提で話をしてしまうけど、試作品としての人力も大切だということを認識させられました。

「実需」より「投資目的」で売買する額があまりに大きくなってしまったのが今の資本主義。「投資目的」ではレバレッジをかけるのでその売買がマーケットにもたらすインパクトがとても大きくなります。

資本主義は度々、実態と市場価格が大きく乖離することがありますよね。

人間の欲の具現化ですよ

「東京に出ないと」とか「大学に行かないと」とか「正社員にならないと」とか「流行りに乗らないと」とか「クラスのみんなに好かれないと」とか、世間の価値基準みたいなものに囚われすぎてつらい思いをしている人は、実は自ら作り出した理想と現実のギャップによって苦しんでいる

自分も将来おじさんになった時に、昔の価値観に囚われてそうで怖い

この世に絶対の正解はないし、風潮は変わって行くものだから変化を恐れずに行こう

URTRABeerBash 2017に行ってきました。

9/9に渋谷で行われていた「URTRABeerBash」行ってきました。

この後に徳丸先生の講演があったので、2つだけ講演を聴いて会場を後にしました。

ULTRABeerBash

いくつか講演を見に行って、要点をまとめました。

ゲームエンジニアってどうよ

IT業界とゲーム業界の違いについて、ゲーム業界で求められるエンジニア像

ネット上の評判(2chtwitter)と自分たちが予め予想した結果が合致した時が嬉しい

特に嬉しいのが、アーケードゲーム

なぜならゲームセンターで、ゲームをやっている人の顔が見えるから

組織成長して行く上で、組織作りの工夫は?

ゲームがいきなりヒットしたら、組織の人数を早急に増やさなければならないので、そこが難しい。

組織を作る上で、プロダクトをチームで作ることが前提なので、必ず会話をする。

Q&A

Q.インフラとして必要なことは?

A.AWSソリューションアーキテクトのようなクラウドの資格があると評価される

あとレイテンシー重要、同期、非同期の切り分けができるようにする。

Q.トラフィクの捌き方とは?

A.ゲームのことを知ること

MySQL等のRDBの知識プラス「ゲームのプレイする側の体験」を知らないと、どこでトラフィックの負荷がかかるのかわからない

まとめ

IT業界のサーバー側の知識があれば、ゲーム業界のサーバーエンジニアに転職できる。一緒にゲーム作りましょう。

感想

IT業界のインフラエンジニアは、容易にゲーム業界に転職できそうな気がする。

提供するバリューの違いがあるが、開発フロー自体は自社サービスを持っている事業会社と何ら変わらない印象を受ける。

ヤフーにおけるビックデータ活用

ヤフーのサービス規模

675億ビュー/1ヶ月

2万ビュー/1秒

売り上げの観点から優先すべきこと

大量のコンテンツ(商品2億点+広告)の表示、処理に関してユーザーに対してストレスを与えないことを第一にする。

組織から見た技術

エンジニアが2000~3000人ほど

技術チームは、ほぼ各事業部ごとに分かれてる。(メディア部、EC部等…)

プラットフォーム(主にインフラ側?)とデータサイエンスは、全事業部共通になっている。

データ基盤

対話処理

声とそれ以外を切り分けるために、DeepLearningを活用

他社と比べて、音声認識精度が高い

画像処理

クロッピング

キュレーションする時に、コンテンツ元の画像をそのまま使うと、画像の縮尺に歪みが生じる

それを解消するために、画像のコアな部分(人物の顔の中心など)を抽出するためにDeepLearningを活用

push通知

適切なタイミングにpush通知を行い、ユーザーのアクションを促す

具体的には、お昼休みなどのタイミングにpush通知をすることで、コンテンツへのアクセス率が大幅に改善する。

広告サービスYDNとは

これだけアジェンダが別になっていて、注力してるビックデータ活用のサービスらしい

ヤフー主力広告サービス

売り上げ1,000億規模

良いクリックを稼ぐ(コンバージョンに繋がるクリック)ようなサービス

具体的な戦略としては、その人・その状況に置ける最適な広告を表示する。

課題

毎秒数十万のリクエスト、0.X秒いないのレイテンシで、できるだけ正確なクリック確率の予測

  • 高次元(数十万)の類似検索
  • 広告側に複雑なターゲティング条件が指定

エンジニアの一日

  • 業務中に文献調査ができる!!!
  • 2週間に1回、金曜日にスプリントプランニング

最後に

YAHOOのキャリア採用はいつでも大歓迎

感想

講演前の来場者の職業アンケートでは、セキュリティエンジニアは採用が難しいとのこと。

将来セキュリティ寄りに能力を特化させるのもありかなと思い始めた。

【徳丸浩氏 特別講演】若手エンジニアのためのセキュリティ講座 感想

サポーターズcolabで開催された【徳丸浩氏 特別講演】若手エンジニアのためのセキュリティ講座に参加しました。

自分用に要点まとめました。

【徳丸浩氏 特別講演】若手エンジニアのためのセキュリティ講座

侵入されるWebサイトとは

Webサイトへの侵入経路は大きく分けて2つ

  • 管理用ツールの認証を突破される
  • ソフトウェアの脆弱性を悪用される

脆弱性とは何か

一言でまとめるとバグ

悪用可能なバグの例

悪用可能な設定不備の例

  • デフォルトのパスワードのまま放置している
  • パスワードとして「password」を設定している
  • 任意のメールを中継する設定(オープンリレー)

徳丸先生が以下の事象について少し言及

IoT機器がマルウェアに感染する元凶は「Telnet」~横浜国大・吉岡克成准教授

Webサイトに対する侵入事件のトレンド

SQLインジェクションが対策されていると下記が台頭

セキュリティのイタチごっこにばかり目がいっていると、大きな脆弱性を見逃すことがあるとのこと。

脆弱性を防ぐためには

責任と契約について ~ウェプアプリケーションの脆弱性の責任は発注者か開発者か~

発注者に責任というのが主流のよう

ただし、判例があるわけではない

しかし、最近(2015年)判例が出ました!!とのこと

徳丸先生がいってた判例はこれの模様

2015年に徳丸先生が言及しています。

SQLインジェクション対策もれの責任を開発会社に問う判決

800万円の案件に対して、2262万円の損害賠償の支払いが確定しました。

経営者からしたら、これはつらいなぁ。。。

若い人は契約は興味は人がほとんどだが、契約の賠償額の限度額を設定して身を守るべき。(青天井契約にしない)

SQLインジェクションが"債務"である理由

経済産業省から注意喚起の文章が出ているので、それを遵守すべき

徳丸先生の当事件の感想

発注者も毎日「admin」「password」と入力してコンソールに入って、何も思わないのか

現在の風潮として「SQLインジェクション」対策は、最低限レベルとの見方もできる。

EC CUBEを用いたSQLインジェクションの実演

個人情報が表示されないページに対しても、SQLにはUNION、副問い合わせを用いれば、簡単にデータベースのスキーマがわかるので無対策の状態で放置しない。

セキュリティ対策

一番安価なセキュリティ対策は、セキュリティ専門家のtwitterアカウントをフォローすること

速報は、ここで検知できそうですね!!

Webアプリケーション脆弱性診断の方法

ツールにて脆弱性を検知すると、数が多いので、それを直すだけでも大変。

Webアプリケーションの脆弱性の手動検知の実演

EGセキュアソリューションズ株式会社の入社試験では、テストアプリケーションの脆弱性を発見するテストをやるそうです。

ここで繰り返し徳丸先生がおっしゃっていたのですが、セキュリティ未経験者でも、勘のいい人は脆弱性の兆候を読み取る。知識ではなく、そういう結論を出す人が欲しいとのことです。

脆弱性診断は仮説-検証の繰り返しだ

挙動は以下の3つに分類される

  • 正常:この診断文字列からは何も言えない
  • グレー:怪しいけど脆弱性とは言い切れない
  • 脆弱性の疑いが濃厚:脆弱性が検出された可能性が高い

キャリアについて

セキュリティエンジニアを将来の夢にしているのですが 現在高2なのですが現在大学…

この質問を例に、徳丸先生の見解をおっしゃっていました。

結論しては

  • 情報工学」「計算機工学」基礎が大事
  • そのためには専門より大学に行くべき
  • 高いところに行くには、とにかく基礎が大切
  • 母国語の「ロジカルシンキング」「言語コミュニケーション能力」が大切

ここのコミュニケーション能力定義は、相手の知識に合わせたコミュニケーションをする(専門外の人に対しては、専門用語を使わない。逆に、専門の人達には、専門知識のラインを設定する)

ネットには速読を勧める記事が多いが、徳丸としては精読を勧める

ここは僕も、ここには賛成です。

ということで、情報工学の基礎本を読み漁ります。

正直なところ、大学にいって基礎から情報工学を学びたいです。

徳丸先生自身について

徳丸先生は20代前半はニートだったそうです。

ちょっと親近感が湧きます。

縁故採用で京セラに入社して、コンパイルの実装に興味を持地、コンパイルの作り方の本を10冊ほど読んでコンパイラを作ったそうです。

なぜ独立・起業したか?

2007年(当時47歳)に独立を真剣に考える

京セラはハードワークで、執筆がしんどい

独立の課題と解決策

受注の価格獲得と、家族(家内)の説得

飛び込み営業とか無理。。。

解決策

前職(KCCS)に技術顧問として残ることを上司から提案され、収入の6~7割を確保

家で仕事するから、子育てもできるので家事の負担を減らせる。

とにかく運がよかった

独立・起業するには

営業力

若手エンジニアに向けて

コンパイラを作ってよかったこと

  • コンピューターサイエンスの基礎をしっかり学べた
  • 「本に書いてないこと」については、自分の頭で考え抜くことで、問題解決能力が身についた
  • 勉強は「車輪の再発明」をどんどんしよう

なぜ多くのプログラマFizzBuzzが書けないか?

コピペプログラマーを脱しよう

プログラマ35歳定年説を超えて

  • 馬力にものを言わせている開発者は、その馬力が衰えてくる
  • 新技術習得についていけない
  • プログラマのままだと給与が上がらない

解決策

  • 馬力に頼らなくても済む技術力を若いうちから身につけておく
  • 新技術も、基礎が入ればだいぶ楽になる
  • 給与は、転職か独立で
  • 40代になると、厄年とか更年期とかいろいろ出てきますが、いつまでもは続かないので一時的なスランプだと思ってやり過ごしましょう

Q&A

Q.情報学部出ていない人はどう勉強すればいいですか?

A.学問に王道なし

東京には図書館に技術書がいっぱいある。

本は、合う合わないのフィット感が大分違う。

なので図書館の本で試すことが大事!!

ネットの記事はちょっと。。。。

Q.仕事の中で、これが大変だったかとかありますか?

A.そういうことも過去にあったが、苦にしないように考えている。

心配してもしょうがないこと(自分でどうにかできる範囲を超えていること)は、考えない。

Q.パスワードの脆弱性の対策としては何がありますか?

パスワードは、これが悪いとかはない

根本的な対策は難しい

脆弱性を前提にビジネスを組み立てる。

Q.ユーザーの立場でパスワードを管理する方法

「Last Pass」というパスワード管理ツールを使っています。

情報漏洩が過去に発生しましたが、パスワード悪用が一度もされていないからです。

LastPass

パスワードの使い回しをするぐらいなら、ブラウザに覚えさせるのもありです。

徳丸先生から20代エンジニアに向けて

プログラムが大好きだったけど仕事にするかは迷いました。

好きな仕事とセットで嫌い仕事も考える。

どんな仕事も嫌いな仕事は一部ある。

好きな仕事と嫌いな仕事の配分が大切

感想

僕も一生この業界にいたいので、当面は基礎技術の習得に費やしていこうと思います。

図書館も活用します!!

サポーターズさんのオフイスが綺麗でした。

10月から務める予定の会社の目の前なので、ここで勉強会があったら、また行きたいです。

# WEB DB PRESS 100 「完全HTTPS化」 感想・まとめ

はじめに

WEB DB PRESS 100 「完全HTTPS化」 感想・まとめ

1,2章のみです。

汎用的な項目のみをまとめてあります。

HTTPSとはそもそも何か

HTTPSは、みなさん同じみのHTTPによる通信をSSL(Secure Soke Layer)あるいはTLS(Transport Layer Security)によってより安全な通信とするための仕組みです。

HTTPSでは公開鍵暗号を用いて、Webサーバーにあるサーバー証明書をWebブラウザにインストールされているルート証明書で検証します。その上で共通鍵暗号の鍵を生成し、公開鍵暗号を使ってWebサーバーと鍵交換を行います。

利用者がHTTPかHTTPSのどちらで通信してるかを判定するには、ブラウザのアドレスバーが「保護された通信」かそうではないか確認するばいいので、一目瞭然ですね。

なぜ完全HTTPS化するのか

これまで

HTTPSはログインや登録情報の参照など、いわゆる個人情報や認証情報を扱う箇所のみに使われていました。 その理由は、データ量増加やHTTPSの処理負荷などオーバーヘッドが大きかったことが考えられます。

企業のコーポレートサイトだと、トップページはHTTPなのに、質問ページだとHTTPSなんてことよくあります。

入力フォームがあるのに、HTTPS化されていない企業のサイトは、その会社全体のセキュリティ意識の低さが体現されてます。

これから

サービスをよりセキュアにするという目的

HTTPSの利用を考えるにあたりまず思い浮かぶ利点は、「通信を暗号化できる」そして「通信先を認証できる」ことでしょう。

情報の重要度に関わらず、全ての入力フォームをHTTPS化することで、情報の安全性の選別が必要無くなります。

OS、ブラウザ、検索エンジン等のプラットフォームの進化に対応する目的

Chorome56でリリースされた、HTTPページにログインフォームが表示されている場合に「保護されていない通信」という警告を出す機能は、多くのHTTPページでログインのモーダルを表示していたクックパッドにも影響を及ぼす変更でした。

たまに、HTTPS化されてないサイトにアクセスすると、赤い画面で警告が出ますよね

あれは心臓に悪い

Googleは検索ランキングに置いてHTTPSの利用有無をランキングアルゴリズムに利用することを発表しています。

ここ最近、はてなブロガーの間でも話題になってました。

アクセス数落ちるし

開発のしやすさを考慮して

(クックパッドの例として)HTTPSが必要な箇所全てに、HTTPSを必須化する共通のロジックを書く必要がありました。これでは、本来HTTPSであるべ画面とそうでないなどの事故が起きやすくなってしまいます。

ソースコードでURL指定してる箇所の修正って地味に面倒なんですよね

新しい技術に対応

新しいWebの仕組みは、その多くがHTTPSであることを前提としています。

最近の技術はHTTPSを前提に実装されています。

導入するまでのロードマップ

組織内での協力を得る

組織内で実践する場合はあらかじめ完全HTTPS化を宣言するなどして、多くの方の協力を得ることが重要です。なぜなら、完全HTTPS化は単純にURLが"HTTP://“から"HTTPS://"に変更されるだけではなく、コードの修正やユーザー体験の変化、壊れている箇所がないかのチェックなど様々な影響を及ぼす可能性があるためです。

トップダウンで、意識共有していかなければいけない問題です。

意思決定者が、なんのためにHTTPS化するのかを社内に浸透させて取り組まなければならないが、その意思統一が難しそう。

証明書の選び方

Webサービスに置けるHTTPS(TLS)通信には適切な公開証明書が必要です。「適切な」というのは、主に以下の要件を満たすことを指します。

・多くのブラウザが信頼する認証局から署名されている

・示したい情報を含められる認証方式が使われている

・安全な署名アルゴリズムが利用されている

公開鍵証明書は、HTTPS(TLS)を再構築する上で非常に重要な要素です。証明書そのものは検索エンジンで「SSLサーバー証明書」などと検索すれば販売しているサービスを多く見つけることができますが、それぞれの証明書が一体どういう特徴、意味を持つのかを押さえた上で利用する証明書を決めましょう。

SSLサーバ証明書の料金比較と選び方総まとめ

証明書の選び方でのポイントは、箇条書きにすると下記の通り

  • ブラウザ対応率
  • 有償無償のどちらか
  • 認証方式について
  • 署名アルゴリズム

最後に

自分はインフラの部分の知識が弱く、本特集の後半部分のリリース後の運用、影響の部分は まだ、文章にして書き残さなくてもいいかなーと思っています。

必要な時期がきたら、本棚からこの号を引っ張ってきて見返します。