以前から感じていたことをちょっとポエムにしてみようと思う。
言語の構文は覚えた。
開発環境はインストールした。
サンプルプログラムをビルドして実行できる。
ライブラリの使い方もわかる。
作ってみたいアプリケーションのイメージがある。
で・・・
最初に何をすればいいんだっけ?
これは常々自分が感じてきた、処女作を作ったことのない開発者が最初にぶちあたる壁ではないかと考えている。アプリケーションを作りたい欲求はある。作ってみたいアプリケーションのイメージもできている。開発に必要なものはそろっている。しかし最初の一歩が踏み出せない。何をしたらいいのかわからない。
これはひとえに「設計の領域」の経験不足からくるものだと思うのだ。今回の例に挙げているGUIアプリケーションは一例に過ぎないのだが、開発対象を概要から詳細に向けて設計していくという経験がないせいで、
最初になすべきことは何か
そのために何を考えねばならないか
その考えに従って設計をどうやってまとめるか
まとめた設計に沿ってどうやって実装するか
という一連の作業が最初の一歩で躓いて、文字通り一歩も進まない。設計なんかどうでもいいから動けばいいや!という方針で、思うがままに実装していけるバイタリティのある人なら、情熱に任せて次々に現れる障害を克服していけるだろう。だが、最初に何をすべきかの見当がつかず、目の前の課題に圧倒されてしまうタイプの人にとっては、課題の克服ができなければ一歩たりとも踏み出せない。結果、アプリケーションを作る前準備だけがそろった状態であきらめてしまう。
開発環境とか開発言語とかライブラリの使い方とか、そういった情報は世の中にあふれているし、書籍もあるし、検索すればかなりの情報が出てくる。だが、アイデアを抽象化して機能として設計し、その設計にそって開発環境を使いこなし、実装を進めていくという一連の動作を教育する情報は極端に少ない。皆無と言ってもいい。
趣味のブログを書き溜めた著者が、猫でもわかるシリーズで書籍化に成功したように、最初の一歩を踏み出すために何が障害になるのか、その障害をどうやって克服していけばいいのか、そういうノウハウの領域が圧倒的に不足している。また、概要から抽象設計、詳細設計へと進めていくためには、文書作成能力も問われるし、思考を整理して明文化する推敲能力も必要になる。そういう経験は普通の人はほとんどしたことがないだろう。
そういう、何というか「設計から実装に必要になる人間的なノウハウの集大成」みたいな書籍なり情報なりをまとめたもの(書籍でもWebでも何でもいい)が存在してくれたら、もっとプログラミングに足を踏み入れる人も増えてくれるのではないだろうか。
などと書き連ねてみたが、取り止めがないのでこのへんにしておく。