
プログラムを仕事にしている人は、技術書は人一番読むが、その他の書籍(漫画を除く)はあまり読まないというタイプが比較的多い。
会社で開発部門のマネジメントを行ったり、プロジェクトリーダーや、PMなどの担当者であれば、組織論や周辺環境に関する知識の為に書籍を読む傾向が高いようだが、コーディングをメインに行なっているエンジニアは、とにかく本を読まないし、世の中に疎いタイプが少なくない。
別に今回はそうしたプログラマーの悪口を書きたいわけではなく、ブログを精力的に書いていたり、開発しているサービスのドキュメンテーションを難なく書けるヒトというのは、実はプログラムもかなり効率的でアルゴリズムもしっかりしているという事が考えられるので、読書をあまりしないエンジニアのスキルアップの足しになればと思いブログで書き綴りたいと思います。
何故読書をするとプログラムが上手になるのか?
言わずもがなですが、プログラムは言語です。
言語は使えば使うほどうまくなるのは、英語や多言語を学ぶ時には誰もが痛感するはずです。
通常、言語の習得には、「読み、書き、聞く、話す」というのが基本ですが、プログラム言語と言えど、やはり同じ基本が存在します。
何となく、「書く」しか当てはまらないように思えるプログラム言語ですが、他のプログラムとの連携のために、他人の書いたソースコードを読むこともあれば、そうしたアルゴリズムや仕様を聞いて理解する事も必要です。
話すというのは、自分が作ったプログラムを説明する事で行いますが、僕は個人的にプログラムをタイピングしている時や設計している時に、ブツブツ言っているプログラマーが実はスピードも早い安定感のあるプログラマーではないかと考えています。
プログラムを組む時に、作文を書くようにタイピングすることで、筋の通ったアルゴリズムが構築でき、流れるようなスピードでコーディング出来るということは、非常に優秀なプログラマーであるようにも見えますよね。
もちろん、ここで重要なのは、他人と話すときにも重要視される語彙力や文章組み立て能力などは、人は読書をすることで得られることが多いはずです。
結果、読書をしない人よりも読書をする人の方が、プログラム作業を行う上でも全ての効率が向上するという事に紐付けられます。
アウトプットは言語能力の向上
もう一つのプログラマーの言語能力の要素として、前述した「文章の組み立て能力」がありますが、これは自ら文章を書くことでしか得られることができません。
何故、小学校の時に、読書感想文などが宿題になっているのかなんて、想像もできなかったのですが、改めて文章を書くという行為がどれだけその人の人生に影響をするかを改めて考えさせられました。
ボク個人の話をすると、もう数年間、毎日最低1記事ブログを書くと決めて、日々更新ブログを書いているおかげで、一般的なWEBページの基本である2000文字という感覚と、どのように構成すればいいかという基礎知識、反響が得られた時の内容などが、毎日身についていく感覚を今でも持ち続けています。
結果、東証一部の上場会社でCTOを務めさせてもらい、その後独立してからも、スピード感のある開発能力と、幅広い技術知識のおかげで、食うに困らない暮らしをさせてもらっています。
でも、この感覚を感じ始めたのは、もともと読書など活字を読むことをしなかったボクが、しかたなく読んだ書籍により、周囲の反応など反響があったことから、なんとなく始めた読書という習慣、趣味が、仕事にしているプログラミングに活用できると実感できるようになりました。
企業で採用をするときには、読書習慣を持っているかどうかで判断することも多かったし、若手プログラマーに教育をする際には、「読み・書き・話す・聞く」を意識させて学習させるようにしたことで、確実に成長するエンジニアを何人も見ることができました。
プログラム初心者はコーディングよりもフローチャートを作り込むと良い
これまで、全くプログラム経験がない人でも、実際に「プログラムを勉強してみたい」「ITに強くなりたい」と考えている人は、ここ最近非常に増えてきており、相談も数多くいただくようになりました。
過去に、スクール講師をやった時も、コーディングを教える前にフルーチャートをちゃんと完成させる事を推奨してきたのですが、初心者はどうしてもフローチャートを理解できずに、コーディングを習得しようとしてしまいます。
文章を組み立てるように、システムの構図をフローチャートとして完成できないと、そもそもコーディングなどできないという感覚を覚えてもらわないと、キーボードには触らせないぐらいの感覚なのですが、それほどまでにフローチャートって重要なのです。
「起承転結」というストーリーの基本構造があるように、プログラムにも起承転結はあります。
ただ、具体的に言うと、「起と結」が存在していて、それ「承と転」は、「起と結」のつなぎとして扱います。
プログラムに慣れてくると、つなぎのタイプに気を使えるようになり、どのように繋いで結論に持っていく(結果を返す)のかを上手に作文することができるようになります。
周囲の人に怖がられても、話す感覚でプログラミングすると、非常に効率が上がる感覚、世の中の殆どのスクールでは教えてくれないので、是非とも読書をしながら獲得してみてください。
0 件のコメント:
コメントを投稿