MENU
ブログランキング・にほんブログ村へ
Ryo's Blog - にほんブログ村

ブログサークル
ブログにフォーカスしたコミュニティーサービス(SNS)。同じ趣味の仲間とつながろう!

〜プログラミングの前提知識を身につけよう①〜

目次

※まずはじめに

未経験から一人前のエンジニアになる為に一番やってはいけない事は、「闇雲にプログラミング学習をしてしまう」事です。正しい前提情報を知らないままプログラミング学習を始めてしまうと、エンジニアになるまでに何倍もの時間がかかってしまいます。プログラミングを始める前に必ず知っておくべき情報を網羅的にインプットする事で、正しい手順と正しい心構えでプログラミングに臨める状態を目指します。

  • 「どのようにプログラミング学習を進めればよいのだろう」
  • 「エンジニアになるためにはどのような手順が必要なのか」
  • 「最速でプログラミングを身につけるためのコツが知りたい」

上記のような疑問がまだ残っている方は必読です。

そして何ができるようになるか?

  • 最短でプログラミングを習得出来るようになる
  • プログラミングでどんなモノを作れるようになるのかイメージが湧く
  • エラーの解決方法がわかる
  • オリジナルアプリの開発工程がわかる

プログラミングの必要性

  • プログラミングがわからないと仕事がなくなる時代へ
  • プログラミングは最強のビジネススキル
  • 非エンジニアでもプログラミングを学ぶべき理由
  • プログラミング言語の歴史とこれから
  • プログラミングが変える未来の世界

①プログラミングがわからないと仕事がなくなる時代へ

「プログラミングがわからないと仕事がなくなる」この言葉を聞くと、焦りを感じるのではないでしょうか。特に最近では、人工知能(AI)といったワードが世の中に広まっています。

そこで、これからの時代を生きていく為に、まずは以下の3点についてお話しします。

  • 加速するプログラミングの時代
  • 世界中で話題のプログラミング教育
  • 2020年からは日本でもプログラミング教育が必修化

加速するプログラミングの時代

最近では、IT技術に関するワードを耳にする機会が大幅に増えました。コンピュータやプログラミングとは関係のない分野でも、以下のようなキーワードが次々と使われるようになってきています。

  • 人工知能(AI)
  • ビッグデータ
  • クラウド
  • IoT
  • ブロックチェーン

このような時代の流れによって、「プログラミング」というワードも急速に広まりました。「今後はプログラミングの仕組みを知らないと仕事ができなくなる」このような刺激的な言葉も耳にする機会が増えました。もはやプログラミングの知識やスキルは必須で、それらがないと今後の仕事が成立しないといっても過言ではないでしょう。それほどまでに、プログラミングは世界中に急速に広まっています。

2020年からは日本でもプログラミング教育が必修化

2016年4月、文部科学省において小学校でのプログラミング教育の必修化が検討され、2020年から新しい学習指導要領に変わるというニュースが世間を騒がせた事は、記憶に新しい所です。しかし、プログラミング教育に関する取り組みは最近始まったわけではなく、以前から議論が交わされていました。2013年6月に発表された成長戦略でも、プログラミング教育について明記されています。

具体的には、「義務教育段階からのプログラミング教育等のIT教育を推進する」という文言が記載されています。文部科学省も以下のように述べていて、「プログラミング的思考」の重要性を主張しています。プログラミング教育とは、子供たちにコンピュータに意図した処理を行うよう指示することができるということを体験させながら、将来どのような職業に就くとしても、時代を超えて普遍的に求められる力としての「プログラミング的思考」などを育むこと今後ますますプログラミングの重要性は高まり、この「プログラミング的思考」が身についていなければ仕事がなくなる時代がやってきます。そして2020年の教育改革によって、ついに「プログラミング教育の必修化」が実施されます。プログラミング学習はこれまで以上に注目を浴びていきます。

②プログラミングは最強のビジネススキル

「プログラミングはビジネスにも生かせる」このような言葉を聞いたことがあるかもしれません。しかし、「プログラミングとビジネスにどんな関係があるのか」「本当にビジネスに役立つのか」と疑問に感じると思います。

そこで次は、以下の2点について取り上げて、それらの疑問に答えていきます。

  • ビジネスでも生きる「プログラミング的思考」
  • プログラミングがビジネスでも役立つ理由

プログラミング的思考(コンピュテーショナル・シンキング)とは?

先ほども触れた「プログラミング的思考」は、海外の教育現場などで「コンピュテーショナル・シンキング」と呼ばれる事があります。日本では「計算論理的思考」や「プログラマー的思考」とも呼ばれますが、混乱しやすい為、ここではまとめて「プログラミング的思考」と呼ぶ事にします。

「プログラミング的思考」の要点は以下のとおりです。

  • 問題を抽象化して、解決しやすいように考える
  • 問題を細分化し、分解して考える
  • 入力と出力、その状態と結果を論理的に考える
  • アルゴリズムで物事を考える
  • 最適な方法を考え、結果を予想する
  • この考え方や方法が他の問題にも[br-xs]適用できないかを考える

「プログラミング的思考」を身につける事で、ビジネスでは以下のようなメリットがあります。

  • 論理的に計画を組み立てることができる
  • 大きな問題を分解して最速で解決できる
  • 問題点を分解することで今やるべき課題が見える

プログラミング的思考でビジネスが加速する!!

現代ではパソコンやスマートフォン、タブレットなどを使って業務を行う企業が増えました。また、SNSを活用して情報を共有したり、業務の進捗管理にシステムを利用したり、仕事上でコンピュータに触れる機会が増えています。情報化ツールを上手く組み合わせ、コンピュータに任せられる事は任せてリソース(自分の頭や手など)を他の事に使う事で、より効率的に業務を進める事が出来ます。

例えば、従業員の工数管理を手動で行うのに5時間もかかっていたとすれば、それをコンピュータで自動化すれば、ほんの10分で終わる事もあります。このように、「コンピュータに任せられることは任せ、逆に人間にしかできないことに専念する」という考え方が、今後のビジネスでは必須です。そして、ツールやシステムの使い方を覚えるよりも、それらにどんな事が出来るのかを把握し、どう組み合わせれば効率よく目的を達成出来るのかを考える方が重要です。この考え方が、ビジネスの成功までの道のりを加速してくれます。

プログラミング的思考で業務が効率化される

業務中に、「プログラミング的思考」に似た考え方が必要な場面があります。例えば、プロジェクトの管理です。複数のメンバーがそれぞれ担当を持って、納期を決めて進捗状況を確認しながら業務を進める場面を想像して下さい。

この時、以下のような点を意識していれば、問題点をすばやく見つけてより効率よく業務を進める事が出来ます。

  • 現在どの作業が行われているか
  • 各作業の進捗はどうなっているか
  • 同時に進められる作業はないか
  • 各作業は細かく作業を分解して進められているか
  • 作業を進める順番は正しいか

「プロジェクトの完成間近に問題が起きて、修正に24時間以上もかかってしまった」例えばこんな時、あらかじめ業務を細かく分解して問題点をいち早く見つける事が出来ていれば修正にかかる時間が大幅に少なく済んだかもしれません。このような問題解決能力は、今後仕事をしていくうえで必須のビジネススキルです。問題解決能力は、プログラミングを学習していくうちに自然に身についていきます。よって、プログラミングを学習する事は、ビジネススキルを身につける事に繋がります。

③非エンジニアでもプログラミングを学ぶべき理由

コンピュータとの付き合いが増える時代に

これからの時代、人間だけでなくコンピュータとの付き合いも重要になります。コンピュータと上手く付き合うのにプログラミングの学習は必須ではありません。しかし、コンピュータがどのような仕組みで動いているのかを知るには、プログラミングの学習が最も効率的であるといえます。

プログラミングを学ぶ時に、プログラミング言語を書くこと以上に重要な点があります。世の中にある以下のようなサービスが、どのような仕組みで動いているかを理解する事です。

  • Google
  • SNS(Facebook、Twitter、Instagramなど)
  • LINE
  • Webサービス
  • スマホアプリ

また、プログラミングとインターネットがどう関わっているかを理解する事も大切です。実際に自分でプログラミング言語を書けなくても、これらの点を理解するだけで十分なメリットがあります。今後仕事をしていくうえでプログラミングの知識がなければ、エンジニアに全てを任せなくてはなりません。そうなると、適切な指示が出来ず修正に余計な時間がかかったり、問題が起こったときに無理な仕事を押しつけたりして、最悪の場合、そのプロジェクトが失敗に終わる事もあります。こういった事を防ぐ為にも、今後エンジニアと一緒に仕事をするのであればプログラミングを学ぶ価値は十分にあります。また、将来的に全ての人に必須の知識になります。

アイディアをすぐに具体化できる

仕事中に、ふとアイディアが生まれてくる瞬間があるはずです。しかし、せっかくアイディアが生まれても、形にしなければ意味がありません。インターネットが浸透した現代では、Webを使ったアイディアが思い浮かぶ事も多いです。そのアイディアがプログラミングで実現出来るとしても、プログラミングの知識がなければその時点で諦めてしまいます。一方でプログラミングの知識があって、仕組みやデザイン、工数などを具体化出来れば、自信を持って自分のアイディアを伝える事が出来ます。今後はアイディアを具体化し、自ら手を動かせる人が重宝されます。よって、非エンジニアであってもプログラミングの知識を身につけておく必要があるのです。

④プログラミング言語の歴史とこれから

プログラミング言語の歴史

プログラミング言語の歴史は、1842年にエイダ・ラブレスが「ベルヌーイ数を計算する完全なプログラム」を発表したことから始まります。そして、1957年に世界初の高水準プログラミング言語「FORTRAN(フォートラン)」が広まった事で、簡単にプログラミングが出来るようになり、多くの支持を集めました。

その後以下のように、現在に至るまでさまざまなプログラミング言語が開発されてきました。

  • 1972年 : C言語
  • 1977年 : SQL
  • 1983年 : C++
  • 1983年 : Objective-C
  • 1990年 : Python
  • 1990年 : Haskell
  • 1993年 : Ruby
  • 1995年 : Java
  • 1995年 : PHP
  • 1995年 : JavaScript
  • 1996年 : R言語
  • 2002年 : C#
  • 2003年 : Scala
  • 2007年 : D言語
  • 2009年 : Go言語
  • 2010年 : Rust
  • 2011年 : Dart
  • 2011年 : Kotlin
  • 2014年 : Swift
  • 2014年 : Hack

なお上記のリスト以外にも、多くの言語が存在します。現在人気が高いPythonは最近の言語だと思われがちですが、誕生したのは1990年でJavaよりも長い歴史を持っています。長い歴史を持つとはいえ、これらの言語は今でもアップデートが繰り返されており、日々改善されています。

プログラミング言語の変遷

第1世代:機械語
コンピュータのCPUで直接実行される命令の事を、機械語もしくはマシン語といいます。プログラミング言語の元となる最も低水準な言語です。数字による記述が多く、主に理系の科学者などが使用していました。

第2世代:アセンブリ言語
機械語を人がわかりやすい形で記述するために生まれたのが、アセンブリ言語です。その後、アセンブリの記号化表現を、文法として標準化したアセンブラが登場しました。

第3世代:手続き型言語
C言語などが、この手続き型言語に当てはまります。数式表現や英語表現など、機械語がより理解しやすい表現になりました。この第3世代の手続き型言語は、機械語を覚えなくてもプログラミングの記述が可能になった為、科学者だけでなく一般的な企業にまで広まっていきました。

第4世代:高機能言語
JavaやPHP、Ruby、Pythonなどは、第4世代の言語で4GLと呼ばれています。これらは第3世代の言語を超える機能が備わった言語で、言語単体で使用するよりも、特定のアプリケーション開発システムとセットで使用される事が多いのが特徴です。

第5世代:これからの言語
人工知能(AI)やIoT、機械学習、ブロックチェーンといったワードは最近よく耳にしますが、IT業界では日々新しい研究が進んでいます。なお、第5世代という言葉はまだ定着はしていません。

その理由は、以下の2点であると考えられています。

  • C言語やJava、PHPのように知名度や実績がある新しい言語がまだないから
  • すでに存在する言語が日々アップデートされ、より良いものを開発できる可能性が高いから

プログラミング言語の未来

ここまで紹介してきたように、プログラミング言語は次々と新しいものが開発され、日々進化をしています。今後どういった言語が登場するかはまだわかりません。もし誰でも簡単に使える言語が登場すれば、モノを開発する人が増え、プログラミングが当たり前の生活が定着する可能性もあります。第5世代の言語はまだ確立されていないものの、今後ドラえもんのようなロボットを開発できる言語が登場するかもしれませんね。

⑤プログラミングが変える未来の世界

人工知能(AI)が人間を超える未来

人工知能(AI)やIoT、ブロックチェーンといったキーワードが広がる中で、近い将来、人工知能が人間の仕事を奪うと予想する人も多くなってきています。「人間にしかできない仕事もある」という反対の意見もありますが、人間よりも頭脳が優れていて、仕事を自分の頭で考えて行うような人工知能が登場する可能性もあります。実際には、人工知能が将来どこまで発展するかは誰にもわかりません。

しかし、現時点ですでに人工知能の力によって仕事の進め方が変わってきている分野もあります。車の自動運転や、声に反応して行動するロボットなどがその代表的な例です。このように、人工知能によってこれからの生活はますます便利になっていくと予想されます。

エンジニアの仕事はなくならない

人工知能の登場によって、今後ますますエンジニアの需要は高まっていきます。次々と新しいサービスが開発され、エンジニアは必要不可欠な存在になります。プログラミングが出来る人の仕事が多くなり、「仕事がない、食べていけない」という不安はなくなるでしょう。「エンジニアになりたがる人が増えれば、その分仕事が減るのではないか」このように考える方もいるでしょう。しかし、IT業界の急速な成長により、人材不足は広がっていく一方です。

書籍・本

出典:システムを作らせる技術エンジニアではないあなたへ

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

ハンドルネーム:Ryo

SNSアカウント:Twitter

ブログ経歴:2022年7月開始

趣味:映画鑑賞・神社仏閣巡り

仕事:現在フリーランスとして活動しております。

始めた理由は、ITエンジニアになる為に必要なスキルだと思いはじめました。ブログの方針ですが、自身に基づいた内容を記載していきます。

人生に必要な役に立つ事柄など、大きく分けて5つ程です。

①:プログラミング・ITエンジニアに関すること
②:仕事・ビジネス・お金に関すること
③:対人関係などのコミュニケーションに関すること
④:暮らしに役立つ雑学・勉強に関すること
⑤:趣味や実体験に基づいてに関すること

目次