未経験者のためのプログラミング入門ガイド

未経験者・初心者向けのプログラミング入門ガイドです。プログラマになりたいと考えている方、初めてプログラミングの学習にチャレンジしようとする方にとって、このページが始めの一歩となればと思います。

プログラミングとは何か?ソフトウェアやアプリを開発する事

最終更新日:2021/5/30

プログラミングとはコンピュータ機器に対する命令(プログラム)を記述する事です。

例えば、計算しろ、入力を受けろ、出力しろ、表示しろ、通信しろ、文字列を変換しろみたいな基本的な命令があります。そして、そのような基本的な命令を組み合わせて、スマホだとタップされた時はこういう動作をしろみたいな命令になります。

実際は、もっと細かく命令を与えることができますし、多くの種類の命令があります。そして、その命令をコンピュータ機器にわかるような言語で書くことがプログラミングです。

そして、プログラミングをする事で、便利なソフトウェアやアプリを開発する事ができます。

プログラミングでできる事

プログラミングとは、ソフトウェアやアプリを開発する事だと説明しました。そして、出来上がったソフトウェアはコンピュータ機器上で動きます。

コンピュータ機器は、パソコンやスマホだけでなく、家電やゲームなどの電気機器や機械にも入っていますので、電気機器や機械がプログラミングされたソフトウェアによって動くようになります。

ただここでは、身近にあるパソコンやスマホ、もしくはサーバに絞って、ほんの一例ですがプログラミングでできる事を簡単に書いていきます。

  • iPhoneやandroidなどのスマートフォンアプリを作ることができます。
  • パソコンでは、パソコン上のソフトウェア(デスクトップアプリ)を作る事ができます。また、ちょっとした計算や文字列処理や通信などをする便利なツールを作る事もできます。
  • サーバ上では、ウェブサイト制作やウェブサービスなどが作ることができます。また、サーバサイド(クラウド)には、ウェブ以外の様々なサービスがありますが、それらももちろんプログラミングで開発されています。

自動化、そしてAI

プログラミングは、単純作業や決められた作業を延々と繰り返しやってくれます。一度決められた処理をプログラミングしてあげれば、その処理を自動でやってくれるようになります。作業や処理の自動化です。つまり、人間を単純作業から開放してくれます。そして、人間よりも圧倒的にスピードが速いし正確だし大量のデータを処理してくれます。おまけにコンピュータなので疲れを知りません。

そして、自動化の先にはAIがあります。AIは自ら学習機能を持っているので、予め決められた動作をする自動化とは異なりますが、両方ともプログラミングがなせる技術であるという共通点はあります。自動化されたソフトウェアもAI機能を持つソフトウェアも、プログラミングによって作ることができます。

プログラミングスキルを身につけることによるメリット

プログラミングスキルを身につけることによって、どんなメリットがあるのでしょうか。上でも書きましたが、プログラミングは人間を単純作業から開放してくれるスキルです。そして、アプリやソフトウェアやネット上のサービスを開発する事ができるので、自分や世の中の役に立つサービスを作る事ができます。

自分や世の中の役に立つサービスを作れるという事は、個人の趣味にもなりますし、仕事にもなります。

また、実際にサービスを作るまでのプログラミングスキルがなくても、プログラミングの基本を学習した経験があり、プログラミングでどんな事ができるのかを理解していれば、自らアイデアを考えたり、それを実現してくれるプログラマとより深いコミュニケーションがとれるようになるはずです。

凄腕のスキルを持ったプログラマになるためには相当な努力が必要だと思いますが、プログラミングの基本を経験して、どういう事ができるかを簡単に理解できるようになるための学習コストはさほど高くないと思います。

今の時代、やはりITリテラシーが低い情報弱者になってしまうと、損をしたり生き辛いと感じる時があるかもしれません。ITによるサービスをただ利用するだけでなく、サービスを提供する側の知識とスキルをちょっとでも持っていると、便利でもあり有利でもあると思います。

プログラミングの学習を始めるには何が必要か?未経験から独学でできる?プログラミングスクールを受けるメリットは?

未経験からプログラミングをやってみたい、始めてみたい場合、何から始めたらいいかについてです。

まずは環境についてですが、必要な物はパソコンとネット環境の2つです。スマートフォンやタブレットでは、はっきり言って厳しいと思います。スマホは、サービスを利用するための物です。ウェブや動画などを見て勉強するぐらいはできると思いますが、実際に手を動かすプログラミングをする事は無理です。ウェブサイト制作やウェブサービスの開発のためにプログラミングをするには、やはりパソコンが必須です。

パソコンは、OSがWindowsかMacのものでいいと思います。両方とも入門者・初心者用の開発環境や学習教材が充実しています。どちらが良いかは、それぞれに良い点・悪い点があると思いますし、個人の好みでもありますから、ここでは書くのはやめておきましょう。。

続いて学習方法ですが、独学でやる場合、本やネット上の情報を頼りにして学習する事になると思います。どちらか1つではなく、両方をうまく活用したほうがいいと思います。

また、最近はプログラミング未経験者・入門者用のオンラインのプログラミングスクールのサービスもありますので、そういったものを活用するのも1つの手です。

プログラミングスクールを活用するメリットは、単純に自分一人では解らない箇所を解る人に聞けるので挫折せずに学習を継続できる事や、時間を節約できる事だと思います。

特に、現在仕事をしていながら平日夜間や土日にプログラミングの勉強をして、異業種からプログラマに転職する事を目指している人の場合、仕事で疲れた後に独学で勉強するとなると挫折する可能性が高いし、時間もかかります。

そういう方は、サポートを受けながらプログラミングの勉強ができるプログラミングスクールを受講する意味はあるはずです。
(*もちろん、現在フリーターや無職で時間に余裕のある人も、プログラミングスクールを受講するメリットは同じだと思います。)

また、「ハッカーになろう」という優秀なプログラマ・ソフトウェアエンジニアを目指す人のための道標のような有名なページがあるのですが、ここではプログラミングスキルを上達するコツは、コードを読むこと、そしてコードを書くことと話しています。やはり、人から教わるだけでなく、自分の手を動かしてプログラムを書いて試す事が大事なんだと思います。

プログラミング未経験者の学習方法については別ページでも書いてありますので、そちらも参考にしてみてください。
プログラミング、ウェブデザイン未経験者の学習方法

どのプログラミング言語を学習すべきか?

未経験からプログラミングを始める人の考える事・悩み事の1つが、どのプログラミング言語を選択したらいいのかだと思います。Java、PHP、Python、Ruby、Swift、Javascript、C#、C/C++、、、メジャーな言語だけでも多くあります。

プログラミングで何をするか、開発する目的が決まっているのであれば、ある程度言語を絞る事ができます。
ウェブサイトやウェブサービスを作りないならフロントエンドはJavascript(もちろんHTML・CSSも)、サーバサイドの開発をしたいならJava、PHP、Ruby、、iPhoneアプリを作りたいならSwift、Objective-C、C#(ゲームならUnityで)、androidアプリを作りたいならJava、Kotlin、C#(ゲームならUnityで)などという言語の選択ができると思います。

ですけど作りたい物は特にないけど、とにかくプログラミングをしてみたい、プログラミングがどんなものかを経験してITリテラシーを高めたいという人は、最初はやはりメジャーな言語や人気のある言語が良いと思います。人気言語であれば未経験者・初心者向けの情報や本などが多くあるからです。

そして、最終的にどれか1つの言語に絞るのは自分で決めるのがいいと思いますが、下のリンク先ページやこの後にも少し書いていますので、言語選びの参考にしてみてください。
仕事で人気のプログラミング言語の種類の紹介

ちなみに「ハッカーになろう」では、プログラミング言語を何も知らない場合、Pythonをおすすめしています。ドキュメントが充実していて、初心者にもそこそことっつきやすいため、入門言語として最適だという事です。

別ページでPython初心者・入門者向けの本やkindle(電子書籍)を何冊かピックアップして紹介していますので、よければそちらも参考にしてみてください。
Python入門書の紹介・レビュー

また、本気でコンピュータに詳しいバリバリのプログラマになりたいと考えているなら、C言語を学ぶしかないとも書いています。ただ、プログラミング未経験者がCを学習するのは良いかもしれませんが、最初からCで何か実用的なソフトウェアを作るのはかなりハードルが高いと思いますし、他の言語と比較して学習コストも高いです。

そして、そのハードルの高さや学習コストが原因で、結局プログラミング自体を途中で諦めて挫折してしまう可能性があります。そうなってしまっては、はっきり言ってすごくもったいないと思います。

ですので、最初はやはりJava、Python、PHPのような本やネットの情報が充実していてとっつきやすい言語から学習をスタートして、ある程度プログラミングの経験を摘んだ後に、さらに本気でプログラミングをやりたいという気持ちがあれば、Cに挑戦してみるのが良いのではと思います。

ウェブ系プログラミング、ウェブサービスやウェブサイト制作

プログラミングスキルを身につける事によってできる事の1つが、ウェブサイト制作やウェブサービスの開発です(簡単なウェブサイト制作やブログなどの自分のサイトを持ちたいというだけなら、プログラミングは必要ないと思います)。

ウェブサービスを作る場合、サーバサイドとフロントエンドそれぞれでプログラミングが必要になります。ウェブサービスを開発するためのウェブ系プログラミングについてはもう少し詳しく説明したいですが、長くなりそうなので別ページで説明していきます。
初めてのウェブプログラミング入門ガイド

スマートフォンアプリ制作のプログラミング

続いて、スマートフォンのアプリ制作のためのプログラミングについてです。iPhoneアプリならSwift・Objective-C・C#(ゲームならUnityで)、AndroidアプリならJava・Kotlin・C#(ゲームならUnityで)あたりのプログラミング言語が主な選択肢になると思います。また、アプリ側だけでなく、サーバサイドとデータ通信をするなら、サーバサイドのプログラミングも必要になってきます。

スマホアプリ(iPhone/Android)を開発するためのプログラミングについても別ページで説明していますので、そちらも参考にしてみてください。
初めてのスマートフォンアプリ(iPhone/Android)制作のプログラミング入門ガイド

[広告] プログラミング入門者向けの本の紹介

スッキリわかるJava入門 第3版 スッキリわかるシリーズ
Java未経験者・入門者向けのJava入門書です。図解で丁寧に説明しているので、Javaが初めての人だけでなく、プログラミング自体が初めての人にも、解りやすい本だと思います。

前半はJavaの基礎や基本的な構文について、中盤はJavaのオブジェクト指向の基本について、後半はJavaの便利なAPIクラスや例外処理について書かれています。

別ページでもJava初心者・入門者向けの本やkindle(電子書籍)を何冊か紹介・レビューしていますので、そちらも参考にしてみてください。
Java入門書の紹介