My Library

Prolog

この Web サイトは, 私がコンピューターサイエンス, 特に Web プログラミング, Web デザインに関わってきた軌跡を紹介しています.

この Web サイトを制作している時点で, およそ 4 年間コンピューターサイエンス (2011 〜 2014 年度) に関わり, そのうちの 3 年間 (2012 〜 2014 年度) は, ほぼ Web に特化して活動してきました.

もちろん, これからもその活動は続いていきますが, 1 つの区切りとして, 4 年間の軌跡を残しておきたいと考えて, この Web サイトを制作しました.

コンピューターサイエンス, Web プログラミング, Web デザインを習得する指針となった数多くの本とともに, この 4 年間の軌跡を綴っていきたいと思います.

2011

2011 年度は, コンピューターサイエンスへの関わり方が「勉強」ではなく, 「熱中」へと変わったときでした.

自分の大学時代の専攻はコンピューターサイエンスとは何の関係もない建築でした. といっても, 建築に興味があったからではなく, 何をやるかイメージしやすかったからという意味不明な理由で進学していました.

2008 年度 (大学 4 回生) のときに, コンピューターサイエンスに興味をもち基本情報技術者の勉強と C 言語の基本は勉強して, これだったらやれるかもというある種の賭けで, 専攻を変えて大学院に進学しました.

しかし, 大学院での研究は正直おもしろくなく, コンピューターサイエンスに興味をもって (ただし, これだったらやれるかも程度で現在の熱中レベルとは天と地の差があります) 進学したはずなのに, コンピューターサイエンスへの興味を失っていきました.

April 〜 May

そうこうしているうちに病気になってしまい, 1 年留年し, 大学院生の肩書きはもちつつ, 実家に戻りしばらく療養することになりました.

June 〜 July

療養している間, 何となく母校の関西大学の図書館に通っていました.

でも, 毎日のように通っていくうちに, 基本情報技術者の勉強やC言語の勉強をしていたころを思い出し, もう 1 度, 0 からはじめてみようという気力が少しずつ湧いてきました.

コンピューターサイエンス全般 (情報理論, ハードウェア, アルゴリズム・データ構造, データベース, ネットワークなど広くとても浅く), そして, C 言語の基礎 (制御文, 配列, ポインタ, 関数, 構造体, 入出力処理, ファイル処理 ... etc) の勉強を再開しました.

August

某インターネット企業から運良く内定を頂き, コンピューターサイエンスの勉強に対する気力がさらに高まりました.

September 〜 March

FreeBSD のインストール, UNIX コマンド, シェルスクリプト, UNIX システムコールプログラミング, XHTML・CSS, PHP, SQL, そして, Webを支える技術 (HTTP・URI・HTML, REST) ... この期間に, 2012 年度以降, 様々なことを習得していくための土台を築いていたのだなと思います.

2011 年度の終わり, 気がつけばコンピューターサイエンスへの関わり方が, もはや「勉強」ではなく心身が求める「熱中」へと変わっていました.

2012

しかしながら, 病気の回復がよくなく結局は入社を辞退することになりました. これから, 1 年半年ほどニート生活が始まります.

それでも, 「熱中」できることは変わりませんでした. 特に, 2012 年度はコンピューターサイエンスでもとりわけ Web へと突き進み, JavaScript という 1 つの言語を極めていくきっかけとなった非常に重要な時間でした.

また, JavaScript に加えて, デザインも少しずつ学んだことで, ユーザーの見える部分・ユーザーが機能をダイレクトに体感できる部分を創造することに強い楽しみをもつようになりました.

April

4 月の最初から, さっそく自宅 Web サーバーの構築にとりかかりました. そのために TCP / IP についてもより深く学びました. それから, PHP と MySQL を利用して, Apache モジュールとして動作する掲示板を制作しました.

Web サーバーが構築できたとき, 掲示板ができたときの達成感は今でも忘れていません.

Web デザインにも取り組むようになり, レイアウトや配色の基礎知識, Photoshop や Illustrator の習得, セマンティックなマークアップ, 効率の良いスタイル設定などもう 1 度基礎から XHTML・CSS を学びました. また, スマートフォンサイトの制作のために HTML5 によるマークアップ, CSS3 によるデザインも学び始めました.

May

システムコールプログラミングの継続と並行して, Java へのステップアップのためにと考えて, C++ の基本も学び始めました.

June

Web ページに動きをつけたい…ということをきっかけに, jQuery を学び始めました. これが, JavaScripter への第一歩となりました.

July 〜 September

Yahoo クリエイティブアワードで, HTML5 API (Canvas) を利用したお絵描きアプリ (Instant Canvas Presentation) を制作したことをきっかけに, 本格的に JavaScript を学び始めました.

October 〜 March

そして, ブラウザで高機能なサウンド処理を実現する Web Audio API に出会ったことが, JavaScripter へと進む原動力となりました.

この頃は Web Audio API に関する資料は少なく, W3C の仕様や既に作成されている Web Audio API のアプリケーションのソースコードを何度もリーディングして Web Audio API を習得し, 同時に JavaScript の言語仕様についても深く学んでいきました.

しかし, 最初は仕様がほとんどわからず (特に, ScriptProcessorNode の挙動がよくわからず), また, JavaScript の理解もまだまだ未熟だったので, aike さんのような WebSynth は自分にはできない ... とあきらめたくなるような気持ちは何度もおきました. それでも, 自分の創造を絶対に具現化したいという強い気持ちが原動力となり, いずれは自分の集大成となる, X SoundXSound を制作し始めました.

2012 年度の終わり, 「オブジェクト指向でなぜつくるのか」を読んで, 今までは形式的にしか理解できていなかったオブジェクト指向について, その本質を理解できるようになりました. これは, 2012 年度に数多くのコードを作成してきたからこそだったと思います. また, 関数型言語をいずれ学んでみたいと思うきっかけをもたせてくれました.

2013

2013 年度は, JavaScript をさらに追求していくとともに, ActionScript 3.0 や Java といった新しい言語の習得も始めました.

Web Audio API のライブラリを制作していくうちに, プログラミング作法を学んだり, バージョン管理の必要性を感じ, git, そして, GitHub の利用も始めたりしました.

そして, 11 月からはアルバイトを始め, これまで独学でやってきたことを現場のプログラミングに活かす機会が訪れました. また, CakePHP を利用していたので, CakePHP の習得や PHP の MVC フレームワークの内部構造についても学びました.

「追求」と「挑戦」がキーワードの 1 年だったような気がします.

April 〜 October

オブジェクト指向プログラミングを実践することを 1 つの目標にして, Web Audio API のライブラリ (XSound) のバージョンアップを繰り返しました. そして, 1 月までにはおおよその機能 (サウンド生成, ワンショットオーディオの再生, 楽曲データの再生, エフェクター, ビジュアライゼーション, レコーディング機能, セッション機能, MML による自動演奏機能) をライブラリ化しました. そのライブラリを利用した X Sound も, ほぼ現在の形ができあがりました. この過程で, JavaScript にさらに磨きをかけていきました. おおよその HTML5 API も使いこなせるようになりました. WebSocket の利用をきっかけに Node.js の習得も始めました.

また, ポートフォリオとして Web Audio API の解説サイト, WEB SOUNDER の制作も始めました.

Web Audio API ライブラリの制作と Web Audio API 解説サイトの制作と並行して, ActionScript 3.0 や Java も学び始めました.

November 〜 December

11 月から株式会社コンビーズというメール配信事業をしている企業で Web プログラマとしてアルバイトを始めました. やっぱり, 初めの出勤は少し緊張したことを今でも覚えています.

初めての仕事は, デコメールエディタの改良でした. こういった WYSIWYG エディタでは, contentEditable 属性を利用し, JavaScript の document.execCommand や Selection・Range オブジェクトを利用して作成するのですが, これらを解説している書籍や Web サイトは非常に少なかったので, アルバイトを始める時点でかなり JavaScript を書いてきたにも関わらず, まったく知らなかったので (当然実装したこともなく) 非常にラッキーな仕事をいきなり任せてもらえたなと思いました.

リッチエディタのための JavaScript の API の習得とともに, いずれサーバーサイドの仕事もバリバリ任せてもらいたいと思い, 並行して CakePHP の習得も始めました (また, PHP も基礎から学び直しました).

January 〜 March

1 月には, 初めてプログラミングのイベント, Web Music ハッカソン#2 に参加しました.

アルバイトでは, デコメールエディタから発展してHTML メールエディタ制作プロジェクトの一員になりました. HTML メールエディタのフロントエンド部分, つまり, JavaScript のコードはすべて自分が制作しました. また, 再利用可能なように, jQuery プラグインとしてライブラリ化しました.

一方, SPA (Single Page Application) の制作において, jQuery では力不足を感じ, これが, フロントエンド MV * フレームワークを習得しようというきっかけになりました.

プライベートでの制作は, デザインもサーバーサイドも一人で制作してきましたが, それとは異なった, デザイナーの方やサーバーサイドの方と協力して1つのものを創造するという楽しみを体感することができました.

3 月には, MacBook Air を購入し念願の Mac ユーザーになりました. 病気もほとんど問題ないぐらいに回復し, 最後の 1 年に向けて, 万全の準備を整えることができました.

2014

2014 年 4 月 1 日から WordPress による技術ブログも始めました.

April

4 月に取り組んだことは, X Sound のサウンド設定保存機能の実装でした. Node.js + express + MongoDB を利用して実装しました.

May

5 月に取り組んだことは, 自分のメインサイトWEB SOUNDER のレスポンシブレイアウト対応でした.

アルバイトでのコーディングからテストコードの必要性やシステムのアーキテクチャを設計できる必要性を感じ, ユニットテストを書くことやデザインパターンを学び始めました.

そして, 以前より必要生を痛感していた英語も勉強し始めました.

5 月の末 ... 某インターネット企業よりこれまた運良く内定を頂くことができました.

June

July 〜 September

7 月からは, これまで学んできた Java を活かし, Android アプリの制作を始めました. その成果が Express と, そのコアとなるライブラリである CanvasView です.

また, デザインもタイポグラフィ・配色といった基礎知識を再度学び直しました.

October

10 月には, Web Components (を構成する技術) を学び始め, x-piano のベースが完成しました.

また, GitHub の Pull Request を利用し, 些細ですが初めてオープンソースに貢献することができました.

November

11 月には, Sass の習得を始め, より効率よくスタイルシートを記述することができるようになりました.

また, 11 月の末には 2013 年の 4 月から制作を始めていた WEB SOUNDER が完成しました (ほんとに長い長い道のりでした…).

December

12 月には, AngularJS をさらに深く学び, カスタムサービスやカスタムディレクティブの実装もある程度こなせるレベルになりました.

January 〜 March

最後の 3ヶ月はまさに卒業制作の時間でした.

X Soundの画像の Retina ディスプレイ対応, express 4.x でサーバーサイドのリファクタリング, Sass による CSS のリファクタリング, AngularJS によるリファクタリング. XSoundAPI ドキュメントの制作. x-piano の Polymer による実装.

そして, この Web サイト My Library.

Epilogue

この 4 年間, 特に, Web の世界に入った 3 年間は, これまでの人生のなかで比較にならないぐらい充実していました. 病気をしていたので, その点でつらかったことはたくさんありましたが, それでもそう言い切れるぐらい充実していました. そして, この 4 年間が自分にとって本当の大学だったような気がします.

なんだかんだで運が良かったです. 何より周りの人に恵まれていたと思います. 家族, 毎日のように通った図書館のスタッフの方々, 病院の先生, コンビーズの社員の方々, Web Music Developers JP の方々 ...

この 4 年間, 自分に関わってくれたすべての人に感謝の気持ちでいっぱいです.