僕は「書く」ということが好きらしく、文章を書いたりプログラムを書いたり、書くことばかりの日々を送っています。この2つの「書く」は、ふつうは一つの行為とは見なされませんが、僕は案外似たようなものではないかと思ってます。プログラムは「プログラミング言語」で書かれ、日本語の文章は「日本語」で書かれますが、「言語という記号体系に従って頭の中にあるものを文字で表す」という点は同じだからです。
両者の大きな違いは「読者」で、普通の文章は「人間」が読むものですが、プログラムは「コンピュータ」が読むものです。というのは嘘で、実際にはプログラムは「人間」にも読まれるものなので、たぶんプログラミングを知らない多くの人が思っているよりもはるかに、人が読めるように書くことが重要です。
プログラムを書くことと普通の文章を書くことには、かなり似た能力が要求されます。プログラムは正しく動いてバグがなければいいというものではありません。プログラミングが理系っぽいか文系っぽいかと言えば、一般的には「理系」という認識だと思いますが、案外そうでもないです。美的感覚や言語能力が大事で、コミュニケーション能力が要求されます。人間にとって読みやすく書く必要があるからです。
まず少なくとも、自分が書きながら読むことは間違いありません。あまりにも読みにくいと、この段階で既に支障が出ます。あとでバグを直したり、改良したりするときも読むことになります。何ヶ月も前に書いたプログラムを読むというのは毎日のようにあることですが、グチャグチャなプログラムを書いていると、この時に「書き殴ったメモをあとで見たらさっぱり意味がわからない」的な状況に陥ることになります。
チームを組んでプログラミングをする時は、自分が書いたプログラムを他の人が読んだり、書き足したり、変更したりすることも当然あります。この場合は読みやすさがより重要になることは言うまでもなく、読みにくいプログラムしか書けない人はチームの開発では役に立ちません。
たとえ自分が書いたプログラムであろうと、数時間、数日も経てばあらかた忘れているのは当たり前です。だから、他人に見せる可能性がゼロでも、読みやすさ、わかりやすさ、簡潔さなどに気を遣って書いていかないと、あとで自分が読んだ時に全然わからなくなります。人間にとって読みにくいプログラムは良いソフトを生みません。直したり、改善したりするのが大変だからです。そのとき動けばよい、というプログラムの書き方をしていると、だんだんプログラムはグチャグチャで解読不可能になっていって、長期に渡って作り続けていくのが不可能になります。読みやすく書くことができれば、1つのソフトを作り続けていくのは簡単になります。
だから結局の所、プログラミング能力は文章能力にかなり比例します。良いプログラマの多くは良い文章家です。数学的な素養はなくても案外なんとかなるもので、少なくとも僕は数学がさっぱりです。高校生レベルの数学も全然わかりません。
文章を書くのが好きだったり得意だったりする方は、プログラミングの方にも手を出してみてはいかがでしょうか。案外、そっちのほうが才能あったりするかも知れませんよ。
両者の大きな違いは「読者」で、普通の文章は「人間」が読むものですが、プログラムは「コンピュータ」が読むものです。というのは嘘で、実際にはプログラムは「人間」にも読まれるものなので、たぶんプログラミングを知らない多くの人が思っているよりもはるかに、人が読めるように書くことが重要です。
プログラムを書くことと普通の文章を書くことには、かなり似た能力が要求されます。プログラムは正しく動いてバグがなければいいというものではありません。プログラミングが理系っぽいか文系っぽいかと言えば、一般的には「理系」という認識だと思いますが、案外そうでもないです。美的感覚や言語能力が大事で、コミュニケーション能力が要求されます。人間にとって読みやすく書く必要があるからです。
まず少なくとも、自分が書きながら読むことは間違いありません。あまりにも読みにくいと、この段階で既に支障が出ます。あとでバグを直したり、改良したりするときも読むことになります。何ヶ月も前に書いたプログラムを読むというのは毎日のようにあることですが、グチャグチャなプログラムを書いていると、この時に「書き殴ったメモをあとで見たらさっぱり意味がわからない」的な状況に陥ることになります。
チームを組んでプログラミングをする時は、自分が書いたプログラムを他の人が読んだり、書き足したり、変更したりすることも当然あります。この場合は読みやすさがより重要になることは言うまでもなく、読みにくいプログラムしか書けない人はチームの開発では役に立ちません。
たとえ自分が書いたプログラムであろうと、数時間、数日も経てばあらかた忘れているのは当たり前です。だから、他人に見せる可能性がゼロでも、読みやすさ、わかりやすさ、簡潔さなどに気を遣って書いていかないと、あとで自分が読んだ時に全然わからなくなります。人間にとって読みにくいプログラムは良いソフトを生みません。直したり、改善したりするのが大変だからです。そのとき動けばよい、というプログラムの書き方をしていると、だんだんプログラムはグチャグチャで解読不可能になっていって、長期に渡って作り続けていくのが不可能になります。読みやすく書くことができれば、1つのソフトを作り続けていくのは簡単になります。
だから結局の所、プログラミング能力は文章能力にかなり比例します。良いプログラマの多くは良い文章家です。数学的な素養はなくても案外なんとかなるもので、少なくとも僕は数学がさっぱりです。高校生レベルの数学も全然わかりません。
文章を書くのが好きだったり得意だったりする方は、プログラミングの方にも手を出してみてはいかがでしょうか。案外、そっちのほうが才能あったりするかも知れませんよ。
※おまけ:実際にプログラミングをはじめてみたい方へ
プログラミングは最初のハードルが高いです。僕は中学生ぐらいの頃からいくつかのプログラミング言語の習得に挑戦してきましたが、3年ぐらい前に仕事で毎日やるようになるまでは全て挫折しました。
まぁ実際には挫折っていうか「飽きた」って感じなんですが、初心者の頃はプログラムを読んでも難しくてあんまり頭に入ってこないし、書きかたもよく分かんないし、やっててあんまり面白くないんですよね。思ったことをパッと実現できるようになると楽しいし役に立つんですが、最初の頃はその実現のコストが高すぎるので、なかなか壁を越えられないと思います。
でも、それって普段使ってる母国語以外なら当たり前のことで、プログラミング言語に限った話じゃないんですよね。最初がかったるいのはどんな言語でも同じことで、ふつうの外国語でもそうだと思います。それをプログラミングの難しさだと勘違いするのはともったいないです。言語というのは記号がたくさん集まって構成されるもので、最初はその記号の意味が1つもわかんないわけですから、才能の有無に関係なくつまんねーのは当たり前のことです。
だから、プログラミングをやってみて挫折した経験がある人や、やったことない人の中には、最初の壁さえ越えればメキメキ上達する人がたくさんいると思います。もったいないので是非やってみて下さい。
言語のほうは、小飼弾さんも薦めているjavascriptをおすすめします。特に自分のブログやサイトを持っている方は絶対ここから入ったほうがいいです。
プログラミングは最初のハードルが高いです。僕は中学生ぐらいの頃からいくつかのプログラミング言語の習得に挑戦してきましたが、3年ぐらい前に仕事で毎日やるようになるまでは全て挫折しました。
まぁ実際には挫折っていうか「飽きた」って感じなんですが、初心者の頃はプログラムを読んでも難しくてあんまり頭に入ってこないし、書きかたもよく分かんないし、やっててあんまり面白くないんですよね。思ったことをパッと実現できるようになると楽しいし役に立つんですが、最初の頃はその実現のコストが高すぎるので、なかなか壁を越えられないと思います。
でも、それって普段使ってる母国語以外なら当たり前のことで、プログラミング言語に限った話じゃないんですよね。最初がかったるいのはどんな言語でも同じことで、ふつうの外国語でもそうだと思います。それをプログラミングの難しさだと勘違いするのはともったいないです。言語というのは記号がたくさん集まって構成されるもので、最初はその記号の意味が1つもわかんないわけですから、才能の有無に関係なくつまんねーのは当たり前のことです。
だから、プログラミングをやってみて挫折した経験がある人や、やったことない人の中には、最初の壁さえ越えればメキメキ上達する人がたくさんいると思います。もったいないので是非やってみて下さい。
言語のほうは、小飼弾さんも薦めているjavascriptをおすすめします。特に自分のブログやサイトを持っている方は絶対ここから入ったほうがいいです。
404 Blog Not Found:私がJavaScriptを初心者用の言語として選んだわけ最近はよい入門書も発売されたようで、下はその入門書を紹介した弾さんの記事です。javascript入門書の記事のタイトルをjavascriptで書いてしまうのはちょっと問題があると思うけど(笑)
404 Blog Not Found:if (you.learn('JavaScript')) Books.toRead[0] = this; // 書評 - Head First JavaScript
※追記:堀江さんもこんなことをおっしゃってるのを発見。さすが。
大体プログラム書くのに数学や物理が得意な必要全く無いのにね。
4年くらい前にサポートの仕事で記録の為にキーボード打ちまくっていて、私も腱鞘炎になったことある。
会社で月に一回来るお医者さんに相談してみたら、どこまで手を使うと痛みが出てくるのかを見極めろと言われた。
要は手を使うなではなく、手の使い方を意識して疲れないようにしろってこと。
実際に意識して仕事していたら腱鞘炎にはならなくなったよ。
だから、キーボードとマウス使う手を意識してみたら。