明日会社がなくなっても

明日会社がなくなっていても動揺しないように、情報を残していきたい

PyCon2018に参加しました

PyConとは

PyConJp2018の概要

https://pycon.jp/2018/

参加費

  • 参加費は高い?Patronは40000円
  • Buisinessで参加しました

スポンサー

https://pycon.jp/2018/sponsor * テックビューロ: Diamond * メルカリ: Gold * GROOVE X: Gold 仮想通貨は儲かっている?

基調講演、招待講演

  • Kaufmann Manuel
  • 磯 蘭水
  • 中山 浩太郎(東大の松尾さんが欠席になったため)

通常講演、Lighting Talk

https://pycon.jp/2018/event/conference https://pycon.jp/2018/event/sessions * 講演のレベルが、Beginner, Intermediate, Advance, Allの4つ * 講演は5〜6会場

PyCon2018 Tutorial

参加したきっかけ

  • 今までカンファレンスに参加したことがなかったので、参加してみたかった おもしろかった講演

Kaufmann Manuel(基調講演)

https://www.youtube.com/watch?v=KwmF5wyY2C4 車で旅行しながらPythonを南米に普及させた熱い男の話(Python Argentina) モチベーションが上がる講演だった。 以下、メモ * コミュニティに恩返しをどのようにすればよいか? * 車の中にベットを作り1人旅行して、広める。→ 彼女に振られた。 * ヤギに車を壊された * ジャグリングも学んだ * プログラマだけでなく人。coding,coding,codingだけではダメ。

REST API に疲れたあなたへ贈る GraphQL 入門

RESTの問題

  • API仕様のドキュメント管理が大変
  • APIのドキュメントと実装がずれてケンカ
  • 1ページを表示するのに何個もAPIをたたかなければならない

GraphQL

  • RFCドラフト
  • RESTの次に来る
  • クエリ言語
  • 型指定可能
  • クライアントが必要なものだけをリクエス
  • AWSのAppSync便利
    • ドキュメントの自動生成
    • Queryの実行環境がある
    • APIのたたき方はAppSyncで確認できる

感想

  • AppSync便利!
  • AppSync以外でGraphQLを使うには?
  • 招待講演する?

メルカリにおける AI 活用事例(千葉 竜介)

https://pycon.jp/2018/event/sessions

niconicoにおけるコンテンツレコメンドの取り組み

https://pycon.jp/2018/event/conference

自己紹介

類似生主レコメンダ

  • トピック分布
  • sklearn : Latend Dirichiet Allocation
  • perplexity
  • spark
  • CountVecotrizer
  • Pipeline
  • トピック数を25個としてモデルにした
  • タグ関係ツリー:親子関係がある
    • 共起度、シンプソン係数

グレコメンダ

  • Sparkで10分間で計算する

    リアルタイムレコーダ

  • Jubatus: PFN×NTT

  • 協調フィルタリング

    レコメンダコーディネータ

  • レシピ:yaml

  • InfluxDB, Grafnaでクリック率の可視化

  • API: Tornado

  • Docker, Kubernetes Cluster

    モデルのデプロイ方法

  • redisに格納

    サービスの監視

  • DataDogで監視、Slackに通知

    質疑応答

  • 現状モデルのバージョン管理はできていない。バージョン管理していきたい。

    感想

  • 知らない単語がいっぱい出てきた

  • わからない言葉はたくさんあったけど、退屈しない講演で、充実した時間だった

その他聴いた講演

東大松尾研流 実践的AI人材育成法

PyCon JP における子ども向けワークショップの活動事例と実施の意義

自分が欲しいものをPythonで書く方法(Python for Myself)

Pythonでやってみた」:広がるプログラミングの愉しみ

聴いていなけどおもしろそうな講演

実践・競馬データサイエンス

https://logmi.jp/313650

Pythonistaの選球眼(せんきゅうがん) - エンジニアリングと野球の目利きになる技術

https://logmi.jp/313910

RustとPython

https://logmi.jp/313765

料理やグッズ

グッズ

  • Tシャツ
  • pandasチートシートが掲載されたクリアファイル
    • 便利!
  • 各企業のステッカー(zen of pythonなど)
  • カバン

    料理

  • おいしい!豪華!

  • おやつのクッキーにPythonのロゴが付いている
  • ペットボトルのラベルにPythonのコードが書いてある

    企業ブース

翔泳社の書籍が20%オフ * zozoスーツ購入可能

その他

  • 会場のWi-Fi速い
  • 電源タップあり

    興味ある講演が満席問題

  • 人気がありそうな講演(競馬や選球眼など)は、ほとんど満席になる。

  • 人気な講演はサテライト会場で視聴できるが、どの講演がやっているかは分からない
  • 聴きたかった講演が聴けない!
    • 会場Aに行くが満席→会場Bへ行くが満席→人気だからサテライトやっているかも。サテライト会場へ行くが、やっていない。そのまま興味ない講演を聴く
  • 対策: 人気のありそうな講演を聴く場合は、あらかじめ前の時間帯から会場に座り、興味ない講演を聴いていた。なんだかなー

    全体の感想

  • Django, 機械学習/データ分析、「Python使ってやってみた」の発表が多い

  • Youtubeに動画がアップロードされているなら、参加しなくても良いかな。。。聴きたい講演も聴けなかったし。。。
  • とはいえモチベーションは上がった
  • PyConに参加する前までは、カンファレンスは上級者が参加するものだという考えだったが、むしろ初心者が参加すべきだという考えに変わった。
  • 来年のPyConはたぶん参加しないけど、Python以外のカンファレンスには参加してみたい!

初めてIT系のカンファレンスに参加しました。

今まで私は、IT系のカンファレンスを学会のようなものだとイメージしていました。最先端の技術に関する発表が多く、その技術に関して熟知していないと、参加しても理解できない、と思っていました。

しかし、PyConは初心者向けや全体向けの発表が多く、Pythonの基本的な知識(構文やライブラリの概要)を知っていれば、十分理解できました(PyConの講演のレベルはBeginner, Intermediate, Advance, Allの4つだが、Advanceは1つしかなかった。ただし、Advanceにすると参加者が少なくなるとか、これくらい知っていて当然だよね、という理由からBeginnerやAllが多いのかもしれない)。

なので、IT系のカンファレンスは、技術に熟知している人よりも、技術にそれほど詳しくない人や、これから詳しくなりたい人が、参加した方が良いと思いました。これから学ぼうする人にとっては、すべての講演が新鮮で、開発や学習のモチベーションが上がると思います。逆に技術に熟知している人は、既に知っていることがほとんだったりで、カンファレンスに参加しなくてもWeb上の記事を読むだけで済むのではと思いました。

来年のPyConはたぶん参加しないと思います。理由は①Youtubueでライブ配信されるので、わざわざ東京に行く必要がない、②席の関係で興味ある講演が聴けない可能性がある、③参加費が高い、です。今回の支出は、交通費20000円、参加費15000円、宿泊費8000円の合計43000円です。会社が出してくれたので問題はないのですが、それでもやっぱり高いと思います。その変わりPyConではなくScalaMatsuriやHTML5 Conferenceなど、Python以外のカンファレンスに参加してみたいです。

9/21 絵本の読み聞かせ

小学校4年生の朝読で、絵本の読み聞かせを行いました。

ゆうだち

www.ehonnavi.net

  • 朝読は15分なのに10分かけて読んでしまった。
  • 「おしっこをちびった」で少し笑ってくれました
  • 笑いはなかったけど、たぶん真剣に聴いてくれたのだと思う

せきとりしりとり

www.ehonnavi.net

  • 時間がなかったので、少し早口で読んでしまった
  • 表紙をめくった部分を見せるのを忘れてしまった

9/3 絵本の読み聞かせ

読んだ絵本

ちゅうちゅうたこかいな

www.ehonnavi.net

  • クイズ形式の赤ちゃん絵本。
  • 結構盛り上がったので、また読みたい

おさかないちば

www.ehonnavi.net

  • 読みやすい
  • 魚が細かく描かれていて、図鑑にもなりそう
  • 普段食べている魚に興味が湧くような本でした

ポルトガルのむかしばなし はしれ!カボチャ

www.ehonnavi.net

  • 文章の繰り返しがおもしろい

気になった絵本

せつぼうの濁点

www.ehonnavi.net

  • 小学校中学年以上で読みたい!
  • 七五調で読みやすい

ぼくのふとんはうみでできている

www.ehonnavi.net

  • 不思議な世界

みんな

www.ehonnavi.net

  • 怖い怖い怖い。ホラー絵本じゃないけど、絵と文章の両方が怖い。
  • この本は小学生以上じゃないとダメだと思う。

せきとりしりとり

www.ehonnavi.net

  • 文章がすばらしい。声に出したいです。

2018/08/16 学習記録

Metabase

  • グラフを書くのに、X軸やY軸を指定していない
  • Revision history機能がある
  • weaks, monthで絞り込める
  • SQLを書く必要がない(SQLに変換してくれる)
  • なぜ地域だと認識できている?

Metabase is an open source business intelligence tool. It lets you ask questions about your data and displays answers in formats that make sense, whether that’s a bar graph or a detailed table.

Your questions can be saved for later, making it easy to come back to them, or you can group questions into great looking dashboards. Metabase also makes it easy to share questions and dashboards with the rest of your team.

To fully understand how to use Metabase, it’s useful to have at least a high level understanding of databases, so we’ll discuss the basics of databases next.

英語

  • aim to : 狙いを定める
  • keep in mind: 心にとめる、肝に銘じる
  • desire: 強く求める
  • all that is needed : 十分である
  • pass list : listを渡す
  • distinct : 明確な
  • temptation: 誘惑
  • obvious: 明らか
  • exhaust: 使い切る
  • Tabular: 表形式
  • take seconds: 数秒かかる
  • rely: 信頼する、当てにする、依存する
  • interpret: 判断する、解釈する
  • arbitary : 任意の
  • concern : 関連する
  • convery: 運ぶ、移す、伝える
  • discreate: 全滅させる
  • as far as : ~する限り
  • bit of : 少しの
  • appropriate: 適用する。
  • concise : 簡潔な
  • awkward : ぎこちない、不器用
  • altitude: 高度
  • sensible :賢明な、思慮のある
  • stuck: 立ち往生
  • tweak : ひねる
  • neat: すっきりした、こぎれいな
  • make sense: 道理にかなう、意味をなす
  • naming convention : 命名規約
  • take a stub : ~を試みる

titanic csv データをPostgreSQL 9.6 に import する方法

環境

https://gist.github.com/michhar/2dfd2de0d4f8727f873422c5d959fff5

CREATE TABLE titanic (
        passengerid INTEGER NOT NULL,
        survived SMALLINT NOT NULL,
        pclass INTEGER NOT NULL,
        name VARCHAR(82) NOT NULL,
        sex VARCHAR(6) NOT NULL,
        age DECIMAL(4, 2),
        sibsp INTEGER NOT NULL,
        parch INTEGER NOT NULL,
        ticket VARCHAR(18) NOT NULL,
        fare DECIMAL(7, 4) NOT NULL,
        cabin VARCHAR(15),
        embarked VARCHAR(1),
        CHECK (survived IN (0, 1)),
        CONSTRAINT titanic_pkey PRIMARY KEY (passengerid)
);

-- tab区切り、ヘッダ行を無視する
COPY titanic  FROM '/tmp/titanic.csv' delimiter '    ' csv header;

2018年3月に転職しました。

2018年3月に退職し、2018年4月に転職しました。 新しい会社に入って半年が経ち、少し落ち着いてきたので、記事を書こうと思います。

転職活動中のブログ yuji38kwmt.hatenadiary.jp

退職した会社(以下、会社X)

  • 独立系ITベンダー
  • 従業員約400人
  • 創業20~30年

会社Xでのお仕事

転職を志した経緯

ITに詳しく、私が尊敬している先輩Aがいます。先輩Fは、よく「早くウチの会社から出たほうがよい」言っていました。 しかし、その頃私は、まだ勉強会など社外の人と交流したことがなく、「転職した方がよい」理由が、よく分かりませんでした。

勉強会に参加して、会社に疑問を感じるようになった

2016年3月、勉強会に始めて参加し、そこから毎月1~2回、勉強会に参加するようになりました。 最初の頃は、できるだけ自分の仕事と関係ありそうな勉強会に参加していました。勉強会への参加のハードルが下がってくると、仕事と関係ないデザインや関数型言語など、いろんな勉強会に参加するようになりました。

勉強会では、参加者の技術力の高さに驚きました。プログラミング経験や知識、彼らは私の知らない言葉をたくさん話していました。 技術力の高い人たちには、私より社会人歴、IT歴が短い若者がたくさんいます。そういった者たちを見ると、「今まで私は何をやってきのだろう」と思うようになりました。 そして技術力というのは、個人の才能や努力だけでなく、環境も大きく影響するのでは?と思うようになり、当時の会社Xに疑問を持つようになりました。

今の仕事に飽きてきた

2017年4月で、社内Webシステムの開発に関わって3年が経っていました。 3年前から使っている技術は、大きく変わりません。Java,PostgreSQL, JavaScript, HTML, CSS, Terasoluna....。バージョンアップなど小さな部分は変わっていますが、フレームワークや言語などは変わっていません。そもそも変わることを良しとしない文化です。 3年も経つと飽きてきて、「今の技術を使ったWebシステム開発はもういいかな」と思うようになりました。

会社への不満が強くなってきた

炎上案件に対する対応方法

2017年3月、大きく炎上しているプロジェクトに、ヘルプとして少し入りました。

そのプロジェクトでの火消し案が、とりあえず大量に人を投入し「設計書を作り直す」という対策でした。「ちゃんと設計していないから炎上したんだ。だから設計書を書き直す」ということらしいのですが、炎上はテストフェーズで起こっているので、その時点でソースコードはあります。それなのに、設計書を作り直すという、よく分からない対策でした。

また、炎上プロジェクトでは何日も帰っていない社員がいました。「私もいつかあのようなポジションになるのか」と思うと、なんだか会社Xにいることが、恐ろしくなってきました。

そして、「社員を大切にしない、よく分からない火消し案を採用する会社Xから出ていきたい」と、強く思うようになりました。

プログラミングに対する考え方

上司から「プログラミングが誰なんてできる」という発言が出ます。その上司はたぶんプログラミングできません(プログラミングの話題が出てこないため)。

テストに対する考え方

  • 無意味なExcelスクショ。
  • 誰もテストコードを書かない、書こうとしない、そもそも知らない。

設計書に関する考え方

  • プログラムに対応する詳細設計書

人のアサインに対する考え方

  • 今までCADをやってきてWebを知らない人が、リーダにアサインされる。稼働率を高めるためなのは理解できるが、まったく違う分野なのにも関わらず、「できて当たり前」と思われる。
  • 人海戦術でプログラミング、テスト。
  • 派遣社員にテストや雑用をお願いする。コマンドをたたけば一発なところを、Excelで1個ずつ作業してもらう。

IT/プログラミングに興味ある人が少ない

プライベートで、アプリやプログラミングを勉強している、という話をあまり聞きません。家のパソコンが10年前のもので、そもそも家でパソコンを開かない、という人さえいます。 そういった人たちが大多数を占めているので、その人たちを技術レベルを基準に、コミュニケーションしなくてはいけません。 それが私は苦痛で、「なんで、これを知らないんだ」と思うことがありました。 ただこれは、私がコミニケーションが苦手だからでもあります。

客先常駐

会社Xは基本的に客先常駐です。 したがって、客先のルールに従う必要があります。 客先では、以下のような特徴がありました。

  • 新しいソフト、ライブラリ、言語の導入がしづらい。

    • Git, Linux, Visual Studio Code, Dockerなど
    • 「実績がないからダメ」と言われるが、「その実績はどこで作るのか?」と聞くと明確な答えが返ってこない。
    • 外部との通信はメール。客先とは別の建物にいるメンバと一緒に開発する際は、メールでソースを管理していた。
  • 外部サイトが閲覧しにくい。閲覧できない訳ではないのですが、少し制限がかかっています。ITエンジニアがよく利用するStackOverflowやQiitaなども少し制限がかかっています。ひどいところだと、ネットが全く閲覧できないので、個人のスマホで調べています。

  • バージョン管理ソフトを使っていない部署がある。

  • サポートブラウザはIE。IE11が利用できる2016年代に、IE8対応、Edgeが利用できる2017年にIE11対応を行っていました。そして噂では、Edgeを無効にしてIE11を使わせている、という話も聞きます。

私の所属していた部署では、他の部署と比べると、Gitを使ったりライブラリを自由に導入できたりと、比較的プログラミングしやすい環境でした。 それでも客先常駐という仕事を行っている限り、バージョン管理ソフトを使っていない部署に移る可能性があります。 そういったことに不安を感じていました。

新人研修の資料

会社Xでは3カ月かけて、新人研修を行います。 以下のようなことが、すごく気になりました。

キャリア的なこと

年次が上がると、プログラミングから離れてマネージャとして働くことを求められます。そういったマネージャが必要なのは分かりますが、やっぱり私はプログラミングと関わっていきたいです。社内には入社10年目以上で、マネージャでないBさんという方がいます。Bさんは技術力、政治力などがずば抜けています。私はBさんほどの力もないので、年次が上がってもプログラミングと関わりながら働くことは、難しいと思いました。

社内政治

以下のような社内政治に振り回されるのが嫌で、面倒でした。

  • 社長に「やっていますよ!」とアピールするための問題解決会議、勉強会
  • 上司同士の批判、派閥

会社への愚痴が多くなってきた

上記のような会社への不満が溜まっていき、どんどん愚痴が増えてきました。 自分が今まで何とも思っていなかった、会社のページの採用内容や、スーツで働くこと、9時出勤なども、不満に思うようになりました。 このままでは愚痴を言うだけの人になってしまう、目が死んでしまう、と思い、転職しようと決意しました。

転職活動を始めたきっかけ

2017年の5月、会社Lで行われた勉強会に参加しました。テーマは技術書についてです。そこには、会社Lの従業員が半数参加していました。 その勉強会は、本当に楽しくエキサイティングでした。 今まで私は、「技術力の高い人は、会社内で数パーセントしかいない。技術力の高い人が集まっている会社なんて、存在しない。」と思っていました。 しかし、会社Lの従業員は皆技術力が高く(全員を見たわけではないが、会話の内容からそう感じた)、「こういった、技術力の高い人、ITに興味ある人ががたくさんいる会社で、働きたい」と強く思うようになりまた。

数週間後、会社Lの社員がツイッターで「募集」とつぶやいていたので、「見学させてください」と連絡を取りました。

転職活動開始

L社を含む4社に訪問して、会社の説明を聴きにいきました。期間は5~8月で、割とゆっくりです。 8月の中旬にN社に書類を提出したんですが、書類選考で落ちました。 そこからは転職活動を一時休止。「やっぱり今の技術じゃ転職は難しいかなー」と悶々としていました。 10月にハッカソンに出場しまして、そこでY社の社員に出会いました。 Y社は機械学習など研究に強いと思っていましが、ハッカソンなどにも強いのだ、ということを知りました。 そして、「そんなすごい人たちのいる会社に入りたい!Y社で働いてみたい!」と強く思いました。 その1週間後には、Y社に入社の意志を伝えました。

会社Yの情報

X社に退職する旨を報告

10月の下旬に、上司に転職する旨を報告しました。 直属の上司は「そっか」と言って納得してくれましたが、さらにその上の上司Cは納得してくれませんでした。 会社Xと会社Yは取引実績の関係があり、上司Cは会社Yのレベルをなんとなく把握しておりました。

以下、上司から言われた言葉です。

「設計書書くのがイヤ」という単なる我がままではないか?

私が文章を書くことが苦手で、設計書を書くのも苦手です。 上司Cにとっては「苦手なことをイヤ」と言っているだけに見えたのでしょう。 ただ、私にとっては「何の意味もない設計書」を書くのが苦痛だったのです。 それを我儘と捉えるか、「そうだよね」と納得するかは、その苦痛を理解しているかどうかの違いだけに思います。 あとは、私がその苦痛をしっかり説明できていなかった、というのもあります。

配属先の変更ではダメなのか?客と交渉をしない「プログラミング部隊」を作り、そこのリーダになるのはどうか?社内配属にすることもできる。

配属先の変更に関しては、私の気持ちが上司に伝わっていないのだと感じました。 私は「プログラミングしか」やりたいのではなく、「プログラミングから離れたくない、無意味なことをやりたくない」のです。 上司の提案した配属先ですと、「プログラミングを知らない人が決めた仕様を、頑張って実装」したり、「プログラミング未経験の人に教えたり」することが、目に浮かびました。そして今の部署よりも、不満が強くなる気さえしました(今の部署は比較的自由にプログラミングできる)。

社内の技術力高い人(先輩F)を、追い抜くことができるのか?

これに関しては「できません」と答えました。本当にできないと思ったのです。 上司は「先輩F」を超えられるぐらいでないと、会社Yではやっていけないと思っております。 それに関しては、私も同意です。 ただ、先輩Fを越えられるまで、会社Xに在籍するというのもおかしな話です。 そして、会社Yで働くことにより先輩Fを追い抜くというのも、ありうることだと思っています。

自分の人生をどう考えているのか?所帯を持った場合やっていけるのか?

これに関しては特に考えていません。まだ30歳だから5年ぐらい何とかなるだろう、という甘い気持ちです。

初めの内は丁寧に教えてもらえるだろうけど、次第に「~さん、こんなことも分からないのですか?」と言われるようになる

同意です。そうならないように頑張ります。

先輩Fに騙されている(先輩Fは転職に賛成している)

先輩Fは騙している訳ではないのですが、私が先輩Fを妄信しているように、上司Cは見えたのでしょう。 確かに妄信しているような一面は、私も感じています。

会社Yに転職したい理由

会社Xで感じていた不満が、ほとんど解決できると思ったからです。

  • 基本的客先常駐はなく、自社で開発
  • 新しい技術、言語、ツールを使っている
  • コンピュータ、プログラミングに興味ある人が多い
    • 経営陣もプログラミングできる
  • 技術力が高い

「技術力の高い」ところでやっていけるのか不安ではありましたが、そこは『情熱プログラマー』という本の「一番の下手くそでいよう」という気持ちで行こうと思いました。 http://blog.codebook-10000.com/entry/20140106/1389009667

会社Yで働いて半年経った今

会社Yでは、現在アルバイトとして働いています。 正社員になるために修行中です。

会社Xで感じていた不満はすべて解決できています。

まとめ

  • 勉強会に参加して、会社Xに疑問を持つようになった
  • 会社Xに不満がある
    • 客先常駐で、プログラミングしづらい
    • IT/プログラミングに興味ある人が少ない
    • プログラミング、設計書に対する考え方に納得できない
    • 年次が上がると、プログラミングから離れなくてはいけない
  • 会社Yでは、上記の不満が解決できた

会社Yに入って考えなくてはいけないこと

  • どうやって正社員になるか
  • どうやって技術力を上げるか
  • そもそも技術力とは何か
  • どうやって仕事をしていくか
  • そもそも仕事とは何か?稼ぐとは何か?
  • 今後生きていくのに、一体いくらの金が必要か?

8/5 読み聞かせ

読んだ絵本

こうしてぼくは海賊になった

www.ehonnavi.net

  • お客さんは未就学児が多く、退屈させてしまった。。。小学校中学年以上でないと難しかったかもしれない。
  • 最後の地図のところは絵本の文だけだと分かりづらかったので、手で説明しました。

ごめんなさい

www.ehonnavi.net

  • ぶつけ本番で読んでしまったけど、何とかなった。
  • 「そんなわけないでしょ」というツッコみどころが多い絵本です。
  • 子供たちは笑ってくれました。