認めるかどうかは別として、事前段取りなしにコードを記述できる人間はいません。ここに、コードを作る際にプランを立てることの大切さと、有益さを気づかせてくれたエピソードがあります。
コードをどう書くかではなく、何を作り上げたいのか、を最初に考えることが肝心です。
プロのプログラマーとして、コードを「書く」必要がある、と思いこんでいませんか?
しかし誰も、たとえマーク・ザッカーバーグでさえもコードを「書く」ことはできない
プロのプログラマーというのは、コードへ「変換」する能力に長けているだけなのです。もう少し詳しく説明しましょう。
プロジェクトを完成させるように言い渡されると、そのボリュームに圧倒させられてしまうことがあります。たとえ完成させるのに必要な工程をすべて把握していたとしても、どこから手を付ければいいか分からない時もあります。
どんなプロジェクトでも、最初のステップですることは小さなタスクに分けることです。そして指示を出す。全工程を終える頃には、どこから手を付ければいいか明確にわかるようになり、巨大に感じられていたプロジェクトは気にならなくなります。
実際にコードを作り始める前に、ステップがもうひとつ。それは、成し遂げたいことをセンテンス毎に分解することです。人間の脳はコードを「書く」ようにはできていません。脳の構造的に無理なのです。しかし、コンピューターに何をさせたいかを明確にし、そのタスクをコードへ変換することは可能です。
ここに例を挙げましょう。
あるプログラミングのコースで1人の生徒がJavaScriptのドキュメンテーションで行き詰っていました。
問題を解決するために彼と一緒に考えたコードが下記です。
10行のコードで問題解決です。ただし、次のような工程を踏まない限りこの10行は作り出せません。
- ・まず配列をソートします。FCCにArray.prototype.sortというヒントがありますよ!
- ・JavaScriptは配列のソート方法を知らないので、アルゴリズムを使って教えます。
- ・console.log で配列がソートされたか確認します。
- ・ループ文を使ってソートされた配列のどこに配置するか確認します。
- ・ループの中で、ソートされた配列の数値がパラメータと同等またはそれ以下になっているか確認します。
- ・もし同等またはそれ以下になっていれば、数値を入力するindexを見つけたことになるので、returnし、ループを止めます。
- ・indexを見つけられなかったら?数値が配列の中で最大値になっていたら、正しいindexをreturnする必要があります。
さて、記事もここまで来ました。
「擬似コードのパワー」についてもご紹介しましょう。
擬似コードを耳にしたことがあるかもしれませんが、それは一体何なのでしょうか?そしてどう活用したらいいのでしょうか?
擬似コードとは、プログラマーが事前段取りの際に使用する速記法です。ホワイトボードやその他の手書きができる媒体に書き出します。脳内にあるアイディアや考えをアウトプットする作業なので、PCもいらないし、構文的に完璧である必要もありません。
聞き覚えがありませんか?そうです。まさにこの記事で説明してきた手法です。完全なセンテンスを書き出す代わりに、ちょっとズルをして使い方を知っている方法で書き出すのです。
作ったコードをセンテンスに逆変換することで、問題は見つけやすくなります。
コード記述を始める前の段取り工程の必要性を受け入れることが、重要な一歩になります。プロジェクトや課題、アプリケーションなど、規模の大小にかかわらず、変換することによってプログラミング速度は必ず上がります。
※本稿は 「Stop trying to “write code” and focus on “translating to code”」を翻訳・再編集したものです。