Quantcast
Channel: 円周率近似値の日に生まれて理系じゃないわけないだろ! - knifeのblog
Viewing all articles
Browse latest Browse all 5376

プログラムを作れるようになるには

$
0
0

結論から言えば、最後にものをいうのは、情熱や根性や体力でしかないと思うんだが・・・


だからと言ってはなんだが、私のコードは他人に見せられたものではない。


最近は、少しでも他人の目を気にするような感じがしなくもない。

でも、誰から教わったとか、教科書や参考書に載っていたとか、そういう類のものではない。


頑なまでに我流である。


チームを組んで一つのものを作り上げるのであれば、協調性のある綺麗なコードを書かなければならないだろう。

私はそういうことをした経験は数度しかないし、それもお遊びでである。


最近の話をするならば、HTMLとかJavaScriptとかが、この記事を読んでいる人ならば一度は耳にしたことがあるだろう。


どちらもテキストベースの文法のある言語である。

私の印象としては、HTMLは文系、JavaScriptは理系、と文理で説明すると納得がいく。


あるモノを作りたい。

そういう欲求が少なからずあるだろう。

それはブログで記事を書くことも含むし、プログラムを作ることも含むし、現実の何かを作ることも含む。


そのモノを完成させたいという情熱や根性や体力が、完成するまで続かなければ、完成に至らない。

つまり、そういうこと。


HTMLとJavaScriptの違いをもうすこし掘り下げていく。

CSSを含まないHTMLという言語は、そうとう大きな間違いをしないかぎり、作ろうとしているモノと近いものが目の前に現れることだろう。
これがCSSによって、変化したモノを見せられているということ。

JavaScriptというプログラミング言語に限った話ではないが、コードというものは、ちょっとした間違いでも、作ろうとしているモノとはかけ離れた挙動をする場合があるし、まったく動かないこともある。


そういう意味で、プログラムを作るというのは敷居が高いと感じるのだろうし、まともに動かなければ情熱や根性や体力を削っていくことになるのだろう。


諦めたら、そこで試合終了だよ。


さて、文理なんてことを書いたが、プログラミングをするうえで、算数や数学は本当に必要なのだろうか?

少なからずとも算数の四則演算程度の知識は必要だろう。

プログラミング言語は、if文といった条件分岐、for文といった繰り返し、これが大抵のプログラミング言語には備わっており、基礎中の基礎といったところだろう。

これに変数といったものを変化させ、モノが動くのである。

つまり、小学生でもプログラミングは出来るということである。


ただ、あるモノを動かそうとする場合、文系的なアプローチではなく、理系的なアプローチでなくてはならない。

よくあるのが、画面をXY平面としてみて、座標でどこに配置するとか、どこへ動かすとかそういうこと。

そうなると数学の話をしなければならないだろう。

モノが落ちていく様をリアルに描こうとすれば、物理学の話をしなければならないだろう。


実際にあるモノを作ろうとすると、そこには道具というものが必要になってくる。

場合によっては道具は要らないというかもしれないが、人間の体も道具の一つであると考えれば道具は必要不可欠である。


目からの情報で、ここを少し削りとったほうがよいとか、ここの色はもっと濃いほうがいいとか、自分のこだわりを反映しやすいかもしれないが、納得のいくまでに仕上げるには、根性や情熱や体力が必要なのだ。


プログラミングというのは、最初のうちは形すら表さない場合もある。

そういうときは、エラーやワーニングが頼りなのだが、最初のうちは意味すら分からない。

思うようにプログラミング言語を操れるようになってくると、なんとかモノの形が見えてくるものだ。


形が見えてくればしめたもの。

とは言っても、自分の想像していたモノとは似て非なるモノだとすると、やっかいだ。

どこかに間違いがあるのだろう。

その間違いに気がつくかどうか。

もっと言えば、そういう間違いが起こりにくいようにコードを書かなければならないのだろう。


さて、私が大学生の頃。

これからはコンピュータの時代だからプログラミング言語の一つや二つ使えなくてはならないだろうと考えた。

そういう専門学校に行くことを勧める人がいたり、夢と希望をもってそういう専門学校に行く人もいれば、そういう先見の目はあったのかもしれないが、とりあえず行くことにする人もいるだろう。


私はそういう学校で、プログラミングのプロと称される人たちが、どんな風に教えているのかを知らない。

大学でプログラミングの授業らしきものはあったが、教授と呼ばれる人たちの古臭く頭の堅いコードは、大学生という若い私達にはよくわからないものではあった。

ましてや、C言語といった当時は若い言語については、教授よりも生徒のほうが、はるかに知識があったりもした。

結局教えてもらえるのは、if文やらfor文やらの文法だけだったりで、あまり実践を伴わないので、役に立つのかわからない。

そんなことなら本で調べたりすればよかったのである。


今やインターネットの時代。

情報は溢れ、自分が求めている情報にたどり着けるかが鍵である。

その情報が正しいのか正しくないのかはわからない。


まず、何を作るにしても、そのモノが作られる環境をよく理解しなければならない。

実はここが重要だったりする。

その環境にあった道具を揃えなければならないし、その環境で利用できる言語も限られてくる。


言語といっても、日本語と英語というくらい、大きな違いはない。

場合によってはあるかもしれないが、それはごく限られた環境の言語だろう。


環境に応じて使える言語は限られている。

そうなると、その言語の文法を少なからず理解しなければならないだろう。


ある一つの言語で、ある程度のモノが作れるようになっていると、他の言語を修得するのはそれほど難しいことではない。


でも、最近思うんだけど、やっぱり作りたいという欲求がなければ、プログラミング言語を知っていても何の役にも立たない。

ここに尽きるなと感じる。


コンピュータの専門学校に行こうが、作りたいという欲求がなければ、学習にも意欲が沸かないだろうし、そもそも意味が無いだろう。

もしくは、自分と畑違いの分野の人が作りたいと思うモノを理解して、形にしていこうとするならば、その分野を少なからず理解しなければならない。

つまりは、プログラミング言語だけを知っていれば良いということではないということになる。


もっといえば、そういうところに関われない末端のプログラマーは、どんなことに使われるのかすらわからないコードを書くだけだろうか。

いわゆるサブルーチンであり、わかりやすくいえば部品である。


どんなことに利用されるのか解っている部品であれば、その部品づくりに情熱を傾けることもできるだろうし、客の要求に答えられたら、それなりの報酬や喜びを得られるだろう。

しかし、どんなことに利用されるのか解かっていない部品というものは、こまりものである。

汎用性の高い部品は、熟れてくるし、需要も高かろう。

しかし、汎用性の低い部品も、需要がまったくないわけではない。


やっぱり、新しいモノを作るというのは面白いし、それが完成していく過程を楽しめなければ、情熱や根性や体力なんてのは、あっという間になくなってしまうだろう。

案外、出来上がってしまうと情熱は薄れてしまったりもする。

やっぱり、完成していく過程が楽しいのかな。

出来上がったモノを、他人が評価してくれるのも嬉しかったりする。

そこなのかなぁ。


Viewing all articles
Browse latest Browse all 5376

Trending Articles