現在のスキルセット
こんにちは、びしょ〜じょです。 こんなことがあったんや。
先生にインターンに面接で落ちた話をしたら「君は自己アピールが下手だからね」と言われたので、自分のスキルセットをピタリと表す何かをそのうちまとめたいと思う。でもまず、どこまでが自分でどこまでが自分じゃない…??
— びしょ〜じょ (@Nymphium) August 11, 2018
非常に厳しいですね。 仕事をしたくないという気持ちも確かですが! 無職でジリ貧になって餓死というケースはもっとしたくないので職はゲットしようと思ってます。
専門
プログラム論理研究室に在籍し、主に関数型言語を対象とした、プログラム言語に関する研究をおこなっています。 プログラム変換(最適化、コンパイル)や、特定の言語機能を切り出して、そこで成り立つ良い性質を考えたりそれに実装を与えたりしています。 最近はalgebaic effectsやdelimited continuationsの近辺で研究をおこなっています。
型に関する研究もする研究室に在籍しているので、TypeScript、Scala、Haskellといった複雑な型システムを持つ言語でもそれなりには戦えると思ってます。
開発環境
NeoVim、zsh、tmux on ArchLinux
言語
Lua
- 4年くらい書いてる
- Lua5.{1, 2, 3}の違いが分かる
- Luaの言語処理系を作れる
- Luaで言語処理系を作れる
- Luaのコードを見ればどんなLua VMのバイトコードにコンパイルされるか検討が付く
ボクが長所や短所を一番理解できてる言語がこれだと思います。 C APIはノータッチなのでわかりません…。
OCaml
- 2年くらい書いてる
- OCamlで言語処理系を作れる
- core言語まぁまぁ分かる
- module言語ちょっと分かる
- type systemまぁまぁ分かる
- duneちょっとだけ分かる
-
open Core
はあまり書かない
研究で使ってます。 表現力や型の強さがちょうどいい言語だと思う。
Scala
- 2ヶ月くらい書いてる
- sbtちょっと使える
今年春になにか言語覚えようということで書き始めました。 traitやサブタイピングなどといったリッチな型システムやナウい言語機能があり、 Javaとの接続がありながらCatsやScalazといった関数型プログラミングを支援する強力なライブラリもある、 OOPもFPもできる良い言語だと思います。 sbtの起動は確かに遅い。
他
Racket/Scheme
- 1年くらい
論文のモデル言語としてSchemeのサブセットが採用されることがままあるのでちょっと分かる。 RacketはTyped Racketがちょっと書ける。 また(delimited) continuationsの調査のために度々書いたりする。
JavaScript
- 2年くらい
- エコシステムは知らない
- 生JSしか書いてない
必要最小限書く
Ruby
- 2年くらい
構文がデカすぎて全容をまるで把握できてない。 このブログはJekyllで作られており、プラグインのいくつかは自分で書いてます。 他にもデータ処理ではシェルスクリプトに次いで書捨てのスクリプトを書いて使っています。 Onigurumaがとにかく使える。
Bash/Zsh
- 6年くらい
コマンドラインに日々書いてる。 Makefileと共にビルドや自動化でよく使っている。
英語
GitHubでコミュニケーションを取ったりドキュメントを読んだり論文を読む程度には分かる
プログラム言語は専門分野なので、上記以外の言語でも書こうと思えばそれなりの早さで書けるようになると自負しています。
主なプロダクツ
Opeth
Lua 5.3 VMのバイトコード最適化器。 副産物として、Lua 5.3 VMのバイトコードを制御フローグラフにしてビジュアライズするツールや、アセンブリ言語風にLua 5.3 VMの命令セットを書いてバイトコードにコンパイルするコンパイラ、VM命令を実行したりブレークポイントを付けてステップ実行できる、gdbみたいなデバッガを作りました。 ビジュアライザで使った、graphvizのLuaバインディングも自作。 Lua 5.3 VMのバイトコードの仕様は公開されていないため、Lua 5.1 VMのバイトコードの非公式なテキストやソースコードを読んで解析をおこなった。
pnyao
文献管理ツール。 Scalaを習いながら作った。 Play frameworkを使っている。 Scalaを使っているサーバーサイドはだいたい実装ができているので、実はこれ以降はJSしか書かないかも。
その他
- Linuxちょっと使える(6年)
- Git使える
- GitHub(issues, pull requests, CI)使える
何書けばいいのか分からないピ…。
バイト先情報もお待ちしております。 ご連絡は@Nymphium かs1311350 at gmail.comまでお願いします。
追記20181004
ツイッター経由でHERPに(多分)長期インターンとして入りました。 この度は誠にありがとうございました。 リモートでOKということで家からでなくて最高です。
ツイッで職を探したらHERPに拾われました。写真はブレた牛タンです。 pic.twitter.com/6WHdopXHLK
— びしょ〜じょ (@Nymphium) October 3, 2018
この牛タンは美味かった。
2020年3月卒業後のお仕事はまだ探してますんでよろしくおねがいします。
追記おわり