プログラミング学習のハードルを徹底的に下げるための記事

プログラミングの学習はコツを掴めば簡単ですが、コツを掴むまでが大変で、挫折する人が多いです。本記事では少しでも挫折者を減らすために、プログラミング初学者が心がけておくと良いことを紹介します

プログラミング初学者

プログラミング覚えて自由な働き方を手にいれたいな〜
でもどうやって勉強して良いかわからないし
とりあえず作業始めてもエラーばかりでつまらないな〜
こんな悩みにお答えします。

どーも、新卒エンジニアのえびじゅん(@ebijun1007)です!!

本記事では、プログラミング学習歴4年の僕が
プログラミング初学者に向けて、楽しくプログラミングを学ぶためのコツであったり
学習速度を上げるための方法をご紹介します。

プログラミングの学習について、質問等ありましたら上記TwitterのDMで対応してますので
お気軽にどうぞ

僕の熱意を込めた記事ですので、3000字と少し長めです。
適度に読み飛ばしながら、必要な部分だけ拾ってください。

プログラミングを学習したいけど、この記事読むのめんどくさいひとはこちら↓

では、行くぞ!!

プログラミングは幅広い

ひとくちにプログラミングと言っても、実は幅広い分野があります。

全てを網羅することは難しいですが、簡単に図示するとこんな感じです↓

では、順番に説明していきます

クライアント/サーバー

まず、プログラミングを始める前に、クライアントとサーバーの関係について説明したいと思います。

クライアント

クライアントとは、ユーザが触るデバイスのことでして
パソコンやタブレットPC、スマートフォンなどがクライアントになります。

サーバ

サーバとは、会社がサービスを提供するために使うデバイスのことでして
大型のパソコンだと思ってくれて問題ないです。

サーバは基本的には24時間365日無休で稼働し続けることが求められますが
そんな簡単には行かないので、エンジニアがメンテナンスする必要があります。

よくソーシャルゲームでメンテナンス時間がありますが、その時間帯はエンジニアがせこせこ働いてくれています。

フロントエンド/バックエンド

プログラミングを学習する上で、
自分がフロントエンドをやりたいのか、バックエンドをやりたいのか
を早めに決めておくと良いです。

フロントエンドとバックエンドの違いについては、Amazonを例に出して説明したいと思います。

フロントエンド

フロントエンドとは、ユーザが触る部分のことでして

  • 商品を検索するための検索フォーム
  • 検索語の商品一覧の表示の仕方
  • ユーザの購買意欲を高めるページデザイン

などがフロントエンドに当たります。

自分が書いたコードが、そのまま目に見える形で現れるので
比較的楽しみながらプログラミングを学ぶことができます。

ただし、若干デザインの才能が絡んで来ます。。。
僕は美術のセンスが皆無なので、結構苦労します。。。

バックエンド

バックエンドは、ユーザには見えない部分のプログラムになります。

  • ユーザの閲覧履歴を元に、オススメの商品が検索上位に来るようにする
  • ユーザがストレスを感じないように、ページの表示速度を上げる
  • 注文ボタンが押されたら、業者に発送依頼を送る

などなど。

バックエンドは、フロントエンドのように目に見える結果が返って来づらいので
少し抵抗感を感じやすいです。

また、ある種「職人技」のようなものが必要になるので、習得の難易度が高いです。

ですが、システムの質に直結しやすいのがバックエンドなので
見えないところでシステムを支える「縁の下の力持ち」に魅力を感じる人なら、やりがいを感じると思います。

最終的には、フロント・バックどちらもできるようになるのが望ましいですが
まずはどちらかに絞って、「脱・初学者」を目指しましょう。

学びたいプログラミング言語を決める

プログラミングは大きく分けて、フロントエンドとバックエンドの2つがあることを説明しました。

次にプログラミング言語の説明をしたいと思います。

先に説明しておきますが、
プログラミング言語は数が多すぎて、全てを学ぶのは無理です

ですが、基本的な概念はどの言語でも大きな違いはないので
1つの言語をある程度使えるようになると、初めて触る言語でもスンナリ移行できたりします。

ので、まず1つ、学びたい言語を決めましょう

簡単に一覧を作るとこんな感じです。

  • iPhoneのアプリを作りたい→Swift
  • Androidアプリを作りたい→Kotlin
  • Webページを作りたい→まずはHTML、CSS。その後は好みに応じて
  • 自分の作業を自動化したい→Python
  • 人工知能を触ってみたい→Python

比較的簡単な言語を選んでいます。

よく聞くCとかJavaは今の時代の初学者が学ぶ価値はないかなって感じです。
難易度的にも、仕事的にも手を出さない方が幸せになれますよ

作りたいものを決めて作ってみる

なんでも良いので、作りたいものを決めて作ってみましょう。

作りたいものが何もないな〜っていう人は
自分がよく使うアプリの一部分を真似してみる
のがオススメです。

フロントエンドを学びたければ、TwitterやInstagramの1画面だけを、HTMLとCSSだけで作ってみる
(ボタン等も存在するが、押しても何も動作しない状態:モックアップと呼びます)

バックエンドを学びたければ、電卓を作ってみたり、サイコロを作ってみるなどが
手軽に取り組めて、プログラミングの基礎を身につけることができます。

エラーの対処法

実際に作り始めると、おそらくエラーばかり出るかと思います。

ですが、それは初学者だからではなく、現場で働くエンジニアたちも同じです。
毎日エラーとの格闘で、1日に新しいコードを数行程度しか書かないこともあります。

プログラミング=エラーとの格闘です。

そんなエラーとどのようにして付き合えば良いか

まずは自分でとことん悩む

まずは、なぜエラーが出るのか、仮説を立てて
チマチマと修正案を試してみましょう。

大抵のエラーは英語で表示されますが、読めばわかるレベルですので
落ち着いてエラーを読んで、該当箇所を見直すと、打ち間違いだったりすることが多いです。

ググる

色々試したけどダメだった

そういうときは、グーグル先生の出番です。

エラーコードを短くして検索してみましょう。

初学者のエラーは、多くの先人エンジニアが経験してきたことなので
大概のエラーはググると答えが出て来ます。

プログラミング詳しい人に助けてもらう

自分で直す努力もしたし、ググったけどダメだった

ここでようやく、他の人に助けを求めましょう。

何か手詰まるとすぐに人に聞く人が多いですが
相手の時間を奪ってしまいますし、何より自分の力にならないので、まずは自分で試して、ダメなら人を頼りましょう

目安としては15分〜30分ぐらい、悩んでも調べても全く手応えが無かったら
そこで初めて人に相談するのが良いです。

放置する

詳しい人に聞いてもダメだった

ダメならもう、諦めるのも1つの手です。

案外次の日にコード読んでみると、意外とスンナリ解決したりします。
脳みそを休めるのもプログラミングの1つの作業ですよ

教材を消化するマンにならない

初学者が一番犯しがちなミスとして
ProgateやAidemyのようなプログラミング学習教材を利用して
プログラミングを学習した「つもり」になってしまうことです。

もちろん、両サービスともに素晴らしいものですが、
教材をクリアできるようにはなったが、自力で何かを作る能力はない状態になってしまいがちです。

正直なことを言うと、教材をこなしたからと言って、実力がつくわけではないです。

プログラミング教材の使い方として
自分が作りたい部分の教材を見て、自分の作品に取り入れていくというスタイルをオススメします。

良質な学習コンテンツの紹介

最後に、僕が購入した中で、オススメのプログラミング学習コンテンツを紹介したいと思います。
それがこちら↓

-Skill Hacks- 動画で学ぶWebアプリ開発講座

Web系の基礎である

  • HTML
  • CSS

それから、応用として

  • Ruby (Ruby on Rails)

を学習することができます。

正直、この教材を2〜3周こなして、自分の作品を作る力をつければ
Web系のIT企業に転職できるんじゃないかっていうレベルです。

漠然とプログラミングを学びたいけど、何から始めてよいかわからない人は
とりあえずこの教材を買っておけば間違いないかなと思います。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください