スライドショースライドショースライドショー

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

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

そこで今回はタイトル通り”文系出身でも知っておくべき最低限のプログラミング基礎知識・考え方”を紹介していきます。この知識と考え方をおさえれば、なぜ義務教育としてプログラミングが採用されるべきなのかも分かるでしょう。

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

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

shutterstock_172084607

画像:shutter stock

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

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

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

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

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

shutterstock_66376708

画像:shutter stock

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

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

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

shutterstock_181667525

画像:shutter stock

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

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

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

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

プログラミングを始める前に知っておきたい基礎知識と3つの鉄則
更新日 : 2019年8月19日

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アプリは双方向のコミュニケーションが出来るようにプログラミングを行う必要があります。

WEBアプリケーションのサービスの仕組みを図解を使って徹底解説
更新日 : 2019年7月4日

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

shutterstock_266689532

画像:shutter stock

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

怠惰:面倒に感じること

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

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

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

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

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

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

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

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

プログラミングを始めてみよう

ここまで、文系でも知っておきたいプログラミングの基礎知識と題してプログラミングについてご紹介しました。

プログラミングは理系のスキルと思われがちですが、現在では文系・理系関係なく身につけるべきスキルに変わりつつあります。2020年からはプログラミングが義務教育化され、将来的には必須スキルといってもいいでしょう。

でも文系だとプログラミング習得は難しいでしょ?

いざはじめようとしてもこのようにお考えの方が多くいらっしゃいます。確かに昔はプログラミング=理系というイメージが浸透していましたが、最近では学習環境などの変化によって文系理系関係なく習得できる環境が整っています。

文系だからできないと敬遠するのではなく、まずはプログラミング学習の第一歩を踏み出してみてください。

こちらの記事では、無料でプログラミングを学習できるおすすめの学習サイトをランキング形式でご紹介しています。まずは無料学習サイトでプログラミングというものを体験してみてください。

【無料あり】プログラミング学習サイト14選|独学でスキルを手に入れる方法
更新日 : 2019年11月1日

もし、あなたがプログラミング学習にあたり、

ひとりでの学習は不安……
できれば最短距離でスキルを身に付けたい!

このようにお考えであれば、弊社侍エンジニア塾をご活用ください。弊社では初心者が躓きやすいポイントを埋めて効率よく学習を進める手助けをさせていただきます。

具体的には、

  • あなたの目的に合わせた独自のオーダーメイドカリキュラム
  • 現役エンジニア講師によるマンツーマンサポート
  • あなただけのオリジナルアプリ開発

という3つのサービスを軸にプログラミング学習から転職やフリーランス転向のサポートをいたします。ご興味いただけた方はまず、弊社の無料体験レッスンをご利用ください。

無料体験レッスンでは、専属コンサルタントがあなたのプログラミング学習に関する悩みや不安、業界知識などさまざまな質問にお答えさせていただきます。

下記のカレンダーから簡単にご予約いただけます。遠方の方やお忙しい方は、オンラインでも受講いただけるのでお気軽にご利用ください。

LINEで送る
Pocket

「プログラミング、右も左もわからない…」という方にオススメ

当プログラミングスクール「侍エンジニア塾」では、これまで6000人以上のエンジニアを輩出してきました。

その経験を通して、プログラミング学習に成功する人は、「目的目標が明確でそれに合わせた学習プランがあること」「常に相談できる人がそばにいること」「自己解決能力が身につくこと」この3つが根付いている傾向を発見しました。

侍エンジニア塾は上記3つの成功ポイントを満たすようなサービス設計に磨きをかけております。

cta_under_bnr

「自分のスタイルや目的に合わせて学習を進めたいな」とお考えの方は、ぜひチェックしてみてください。

cta_under_btn

書いた人

侍ブログ編集部

侍ブログ編集部

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

おすすめコンテンツ

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

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