山岡さんが書いたWebエンジニアとして駆け出そうとしているあなたへという記事を読んで、そういえば自分が就職する頃ってどういうコード書いてたっけ?とふと思って書き出してみることにした。
当時の自分は佐賀大学の経済学部に在籍している大学生だった。2〜3年目ぐらいから大学に通うことに対して意味を感じられなくなった結果留年して時間が余っている時期だった(卒業するのに結局5年半かかった)。文系の学部なので情報系の学部生が当然持っているような知識はなかったが、趣味でウェブサイトを作ったりプログラミングをやっていたので、同年代の中ではコードを書ける方だったと思う。
- はてな記法パーサ
- パーサコンビネータ
- Packratパーサを構築できるパーサコンビネータをPHPで書いていた。PHPで複雑な文法のパーサを書こうと思うと、当時はパーサを手書きするかlex+yaccからPHPのコードを生成する方法を取る必要があったが、はてな記法のパーサを書くのにそういうことはやりたくなかった。当時PHPにパーサコンビネータのライブラリは無かったので自分で書くことにした。
- PNG画像のエンコーダ・デコーダ
- 当時時間が余っていたので勉強のためにPNG画像のエンコーダ・デコーダを実装した。PNGの仕様書を読んでバイナリファイルの中身がどういうレイアウトになっているかを把握した後、PHPでPNG画像のファイルをパースしたりピクセルの二次配列からPNG画像ファイルを生成する処理を書いた。圧縮部分はPHPに元からあるzlib拡張を使った。PHPで実装したので実用性はゼロなんだけど、バイナリファイルを扱うための知識みたいなのはついたと思う。
- 画像の拡大縮小アルゴリズム
- PNG画像のエンコーダ・デコーダを書いたついでに、勉強のためにいくつかの画像の拡大縮小アルゴリズムを実装していた。ニアレストネイバーやバイリニア、バイキュービックなどいくつかのアルゴリズムを実装してその違いを実際に見て確かめたりしていた。これもPHPで書いたので実用性はゼロなんだけど、拡大縮小アルゴリズムってこういう感じなのねというのがわかって勉強になった。
あとは普通にPHPとMySQLでTwitterクローン書いてさくらのレンタルサーバで動かしていた。その時のコードは古のコード共有リポジトリであるCodeReposに置いていたと思う(がこの辺記憶があやふや)。