初心者向けプログラミング学習ガイド|習得までの4ステップ
「プログラミングって何から始めればいいんだろう…?」
「ちょっと調べてみたけどさっぱりわからない!」
プログラミングとその周辺知識は本当に幅広く、何を学べばいいか迷ってしまいがちです。
学習する際に重要なのは目標を明確にしておくこと。
この記事では未経験からエンジニアに転職した筆者が、プログラミングとはそもそもどういったものなのか解説したうえで、目標の立て方や目標に沿った学習手順など解説していきます。
プログラミングとは
そもそもプログラミングとはどういったもので、何ができるのかを改めて確認しましょう。
コンピューターへの指示を書くこと
コンピューターは人間が指示した通りにしか動きません。
キーボードの「A」が押されたら画面に「A」の文字を表示する、マウスが動いたらカーソルも連動して動かす、なども予め人間の指示によって決められた動きです。
プログラミングは上記のように、「この場合はこうする」という指示を書いておく作業になります。
ある入力に対してどういった操作をすればいいのかコンピューターにわかる言葉で指示をまとめるのがプログラミングです。
プログラミングでできること
次の内容はすべてプログラミングによって実現されています。
OS (Windows、Mac、Android、IPhone)
Webサイト、ECサイト
スマホアプリ、デスクトップアプリ
ゲーム
AI・人工知能
など
つまり、電子機器などはほぼ全てがプログラミングによって動いていると思って大丈夫です。
なお、プログラミングを本格的に覚えたいならスクールもおすすめ。特に教育訓練給付制度のプログラミングスクールが多くあるのでしっかり受講内容を確認してみよう。
覚えておくべき用語集
ここで紹介するのは、今すぐ必要ではないけどプログラミングをやっていると必ず出てくる用語です。
完璧に意味を理解する必要はないですが、なんとなくのイメージを掴んでおくと今後調べるときにスムーズになるかと思います。
メモリ:コンピューターの一時的なデータ置き場、動きが速い
プロトコル:データをやり取りするときの決まりごと(URLの頭についてる https とかもプロトコルの1つ)
オブジェクト指向:プログラムを書くときの考え方。クラス、メソッド、フィールドの意味がわかればとりあえず大丈夫。
サーバー:パソコン = サーバーだと思って大丈夫。
CURD:データに対する4つの操作の頭文字(Create、Update、Read、Delete)
API:アプリケーションが外部へ提供している機能
脱初心者のための4ステップ
ここでは脱初心者するためにはどのようにして学習を進めていけばいいのかを解説します。
あくまで参考程度ですが、以下のようなレベルが脱初心者だと思ってもらえばいいかと。
脱初心者レベルの目安
コンピューターやWebの仕組みがなんとなくわかっている
ToDo アプリくらいなら詰まらずに作れる
オブジェクト指向の基本がわかっている
プログラミングは本当に幅が広いので、目標をしっかり定めておくことが重要です。
ただ、最初からかっちりした目標を作るのは難しいと思うので「とりあえず決めてみる」くらいの気持ちで決めても問題ありません。
学習していく中で方向性が定まっていくこともあるので、次の 1〜5 までのステップを何回か繰り返すのもいいでしょう。
Step 1. 学習する目的を決める
プログラミングを学習することで最終的にどうなりたいのかを明確にしましょう。
目的が明確になれば、学習の方向性や必要なスキルのレベルもはっきりしてきます。
学習目的の具体例としては次のような感じですね。
Web系エンジニアに転職する
教養として基礎を身につける
在宅でフリーランスを目指す
独自のサービスを作って起業する
まずは上記のように、あなたが目指す先を思い描いたうえでさらに掘り下げていけると、学習内容もさらに明確になり、モチベーションも上がります。
例えば、Web系エンジニアへの転職を目指す場合でも、転職する地域や転職先に求める条件によって状況は変わります。
あなたがまだ20代で、これからガンガンとスキルを身につけて行きたい。独り身だし場所は自由に選べるというのであれば、東京のスタートアップ企業でWeb系エンジニアを目指すのが王道かと思います。
後述の「3. 学習する言語を決める」でも説明しますが、上記のような場合、スタートアップでよく利用されるプログラミング言語、Ruby を覚えるべきということもわかってきます。
なるべく具体的な目的になるように掘り下げてみましょう。
Step 2. どんなものを作るか決める
学習する目的が決まれば、ある程度の方向性が決まります。
「プログラミング初心者は作りたいものを決めて学習しましょう」とよく言われていますが、実際作りたいものって言われてもピンとこないのがほとんどだと思います。
作りたいものがあるに越したことはないのですが、思いつかない場合、目的を達成するために最適なものを作るという観点で考えてみましょう。
Webエンジニアなら行きたい企業のWebサービスの簡易版を作ってみる、フリーランスなら需要の多そうな言語で ToDo アプリを作ってみるなど。
作るものを決めることで必要になる知識や技術が明確になります。
Step 3. 学習する言語を決める
言語は次のいずれかの方法で決めるのがいいです。
需要のある言語を選ぶ
作りたいものに最適な言語を選ぶ
転職先に合わせて選ぶ
プログラミング言語は、1つ覚えれば他の言語を覚えるハードルも下がります。
ですが、未経験からエンジニアとしてキャリアを始める場合は、最初に選んだ言語を軸にしてキャリアを歩むことがメインになることがほとんどです。
他の技術を学び、言語の壁を超えて活躍することももちろん可能ですが、学習コストや実績作りが必要になることも覚えておきましょう。
Step 4. 学習を始める
作りたいものが決まり、使用するプログラミング言語も決まりました。
ここからは作りたいものを実現するためにどんな技術が必要か、どう作ればいいのかなどインプットとアウトプットを並行しながら学習を進めていきます。
まずは無料の学習サイトを利用してプログラミングとはどんな感じなのか体感してみましょう。
Progate
ドットインストール
ある程度慣れてきたら初心者にとっては鬼門でもある環境構築を行います。
コンソール(黒い画面)の操作なども覚える必要があり、ちょっとした違いでもチュートリアル通りに動かない場合も多いので、何回も作っては壊すことを初めから想定しておくと心が折れずに済むと思います。
知らない単語がでてきたらとりあえずググる。技術的に理解できなくてもとりあえず進める。手を動かしながらイメージを掴めるように進めていきましょう!
初心者におすすめのプログラミング言語
どのプログラミング言語を学ぶか迷った場合に参考にできる、おすすめのプログラミング言語を紹介します。
Java
需要が多いことがおすすめの理由です。
Java は Windows や Mac など、OS を問わず動作させることができるので、デスクトップからWebまで幅広く利用されています。
後述の PHP / Python / Ruby などのスクリプト言語とは違い、静的型付け言語という少しお堅い言語なので覚えるのは少し苦労するかもしれませんが、プログラミングの基本をしっかり身に着けることができます。
PHP
Webに特化している言語で、Java に次いで需要が多いのが PHP です。
簡単なWebサイトの作成から、本格的なWebサービスまで開発が可能です。
ブログで有名な WordPress も PHP で作られています。
Python
AI・人工知能を開発したいなら Python 一択です。
また、AI・人工知能に限らず、データ分析や Web の情報収集なども得意分野としているうえにシンプルな書き方なので今熱い言語と言えます。
Ruby
PHP と並んで Web系でよく使われる言語で、特にスタートアップ企業で多く使われている印象です。
ベンチャーやスタートアップでモダンな技術を身につけたい方におすすめ。
C#
Unity でのゲーム開発や、Windows 向けのアプリケーションで主に使われています。
静的型付け言語は難しいと言われますが、VisualStudio の優秀で強力なサポートを受けながら学習ができます。
初心者がつまづきやすいポイント
ここでは初心者がプログラミング学習を進めていく中でつまづきやすいポイントについて解説していきます。
インプットばかりでアウトプットをしない
インプットはもちろん大切なのですが、アウトプットしないといつまでもプログラミングが身につきません。
プログラミングは実際に書いて、わからないところを調べてまた書いて、を繰り返すことで覚えられるものだからです。
ちなみにここで言うアウトプットとは、調べながらソースコードを書いてみたり、どんな構成でプログラムを作るか設計してみたりすることを指しています。
インプットすることで満足してしまいがちですが、学んだ内容はアウトプットして初めて身につくものだと覚えておきましょう。
調べようとした目的からそれてしまう
調べていく中で、わからない単語、理解できない内容が次々と出てくることで、本来調べたかった内容とは全く違う方向に行ってしまいがちです。
これはエンジニアならあるあるで、経験者でもやってしまうことです。
理解できない内容を調べること自体はとても素晴らしく大切なのですが、理解できるまでに必要な知識が足りなさすぎる場合があります。
このような場合は、諦めて知っている人に聞いてみる、もしくは違う方法を考えてみるなどしないと、いつまでたっても調べものが終わりません。
完璧を求めすぎてしまう
一度で完璧を目指すべきではないことを知っておきましょう。
最初から完璧を目指すよりも、作っては壊しを繰り返す方が、良いものができる可能性は高いからです。
例えば、学習を進めていく中で綺麗なプログラムを書きましょうといった内容を見かけることになると思います。
読みやすく綺麗なプログラムを書くことでのメリットはいくつもありますが、最初は汚くてもいいので思い描いた成果物を作り上げることを最優先に進めましょう。
汚く書いてしまったとしても後から修正できます。
まとめ:アウトプット多めで学習しよう
この記事では、プログラミングとは何なのか、プログラミング学習の4ステップを紹介してきました。
プログラミング自体はそれほど難しいものではないのですが、作業するための環境構築やコンピューター、WebなどのIT関連の知識が幅広く難しいです。
必要になったら学ぶくらいの気持ちで、諦めずに学習を継続していきましょう。
Discussion