プログラミング、できるよ

この記事は約3分で読めます。

プログラミング言語は難しいか? とか、いまならどのプログラミング言語を習得したらいいか? とかよく質問されるのだけれど、正直に言うと答えに窮する。

どうしてだろうかと、分析してみる。

なにか新しいことをするときに、難しいか/易しいかを基準にしてやるかやらないかを決めたことがない。面白そうならやるし、興味がなければやらない。プログラミングひとつをとってみても、理解に時間がかかったものもあれば、そうでないものもあるわけで。理解に時間がかかることってだいたい、概念がイメージできないときで、自分が持っている固定観念が邪魔している。だから脳内ブレイクスルーすれば理解できる。

プログラミングって前人未到のことをやってるわけではなくて、誰かが「人間が使えるようにデザインしたもの」なので、理解できないわけがない。一番の敵は自分だっていうのは、ほんとよく言ったものだ。「理解できるはずがない」「難しすぎる」「理解できるかどうか不安」という心持ちが、理解を妨げる一番の要因だよなぁって思う。

プログラミング言語はどれがいいですか? とか、なぜプログラミング言語ってひとつにならないんですか? と聞かれると、人類が使う言語もひとつになってないよね。

バベルの塔の話でもしようか?(冗談)

コーディングがなんのためにあるのか理解できると、未知の言語でも短時間で理解できる。

英語と日本語が話せてもロシア語はまず表記が違うから時間がかかるけど、プログラム言語なんて一部を除いてだいたい英単語と記号で成り立っているわけで、そもそもなんて書いてあるか読めないってことはない。

これが理解されない理由は何なのだろう。

たとえば、ゲームが上手くなりたいとする。

まあそこから、よくわからないのだけれども。ゲームは、やってみたいからやるもので、上手くなりたいかどうかは、やってみて初めて湧く欲求だと思うので。

「ゲームが上手くなりたいけど、どのゲームをやるといいですか?」と聞かれたら困る。

好きにせいよ、って思う。

ゲームも種類と数をこなすと、感覚というものができあがる。

プログラミングも、おなじ。

でも、プログラミングだけだと育たない感覚もある。OSとかハードとかネットワークとか、深堀りと横展開。垂直思考と水平思考。めちゃめちゃ楽しい。

これが楽しいと思えない人は、無理にやらなくてよい。

たぶん、入り方が間違ってるか、向いてない。

僕はいままでBASICにはじまり、アセンブラ、COBOL、C言語、LISP、HTML、CSS、XML、Java、JavaScript、SQL、Visual Basic、C++、D、ASP、PHP、Perl、Ruby、Python、Scala、Scheme、R、Go、Rustなどを触ったり使ったりしてきた。でも、だから何? って思うよ。

言語が使えるからって、それだけで何かができるということではないから。

ゲームのルールを覚えただけ。

そのゲームがうまいかどうかは、別。

それからね、プログラミングの知識とかロジカルな組み立てができるかどうかよりももっと大事なことある。

集中力が続くかどうかとか。ゾーンに入れるかどうかとか。粘り強さがあるかどうかとか。発想の転換ができるかどうかとか。あと体力もめっちゃ大事。

コメント