MENU
ブログランキング・にほんブログ村へ
Ryo's Blog - にほんブログ村

ブログサークル
ブログにフォーカスしたコミュニティーサービス(SNS)。同じ趣味の仲間とつながろう!

〜プログラミングの前提知識を身につけよう③〜

目次

※まずはじめに

未経験から一人前のエンジニアになる為に一番やってはいけない事は、「闇雲にプログラミング学習をしてしまう」事です。正しい前提情報を知らないままプログラミング学習を始めてしまうと、エンジニアになるまでに何倍もの時間がかかってしまいます。プログラミングを始める前に必ず知っておくべき情報を網羅的にインプットすることで正しい手順と正しい心構えでプログラミングに臨める状態を目指しましょう。

  • 「どのようにプログラミング学習を進めればよいのだろう」
  • 「エンジニアになるためにはどのような手順が必要なのか」
  • 「最速でプログラミングを身につけるためのコツが知りたい」

上記のような疑問がまだ残っている方は必読です。

そして何ができるようになるか?

  • 最短でプログラミングを習得できるようになる
  • プログラミングでどんなモノを作れるようになるのかイメージが湧く
  • エラーの解決方法がわかる
  • オリジナルアプリの開発工程がわかる

プログラミング学習を始める

  • 文系でもプログラミングを習得できるのか
  • 挫折しない学習方法

①文系でもプログラミングを習得できる理由

「文系でもプログラミングを習得できるのだろうか」これは、プログラミング学習を始めようと思っている方に多い不安でした。プログラミングが現在ほど普及していなかった頃は、「プログラミング=理数系の分野」というイメージが根強くありました。

しかし、現在は小学生でもプログラミングを行う時代です。そもそも、プログラミングには数学的な知識はほとんど必要ありません。[br-xs]これから、文系・理系問わず誰でもプログラミングを習得できる理由を解説します。

誰でもプログラミングを習得できる5つの理由

①学習環境の整備

近年、プログラミングスクールが大幅に増えてきています。子供向け・社会人向けのスクールや、就職・転職に強いスクールなど多岐に渡ります。また、エンジニアの供給不足やプログラミング教育の必要性の高まりによって、企業内でもエンジニアの育成環境が変わってきています。

未経験者でも一からプログラミング教育を行う仕組みを作り、一人前まで育成してくれる企業も数多くあります。プログラミングやエンジニアリングといったスキルを習得するのに、特別な才能は必要ありません。その人の適正や学習量、現場での慣れといった要素が大きく影響してます。つまり、やる気さえあればプログラミングは出来るという事です。

②無料学習サービスの普及

10年前であれば、プログラミングを習得しようとするとそれなりのお金と時間を確保する必要がありました。期間でいえば、最低でも1年は必要でした。学習教材も、現在のように誰にでもわかるように工夫されている教材はほとんどありませんでした。

現在では、プロのエンジニアが親切に動画・音声つきでプログラミング解説をしている、無料サービスも数多く登場し、プログラミング学習のハードルは大幅に下がりました。パソコン1台、ブラウザ1つあれば簡単にプログラミング学習が出来るサービスもたくさんあります。プログラミング学習に対する金銭・時間的コストが大きく下がってきており、一昔前に比べると、プログラミングスキルの習得がずっと簡単になってきています。

③ 良書の増加と見つけやすさの向上

以前からプログラミングの学習本はたくさんありました。しかし初心者にとって、自分のレベルに合った教材を見つけるのは一苦労です。せっかく本を購入しても内容が難しかったりするなど、教材選びは初心者がつまずきやすいポイントの1つでした。

しかし現在では、入門者・初心者でも理解できるようにわかりやすくまとめられた良書が大きく増えました。中には教材を使って学習するうえで意識すべき事や、読む順番などをわかりやすくまとめて説明してくれているものもあります。それらを参考にしながら教材を選んでいけば、躓く事なく効率的にプログラミングを習得できます。

④便利なツールの出現

初心者が躓きやすいポイントのもう1つに、「プログラミングを学習する為の準備が大変である」という問題がありました。プログラミングの学習を始める時は、まず学習する言語を自分のパソコンで使えるようにしなくてはなりません。

例えばWebサービス開発用の言語(RubyやPHPなど)を使う時は、その言語自体をインストールする必要があります。このような準備の事を、「開発環境の構築」と言います。初心者にとってこの開発環境の構築はハードルが高く、ここで挫折してしまう人もいます。

しかし現在では、様々な開発環境がまとまったパッケージによって、以前よりも短い時間で開発環境を構築できるサービスが登場しています。

⑤コミュニティの発達

前述の通り、現在ではプログラミング学習のハードルが大きく下がりました。しかしそれでも、プログラミングの学習中にわからないことが出てきたりすると、躓いたりする事があります。実際に初心者の多くが、エラーを解決できずにモチベーションが保てなくなり、挫折してしまいます。

一昔前は情報が少なかったので、プログラミングができる人を見つけて直接聞いたり、海外のサイトにアクセスして自分で調べたりしなければなりませんでした。しかし現在では日本語のわかりやすい情報も増え、疑問が簡単に解決できるようになりました。

例えば、「teratail(テラテイル)」というサービスは、エンジニア同士で技術問題を解決できるQ&Aサイトです。「3分でわかる」というキャッチコピーからもわかるように、質問に対する返信が早いのが特徴です。このようなサイトを利用する事で、エラーで何時間も学習が止まるという問題を回避できます。

また、プログラミングに関する知見を記録・共有できるサービス「Qiita」もとても便利です。Qiitaでは、現役エンジニアたちが躓きやすいポイントなどをまとめてくれています。お気に入り機能のような「ストック機能」を使えば、自分の役に立つ記事をいつでも見られる状態にできます。

Qiitaの他には、世界で最も活発なQ&Aサイトとも言われている、「Stack Overflow(スタック・オーバーフロー)」などがあります。Stack Overflow(スタック・オーバーフロー)は簡単にいえば、「Yahoo知恵袋」のエンジニア版です。質問すればプログラミングに熱心な方々がわかりやすく答えてくれるので、こちらもぜひ利用したいサービスです。

これらのサービスを上手く活用すれば、初心者が躓きやすいポイントの1つである「エラー」も解決出来るようになります。

②挫折しない学習方法を身につけよう

  • 「本当にプログラミングを習得できるのだろうか」
  • 「途中で挫折してしまいそう……」

プログラミングの初心者にとって、プログラミング学習は未知の領域なので不安の方が大きいです。プログラミング学習は、「続かない」「途中でやらなくなった」「自分で進められない」といった理由から、挫折する人がたくさんいます。せっかく始めたのに、途中で挫折してしまうのは嫌ですよね。

そこで今回は、プログラミング初心者が挫折しやすいポイントとその対策について解説します。

以下の2点を意識しながら読み進めてください。

  • 独学の課題
  • その課題を解決する方法

※なお、独学の課題については、全て読むのが面倒な方の為に最後に要点をまとめています。

独学の課題1:時間の壁

独学のみでプログラミングスキルを身につけようとした場合、約1000時間もの学習時間が必要だと言われています。どのようにその時間を確保するか大きな課題です。

対策1:現在の時間の使い方を把握する

時間を無駄に出来ない事がおわかりいただけたでしょうか?

時間を無駄にしない為にはまず、自分が現在どのように時間を使っているか把握する必要があります。意外と自分が何にどれだけ時間を使っているか、把握出来ていないものです。その把握できていない時間は、時間を無駄にしている事が多いです。

そこで、まず最初に1日の時間の使い方を記録してみてください。時間管理ができる便利なツールとして、「toggl(トグル)」があります。行動別に時間を測定し、それをグラフにして視覚化できるツールです。1日が終わったら次は1週間、「何に時間を費やしているか」「どれくらい行動できているか」を調べてみてください。

対策2:スキマ時間を確保する

CITIZENの調査によると、サラリーマンの平均可処分時間、つまり「スキマ時間」は平均で2.6時間/日だそうです。週5日働くサラリーマンであれば、平日に13時間、土日に3時間ずつ学習時間を確保すれば、1週間で約20時間、つまり1ヶ月で約80時間になります。

仮に1000時間でプログラミングを習得出来るとすれば、約1年かかる計算になります。通勤時間に動画を見たり、通勤前後にカフェで学習したりするなど、いかにして平日のスキマ時間を有効活用出来るかが重要になってきます。

しかし、SNSやゲーム、漫画、テレビなど、スキマ時間には誘惑がたくさん存在します。その為、計画通りに学習を進めたいのであれば、時間を確保しつつ、モチベーションをしっかりと保つ必要があります。

独学の課題1とその対策:まとめ(読むのが面倒な方向け)

前述の通り、独学のみでプログラミングスキルを身につけようとすると、一般的に約1000時間もの学習時間が必要だと言われています。時間がどれだけあっても足りないと感じてしまうほど、長い道のりかもしれません。そんな時に大切なのは、まず現在の時間の使い方を把握する事でした。

利用するツールは「toggl(トグル)」です。まずは、自分が現在どんな事に時間を使っているのか把握する事から始めてください。次に意識すべきは、スキマ時間を有効活用するという事です。サラリーマンの平均的なスキマ時間は2.6時間/日なので、仮に学習時間を1000時間とすると、1年分のスキマ時間で確保できる計算になります。

以上をまとめると、時間の壁を乗り越える為には以下のポイントを意識してください。

  • toggl(トグル)などを利用して、現在の時間の使い方を把握する
  • スキマ時間を有効活用する

独学の課題2:モチベーションの壁

プログラミング学習は、そのほとんどがエラーとの戦いといっても過言ではありません。実際に、プログラミング学習に費やす時間の約8割はエラーの解決にかかると言われています。つまり、プログラミング学習は躓いている時間がほとんどだという事になります。プログラミングを少しでも経験された方であれば、きっと共感していただけるのではないでしょうか。

その為、プログラミングの習得には、何度エラーにぶつかろうとも諦めない根気強さが必要になります。高いモチベーションを維持し続けられるかどうかが、挫折するかしないかの分かれ道になります。

対策1:目的・目標を決める

モチベーションを保つために極めて重要な事は、「目的・目標を決めること」です。どんな事でもそうですが、ゴールがイメージできなければモチベーションは保てません。

  • まずは目的を決めること

「目的」と「目標」の違いをご存知でしょうか?

目的とは、「プログラミングを学習することで最終的にどうなりたいのか、どんな状態を実現したいのか」という事です。自分が心から望む目的を設定出来れば、それだけで挫折する可能性を大幅に減らせます。

なお、目的を設定するときに気をつけてほしい事が1つあります。それは、「プログラミングができるようになること」を目的にしない事です。「なんとなくプログラミングがやりたい」という目的では、楽しさを感じる事も出来ず、ほとんどの人がすぐに挫折してしまいます。

理想的なのは例えば、「新しいモノを見るのが好きなので、時間に縛られない働き方を実現する」といった目的がいいです。欲求で自分を動かす事が出来れば、学習を楽しいものに変える事が出来ます。

  • 目的に沿った目標を決める事

目標とは、目的を達成するまでのプロット、つまり道標です。一般的な目標としては、「自分が作りたいサービスを作る」のが効果的です。

対策2:学習を習慣化させる

目的や目標を設定すれば、確かにモチベーションは上がります。しかし、日頃からそれらの目的や目標を意識しなければ、どんどんモチベーションは下がってしまいます。

そこで大切なのが、習慣化です。「やる気」というモチベーションに左右されている状態では、日々の学習にムラが出てきます。そのムラを最小限にするために、学習を習慣化させることが大切になります。

では、プログラミング学習を習慣化させるには、どうすればよいのでしょうか。

実は、それにはコツがあります。そのコツとは、始めの頃は出来るだけ学習時間を短くし、動画学習など軽めの内容にする事です。そして徐々に学習時間を増やしていく事で、行動心理学的に習慣化されやすいと言われています。

独学の課題2とその対策:まとめ(読むのが面倒な方向け)

挫折するかしないかは、モチベーションを維持できるかどうかにかかっています。そして、モチベーション維持に大切なのが、目的と目標を決める事でした。

目的とは、「自分が成し遂げたい事」「プログラミング学習を終えた先に得たい成果」を指します。一方で、目標とは「設定した目的に対して前進できる通過点」の事を指します。

まずは目的を設定し、その後目的に沿った目標を立てて学習していきますが、その学習を習慣化させることも非常に大切です。学習を習慣化させるコツは、徐々に学習時間を増やしていく事です。少しずつ行動量を増やしていけば、行動心理学的にも習慣化しやすいと言われています。

以上をまとめると、モチベーションの壁を乗り越える為には、以下のポイントを意識しておきましょう。

  • 目的を設定する
  • 目的に沿った目標を設定する
  • 学習を習慣化させる
  • 習慣化させるには、学習時間を徐々に増やしていく

独学の課題3:最大の壁は自分

これまで時間・モチベーションという2つの壁を挙げましたが、最大の壁は自分自身です。時間やモチベーションの壁にぶつかり、プログラミングが理解できずに「難しい」「自分に向いていない」と思い込み、挫折してしまう人が多いです。

初心者がプログラミングを理解できないのは当たり前ですので、安心してください。一般的に、新しい事を始めて得意になるまで、約1万時間もかかると言われています。これは、「1万時間の法則」と言われる事もあります。初めのうちは理解できずに辛く感じると思いますが、継続する事が何より大切になります。

対策:自分に打ち勝つコツ

継続が大切であると述べましたが、継続するためには以下のようなコツが必要です。

  • 横のつながりを作る
  • 相談できる人を見つける

横のつながりを作る事は大切です。イベントに参加したりして、学習仲間を見つけて下さい。一緒に学習できる仲間がいれば心強く、継続しやすくなります。

また、相談できる人を見つけることも大切です。どうしても自分1人では理解できないときに、気軽に相談できる人がいるだけで、自分に合った学習方法や学習手順、その人の経験などを聞く事が出来ます。これにより、学習の方向性が明確になってモチベーションのアップに繋がります。

イベントに参加してみよう!!

横の繋がりを作る為に、まずはどんなイベントがあるのか探してみてください。そして、興味を持ったイベントには積極的に参加する事をおすすめします。不安もあるかと思いますが、まずは行動してみる事が大切です。イベントに参加して良い刺激を受ければ、プログラミング学習への意欲が高まります。また、参加者と横の繋がりを持ち、学習を継続する手助けにもなります。

プログラミング言語について知ろう

  • プログラミング言語がたくさん存在する理由
  • それぞれの言語で何が作れるのか

①プログラミング言語がたくさん存在する理由

プログラミング言語は200種類以上も存在すると言われています。「プログラミング言語が1つだったら迷わずに済むのに……」このように思った事はないでしょうか?

これからプログラミングを学習しようとしている初心者にとって、最初のハードルが「どの言語を選ぶか」です。そもそも言語が1つであれば悩む必要もありませんし、すべての開発で使う言語が同じであれば楽ですよね。それなのに、なぜプログラミング言語はたくさん存在するのでしょうか?

その理由を4つ解説します。

理由1. 向き不向きや使い勝手が異なる

プログラミング言語に限らず、世の中には似たような製品がたくさん溢れています。

包丁を例に挙げると、肉・魚・野菜・果物など、「切る」という用途は同じでも、それぞれの食材に合った包丁を使いますよね。

他にもボールペンを例に挙げます。黒いボールペンは世の中にたくさんありますよね。書き心地の良さや防水性(水に濡れてもにじまない)など、同じ黒いボールペンであってもたくさんの種類があります。

プログラミング言語も同じです。プログラミング言語にも向き不向きや使い勝手の違いがあり、それぞれの用途に合った言語を使ってプログラムを作成します。例えばJavaは大規模開発に向いていますが、RubyやPHPは逆に小規模開発に向いています。このように、より効率的にプログラムを作る為に、それぞれに特化した言語が生まれています。

理由2. 誰でも作れる

例えば新薬を開発し、販売するまでにはたくさんの治験と各関係機関への承認が必要となります。また、多くの資金や設備が必要であり、個人で開発するのはほぼ不可能です。

しかし、プログラミング言語にはそのようなプロセスや制約はありません。言語を作るのに制約がほとんどない為、作ろうと思えば個人・企業問わず言語を作る事が出来ます。

理由3. 技術進歩への探究心がある

新しいプログラミング言語が次々に生まれる1つの理由として、「より良いものを求める探究心」が挙げられます。新しく生まれる言語の多くは、それまでの言語の欠点を補ったり、それまでにできなかった事が出来たりしています。このように、エンジニアの多くは、より効率的かつ楽に開発する為の探究心が強いと言えます。

理由4. プログラミング言語を1つにするのは現実的ではない

かつて、プログラミング言語を統一しようとする動きがありました。

それが、1964年に生まれた「PL/I(ピーエルワン)」です。PL/Iは、以下を統合した言語です。

  • FORTRAN(フォートラン)の記述形式
  • COBOL(コボル)のレコード構造や入出力機能
  • ALGOL(アルゴル)のアルゴリズム記述能力

なお、名前の由来は「programming language one」です。つまり、プログラミング言語を1つにしようとしていたみたいです。しかし、言語の仕様が複雑で大規模だった為、大型機以外には広まりませんでした。このように、全ての言語を1つにするには乗り越えるべき課題が多く、現実的ではありません。

② それぞれの言語で何が作れるのか

これからプログラミングを学習しようとしている初心者にとって、以下のような悩みはつきものです。

  • 「どの言語を選べばよいかわからない」
  • 「言語によって作れるものに違いがあるのか」

初心者にとって言語選びは難しいポイントの1つです。そもそも現在使っているWebサービスやアプリが、どの言語で作られているかなどわかりませんよね。

よって、どの言語を選べばよいかイメージしにくいのは当然です。言語選びの基準は、「どんな仕事をしたいか」や「どんなものを作りたいか」によって異なります。そこで、言語別にどんなものが作れるのかネットで検索してみてください。

書籍・本

出典:絶対に挫折しない iPhoneアプリ開発「超」入門

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

ハンドルネーム:Ryo

SNSアカウント:Twitter

ブログ経歴:2022年7月開始

趣味:映画鑑賞・神社仏閣巡り

仕事:現在フリーランスとして活動しております。

始めた理由は、ITエンジニアになる為に必要なスキルだと思いはじめました。ブログの方針ですが、自身に基づいた内容を記載していきます。

人生に必要な役に立つ事柄など、大きく分けて5つ程です。

①:プログラミング・ITエンジニアに関すること
②:仕事・ビジネス・お金に関すること
③:対人関係などのコミュニケーションに関すること
④:暮らしに役立つ雑学・勉強に関すること
⑤:趣味や実体験に基づいてに関すること

目次