[第一回] プログラミングを始めたい方へ

はじめに

第一回では「何故プログラミングを学ぶか」ということと「プログラミングに向いている人」について解説していきたいと思います。

なるべくわかりやすいように書きましたが「おいおいそれは例がわかりにくい」だのいろいろな意見があると思います。

本記事でプログラミング学習を志してくれる才能ある人が増えてくれればと思います。

プログラミングとは

あなたが使っているスマートフォンやパソコン、それらの中ではいくつものプログラムが動いています。

現代のユーザでアプリやソフトをインストールしたり、起動したりしない日はないと思います。

そんなアプリやソフトは全てプログラミングによって生み出されているのです。

簡単なところだとExcelでの関数やマクロ計算もプログラミングの一つと言えるかもしれませんね。

世の中いろんなプログラミングについての本がありますが、本記事ではガチ初心者向けに説明していきます。

何故プログラミングが要求されるか

指導要領の変更で小学校でプログラミングの授業が組まれるなど、日本においてプログラミングの需要は日々高まってきています。

でも、必ず一回は思うことだと思うんです、「プログラミングって何のために必要なの?」と。

よく考えてみればそれは至極まっとうな意見で、例えば今あなたが仮に何のプログラミングによる生産活動をしていないとしてもTwitterやFacebookやDiscordやLINEといった素晴らしいアプリが実際に生み出されているわけです。

え、じゃあ何にもしなくてもいいじゃん。

あんなメジャーなのは無理かもしれないけど、知識として持っておくことは便利なんよ。

プログラミングを学ぶとはプログラムを “創る” 能力を鍛えるということで、これはすなわち作曲のために音楽を学ぶ、芸術作品を生み出すために絵を学ぶなどと変わりないのです。

そんなのできっこないって思うかもしれませんが、100mを10秒で走ることよりは絶対に簡単なので、もしもプログラミングを真剣に学ぼうとしているのであれば諦めないでください。

プログラミングはスキルである

プログラミングに限らず、社会生活において最も大事なことは「自分の価値を高める」ということです。これ、わかってない人が多い気がするんですよね。

「こんなの将来役に立たない」「使う場面なんてない」っていう言葉は数学を学ぶ上でよくでてくるフレーズなのですが、勘違いも甚だしいといったところです。

「数学できなくても生きていけるもん」ってそりゃあんた「世の中の賢い人が数学できないお前でも生きていける世の中をつくってくれた」っていうのが正しいんですよ。

昔はインターネット、それより前は電話さえも高度な技術・知識がないと使えない代物でした。それがいまや「Siri!電話!」ってだけで電話かけたりインターネットで検索できるんだからすごい世の中ですよね。

分野と関係ないスキルは確かに将来的に仕事には直接は関係ないかもしれません。でも学んでおくことで人生の選択肢が増えるんですよ。

勉強しておけば「パティシエ目指してたけどやっぱりパイロット目指そう」とか「医者目指してたけどパティシエ目指そう」とかいくらでも応用がきくんですよね。

それが最初からパティシエ目指すために料理しか勉強してこなかったら、本命がコケたときに取り返しがつかないんですよ。

数学の知識も料理の知識もどちらが上とか下とかはありませんが、数学の知識のほうが様々な職種につぶしが利くのでちょっと有利というのはあるかもですね。

スキルという付加価値

将来的にあなたは就職することになると思います。

そのとき、面接官は何百人という受験生をみるわけです。面接官の立場になって考えて誰を採用するか考えてみてください。

基本的スペックは全く同じだけれど、一方はデザインを学んでいるとなれば「デザインのスキルが何に使えるかわからないけど、こっちの人の方がいいかな」ってなりませんか?

スキルを身に着けたということは「努力することができる」「才能が少なからずある」ということの間接的な証明になるんですよ。

なので内容は何でもいいですしナンバーワンでもなくてもいいです。人口が百人だったときに上位二十人くらいには入れる自信があるスキルを一つは必ず身につけておきましょう。

一位じゃなくてもいいっていうのがミソな。でもガチ勢目指したいならもっと上を目指すべき。
マルチスキルでいいなら色んな分野で偏差値60くらいとれればおっけー。

で、そのスキルとしてプログラミングは比較的ハードルが低いよね、っていう話です。

プログラミングに向いている人

よくプログラミングの利点として「論理的・数学的な思考が身につく」みたいなキャッチフレーズがありますが、半分当たっていて半分間違っています。

そもそもの前提として「論理的・数学的思考がない」人はどんなに頑張ってもプログラミングを会得することはできません。ただ、これは単に向き不向きの問題で別にプログラミングができないからって人間失格なわけではないので悲観的にならなくて大丈夫です。

「数学のセンスないな」って自分で本気で思っている人はプログラミング向いてないのでやめときましょう。

というか、何にしろ “心の底” から「本気で向いてない」って思うクセはなくしたほうがいいです。そういう人は自分で「これは向いている」って思ったものでもなにかの拍子にちょっと躓いて「やっぱり向いてない」って逃げるタイプになりがちなので。

まあそうはいっても人間、得手不得手がありますから苦手なものは仕方ないです。ぼくだって芸術センス磨けって言われてもできんことはないだろうけど「いや(才能ないから)そりゃ学習効率悪いやろ」って思うわけです。

ここでいうのは例えば八十点のものをつくれって言われて才能ある人が一週間でできるのに、才能があんまりないぼくに一ヶ月でつくらせるのはもったいないかってことです。

要するに適材適所ってことやねえ。

数学センス

まあでも実際問題「結局どのくらいの数学センスいるん…?」ってなると思うのでお答えします。ぼくくらいの数学力があれば基本的には困ることは少ないと思います。

ツイッター見ててぼくの数学力の底は知れると思いますし、駿台で偏差値55くらいの大学を理系で入学・卒業しているなら全く問題ないです。

英語力

プログラミングで詰まったとき、最も役に立つのはWikipediaではなくStackOverFlowというサイトです。

まあプログラミングが専門の超大型掲示板と思っていただければ間違いないです。

ただし、書き込まれているのは全て英語なので英語力が絶対に必要です。

どのくらいの英語力が必要なのかというのは使われる用語が専門的だったりもするので一概に言えませんが、TOEICで500点取れるなら書いてあることの90%は辞書を使いながら理解できると思います。

ま、それに最近はGoogle翻訳も優秀だしね。

ただ、Google翻訳も間違えることがあるので原文と見比べて「この翻訳は間違えているな」って気付けるくらいの英語力はやっぱり必要です。

めんどくさがり

Twitterで何度も強調して言っているのですが、プログラミングを学びたいのであればめんどくさがりな人のほうが絶対に向いています。

というのも、世の中プログラミングで自動化できることが多いんですよね。

例えば、ぼくがプログラミングを学び始めたのも、とあるソシャゲ(もうサービス終了した)のリセマラやイベントの周回がめんどくさすぎて「これ、自動化したら絶対楽やん…」っていうのがきっかけでした。

もちろん自動化して楽するためには初期投資として開発期間が数日必要なわけなんですが、のちのちのメリットを考えてそういう風に先行投資できるめんどくさがりやは本質的にプログラミングに向いていると思います。

まとめ

ちょろっと書こうと思っただけだったのですが、意外に長くなってしまいました。

この記事で(プログラミング以外でも)、なにか自分を磨いておいたほうがいいなあって思えたのであれば執筆した価値は十分にあったと思います。

他人の発明品を “使っているだけ” の人になってしまっていては絶対に駄目です。

それは肝に銘じておいてください。

次はプログラミング言語の種類や学習の仕方について解説していこうと思います。

記事は以上。