この章では、プログラミングとは一体何かを初心者の方にもわかりやすく説明していきたいと思います。
プログラミングとは
プログラミングとはプログラムを作る作業のことです。
では、プログラムとは何かというとコンピュータにしてほしい処理を順番に書き出したものです。
コンピュータは人間と同じ言語を理解することはできないです。
コンピュータには想像する力がありません。
コンピュータに理解できる言語を活用してコンピュータに指示を与えます。
私たちの生活を豊かにしているほとんどのモノはプログラミングによってできています。
- スマホ
- 家電
- 自動車
- エレベーター
私達の生活を豊かにしているほとんどモノが、
プログラミングによってできていると言っても過言はないです。
プログラミングでできる3つのこと
プログラミングでできる3つのことがあります。
- 自動処理
- 高速処理
- 遠隔処理
それぞれについて説明します。
自動処理
プログラムは単純な作業や自動処理が得意です。
エクセルなどの作業を自動化することもできますし、
単純な作業を人間の手ではなく機械が行うようにできます。
機械が人の手を加えること無く自動的に処理をしてくれます。
高速処理
プログラムは人間とは比べ物にならないスピードの処理が可能です。
人間と比べ物にならない高速の処理を行うことができます。
大量のデータを計算して分析したり、高度な計算を行うことが可能です。
高速処理の応用で人工知能の機械学習なども実現されています。
遠隔処理
プログラムはデータを用いるので、インターネットを通じて多くの人に結果などを送ることができます。
インターネット上にあるサービスは、インターネットに接続できるスマホやPCであれば、
世界中どこでからでも使用することが可能になります。
プログラミングのメリット・デメリット
プログラミングのメリット・デメリットについてご紹介します。
- 自分でツールやシステムがを作れる
- 日本はIT人材不足でスキルの社会的需要が高い
- スキル需要が高いので給料がUPする
- 副業に向いている
- 年齢関係なく始められる
- リモートワーク可能でどこでも仕事可能
- 独学の難易度が高い
- 向き不向きがある
- 楽しめるまでに時間がかかる
- 目的がなければ続かない
メリット1:自分でツールやシステムがを作れる
プログラミングを学ぶことで、自分で自由にツールやシステムがを作れます。
MQL言語を習得することで、あなたはトレードアイディアを
カスタムインジケーターやEAという形に作り出すことが可能です。
- こんなインジケーターあったらいいのにな
- こんなEAがあれば運用してしてみたいな
- このポイントでシグナルを出すツールがあればいいな
などという悩みはプログラミングスキルさえあれば、
頭の中にパッとアイディアが思いついたらそれをカタチにする力を持てるということです。
メリット2:日本はIT人材不足でスキルの社会的需要が高い
近年、日本はIT人材不足になっています。
経済産業省が2019年3月にIT人材需給に関する調査の報告書を公開しました。
経済産業省の報告書で示したデータによると、
- 2018年のIT人材の不足数:22万人
- 2019年のIT人材の不足数:26万人
- 2020年のIT人材の不足数:30万人
- 2021年のIT人材の不足数:31万人
- 2022年のIT人材の不足数:32万人
と右肩上がりに増え続けて2030年には約45万人に上ると推測されています。
政府も焦っており、現在小学校のカリキュラムとしてプログラミング教育を必修化するなど、
将来のIT人材確保に向けた取り組みを実施しています。
つまり、プログラミングスキルの社会的需要が高いということです。
メリット3:スキル需要が高いので給料がUPする
先程のIT人材不足な日本では、プログラミングスキルの需要が高いので給料UPに繋がります。
IT業界全体の平均年収を見てみましょう。
転職サイトDODAが約36万人のビジネスパーソンを対象に行なった調査「平均年収ランキング」の結果ですが、
調査によると、IT/通信業種の平均年収は「446万円」であることが分かっています。
また、ITは業種別の平均年収が比較的高いです。
また、ソフトウェアエンジニアの年収ベースを見ても有名どころの企業の中央値は非常に高いです。
最近では、新卒でもICT人材に年収700万円以上を提示する企業が現れています。
つまり、プログラミングという需要が日本の国内で大きいので、
プログラミングスキルを持っているだけで年収が上がるということです。
メリット4:副業に向いている
最近、日本では副業ブームが到来していますがプログラミングは副業に向いています。
- プログラム言語は世界共通なので世界中どこでも働ける
- リモートワークが可能
- パソコン一台で完結する
- スキルが向上するとさらに稼げる
というように怪しい副業などに比べた確実に稼げるということです。
メリット5:年齢関係なく始められる
プログラミングは年齢関係なく始めることができます。
なんと、82歳でアプリ開発している日本人のおばあちゃんがいます。
82歳でゲームアプリを開発し、
「世界最高齢の女性開発者」として世界中から注目を集めている若宮正子さん。
パソコンを始めたのは60代に入ってから。
プログラミングも興味の赴くままに、一から独学したという。
→https://business.nikkei.com/atcl/report/16/090600161/041000040/?P=1
何かを始める時に多くの人はもう遅いと考えますが、
今日が一番若いので、思い立ったら今日から行動をすることが大切だとおばあちゃんも語っています。
興味があることには迷わず挑戦すべき。
何歳から始めても、遅すぎることはない」という信念があるからです。
40代の皆さんも、「今さら」は禁句。「モノにならないのでは」などと心配せず、
ちょっとかじる程度で構わないので、とにかく挑戦してください。
82歳のおばあちゃんがプログラミングできるのであればあなたもきっとできるはずです。
メリット6:リモートワーク可能でどこでも仕事可能
コロナ禍によってリモートワークやテレワークが進む中で、
プログラミングを仕事にするとリモートワーク可能になります。
- 自宅
- カフェ
- コワーキングスペース
などでどこでも仕事可能になります。
インターネット上で仕事が完結するので世界中どこにいても働けます。
デメリット1:独学の難易度が高い
自力でプログラミングを学ぶというのは初心者にとって難易度が高いです。
何か困ったりわからないことがあっても誰にも質問ができないので、
わからないことがあるとそこで挫折してしまう人が多く難易度が高いです。
デメリット2:向き不向きがある
プログラミングは人によって向き不向きがあります。
楽しいと感じる人はのめり込んで楽しめますが、
楽しくないと思う人はあまり面白さを実感できないと思います。
プログラミングを始めるにあたって大切なことは
- 諦めないこと
- 飽きないこと
の2つが重要です。
デメリット3:楽しめるまでに時間がかかる
プログラミングは初心者ほど苦痛だと思います。覚えることが多いので楽しめるまでに時間がかかる。
ただし、自分が作ったものが実際に動くときの楽しさを知ることができれば継続することができます。
デメリット4:目的がなければ続かない
プログラミングというのは、あくまで手段です。
プログラミングを学ぶことを目的にしてしまうと手段の目的化になってしまいます。
作りたいものが明確にあったり、動機がなければプログラミングを学んでもあまり効果がありません。
プログラミングの目安学習時間
プログラミングの目安学習時間ですが、プログラミング初心者はまず300時間の学習時間を確保しましょう。
言語を学んで最初の実用的なツールやシステムを作れるようになるまでの時間は300時間程度です。
300時間だとかなり大変だと思いますが、
司法試験の受験資格を得るまでの勉強時間は1000時間程度が相場となります。
逆に300時間でこれから重要なスキルを身につけられると考えれば非常に楽だと思います。
まず300時間の学習時間を確保するのに、どれだけの日数が必要かを考えてみると良いと思います。
- 1ヶ月でマスターする:1日10時間勉強
- 3ヶ月でマスターする:1日3時間勉強
- 6ヶ月でマスターする:1日1.6時間勉強
短期間でスキルを身につけたい方は、なるべく勉強できる時間と環境を整えましょう。
プログラミングの文法
プログラミングの文法について説明していきます。
- STEP1プログラミングの動き
プログラミングは難しいものだと思っている人が多いですが、プログラミングは順次・分岐・反復の3つの動きだけです。
順次とは上から下に順番に処理をしていくことです。
分岐とは条件が揃えば処理をすることです。
反復とは条件が揃うまで処理を繰り返すことです。
これらを理解することでプログラムがどのように動いているのかを理解することができます。
- STEP2プログラミングのルール
プログラミングを作る際に、様々なルールが存在します。プログラムを作る際にルールをしっかりと守ることで、
エラーやトラブルが少なくケアレスミスを防ぐことができます。
- STEP3文字と数値
プログラミングで文字と数値は表示は同じでも異なります。ほとんどのプログラミング言語では、文字と数値は別物として扱われます。
同じ「1」という値でも、文字としての「1」と数値としての「1」は別物なのです。
- STEP4インデントとコメント
インデントとは、文章の行頭に空白を挿入して先頭の文字を右に押しやり字下げすることです。
コメントとは、プログラムに説明文を書き加えることです。
インデントやコメントを使うことで、体裁の整った美しいソースコードを仕上げることができます。 - STEP5変数
変数とはデータを一時的に入れておく箱です。
変数には数字や文字列を格納することが可能です。
- STEP6演算子
演算子とは、ひとつ以上の値から別の値を生み出すものです。
- STEP7配列
配列は同一の型のデータを並べたものです。
変数は単一の箱でしたが、配列は箱を並べたイメージです。
1つの変数には1つのデータしかいれることができませんが、
配列を使うことで多くのデータを入れることが可能になります。
- STEP8if文
if文とは、命令の流れに条件分岐を設定するための構文です。
もし〇〇なら✕✕するという意味で使用されます。
この「もし〜したら」という部分がif文になります。
- STEP8Switch文
Switch文とは、複数の選択肢を用意し一致する箇所の処理を実行ための構文です。
if文とは違い、条件式を判定して多方向分岐を行うことができます。
- STEP9for文
for文とは指定した回数だけ処理を繰り返すときに使用されます。
毎回同じ処理をするのに同じ文章を書くのは大変なので、
for文を活用することで処理を回数指定さえすれば何度も繰り返すので便利です。
- STEP10while文
while文とはfor文と同じで繰り返し処理を実行するときに使用されます。
- STEP11関数
関数とは、ある値を与えるとその関数固有の処理を行って値を返します。
関数をもっと簡単に説明すると自動販売機みたいなものです。
自動販売機はお金を入れるとジュースが出てきます。何かを入れると何かが出る仕組みこそ関数になります。
まとめ
いかがでしたか?プログラミングの基本的な仕組みは理解できたと思います。
Step2ではMQL言語を学んでいきたいと思います。