AIやIoTの普及により、私たちの生活が更に便利な仕組みに近づいてきました。
話しかけるだけで照明のONとOFFを切り替えられたり、外出先からエアコンを操作したりすることも可能になりましたね。
IT技術の発展を目の当たりにし、プログラミングを勉強してみたいと考える人も多いのではないでしょうか。
「これからプログラミング学習に挑戦してみたい」と考えている初心者だからこそ、プログラミングの勉強を始める前に知っておくべきことがあります。
本記事を読んで、プログラミングの基礎知識の理解を深めながら、習得に向けてゴールを設定していきましょう。
プログラミングの基礎知識
「そもそもプログラミングって何をしているの?」と疑問に感じる人もいるのではないでしょうか。
プログラミングについて、最低限覚えてほしい知識は以下3つです。
学習をスムーズに進めるために基礎知識を身に付けましょう!
- プログラミングの仕組み
- プログラミング言語の役割
- 初心者におすすめのプログラミング言語
それでは順番に解説していきます。
プログラミングの仕組み
パソコンやスマートフォンといった機器には、すべてコンピューターが組み込まれています。
最近では家電にもコンピューターが組み込まれ、スマート家電とも呼びますよね。
こうしたコンピューターを動かすために、プログラムを記述する作業がプログラミングです。
プログラムは、いわばコンピューターへの指示書です。
たとえば以下のようなサービスも、プログラムによって動いています。
- 「Hey、Siri」と呼べばSiriが起動する
- 任天堂Switchのゲームでスティックを前に倒すと、キャラが前に進む
- Instagramで写真を選ぶと投稿される
日常的に使用しているものは他にも多数あり、プログラムによって私たちの生活を豊かにしてくれています。
プログラミング言語とは
ではプログラミング言語とは、どのような役割を担っているのでしょうか。
プログラミング言語とは、コンピューターがプログラム(指示書)を適切に理解し指示を出すための言語です。
たとえば私たちは普段日本語を使用していますが、国が変わると言語も異なります。
日本語の読めないアメリカ人に、日本語で書かれた指示書を渡しても理解してもらえないですよね。
コンピューターが使用しているのは、『機械語』と呼ばれる0と1で羅列した数列です。
私たちが機械語を理解できないように、機械も人間の言葉をそのまま理解できません。
機械にも理解してもらえるように利用しているのが、プログラミング言語です。
命令を書くと、記述した命令を機械語に変換して作業を実施してくれます。
そして初めてコンピューターを意図的に動かせます。
コンパイラ方式とインタプリタ方式
プログラミング言語によって、記述した命令(コード)を機械が理解できるように機械語に変換し、正しくプログラムされるようになります。
『機械語』への変換方法は、プログラミング言語によって異なり、以下の2つの方式に分類できます。
- コンパイラ方式 ・・・事前にプログラム全体を機械語に変換する
- コンパイラ方式 ・・・事前にプログラム全体を機械語に変換する
それではそれぞれの特徴を、詳しく解説していきます。
コンパイラ方式
コンパイラ方式は、ソースプログラムをいったん機械語に翻訳して、機械語になったプログラムを実行する方式です。
例えると、英語の本をいったん日本語に翻訳し、本を読むようなイメージです。
全て日本語に変換されているので、意味の検索や文法を覚える必要もなく、そのまま読み進められますよね。
機械からしても、全て機械語に翻訳されるので、プログラム実行速度が早いメリットがあります。
インタプリタ方式
インタプリタ方式は、プログラミング言語の命令を1行ずつ、機械語に翻訳しながら実行する方式です。
例えると、通訳を解しながら日本語を話すイメージです。
一見速そうに思えますが、1回1回通訳を行うので、会話のキャッチボールに若干時差がありますよね。
機械からしても、機械語に翻訳しながらプログラムを実行するため、コンパイラ方式より実行速度が遅いです。
ですが人間にとっては分かりやすく、初心者に優しい言語も多いのでおすすめです。
初心者がプログラミングを学習する前に
実際にプログラミング学習を始める前に、学ぶ目的を明確にし、目的に合った言語を選びましょう。
詳細を以下の2つから解説していきます。
- 学習する目的を決めよう
- 目的に合った言語を選ぼう
学習する目的を決めよう
まずは、プログラミングを学ぶ目的を明確に決めましょう。
プログラミングは習得することが目的ではなく、何かを達成するための手段です。
登山で例えると、「頂上で絶景を見たい!」という目的があるから山を登ります。
明確な目的や目標設定することで、それに向けて頑張れますよね。
プログラミング学習も同じで、目標を持たずになんとなく学習を始めると、途中で挫折する可能性が高くなります。
「エンジニアになるために学習したい」「本業に活かせるシステム開発を習得したい」など、どのような目的があって学習するのか考えてみましょう。
目的に合った言語を選ぼう
学ぶ目的が決まったら、目的に合った学習する言語についても考えていきましょう。
プログラミングで開発できるサービスと主な言語を以下にまとめています。
開発できるサービス | プログラミング言語 |
---|---|
Webプログラミング |
|
Webデザイン |
|
スマホアプリの開発 |
|
データ解析AI(人工知能開発)や機械学習 |
|
2D3Dゲームの制作 |
|
たとえばスマホアプリを開発したい人は、【Java】【Kotlin】【Swift』などの言語を選ぶと良いでしょう。
初心者が準備するもの
目的の言語が決まったら、さっそくプログラミング学習を始めていきましょう。
初心者が準備するものとして、以下3つに分けて解説していきます。
- パソコン
- 環境設定
- 環境構築
パソコン
目的が決まったら、プログラミングするためのパソコンを用意しましょう。
プログラミングスクールに通うことを検討している方や、外出先でも学習する予定がある方はノートパソコンが便利です。
どのような性能のパソコンを選択するか迷っている方は、次の4つのポイントから選択してみましょう。
- CPU(シーピーユー)
- メモリ
- ストレージ
- OS(オーエス)
各ポイントを解説します。
CPU(シーピーユー)
プログラミング学習を行うなら、Core i5以上のパソコンを選択するとストレスを感じにくいです。
Core i5以上のCPUがストレスを感じにくい理由は、CPUがパソコンの脳みそとなる部分であるからです。
計算や情報処理をするパーツであり、パソコン内部で中心的な存在といえます。
ちなみにCPUはCore i3→Core i5→Core i7の順で、処理スピードが早くなります。
ただし性能の良いCPUを搭載しているパソコンは、高価な傾向にあるので、予算とバランスを考えて決めましょう。
メモリ
メモリは最低でも8GB以上のものを選びましょう。
メモリは作業机によく例えられます。
机が広いとノートや教科書をおけるスペースが広くて、快適に作業できますよね。
しかし机が狭いと、できることが少なく窮屈で作業効率が落ちてしまいます。
余裕があれば16GB以上をおすすめしますが、もし迷う場合には後から増設できるタイプのPCを選んでおくと、動作に不満を感じたときにメモリ追加が可能です。
ストレージ
ストレージはHDDとSDDの2つが存在します。
HDDは記憶容量が大きく、価格が安いといったメリットがあります。
しかしPCの起動速度が、遅いことがデメリットです。
SDDは消費電力も低いため発熱も少なく、衝撃にも強いメリットがあるので、SDDをおすすめします。
OS(オーエス)
OSはMacかWindowsのどちらかを選択しましょう。
Macは、Appleが開発したSwiftとの相性が良いOSを搭載しています。
iOSアプリを開発したい目的がある人はMacがおすすめです。
しかし、Windows専用アプリとの相性が悪い点がデメリットなので注意しましょう。
Windowsは、世界的なシェアが7割を超えており、生産販売する企業が多く量産されています。
それゆえにMacに比べ、低価格で入手しやすいメリットがあります。
Windowsに関しても、Windowsアプリの開発に向いていますが、iOSアプリの開発が難しい点がデメリットです。
キーボード
学習を始めると長時間プログラミングで使用する可能性があるので、慎重に選びましょう。
キーボードの並びは、日本語のキーボードなら基本的に同じですが、打鍵感は人によって好みが分かれます。
家電量販店に行って、実際に触って見て選んでみましょう。
環境構築
プログラミングを行うには、各言語の実行環境やコンパイラをインストールする必要があります。
環境構築に必要なツールは、プログラミング言語や利用しているOSによって、インストールするものが異なる場合があるので注意しましょう。
環境構築に必要なツールは、以下のようなものがあげられます。
- Visual Studio Community
- Eclipse
- xcode
- Android Studio
自分のPCの環境とチュートリアルサイトや書籍の環境が異なると、書かれているとおりにセットアップしても、環境構築ができずプログラム実行ができないケースもあります。
プログラミングを活かす職種
プログラミングを活かす職種として、イメージしやすいのがプログラマーではないでしょうか。
プログラマーの主な仕事は、仕様書に沿ってプログラミングを行うことです。
仕様書の作成は、主にシステムエンジニアが行い、プログラマーが仕様書の内容を理解して、実際にプログラミング(コーディング)を行います。
プログラマーと言っても分野によって仕事内容やスキルが異なりますので、以下の5つの職種から解説していきます。
- Webプログラマー
- アプリケーションプログラマー
- ゲームプログラマー
- 組み込み系プログラマー
- 汎用系システムプログラマー
Webプログラマー
Webプログラマーは、ショッピングサイトやSNS、Webサイトのプログラミングを行います。
Webプログラマーにも3つの種類があり、それぞれ担当する業務内容が異なります。
- フロントバックエンド・・・Web閲覧するユーザーの目に見える部分を担当
- バックエンド・・・サーバーなどのユーザーの目に見えない部分を担当
- フルスタック・・・システム開発全般を担当
フルスタックは、フロントエンドとバックエンドの両方の業務を行うため、幅広い知識と技術が求められます。
Webプログラマーが使用する、代表的なプログラミング言語は以下のとおりです。
- PHP
- Ruby
- Perl
- Java
- JavaScript
アプリケーションプログラマー
アプリケーションプログラマーは、パソコンやスマートフォンで使用するアプリケーションのプログラミングを行います。
具体的には、iPhoneやAndroidにインストールする【ネイティブアプリ】やPCのブラウザ上で動作する【Webアプリ】があります。
アプリケーションプログラマーが使用する、代表的なプログラミング言語は以下のとおりです。
- Java
- JavaScript
- Kotlin
- Swift
- PHP
- C#
ゲームプログラマー
ゲームプログラマーは、文字どおりプログラミング言語を用いてゲーム開発を行います。
テレビゲーム、スマホアプリなど幅広いゲーム制作に携わり、キャラクターの動きやBGM効果音などの設計をイメージどおりにするソースコードを書きます。
ゲームが好きで、プレイする側から制作側に携わってみたい人には最適な職業ですね。
ゲームプログラマーが使用する、代表的なプログラミング言語は以下のとおりです。
- C#
- C++
- JavaScript
- Swift
- Kotlin
- Unity
組み込み系プログラマー
主に家電製品や電子機器などを制御するためのプログラム開発を行います。
生活必需品から最新のデバイスまで、あらゆる機器の組み込み型のシステムを開発するため、仕事の幅も広い職業です。
たとえば炊飯器の加熱機能を、自動で制御するプログラムを組み込み、正常かつ安全に動作するためのプログラムコードを書いていきます。
組み込み系プログラマーが使用する、代表的なプログラミング言語は以下のとおりです。
- C
- C#
- C++
- Java
汎用系システムプログラマー
汎用系システムプログラマーの仕事は、一台のコンピューターで一括処理ができるシステムを開発するのがメインの業務になります。
たとえば生命保険のデータベースの構築や、クレジットカードの顧客データベース等のシステムがあげられます。
汎用系システムプログラマーが使用する、代表的なプログラミング言語は以下のとおりです。
- Java
- FORTAN
- RPG
- COBOL
学んだ先の選択肢
プログラミングを学んだ先の選択肢は、希望する働き方で変わってきます。
- 就職・転職
- 副業(フリーランス)
それぞれ順に解説します。
就職・転職
就職や転職の場合は、各目的に合ったソフトウェアサービスを提供する企業を目指すことになります。
たとえばWebサイトを制作したいならWeb制作会社、AI開発を行いたいならAI開発会社が主な進路先になるでしょう。
初心者から就職や転職となると、経験者と同じ土俵に立って選考を受けるので面接や職務経歴書をうまくアピールする必要があります。
そのためプログラミング初心者が就職や転職を目指すなら、転職エージェントや転職支援を行っている、プログラミングスクールのサポートを検討してみましょう。
副業(フリーランス)
副業(フリーランス)の場合は、クラウドソーシングサイトや知り合いから都度案件を受注する必要があります。
はじめは実績や経験が無いので、高単価の案件を獲得するのは難しいです。
まずはポートフォリオと呼ばれる、開発したアプリやサービスをまとめたプログラム作品集を作り、アピールできるように準備しておきましょう。
独学ってどうなの?
プログラミング学習を始めるにあたって、独学かスクールか迷ってしまう人も多いのではないでしょうか。
結論、独学でもプログラミングの習得は無理ではありません。
下記データは、現役エンジニアがどこでスキルを学んだかというアンケートです。
独学は2番目に多く、全体の26%の人がエンジニアスキルを独学で学んでいます。
引用 : エラベル | 現役エンジニア270人が教える未経験からエンジニアになるための学習法を徹底分析!
初心者が挫折しないためのコツ
「せっかく学習を始めたのに、挫折してしまった」とならないように学習のコツを紹介していきます。
以下5つの項目のとおり解説していくので、しっかり見ておいてくださいね。
- 毎日の目標は細かく設定
- 参考書ばかり読まない
- 丸暗記しない
- 質問サイトを利用する
最初の目標設定は低めに
最初の目標設定が高すぎると、挫折の原因になります。
理由は、なかなか設定した目標に辿り着けず、目標自体も遠くて進む方向が漠然としてしまうからです。
また高すぎる目標を設定したばかりに、自分のレベルに合っていない教材を使用し自分の首を占めてしまう可能性もあります。
最初の一歩となるハードルは低く設定することで、挫折せず着実に成長体験ができるように目標設定しましょう。
毎日の目標とゴールは細かく設定
毎日の目標とゴールを細かく設定することで、達成感が得られやすく、挫折を避けられます。
また毎日学習することで、自分がどれだけ学習を進めたのか明確になる点もメリットです。
まずは大きな目標を立てて、月単位、週単位、日単位と逆算して目標を分割設定しましょう。
参考書ばかり読まない
勉強するときには、参考書を読んで知識を頭に入れるというイメージを持っている方も多いでしょう。
プログラミング学習の場合には、参考書を読んでいるだけでは身につかず、プログラムを書けるようになりません。
参考書を読んで1つ知識を得たら、実際に手を動かしてプログラムを作ってみるようにしましょう。
インプットとアウトプットを繰り返し行うことで、ただ参考書を読んでいるときよりも知識が定着しやすくなります。
丸暗記しない
プログラミングを含め、IT関連の技術はアップデートが早いため、覚えたコードが役に立たなくなってしまうことも多い傾向にあります。
プログラミング学習をするときは、言語をそのまま暗記するのではなく、「このコードはどのような動きをするのか?」という視点で考えるくせをつけましょう。
ちなみにプログラミング言語のPythonは、公式のドキュメントがあり正確な情報に触れることもできます。
引用 : Python | 公式ドキュメント
質問サイトを利用する
プログラムを組むときには、エラーが出て当たり前と考えておきましょう。
プログラミング学習はエラーを修正しながら成長するものです。
経験が豊富なエンジニアであっても、一度もエラーを出さずにプログラムを完成させることはほとんどありません。
「頭の中で描いていたプログラムが、思っていたとおりに動かない」というケースもよくあることです。
エラーが出たら、まずは何が原因でエラーが出ているのか、どのように修正すれば良いのかを自分なりに考えて答えを導き出し、実践してみましょう。
それでもなかなか解決できない場合には、
といった質問サイトを利用するのもおすすめです。
どうしてもわからない・最短で習得したい人
「どうしてもエラーが解決できなくて挫折しそう」
「効率よく学習をすすめて、最短で習得したい」
上記のような気持ちがある人は、プログラミングスクールでの学習をおすすめします。
プログラミングスクールで学習するメリットは以下の3つです。
- プロの講師からわからないことを聞ける
- 横のつながりを得られる
- 就職や転職のサポートを受けられる
同じ目標を持った人たちと学んだ知識を共有したり、講師から不明点を聞けたりすることが最大のメリットです。
費用はかかりますが、効率よくプログラミング学習に取り組めます。
おすすめのプログラミングスクール
以下3つのスクールが、当サイトで初心者におすすめするプログラミングスクールです。
- TECH Academy(テックアカデミー)
- DMM WEBCAMP(ディーエムエムキャンプ)
- TECH CAMPプログラミング教養(テックキャンプ)
TECH Academy(テックアカデミー)
引用 : TECH Academy | 公式サイト
TECH Academyは、プログラミングスクール受講者数No.1のスクールです。
未経験からWeb制作に必要なスキルを、学習に取り組めるようなサポートを重視したコースです。
自分に適性なコースが分からなくても、1分で終了する無料コース診断が可能です。
とはいえ「初心者でも本当に大丈夫か」と、サポートの部分でも不安がある人は多いと思います。
TECH Academyでは、採用通過率10%の狭き門を突破した講師が、パソコンやスマホでできる無料相談を行っています。
不安なことは事前に相談でき、プロの視点で悩みを解決に導いてくれるのは嬉しいですよね。
- 受講者数No.1プログラミングスクール
- 無料相談で、不安要素を取り除ける
- 無料コース診断で最適なコースが知れる
\資料請求もできる /
DMM WEBCAMP(ディーエムエムキャンプ)
引用 : DMM WEBCAMP | 公式サイト
プログラミングを始めたいけど、自分に適性があるのか不安な人も多いのではないでしょうか。
たとえばDMM WEBCAMPの『はじめてのプログラミングコース』では、Webの仕組みプログラミングの基礎を通して、開発の流れのスキルを学んでいきます。
実際に架空のブログサイトをHTML/CSSを用いて作成を行い、Ruby/Ruby on Railsを使用してTodoのタスクを管理するWebサービスを開発します。
また全コース、転職・副業のサポートがあります。
サポートを利用するか検討しながら学習をすすめられるのは、プログラミング習得後に転職や副業の、イメージが湧きにくい初心者には嬉しいですね。
技術を教わるだけでなく、基礎になるプログラムWebの理解を深めたい人におすすめしたいスクールです。
- プログラムWebの仕組みの基礎を勉強できる
- 実際にサービスを開発しながら学べる
- 全コース、転職副業サポートがある
\ 資料請求もできる /
TECH CAMP プログラミング教養(テックキャンプ)
引用 : TECH CAMPプログラミング教養 | 公式サイト
TECH CAMPプログラミング教養は講義形式ではなく、『TECH MASTER』と呼ばれるオリジナル教材を使用し、自分のペースで学習を進める自己学習形式のスクールです。
TECH CAMPプログラミング教養では、必要な基本知識を学びます。
プログラミングで必要な実践的なスキルを身につけ、案件獲得方法も教えてくれます。
またコースに関わらず、時間内であれば何度でも質問が可能です。
TECH CAMPプログラミング教養は、毎日13:00〜22:00までビデオ通話チャットでの質問が可能です。
コースに関わらず時間内であれば、何度でも質問が可能です。
たとえば毎日13:00~22:00まで、ビデオ通話チャットでの質問を受け付けています。
- 未経験者に合わせたオリジナル教材
- 自分のペースで進める自己学習型
- 時間内であれば、何度でも質問が可能
\ 無料カウンセリング実施中/
まとめ
プログラミング初心者は、まずはプログラミングを学ぶ目的を明確にし、何から学べばよいか言語を選びましょう。
勉強方法には参考書や学習サイトを用いて独学で学ぶ方法と、スクールやセミナーで講師から学ぶ方法があります。
プログラミングの習得には時間がかかるので、なので焦らず自分のペースで進めるとよいでしょう。
「学んだプログラミングを副業で活かしたい」
「プログラミングを学んで転職したい」
「プログラミング技術が活かせる転職先を知りたい」
といった人は、業界に精通したプロの講師が在籍している、プログラミングスクールを検討してみましょう。
副業・転職のサポートが充実し、チャットやビデオ通話でエンジニア・プログラマーの仕事内容を詳しく聞くことも可能です。
ぜひ参考にしてプログラミング学習にチャレンジしてください。