見出し画像

プログラミングに必要なこと

プログラミングは誰にでもできることですが、下記の能力があればあるほど、より快適にラクにプログラミングを進めることができます。

自分で調べる技術

なにかわからないことがあるときに、適切な人に訊けば適切な回答がすぐに得られるでしょう。しかし、自分が直面している問題に適切に回答してくれる人が常にいるわけではありません。そこで、自分で調べて自分で問題を解決するという能力が必要になります。
幸いなことに、現代はインターネット上にとても多くの情報が公開されていて、検索するのも容易です。

英語力

いくつかの例外を除いて、プログラミングの世界の言語は英語です。世界的に見ても、プログラミングの共通語は英語です。ほとんどのプログラミング言語は、比較的平易な英語を理解していることを前提に作られています。たとえば、ifやforなどの平易な単語を制御構文に使います。
標準で用意されているライブラリのクラスやメソッド、関数なども、たいていは平易な英単語やそれをベースにした名前です。エラーメッセージのようなメッセージと、プログラミングのドキュメントも多くは英語で書かれています。
ですから、英語がわかれば、プログラムの中で使われている要素の意味もいちいち調べなくても理解でき、結果としてプログラムを容易に理解したり作ることができます。
自分で作るプログラムでも、少なくとも変数や関数などの名前は英語をベースにするべきです。変数や関数の名前に日本語のローマ字表記の名前を使っているようでは、プログラミングは上達しません。
高度な英語は必要ありませんが、中学程度の英語の知識を備えて、コンピューターやプログラミングに関する単語と熟語に精通しておけば、たいていの場合、どうにかなります。
大きなプロジェクトでは、現在でも英米人だけでなく、インド人やギリシア人などさまざまな国の人とコミュニケーションしなければならないことがありますが、 その際に使われるのはたいてい英語です。この傾向は今後ますます増大するでしょう。

プログラマに絶対に必要な能力は、ものごとを抽象化してとらえることができるという能力です。
最も基本的なこととして、関数の概念を理解できるようになることが必要です。
数学では、y=f(x)で表されることの多い関数ですが、これはxという値を与えると結果がyに保存されることを意味します。
プログラミングでも同じで、たとえば、y=mul(x)という式は、関数mul()にxという値を指定して実行すると結果の値が返されてyに代入されます。
この概念が理解できない人には、プログラミングは向きません。
関数の概念が容易に理解できる人は、クラスやオブジェクトとといったより高度な概念も理解しやすいでしょう。

記憶力

長期的な記憶としては、ifやforなどのキーワードや基本的なクラスや関数などの名前は、 常に覚えておいて、いつでも使えるようにしておく必要があります。こうした基本的なことをいちいち調べないとわからないというのでは、プログラミングを効率的に進めることはできません。
覚え方にコツがある場合もあります。たとえば、文字列を整数に変換するC言語の関数atoi()は、これが「ASCII to integer」(アスキー文字列から整数への変換)の略であるということを覚えておけば、容易に覚えられますし、atol()やatof()などの関連する名前も覚えることができます。
短期的には、現在作ったりメンテナンスしているプログラムの全体の流れや、どのへんで何をしているのか、ということを覚えておく能力が必要です。この能力がないと、プログラムの構成を考えたり、デバッグすることは困難になります。

発想の柔軟性

ものごとを異なる面から見ることができるという能力も重要です。
たとえば、C言語やC++では、あるコード行の最後に必要な;(セミコロン)がないと、次のコード行のエラーとして報告されることがあります。そのようなときにエラーがある次のコード行だけを見ていても問題は解決しません。ある行のエラーメッセージから、本当の問題が前の行にあるのだろうと推測する能力が欠かせません。

想像力

プログラムをつくるときはもちろん、プログラムをデバッグするときに、想像力が必要です。
特に、高級プログラミング言語でプログラミングしたりデバッグしているときには、 マシンの中で実際に何が起きているのかということをプログラムから直接知るのは困難です。そこで、想像力が必要になります。


この記事が気に入ったらサポートをしてみませんか?