この記事では、数学好きなギフテッドの方(あるいは数学がとても得意という方)に向けて、プログラミングをおすすめする理由や始め方について書いております。 心当たりのある方はぜひご覧ください。
数学好きなギフテッドだけどプログラミングは未経験、あるいは数学が非常に得意だけどプログラミングは未経験。そんな方はいらっしゃいますか?
この記事では、数学好きでギフテッドの傾向を持ち、ITエンジニア(プログラマー)でもあるギフ太(筆者)が、同じような特徴を持つ方に向けてプログラミングがオススメな理由を力説していきます。
心当たりのある方はぜひご覧ください。
ちなみに、ギフテッドって何?という方はこちらの記事【ギフテッドとは】をご参考ください。
目次
プログラミングとは
プログラミングとは何か。みなさん何となくはご理解していると思いますが、念の為確認しておきましょう。
最近流行りのChatGPTに聞いてみます。
ChatGPTに関してはこちらの記事【人工知能(AI)にギフテッドについて色々と聞いてみた[ChatGPT]】でご説明しております。
「プログラミングとは」に対するChatGPTの回答
プログラミングとは、コンピューターに対して命令を与え、実現したいタスクや処理を自動的に実行することを目的とすることを指します。プログラミングには、特定の言語を使用して、アルゴリズムやデータ構造を記述することが含まれます。コンピューターは、これらの命令を実行することで、タスクや処理を自動的に実行することができます。プログラミングは、アプリケーションの開発、Webサイトの構築、ゲームの開発、データ分析など、多様な分野で利用されています。
簡単に言うとコンピュータに命令するための指示書を作る行為のことですね。 それでは、本題へ。
数学好きなギフテッドにプログラミングがおすすめの理由
ITエンジニア(プログラマー)であるわたくしギフ太が考える「数学好きなギフテッドにプログラミングがおすすめの理由」は下記になります。
- 数学の問題を解くような遊び感覚で楽しめる
- 常に新しい技術が生まれてくる
- モノづくりの楽しさも味わえる
- 独学でも楽しめる
数学の問題を解くような遊び感覚で楽しめる
プログラミングがオススメな理由第一位はこれです。「数学の問題を解くような遊び感覚で楽しめる」ということです。
おそらく、数学好きなギフテッドの方は数学を勉強だと思っていないですよね。クイズやパズルと似たような感覚をお持ちだと思います。
ただの遊び・クイズとして数学が楽しいからハマっていたら得意と呼べるようになっていたのではないでしょうか。
単純な計算問題はつまらないから好きじゃないが、発想力が問われるような問題は好きという方も多いと思います。
あるいは、例題の解法を覚えてただそれに当てはめるような解き方よりも、定理・定義だけを覚えて、教科書通りの解き方にこだわらず、自分流に法則を導き出し問題を解く方が楽しいという感覚の方も多いのでは?
これらの特徴は私の特徴でもあるのですが、きっと数学好きなギフテッドの方であれば共感できるという方はいるのではないでしょうか。
もし共感できるという方は間違いなくプログラミングが向いております。
まだ触ったことのない方はぜひ触ってみてください。
始め方については後述いたします。
常に新しい技術が生まれてくる
2つ目の理由は「常に新しい技術が生まれてくる。つまり飽きない」ということです。
プログラミング自体という意味もありますが、その関連の技術も新しく生まれてくるので飽きません。
おそらく、数学好きのギフテッドの方は、数独やクイズ、あるいは数学の問題集など一度ハマると全てクリアするまでやり続けた経験もあると思います。
そういうハマり癖があると、完了したあとの達成感はあるものの、若干の喪失感(ああ。楽しいことが終わってしまった)みたいな感覚もありませんか?
私はおそらく10年以上プログラミングをしていますが、今のところ終わりが見えないのでずっと楽しめる遊びだと感じています。
まあ、ずっと楽しめるという意味では数学もそうだと思いますが、プログラミングには数学では味わえない次のような利点もあります。
モノづくりの楽しさも味わえる
3つ目の理由は「モノづくりの楽しさも味わえる」ということです。
プログラミングは数学の楽しさや快感だけでなく、モノづくりの楽しさも味わえます。
というよりも、プログラミングとはモノ作りのために楽しい問題を解く行為と言っても良いのかなと思います。
きっとモノ作りの楽しさは私がお伝えする必要もなくご理解されていると思うので割愛いたしますが、楽しい遊び(プログラミング)をしたその結果、作りたいものまで作れてしまうというのは惹かれるところではないでしょうか。
少なくとも私はそこが好きなポイントの1つです。
独学でも楽しめる
最後の理由は「独学でも楽しめる」というところです。
ギフテッドの方には1人で黙々と何かをするというのが好きという方も多いと思います。
数学好きのギフテッドの方であれば、プログラミングも独学で十分に楽しめます。
もちろん誰かに教わったりするのが好きな方や、最短で技術を身に付けたいとかいう理由があれば、プログラミングスクールなどを利用するのもありだと思います。
しかし、対人が苦手であったり、1人で何かをするのが好きという方は独学でも十分楽しめるというのもオススメの理由です。
プログラマーになると
さらに、その後プログラミングにハマりプログラマーという職種になったとします。
そうすると下記のような恩恵を得ることも可能です。
- 時間単価が良く稼げる
- 時間の融通が効く
- 働く場所も縛られない
- 対人関係が苦手なら個人としてでも働ける
時間単価が良く稼げる
「時間単価が良い」こう聞くと単純に時給が良いと思われるかもしれませんが、そうではありません。
もちろん時給型で働く場合は時給が良いということも言えますが、私がお伝えしたいのは成果報酬型の案件を受けた場合です。
高度なプログラミング案件になると、人によってそれを達成するのに必要な時間が大きく変わってきます。
数学で例えるとわかりやすいのですが、難しい問題を解く場合、5分で解ける人もいれば何時間費やしても解けない人もいますよね。
プログラミングも同じで、目的を達成するコードを書くのに5分で書ける人もいれば、何時間費やしても書けない人もいます。
それなのに成果報酬は変わらないとなると、その時間単価は全然違う(人によっては時間単価がとても高い)というのは想像できますよね。
時間の融通が効く
プログラミング案件には成果報酬型も多く存在します。
成果報酬型であれば、当然決まった期限までに成果を作れたら問題ないので働く時間に縛られません。
自制する力は最低限必要ですが、好きな日・好きな時間に働くことも可能です。
働く場所も縛られない
元々、職業柄プログラマーは働く場所も融通が効く風潮がありましたが、コロナ禍になってからは加速しましたね。
今では、リモートワークも当たり前になってきているので、自宅で働きたい、出勤したくないという方でもスキルさえあれば仕事に困りません。
私はコロナ禍になるまでは、週1程度(1〜2時間の打ち合わせ)で出勤していましたが、コロナ禍になってからは退社するまで完全リモートワークでしたね。
最近計算してみたら、なんだかんだでリモートワーク歴も10年以上になっていました。
対人関係が苦手なら個人としてでも働ける
チーム開発となると最低限のコミュニケーション能力は必要ですが、どうしても苦手というのであれば、個人で働くということも可能です。
個人事業主として働くとなると、一般的にはなんだかんだで営業力なども必要だと言われますが、本当にスキルさえ身に付けば、自分でプログラミングした成果物をオンライン販売したりして他者とのやりとりを極限になくして稼ぐことも可能です。
強いこだわりや何か理由があって、誰とも関わらず働きたいという数学好きのギフテッドの方にもプログラマーという選択肢はオススメできます。
もちろん、上述したメリットは、ある程度のスキルが身に付いたらという前提条件はあります。
しかし、数学好きなギフテッドの方であれば、もしハマることさえできたらあとは遊んでいれば勝手にスキルも身につくと思いますので、そこは心配しなくても大丈夫だと思います。
大人が未経験で始めたとしても、数学好きなギフテッドの方であれば、数ヶ月ほど遊べば余裕で職につけるレベルになると思います。ぜひお試しください。
数学好きなギフテッドがプログラミングを始めるなら
誰にでも共通すること
まず、誰にでも当てはまる方法でもありますが、プログラミングを1番効果的に学ぶ方法は実際にプログラム(何かしらのサービス)を作ってみるということです。
プログラミングの本や参考サイトをいくら見ていても、実際に手を動かしてみなければ身に付きません。
数学で例えるなら問題を解くことを一切せずに、ひたすら講義を受けているようなものです。
身に付かないというよりも、単純に楽しくないです。
せっかく美味しいレストランに行ったのにメニューを見て水だけ飲んで帰るようなものです。
ぜひ、何かを作るためのプログラミングを体験してください。
プログラミングをしていると必ず問題にぶつかります。これはどんな上級者であろうと避けられないことだと思います。
その問題というのは、最初はプログラミング以外(関連の設定など)かもしれませんが、それもやっていればどんどん慣れてきます。
そして、プログラミング自体の問題になったらこっちのもんです。
そこからは遊びの始まりです。
数学好きなギフテッドの場合
ここからは普段プログラミングを他者に教えるときには伝えない方法ですが、数学好きなギフテッドの方に向けたオススメの学習方法をご紹介します。
おそらく、数学好きなギフテッドの方であればプログラムの根本を理解したいという気持ちがあると思います。
そこで、まずはC言語の基礎を調べて学んでください。
ここで詳しく説明しないのはプログラムをするにあたり、自分で調べて解決する力が必要だからです。
キーワードとしては、「変数」「条件分岐」「繰り返し」という概念が出てくると思います。そしてしばらく進むとその次に「ポインタ」という概念が出てきます。
C言語は古いプログラミング言語なので「ポインタ」の概念は正直その時点では覚えなくて良いと思います。気になる方はさらっと概要を把握しておけばいいと思います。
そこまでできたら、実際に作りたいサービスに必要な言語に進みましょう。
WEBサービスを作りたいならWEBサービス用のプログラミング言語を。
スマホアプリならスマホアプリ用の言語。
機械学習やゲーム開発など、どの分野にも主流の言語・向いている言語というものがありますのでその言語を調べてそれを利用して開発に進みます。
もし機械学習(人工知能・AI)に興味のある方はこちらの記事【Kaggle初コンペでソロ金&賞金獲得!権利剥奪〜復活までの軌跡】でご紹介しているのですが、Kaggleというサービスを利用してプログラミングで遊びながら賞金のある大会に参加することも可能です。
その際に公式のマニュアル(リファレンスやドキュメント)をしっかり利用しましょう。言語によっては英語版しか存在しないこともありますが、そこは頑張ってください。
英語が苦手な方は翻訳ツールなどを使ってでも利用してほしいですが、プログラミング界隈のワードは翻訳すると逆にわかり難いということが多くあります。
はじめは時間がかかっても部分的に訳しながら英語で頑張って読んでいれば、徐々に読めるようになってきます。このやり方のほうがオススメです。
ちなみに、私はプログラミング関連の英語はわりとスラスラ読めるのですが、一度調子に乗って英語の小説を買って読んでみたら全く読めませんでした。笑 逆に言えば専門的な内容は専門用語を覚えるのが大変ですが、一度覚えてしまえば使われる言葉がさほど多くないので、不特定のジャンルの読み物よりは簡単に読めるのだと思います。
大抵の言語には初学者用のチュートリアルというのが載っています。それを参考に学習をスタートするのもオススメです。
私の偏見かもしれませんが、意外と一般的なプログラマーは公式のマニュアルを疎かにしがちです。
問題が発生したときに解決方法をネットで探すのは当然のことですが、そこで答えが見つからないというときに諦めてしまう人は多いです。
しかし、私の経験上、問題のヒントはネットに見つからなくても公式のマニュアルに書いてある。とは言えないのですが、そこにヒントが書いてあるということは多々あります。
おそらく数学好きなギフテッドの方であれば、そこからヒントを見つけることも可能だと思います。
あと、プログラミングを学習するにおいて抑えておいて欲しいポイントとしては、問題が起きたときに日本語で調べて解決しない場合、必ず英語で検索するということです。
私の体感的には英語の情報量は日本語のざっと10倍はあります。日本語で調べても解決しないが英語で調べたら解決したという経験は数え切れないほどあります。
あとは、ネット上の情報を信じすぎないということです。
プログラミングの情報に関しては、仮に最新の投稿だとしても「これ、だいぶ昔の方法だよね」「今はそれって公式で非推奨とされているよ」ということはしょっちゅうあります。
個人が書いている解決策というのは解決策というよりも、暫定的な処置という程度の認識で見るのがオススメです。
最新の情報は公式のマニュアルが1番です。まずは公式情報を見てそれでも解決しない場合検索するという癖をつけるのが良いと思います。
私が利用したことのある学習サイト[Coursera]
今はもう(直接公式のマニュアルを見ればだいたい把握できるので)利用しておりませんが、過去に利用したことがある学習サイトの中でオススメできるのは[Coursera]というサービスです。
もし、いきなり手を動かすのが苦手という方は一度こういった学習サイトを利用してみるのも悪くないかなと思います。
こういった学習サイトを利用するかしないかは学習におけるスタンスの違い(好みの問題)だと思うので、ご自身のスタンスに合わせ決めていただければと思います。
最後に
プログラミングは仕事にするのもオススメですが、ずっと楽しめる遊びとしても非常にオススメです。
楽しめる遊びはいくつあっても困りません。
せっかく遊べる能力があるのであれば、プログラミングも楽しんでみてはいかがでしょうか。