この記事では、初心者に向け、プログラミングの基礎知識を解説します。
2020年・2021年から実施された小・中学校におけるプログラミング教育の必修化や、2025年に迫る大学入学共通テストでのプログラミングを含む「情報科目」の設置などを背景に、プログラミング学習の必要性は年々増している傾向にあります。
また、国内におけるIT人材の不足が深刻化していることもあり、ITエンジニアといったプログラミングスキルがある人材の需要は増し、他の職種に比べ高い報酬を設けるケースが増えてきました。
こうした背景から、プログラミングに興味や関心を抱き始めた人もいますよね。
ITエンジニアとして仕事をするしないはさておき、文系・理系関係なくプログラミングの考え方は身に付けておくべきでしょう。
そこで今回はタイトルどおり、文系出身でも知っておくべき最低限のプログラミング基礎知識・考え方を紹介します。この知識と考え方をおさえれば、なぜ義務教育としてプログラミングが採用されるべきなのかも分かるでしょう。
※参考「プログラミング教育を小中必修に 安倍総理が提言(16/04/19)」
- プログラミングはコンピュータへの指示を作成すること
- プログラミングを学べば問題解決力や考える力が身につく
- プログラミングに触れるなら無料学習サイトがおすすめ
1.プログラミングとは何か?
そもそもプログラミングとはなんなのでしょうか。一言でいえば「物事を順序立てて実行させること」と表現できます。例えばロボットに「人が近づいてきたらポケットティッシュを渡して」とプログラミングします。
これにより「人が近づく」という『条件』で、「ポケットティッシュを渡す」という『動作』が行われます。条件と実際の動作(処理)を組み立てて一連の意味のある流れを作るのがプログラミングです。
その流れを表現した命令のセットがプログラムと呼ばれ、「アプリ」となって使われています。
プログラミングについてより詳しくは、以下の記事で詳しく紹介しています。初心者の方向けにやさしい内容でまとめていますので、合わせてご覧ください。
2.プログラミングの基本的な考え方
プログラミングは一見、なんでも出来るとても難しいもののようなイメージを持ちます。その実プログラムの中身は決まった命令の組み合わせで表現された文章にすぎません。
仕事のマニュアルなどで分かりやすく処理を表す「フローチャート」はまさにプログラムそのものです。つまり、プログラミングとは「機械が文章を上から読んで順番に処理をして、読み進めて仕事をしてくれるもの」を作ることです。
なお、IT企業への転職や副業での収入獲得を見据え、独学でプログラミングスキルを習得できるか不安な人は「侍エンジニア」をお試しください。
侍エンジニアでは、現役エンジニアと学習コーチの2名体制で学習をサポートしてもらえます。
「受講生の学習完了率98%」「累計受講者数4万5,000名以上」という実績からも、侍エンジニアなら未経験からでも挫折なく転職や副業収入の獲得が実現できますよ。
\ 給付金で受講料が最大80%OFF /
3.プログラミングを進める方法
プログラミングは全ての命令を覚えて何も見ないで作るもの…と思われている方も多いかと思います。もちろん仕事としていつもプログラミングを行っている人は、体が命令を覚えてしまっているのでスラスラ書けてしまいます。
ただ、実際はインターネットや本で命令の書き方を調べながら作るのが一般的です。日本語しか話せない人が伝えたいことを英語で手紙にしたいときに、辞書を引きながら英作文するような感覚です。
もちろんプログラミングの基礎学習は必要ですが、やろうと思えば誰にでも簡単なプログラムは作れます。どう調べればほしい情報が手に入るのか?という問題解決能力を養いながらステップバイステップで実施していきます。
プログラミング学習の基礎知識が知りたい人は、下の記事を参考にしてください。
4.質の良いプログラムとは?
プログラミングは文章(コード)を作ることなのでもちろん良いプログラムと悪いプログラムがあります。
一通り伝えたいことを表現したり、読み解くことがスムーズに出来るようになったら、次なるレベルアップの為に良いコードを書けるよう気をつけるようにしていきます。プログラミングでいう「良いコード」とは主に次のようなものがあります。
バグが少ない
当たり前ですがそもそも論理破綻していて動かないアプリは意味がありません。プログラミングにおいてはしっかり動作の確認をして、意図したとおりに動くように確認する行為がとても大切です。
プログラミングは思った通りには動きません。「書いた通りに動きます。」ロジカルに考えて実際に起こり得るパターンを「全て」考える必要があります。
可読性が高い
プログラミングはワードなどで作られる文章と同じように、人によって読みやすい読みづらいが有ります。段落や改行がおかしな所でされていると文章も読みづらいですよね。
また誤解をまねく表現があると思わぬミスにも繋がります。プログラミングには人の気持ちになってどう表現するかを考えたり、他の人の行動を先読みする能力も必要になってきます。
拡張性が高い
上記2つにも関連しますが、良いプログラムは『拡張性』というものにも配慮されています。後からでも新しい機能を加えたり、変更を加えたりしやすいソースコードを作っておくということです。
例えば、会社でお客様の個人情報が別々の部署3箇所でそれぞれで管理されているとしましょう。このときお客様が引越しをして住所が変更になった時、2箇所では新しい住所に変更したけれど1箇所は古い住所のままということにもなりかねません。
お客様の個人情報を一括管理したほうが、後からの変更や特別な機能を追加する際に都合が良さそうだというのは想像できるでしょう。このようにプログラミングでは効率やリスクなどにも配慮することが求められます。
なお、IT企業への転職や副業での収入獲得を見据え、独学でプログラミングスキルを習得できるか不安な人は「侍エンジニア」をお試しください。
侍エンジニアでは、現役エンジニアと学習コーチの2名体制で学習をサポートしてもらえます。
「受講生の学習完了率98%」「累計受講者数4万5,000名以上」という実績からも、侍エンジニアなら未経験からでも挫折なく転職や副業収入の獲得が実現できますよ。
\ 給付金で受講料が最大80%OFF /
5.インターネットの仕組み
プログラミングを応用する際に切っても切り離せないのがインターネットです。最低でもどういう仕組で成り立っているのかはざっくり抑えておきましょう。
インターネット通信はデータのやり取り
インターネットは、電気通信を行う物理的な「インターネット回線」によって繋がっているものです。その回線の中を、数字で表現されたデータ行ったり来たりすることで通信は成り立っています。
例えば、このサイトを見ているあなたのパソコンからも、このページの情報が存在するコンピュータへ「情報がほしい」とリクエストがあり「こんなことが書かれているページです」とレスポンスを受け取って閲覧ができています。
データの運び方
インターネット回線を行き交うデータは、それぞれデータを運ぶための方法が違います。例えばこのページを見ている時には、HTTPというWEBサイト見るためのデータの運び方をします。
ブラウザの上の方にあるURLという部分をクリックすると「http://〜」という表示になっているのは、HTTPとういう通信方法でこの場所から情報をダウンロードしたという意味です。
このインターネット上でやりとりするデータの運び方、通信方法のことを専門用語で「プロトコル」といいます。標準的なWEBサイト閲覧するためのHTTPというルールの他にも、HTTPS/FTP/SSHなど様々なものが存在します。
専門的なものははじめはあまり知る必要はありませんが、HTTPというルールに基いて普段データがやり取りされていて、WEBサイトが見れているという常識は抑えておきましょう。
6.WEBサービスの仕組み
普段何気なくこうして使っている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.プログラマの三大美徳(怠惰・短気・傲慢)
最後に基礎知識とは少し離れますが、知っておきたいこととしてプログラマの三大美徳の考え方について紹介します。怠惰・短気・傲慢と言われてもネガティブな印象しかないかと思いますが、その捉え方が優れたプログラマーには必要と言われています。
怠惰:面倒に感じること
優れたプログラマは「自力で仕事をすること」を良しとはせず、出来るだけコンピュータに仕事をさせて自動化します。
また、同じような仕事を何度も行うのは面倒なので、過去にした仕事を活かして再利用します。プログラマとして業務効率を改善する根底には「様々な便利なモノを知って面倒くささからどんどん開放されたい」と強く願う面倒くさがりの精神があるのです。
短気:すぐにストレスを感じること
優れたプログラマは効率の悪いことや合理的でないものが大嫌いです。
つまり、どうにかこの作業をより質の高いものに出来ないかと考えます。「人一倍気を配りストレスを感じること」も改善ポイントを見つけられるプログラマの才能になります。
傲慢:高いプライドを持つこと
優れたプログラマは高いプライドをもって顧客にケチを付けられないものを作ろうとします。また、「もっと便利にしたい!これも出来るはずだ!」と飽くなき探究心と実現可能性を追い続けます。
すぐに出来なくても学習を行って、傲慢に「もっと」を求めるのもプログラマの才能になります。
プログラミングを始めてみよう
ここまで、文系でも知っておきたいプログラミングの基礎知識と題してプログラミングについてご紹介しました。
プログラミングは理系のスキルと思われがちですが、現在では文系・理系関係なく身につけるべきスキルに変わりつつあります。2020年からはプログラミングが義務教育化され、将来的には必須スキルといってもいいでしょう。
いざはじめようとしてもこのようにお考えの方が多くいらっしゃいます。確かに昔はプログラミング=理系というイメージが浸透していましたが、最近では学習環境などの変化によって文系理系関係なく習得できる環境が整っています。
文系だからできないと敬遠するのではなく、まずはプログラミング学習の第一歩を踏み出してみてください。
こちらの記事では、無料でプログラミングを学習できるおすすめの学習サイトをランキング形式でご紹介しています。まずは無料学習サイトでプログラミングというものを体験してみてください。
もし、あなたがプログラミング学習にあたり、
できれば最短距離でスキルを身に付けたい!
このようにお考えであれば、弊社侍エンジニアをご活用ください。
弊社では初心者が躓きやすいポイントを埋めて効率よく学習を進める手助けをさせていただきます。具体的には、
- あなたの目的に合わせた独自のオーダーメイドカリキュラム
- 現役エンジニア講師によるマンツーマンサポート
- あなただけのオリジナルアプリ開発
という3つのサービスを軸にプログラミング学習から転職やフリーランス転向のサポートをいたします。ご興味いただけた方はまず、弊社の無料カウンセリングをご利用ください。
無料カウンセリングでは、専属コンサルタントがあなたのプログラミング学習に関する悩みや不安、業界知識などさまざまな質問にお答えさせていただきます。
遠方の方やお忙しい方は、オンラインでも受講いただけるので気軽にご利用ください。
無料カウンセリングの詳細を見る参考文献
- 文部科学省「プログラミング教育」
- 厚生労働省 職業情報提供サイト 「jobtag」
- IPA 独立行政法人 情報処理推進機構「DX白書2023」
- 経済産業省「我が国におけるIT人材の動向」「IT人材育成の状況等について」「IT人材需給に関する調査」
- 松尾研究室「生成AI時代の人材育成」
- 厚生労働省「開発した教育訓練プログラム」
- プログラミング教育の問題と対策
- プログラミングの本質的難しさと 日本語/英語プログラミング言語の比較検討
- TIOBE Index
本記事の解説内容に関する補足事項
本記事はプログラミングやWebデザインなど、100種類以上の教材を制作・提供する「侍テラコヤ」、4万5,000名以上の累計指導実績を持つプログラミングスクール「侍エンジニア」を運営する株式会社SAMURAIが制作しています。
また、当メディア「侍エンジニアブログ」を運営する株式会社SAMURAIは「DX認定取得事業者」に、提供コースは「教育訓練給付制度の指定講座」に選定されており、プログラミングを中心としたITに関する正確な情報提供に努めております。
記事制作の詳しい流れは「SAMURAI ENGINEER Blogのコンテンツ制作フロー」をご確認ください。
この記事の監修者
株式会社SAMURAI
独学でプログラミング学習を始めるも挫折。プログラミングスクール「SAMURAI ENGINEER」を受講し、Web制作を学ぶ。副業でWeb制作を行いつつ、「初心者がプログラミングで挫折しないためのコンテンツ制作」をモットーにWebライターとして侍エンジニアブログ編集部に従事。