プログラミングを楽しく勉強するには?

相対性理論

アインシュタインが相対性理論を説明するために、「ストーブの上に手を置くと1分も1年と感じられるが、恋人と一緒にいると1年が1分に感じられる」というたとえ話を披露したというのは有名なお話です。このように人の感じる感情や経験というのは、案外相対的なものでアプローチの仕方次第で良くも悪くも変えられるといえます。例えばどうしても苦手なことや真っ先に難しいという印象を覚えてしまったことに取り組まなければならない時、人は必要以上にハードルを高くしてしまいがちです。注目すべき点は、このような場合に好きとか楽しいという感情は起こりにくいということでしょう。当たり前と思われるかもしれませんが、恋人と一緒にいるのとは訳が違うということです。

好きこそものの上手なれ

しかし、人の脳というのは案外だまされやすいものです。例えば楽しいと感じる感情が笑顔を作り出すのか、あるいは表情が笑顔になるから楽しいという感情を覚えるのか、区別はあいまいなのです。従って表情を笑顔に近づけることで、楽しいという感情を引き出すことが出来るのです。しかもその笑顔は、他人に合格点をもらえるようなとびきりのビジネススマイルでなくても、単に自分を騙すことが出来ればよいのです。例えば口にペンを横向きにくわえると、口元が笑顔に近くなります。実はこれで十分で、脳はしばらくの後はドーパミンを出すよう促し始めるのです。そして楽しいという感情がいつの間にか沸き起こると、何の関係もなく行っていることが楽しいのと錯覚してしまいます。初心者がプログラミングを学習するのにこれほど役立つことはないでしょう。もちろん人によってはプログラミングを学習中に、「フロー」を体験するのかもしれません。これは経験者によれば、時間が経つのも周囲の物事にも自分自身についてすら、一切を忘れてとてつもなく集中し、そのためにどんな努力も必要としない状態であり、その間は大きな喜びを感じるというのです。さすがにここまでの経験はそうそう無いものでしょうが、自らの努力を最大限に集中させられる状態に喜びが伴うというのは道理でしょう。そして楽しければ創造的になり、アイデアも色々と浮かぶものなのです。

読書百編、意自ずから通ず

さて、口にペンをくわえてプログラミングを学習するとして、それを毎日同じ時間に同じ時間だけ行うというように習慣化に成功すれば、更に楽しくなるでしょう。人は見慣れたものが好きになるという単純さを持ち合わせています。また筋力トレーニングと同じように、脳も同じ認識経路を辿るという経験を繰り返すうちに習熟し、敢えて努力しなくても特定の判断や理解が速くなるという性質を持っています。つまり毎日目に触れてあちこちかじってみるということを繰り返すうちに、実際に体が先に動くようになるのです。

プログラミングで会社が変わる?

必要は発明の母

人を指して「機械のようだ」と言えば、大抵は、決まった時間に、決まった事を、決まった通りに行うといったパターン化された行動をとる様子が容易に連想されます。しかし人は、あまりにも決まりきった行動には嫌気が差すものです。毎日行っている会社の業務の中にも、このようなルーティーンワークと呼ばれるものが少なくありません。これを機械がやってくれないか、と空想することはあっても中々実現するものではありません。もちろんプログラミングによってそもそも効率化できるものかどうか、という問題があります。しかし、仮にプログラミングの作成を外部に依頼する予算が無いというだけのことであれば、社内にできる人材を求めれば済むのです。もちろんプログラミング作成の実績がある人がいれば、一も二もなくその人に頼むことでしょうが、必要は発明の母なのです。ある程度最初は時間がかかるものという覚悟の上で、社員一人一人が自分の業務効率化のためにプログラミングを作成するという目標を掲げることは、決して非現実的なことではありません。

塵も積もれば山となる

自分の業務については熟知しているため、どんな工夫があれば良いのか、比較的容易に考えることが出来るでしょう。問題はその実現のためにはどんなプログラミングが必要なのか、という点です。初心者からプログラミングを学習しても、その程度のレベルであれば1か月程度あれば十分でしょう。後はそのプログラミングがより早くより正確に動作するよう修正を施すことになります。手作業の煩雑さを知っているからこそ、熱心に取り組めばそれだけ自分の手間が省けます。仮にまずまず満足できるプログラミングが完成すれば、更に効率化を図るための工夫を考えられるでしょう。次はデータベースの知識を身に付けて、システムとしての理解が深まるでしょう。またルーティーンワークが短時間で済めば、その分の時間をより創造的な業務に向けることが可能になります。自分の業務を見つめ直し、同じ部署のみならず全社を巻き込んで社員同士が連携し、システム開発を実現することになるかもしれません。そうすればコミュニケーションが活発化し、様々なアイデアが横断的に飛び交うような、クリエイティブな雰囲気に職場が生まれ変わるでしょう。自分の目の前しか見ることのなかった社員が、あれこれ試行錯誤を繰り返したり、いつの間にか経営的視点を自分の業務に取り込むきっかけにもなります。

痒いところに手が届く

更に現代のネット社会において、どんな業種の会社であってもインターネット上にホームページを持つのは今や常識です。このインターネット空間を使って社員誰もが自分でプログラミング出来、素早く情報を公開し、あるいは差し替え、また商品を売り込む策をあれこれと繰り出すことが出来るとなれば、どれほど会社の利益につながるか計り知れないのです。

プログラミングは月80万円の価値がある?

プログラマの価値を再考しよう

プログラマは最近では、過剰気味で労働市場においてもそこまで有望な仕事先とは考えられていない節がありますが、コレは大きな間違いと言えます。プログラマの価値は我々が思っている以上に高いものであり、一人のプログラマが生み出せる価値は非常に大きい物があるのです。そのことを様々な視点から迫っていきましょう。今プログラマの人も、これからプログラマになりたいという人もきっとプログラマの真の価値に気付き、仕事の喜びに気づかれることでしょう。それほどプログラマとは素晴らしい職業なのです。

プログラムの波及効果

プロのプログラマは簡単なシステムになると一日でも作ってしまいますが、例えば業務管理システムを考えてみましょう。こういったものは、プログラミングすると案外簡単にできるものですが、それを実際に業務で使用した際に得られる価値は大きい物があります。場合によっては従業員一人分浮くぐらいの業務節約効果もあり、使い方次第でプログラマの価値は幾らでも上がるのです。多くの企業はプログラマの価値を理解して意味のあるプログラミングをさせていないとよく言われますが、この例一つとっても大変大きな価値がプログラマにはあることが理解できるでしょう。これまでのプログラマの仕事は依頼されて製品を売るといったものでしたが、こういったものをプログラマ自身が必要な物を認識して主体的にプログラミングすることで、より良いプログラミングが出来るでしょう。

プログラマの海外での地位

日本のプログラマは比較的低い地位にいるのですが、海外のプログラマは高給取りの代名詞でもあります。それだけ専門性が高い仕事であり、社会の仕組みを大きく変えるものであるということを認識されていることから、多くの人が十分な対価をプログラマに対して支払うのです。日本でもそういった高給のプログラマは居ますが、余り多くはありません。最初は生産性の高かったプログラマも余り高度でないプログラミングの案件に埋没するにつれて、次第にその能力をなくしてしまうのが日本の環境でもあります。一つの手として海外へ仕事を求めにいってみるのもいいでしょう。特に日本語のできるプログラマというものは思った以上に希少価値があり、特にアメリカでは引く手あまたということも知っておくことは大変重要なことなのです。プログラマの生産価値は与えられた環境にある程度依存するものですから、より自由な働き方が出来るようなところへ自分から行くこともプログラマの才覚と言えるでしょう。あなたも自分の可能性を開花させたいのであれば自分の環境を変えてみてはいかがでしょうか。

プログラミングで仕事の効率が上がる?

急がば回れ

古典経済学の基礎は、人間が必ず合理的な行動をするという前提の上に成り立っています。合理的な行動を行うということは、効率一番で感情を交えない判断を常に行うということです。世の中にも近道を選んだと喜んでいたら、実際には回り道の方が経済的だったということが多々あるものです。人の直観にはバイアスがかっており、考えて脳を使うより慣れたルートで即座に判断を下してしまうという面倒くさがりな一面があることは、認知心理学者でノーベル経済学賞受賞者であるカーネマン博士の研究から明らかです。従って直観によって判断を下すのは、慎重に考え直した方が良いような場合もあるのです。

効率的なのはどっち

さて、IT技術の発達により、誰でもパソコンを使えなければ仕事にならず、スマホやタブレット端末を自在に操る時代になっています。しかし、必要なサービスの使い心地について感想を述べることは出来ても、自分で改良する、あるいは初めから作り上げるとなれば尻込みする人が少なくありません。初めからプログラミングはプロが作るものという発想に凝り固まってしまっていますが、それが果たして合理的な判断なのか、といえば必ずしもそうとは言いきれません。つまり、自分が必要とするプログラミングは、自分だけ使うことができれば良いわけです。汎用性を考慮する必要もなければ、多少の不具合があっても使っていくうちに修正すれば済むはずです。学校で誰でも数学を習っているわけですから、たとえその時には苦手で頭を抱えていたとしても、興味を持っているならば十分学習できるものです。それと引き換えに得られるものは、時間です。例えば会社で毎月、同じ事務作業を一定量ずつ必ず行うものとします。それが現在の手作業では毎月1日(8時間)分かかるとして、プログラミングが実現できれば毎月10分に短縮されるとします。初心者のためプログラミングの作成に7日かかるとしても、1年間で比較すれば8か月目でめでたく元が取れることになるのです。

一挙両得

このように単純に自分の時間を節約できるかどうか、というのみならずプログラミングを自分で作成したという経験には、もれなくおまけがついてきます。それは実績を評価する会社内であれば、プログラミングを導入することによって得られる経済的価値という点で、会社に対して新たな提案を行うことが出来るというものです。初心者といえども簡単なプログラミングは、1か月程度学習すればできるでしょう。一生懸命自分のために作り上げたプログラミングがうまく稼働してくれれば、それは業務に直結する形で実質的な利益を会社にもたらします。もっと効率的に業務を進めたいと説得すれば、今度はプロに依頼して必要なシステムを導入する予算を獲得できるかもしれません。その一方で自らのキャリアにも、プログラミング作成という新たな実績を付け加えることが出来るのです。

モバイルPC