プログラミングの基礎知識!文系出身も知っておくべき7つのコト

日本でもプログラミングは小学校から義務教育化されようとしています。エンジニアとして仕事をするしないは置いといて、文系・理系関係なくプログラミングの考え方は身に付けておくべきでしょう。

そこで今回はタイトル通り

  • 文系出身でも知っておくべき最低限のプログラミング基礎知識・考え方

を紹介していきます。まずはこの7つの知識・考え方を抑えればなぜ義務教育として採用されるべきなのかも分かるでしょう。

※参考「プログラミング教育を小中必修に 安倍総理が提言(16/04/19)」

1.プログラミングとは何か?

shutterstock_172084607

画像:shutter stock

そもそもプログラミングとはなんなのでしょうか。一言でいえば「物事を順序立てて実行させること」と表現できます。例えばロボットに「人が近づいてきたらポケットティッシュを渡して」とプログラミングします。

これにより「人が近づく」という『条件』で、「ポケットティッシュを渡す」という『動作』が行われます。条件と実際の動作(処理)を組み立てて一連の意味のある流れを作るのがプログラミングです。

その流れを表現した命令のセットがプログラムと呼ばれ、「アプリ」となって使われています。詳しくはこちらでも紹介していますので、合わせてご覧ください。

プログラミングとは?学習入門者向け「5分でわかる基礎知識」
更新日 : 2019年6月14日

2.プログラミングの基本的な考え方

shutterstock_66376708

画像:shutter stock

プログラミングは一見、なんでも出来るとても難しいもののようなイメージを持ちます。その実プログラムの中身は決まった命令の組み合わせで表現された文章にすぎません。

仕事のマニュアルなどで分かりやすく処理を表す「フローチャート」はまさにプログラムそのものです。つまり、プログラミングとは「機械が文章を上から読んで順番に処理をして、読み進めて仕事をしてくれるもの」を作ることです。

3.プログラミングを進める方法

shutterstock_181667525

画像:shutter stock

プログラミングは全ての命令を覚えて何も見ないで作るもの…と思われている方も多いかと思います。もちろん仕事としていつもプログラミングを行っている人は、体が命令を覚えてしまっているのでスラスラ書けてしまいます。

ただ、実際はインターネットや本で命令の書き方を調べながら作るのが一般的です。日本語しか話せない人が伝えたいことを英語で手紙にしたいときに、辞書を引きながら英作文するような感覚です。

もちろんプログラミングの基礎学習は必要ですが、やろうと思えば誰にでも簡単なプログラムは作れます。どう調べればほしい情報が手に入るのか?という問題解決能力を養いながらステップバイステップで実施していきます。

プログラミング学習の基礎知識が知りたい人は、こちらの記事を覗いて見ましょう!

4.質の良いプログラムとは?

shutterstock_17943043

画像:shutter stock

プログラミングは文章(コード)を作ることなのでもちろん良いプログラムと悪いプログラムがあります。

一通り伝えたいことを表現したり、読み解くことがスムーズに出来るようになったら、次なるレベルアップの為に良いコードを書けるよう気をつけるようにしていきます。プログラミングでいう「良いコード」とは主に次のようなものがあります。

バグが少ない

当たり前ですがそもそも論理破綻していて動かないアプリは意味がありません。プログラミングにおいてはしっかり動作の確認をして、意図したとおりに動くように確認する行為がとても大切です。

プログラミングは思った通りには動きません。「書いた通りに動きます。」ロジカルに考えて実際に起こり得るパターンを「全て」考える必要があります。

可読性が高い

プログラミングはワードなどで作られる文章と同じように、人によって読みやすい読みづらいが有ります。段落や改行がおかしな所でされていると文章も読みづらいですよね。

また誤解をまねく表現があると思わぬミスにも繋がります。プログラミングには人の気持ちになってどう表現するかを考えたり、他の人の行動を先読みする能力も必要になってきます。

拡張性が高い

上記2つにも関連しますが、良いプログラムは『拡張性』というものにも配慮されています。後からでも新しい機能を加えたり、変更を加えたりしやすいソースコードを作っておくということです。

例えば、会社でお客様の個人情報が別々の部署3箇所でそれぞれで管理されているとしましょう。このときお客様が引越しをして住所が変更になった時、2箇所では新しい住所に変更したけれど1箇所は古い住所のままということにもなりかねません。

お客様の個人情報を一括管理したほうが、後からの変更や特別な機能を追加する際に都合が良さそうだというのは想像できるでしょう。このようにプログラミングでは効率やリスクなどにも配慮することが求められます。

5.インターネットの仕組み

shutterstock_262439789

画像:shutter stock

プログラミングを応用する際に切っても切り離せないのがインターネットです。最低でもどういう仕組で成り立っているのかはざっくり抑えておきましょう。

インターネット通信はデータのやり取り

インターネットは、電気通信を行う物理的な「インターネット回線」によって繋がっているものです。その回線の中を、数字で表現されたデータ行ったり来たりすることで通信は成り立っています。

例えば、このサイトを見ているあなたのパソコンからも、このページの情報が存在するコンピュータへ「情報がほしい」とリクエストがあり「こんなことが書かれているページです」とレスポンスを受け取って閲覧ができています。

データの運び方

インターネット回線を行き交うデータは、それぞれデータを運ぶための方法が違います。例えばこのページを見ている時には、HTTPというWEBサイト見るためのデータの運び方をします。

ブラウザの上の方にあるURLという部分をクリックすると「http://〜」という表示になっているのは、HTTPとういう通信方法でこの場所から情報をダウンロードしたという意味です。

このインターネット上でやりとりするデータの運び方、通信方法のことを専門用語で「プロトコル」といいます。標準的なWEBサイト閲覧するためのHTTPというルールの他にも、HTTPS/FTP/SSHなど様々なものが存在します。

専門的なものははじめはあまり知る必要はありませんが、HTTPというルールに基いて普段データがやり取りされていて、WEBサイトが見れているという常識は抑えておきましょう。

6.WEBサービスの仕組み

shutterstock_101133406

画像:shutter stock

普段何気なくこうして使っているWEBサイトなどはどのようにして閲覧できているのでしょうか。車を運転するのにエンジンやタイヤの構造を知る必要はありませんが、少なくともエンジンやタイヤから成り立っていることは知っておくべきでしょう。

ここでは簡単にWEBサイト及びWEBアプリケーションについて解説します。

WEBサイトの仕組み

WEBサイト(ホームページ)を閲覧する時に「InternetExplore」や「GoogleChrome」など様々なブラウザを用いるかと思います。現在このページを閲覧するために開いているアプリがそうです。

これは「5.インターネットの仕組み」で触れたインターネットを介してデータのやり取りをするためのアプリになります。ブラウザ(Browser:閲覧するモノ)という言葉の通りデータのやり取りを行った後に人が閲覧出来るようにしてくれます。

具体的には、ブラウザからインターネットに接続されている相手のコンピュータに「ファイルをダウンロードさせて欲しい」とリクエストを行い、HTMLやCSSやJavaScriptと呼ばれるファイルをダウンロードしてきます。

そして、ブラウザ上でそれらのファイルで表現されている「見た目」を再現して、WEBサイトとして見えるように翻訳してくれています。試しにこのページを右クリック(Macの場合はCtrl+クリック)して「ソースを表示」をしてみてください。

これらの情報が”HTTP”のプロトコルによってダウンロードされて再生されているのです。「WEBサイトを作る」ということは、「ブラウザが理解できるHTMLなどのファイルを作って、ダウンロード出来るように設置しておくこと」になります。

また、この設置する場所がWEBサーバと呼ばれるコンピュータになります。

WEBアプリケーションの仕組み

WEB上で動くものはただデータを一方的にダウンロードさせるサイトだけではありません。例えば、「FacebookなどのSNS」では利用者が近況を投稿したり、画像を投稿したりしています。

つまり、データをブラウザから発信して、WEBサーバにアップロードしているのです。このアップロードにも対応して、WEBサーバ上で処理を行ってくれるプログラムをWEBアプリケーションと呼びます。

WEBアプリケーションはアップロードされた情報を保存したり、あるいは引き出してからブラウザにダウンロードさせるHTMLを作ったりしています。

WEBサイトはブラウザにダウンロードさせるファイルを準備するだけで良かったですが、WEBアプリは双方向のコミュニケーションが出来るようにプログラミングを行う必要があります。

7.プログラマの三大美徳(怠惰・短気・傲慢)

shutterstock_266689532

画像:shutter stock

最後に基礎知識とは少し離れますが、知っておきたいこととしてプログラマの三大美徳の考え方について紹介します。怠惰・短気・傲慢と言われてもネガティブな印象しかないかと思いますが、その捉え方が優れたプログラマーには必要と言われています。

怠惰:面倒に感じること

優れたプログラマは「自力で仕事をすること」を良しとはせず、出来るだけコンピュータに仕事をさせて自動化します。

また、同じような仕事を何度も行うのは面倒なので、過去にした仕事を活かして再利用します。プログラマとして業務効率を改善する根底には「様々な便利なモノを知って面倒くささからどんどん開放されたい」と強く願う面倒くさがりの精神があるのです。

短気:すぐにストレスを感じること

優れたプログラマは効率の悪いことや合理的でないものが大嫌いです。

つまり、どうにかこの作業をより質の高いものに出来ないかと考えます。「人一倍気を配りストレスを感じること」も改善ポイントを見つけられるプログラマの才能になります。

傲慢:高いプライドを持つこと

優れたプログラマは高いプライドをもって顧客にケチを付けられないものを作ろうとします。また、「もっと便利にしたい!これも出来るはずだ!」と飽くなき探究心と実現可能性を追い続けます。

すぐに出来なくても学習を行って、傲慢に「もっと」を求めるのもプログラマの才能になります。

まとめ

文系でも知っておきたいプログラミングの基礎知識と題してご紹介してきましたがいかがでしたでしょうか?技術的な部分にはあえてほとんど踏み込まない内容になっています。ご興味有る方はそれぞれの知見もより深めるキッカケにして頂ければ幸いです。

現役フリーランスエンジニアによる無料体験レッスン実施中!

もし、あなたが、

  • 経験、年齢、学歴に不安がある
  • 挫折しない学習方法が知りたい
  • アプリ開発で困っている
  • エンジニアの”生”の声が聞きたい!
  • 仕事獲得の仕方がわからない
  • エンジニアに転職したいが何をすればいいかわからない

など、プログラミング学習やキャリアのことでお困りであれば、まずは『無料体験レッスン』にお申し込み下さい。

あなたにとって、最適の解決策をご提案させていただきます。

詳しくは下の画像から詳しいサービス内容をご確認ください。

cta_mtm3

LINEで送る
Pocket

書いた人

侍ブログ編集部

侍ブログ編集部

侍エンジニア塾は「人生を変えるプログラミング学習」をコンセンプトに、過去多くのフリーランスエンジニアを輩出したプログラミングスクールです。プログラミングに役立つ情報や有用な情報を発信していきます。
サービスページはこちら
ツイッターはこちら
フェイスブックはこちら

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説