natsuumeのblog

プログラミングの話とか趣味の話を書くかも

流行りのコード履歴書的なアレ

はじめに

会社のslackでちょっと流行っているのを見かけたので書いてみる。
微妙に時系列怪しいところもあるので事実と時系列多少前後するかも。

コード履歴書書くよ

  1. 小学生の頃に遊んでいたWebのゲームサイトで、謎スクリプト書いて脱出ゲーム的なのをつくった。シフトアップネットというサイトのツクロ―アドベンチャーというやつ。配列の概念が理解できなくて、そのへんで投げた記憶がある。
  2. 高校の頃に買ったRPGツクールVXのRGSS2を少し触った。変数の値ちょっと書き換えたり誰かが公開したスクリプト使う程度。自分でもスクリプト作りたかったがコード理解できなかったので無理だった。
     
    (実家では家族共用のPCしかなかったのもあり、ほとんどプログラミング的なことは大学入ってから触れた)
     
  3. 大学1年前期の講義でHTML, CSSで自己紹介サイト作る的な課題をやった。
  4. 大学の講義でSqueakでなんかゲームつくった記憶。具体的な内容は覚えていないが、当時のレベル・Squeakのつらさに対して無駄に凝ったのをつくった記憶はある。
  5. 大学の講義で15パズルとかシューティングゲーム作った。
  6. 大学の英語の講義のテスト対策にCLIの単語テストプログラムを作った。英単語,日本語訳のペアをcsvで読み込んでランダムにどちらかを回答させるシステム。正解したものから除外されて不正解のものは正解するまで出題され続ける。
  7. Unity + C#チュートリアルちょっと改変しただけのシューティングゲーム作った。
  8. 大学の講義で書店のWebアプリケーションを作った。ほとんど仕様定義に時間使って最後1ヶ月実装、みたいな感じだった。グループワークだったが、チームメンバー自分以外だれもコード書けなかったので触ったこと無いPHPJavaScriptSQLと1ヶ月間ひたすら格闘してて辛さしかなかった。自分がJavaScriptに苦手意識があるのはだいたいこれのせい。
  9. ゲーム制作の参考書に買ったやつがDirectXだったのでちょっと写経した。C++の経験も皆無だったのでWindowを表示 + Hello Worldからちょっとしたあたりで、限界を悟ってやめた。
  10. 大学の講義でLeap Motion + Unityでエアホッケー的なゲームを作った。
  11. 人狼知能プロジェクトのプロトコル部門(当時は自然言語部門無かったので「部門」という区分は無かった気もする)にエージェント作って出した。興味ある研究室の先生と話をして配属前だけどちょっと出してみよう、という話になって作った。単純なルールベースだったうえ、人狼の知識もあまり無かったので予選落ちした。
  12. 人狼知能プロジェクトの春のプレ大会で自然言語エージェントを出す。今回からチームでの制作になり一部他の人の手を借りている。が、他の人のプログラミングの勉強も兼ねている感じだったので実装手伝ってもらいつつもプログラミング教える感じだったのであまり楽になった記憶はない。
  13. 人狼知能関係の技術書作るよ、という話があり研究室の先生経由で自然言語エージェントの作成に関して執筆する話が回ってくる。サンプルのエージェントコードと内容を書いた。学部4年~修士1年の春あたり。
  14. 人狼知能大会の自然言語部門運営のための対戦サーバプログラムをJavaで書く。非同期にやる処理とかサーバ系のプログラム書くのほとんど経験無かったので滅茶苦茶バグった記憶。
  15. 人狼知能大会の自然言語エージェントを作る。技術賞をもらう。
  16. 研究で人狼ゲームにおける自然言語 -> 中間言語への変換器を作成、スパゲッティコードになりつつあった既存の人狼知能自然言語エージェントも大幅なコード書き直しを行う。非同期処理でデッドロックしまくって禿げる。
  17. 身内のAdventCalendarのネタとしてニコレポのAPI叩いて重複無く動画の情報を引っ張ってslackに通知するプログラムを作ろうとした。時間の関係で1回リクエスト送るところまでは作れたが、定期的に送る処理までは作り終わらなかった。
  18. 会社の技術研修でlights outを作った。
  19. 会社の技術研修で美容室の予約管理的なWebアプリケーションを作った。
  20. spreadsheet読み込んでpythonのyoyo-migrationのmigrationファイルを書き出すプログラムをJavaで作った。単発で使う程度の認識だったが微妙に使われ続けることになって若干負債感が出てきている。
  21. juman++/knpをJavaから呼び出すWrapperを作った。学生時代にも研究室のライブラリとして似たようなのを整備していて車輪の再発明感が強かったので、OSSknp4jとして公開した。
  22. 広告テキストを入力として少し改変された複数の類似テキストを生成するシステムを作っている。(今)

ちゃんと触った言語はJavaくらい。 NLPとかR&D系やっているのにpythonじゃないのは割と珍しいと自分でも思っているが、これは研究室がすごくJava推しの研究室だったのでその影響を受けている。

将来は自分みたいな飽き性な人でも小説書いたりゲーム作ったりイラスト書いたりの創作活動が完遂できるように補助するWebアプリのツールを開発したい。
今年はNLP系もやりつつWebアプリ開発系の能力も伸ばしていきたいところ。