eljefeblog 

Any sufficiently advanced technology is indistinguishable from magic

programming

プログラミングにできること12・勉強するメリットのまとめ

プログラミングにできること12・勉強するメリットのまとめ







これからプログラミングを勉強するか、迷っている方は
こんな事を思うかもしれません

悩むペン銀

プログラミングにできることって具体的になりがあるのか知りたい

というかそもそもプログラミングってなに?

プログラミングを勉強したらどんな良いこと、メリットがあるの?

おすすめのプログラミングを勉強する方法も教えて



初めてプログラミングを勉強しようとすると
こんな疑問が湧いてきますよね。


本記事ではこの様な疑問に1つ1つ答えていく内容になっています。




本記事の内容

  • プログラミングにできることが分かる
  • プログラミングとは何なのか理解できる
  • プログラミングを学ぶと得られるメリットがわかる
  • 初心者ができるプログラミングの勉強方法がわかる


  • この記事は国立大学でコンピュータサイエンスの学位を取得している私が
    プログラミングにできることとその魅力・学ぶメリットを解説している記事になります。




    それではやっていきましょう。










    プログラミングにできること


    早速結論から。

    プログラミングで出来ることを簡単に挙げるとこんな感じ。

  • インターネット上にある大量のデータ(画像・音声・文章)を収集できる
  • 集めたデータを分析してビジネスの収益を上げることができる
  • 株価や天気などを予測できるAI(数理モデル)を作れる
  • AmazonGoの様な無人コンビニで使われる商品を認識できるシステムを作れる
  • webサイトを作成できる
  • ゲームを作れる
  • スマートフォンのアプリケーションを作れる
  • 自動運転のシステムが作れる
  • ロボット開発ができる
  • AR・VRの開発ができる
  • 遠隔にあるコンピュータの中身を閲覧・操作できる(やり方によっては違法な場合もあるため注意)
  • ロケット・衛星を制御できる

  • このようにプログラミングには多くの可能性があります。


    Webサイト作成からZozotownやAmazon、楽天といった商品を売るためのECサイトの構築、
    スマートフォン上でもサービスを提供しているInstagramやFacebookのアプリもプログラミングによって作られています。


    現実空間にポケモンを出現させてゲームができることで一時話題となった
    「ポケモンGO」で使われていた技術、AR(拡張現実)もその1つです。


    そのほかにも、身近なサービスだけに留まらず、果てはTeslaの自動運転やSpaceXやNASAのロケットの制御にも使われています。


    いくつか抜粋して紹介します


    インターネット上のデータを収集できる


    インターネット上には様々なデータが存在しています。
    例えば、画像・文章・音声・動画等々です。

    プログラミングを使うと、これらのデータを自動で収集するプログラム
    クローラを作ることが可能になります。

    実際、Googleはインターネット上にどのような情報があるのか把握し、検索の精度を更に上げるため自社でGooglebotと呼ばれるクローラーをプログラムし、周回させています。


    この動画が分かりやすいですね。




    収集したデータをビジネスの収益を上げる



    近年話題になっているAI構築にもっとも必要なものはデータです。
    近年、集めたデータはこのために利用されるケースが増えています。


    集めたデータを元にAI(数理モデル)を構築すると株価や天気、選挙結果等、その他様々な事象を予測することができるようになります。


    例えば自動車工場の生産ラインにおいて人手でしている不良品の検出や、タクシー会社で来月どれほどの乗車が見込めるか


    カスタマーの特性や、特定のお客が最も欲しがっている商品は何なのか


    等々です。



    このようにプログラミングを使うと
    検索エンジンの精度を高めるためだけでなく、AI構築もできるようになります。


    (この動画ではその活用方法の一部が紹介されています。)






    ロケットや衛星をコントロールできる



    ロケットや衛星はセンサーの塊です。
    自己位置情報を取得して軌道修正したり、エンジンを出力を制御して
    速度を一定にしたりします。



    例えばこちらの記事では宇宙ステーションへ荷物を安全に届ける補給をプログラミングで行っている話が掲載されていて面白いですね。


    補給機はロケットの先のフェアリングとよばれる部分に入れて打ち上げられます。そして、ISSとほぼ同じ高さまで上がったところで、ロケットから切りはなされます。ここから補給機は自動飛行のプログラムで、自分が宇宙のどこに、どのような姿勢(しせい)でいるのかをカメラやGPSなどでかくにんしながら、ISSに近づいていきます。

    出典:https://www.nhk.or.jp/school/programming/interview/01.html




    JAXAはもちろんのこと、
    イーロンマスクが立ち上げたSpaceXでもプログラミングを利用してロケットの離着陸を制御しています。




    遠隔にあるPCをハッキングして操作できる



    プログラミング言語を学び、TCP/IP等の知識をはじめインターネットを深く学ぶと様々なデバイスに簡単にアクセスできるようになります。


    これはコンピューターセキュリティーと呼ばれる分野であり
    使用される場面は様々で、たとえば企業が自社の技術漏洩を保護するために使用したり、国を超えて(たとえば中国とアメリカ)選挙に影響を与えるような攻防が繰り広げられたりします。


    技術を正しい事に使う事が要求される分野ともいえるでしょう。



    (以下プログラミングの天才であるGeorge Hotzが実際にハッキングをレクチャーしている動画↓)






    プログラミングってそもそも何?



    プログラミングとは、ある機械にどの様に動作するのか
    その動作順序を与えること
    です。


    ここで言うある機械とはハードウェア
    即ち車やロケット、テレビやプリンター等々の物理的なものであり、各々ある一定の動作を行うものを指します。


    こういったハードウェアに対し、ソフトウェア(プログラム)でそれらの動作を制御する形を取ること。これをプログラミングと呼ぶわけです。


    物理的に形を持っていて、そこに電子回路があるのであれば、基本的にどんだものでもプログラミングで制御することが可能です。






    プログラミングを身に付けるとできる事・アイディアが増える話




    これまでプログラミング自体の実現できる事を紹介してきましたが、

    プログラミングの可能性は『無限大』です。 使い方次第で何でも実現できます。



    日本語ができる様になると何ができますか?の質問に置き換えると理解しやすいですが、日本語ができると文章が書ける事をはじめ、記述の掛け合わせ次第で宮崎駿のアニメーションが生まれたり、one ok rockの音楽が人々の心を掴んだりしますよね?


    プログラミングも同じで、使い方・アイディア次第では本当に様々な分野、と言うかほぼ全ての分野(医療・通信・交通・農業….etc)で人々の暮らしを楽にするサービスを作ることができます。



    インターネットで世界中の人々がつながる現代で
    プログラミングの可能性は無限大で、その帰ってくる反応も1に対して1万~100万人と言う圧倒的なレバレッジが得られる可能性を秘めています。


    人生を豊かにしてくれる素晴らしいツール(方法)とも言えるかもしれません。






    プログラミングを勉強するメリット



    プログラミングを勉強することで得られるメリットは沢山あります。
    少しまとめだだけでもこんな感じ。

  • 基本的に仕事に困らない
  • スキルを身につけて給料を上げれる
  • 国内・海外問わず好きな場所・時間に働ける可能性がある
  • クリエイティブになれる
  • 論理的思考が身につく

  • インターネットユーザが増え続けているのに反し、
    プログラマーは世界的に不足していると言われています。


    たとえばこの記事では以下のように言及されています。


    アメリカではプログラマーを含むITエンジニアの求人数は2017年で約70万人の不足、2020年には100万人の不足が出るとみられています。同じように日本企業においても人材不足は深刻です。
    このような状況から、プログラミングスキルを持つ人材の価値はどんどん高まっています。アメリカではプログラマー養成スクールで10週間の初心者コースを受講後に、71%の方が平均年収790万円のジョブオファーを受けたという事例もあります。

    出典: https://www.internetacademy.jp/contents/programming_learning.html



    またプログラミングスキルをもち、語学力も持ち合わせていれば、
    日本国内にとどまる事なく、海外で仕事ができる可能性もあります。



    学ぶことに対し、非常にレバレッジの効いたリターンが期待できる技術です。



    メリットを考える以前に、単純に面白い話



    とは言え、皆さんは何かしらゲーム(スマホ・テレビ)に興じる時、メリットを考えますかね?
    ちなみに僕は考えないタイプです。


    メリットがあるからプログラミングを始めたと言うより
    面白いからやっている感覚の方が強いですね。


    お金が稼げるから、プログラミング勉強してみようって方もいますが、
    そう言う方は比較的成長が遅い様に感じます。


    あまり興味がない人もやってみるとハマってしまう事もあります。






    プログラミングを勉強する方法


    魅力ばかり伝えて勉強方法を教えないのはあんまりなので

    ここではいくつかおすすめのプログラミング勉強方法を紹介しておきます。
    基本的に大学や専門学校で情報工学を学ばなくてもプログラミングは独学が可能です。
    (独学は楽ではありませんが….



    プログラミング学習をPythonから始めたい方はこちらをどうぞ↓


    オンラインスクールを利用する


    独学が完全に合わない人が一定数います。
    そんな方は一度パソコン操作から教えてくれるオンラインスクールに学ぶ事も
    1つの有効な手段です。

    以下におすすめのオンラインスクールを幾つか紹介しておきます。





    youtube動画から学ぶ


    英語で聞き取りができるのであれば、youtubeの動画からプログラミングを学ぶ事も可能です。

    HarvardやMIT, Stanfordといったアメリカの一流大学がコンピュータサイエンスの講義を一部無償で提供しています。

    正直、そこらのプログラミングスクールより質が高く、より高度かつ最先端な内容のものがたくさんあるため友好活用するべきです。


    こちらも一部おすすめの動画を紹介しておきます。




    Stanford University Programming Lecture (全28コース)




    Harvard Computer Science Lecture Introduction


    Lecture (全10コース)






    Deep Mind AI Lecture (全12コース)




    全くプログラミングをした事がない人はまずオンラインスクールで、
    日本語で基礎を学んでから、こちらの動画を教材に勉強を進めると良いです。





    まとめ



    いかがだったでしょうか?
    これから日本では義務教育の一環として
    プログラミングが学習基本要項に組み込まれます。


    いつ学びを初めても遅いということはありません。


    プログラミングは面白いし、新しい視点を与えてくれるツールです。


    ぜひ楽しんでプログラミングをやっていきましょう!







    人気記事【初学者必見】効率的なプログラミング勉強方法を紹介します







    このエントリーをはてなブックマークに追加
    data-ad-format="rectangle" data-ad-format="rectangle"

    返信する

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

    某国立大学大学院(理系)に所属しています。 最近の趣味は人工知能関連の論文を読む事で 研究ではComputer Vision周りを中心に活動しており、 サイドワークとしてデータ分析の業務に関わっています。 本ブログはこれまで筆者が学んできた様々な知識の中から 有益だと思えた情報のみをまとめたものです。 内容は個人の見解であり、所属する機関と関係するものではありません。 Research: is related to Computer Vision Hobby: is to study Artificial Intelligence / Machine Learning.