最大数万円お得になるセール情報まとめ ≫

プログラミング独学は何から始めれば良いのか手順を解説【独学歴約10年】

どうも、パソコンブロガーのケンさん(@pasolog_ken)です。

  • プログラミングを勉強したいけど、何から始めれば良いか分からない…
  • ネットで調べてもプログラミングスクールの情報ばっかりで結局分からない…
  • 間違った方法で初めて遠回りするのが嫌だ

ネットや本を参考にプログラミングを始めようとした初心者が「結局何から始めれば良いの?」と最初の一歩で挫折してしまうケースは非常に多いです。

 

私は、高校生からプログラミングを独学で始めて約10年経ちます。文系新卒で大手IT企業に就職し、それなりに作りたいものを自由自在に作れるようになりました。

しかし、その10年の間、何度も挫折し失敗を繰り返し、たくさんの遠回りをしてきました。

 

そこでこの記事では、遠回りした経験も踏まえ、初心者でも迷わずに努力さえすれば、プログラミングを効率的に学べるよう、途中で挫折しないよう何から始めれば良いのか解説していきます。

 

この記事を読めば、趣味や仕事(就職・転職)でプログラミングを使えるまでに本当に必要な手順が分かります。

 

 

この記事の著者

パソコンブロガー ケンさん

PC歴20年/自作,プログラミング歴10年、文系新卒でSEとしてIT企業に入り、スマホアプリ/Windowsアプリ開発に携わる。 ハード,ソフト面で長年の知識,経験を元に初心者向けにPCを解説 詳細プロフィール

プログラミングは何から始めれば良い?

まず、先に言っておきたいのが、

  • プログラミングを学びたい!
  • これを作ってみたい!

という熱意が先行して、早速に作りたいものを作り始めるというのは間違いです。

 

ただ、作りたいものがあることが悪いわけではありません。

プログラミングを学ぶ上で、これから何度も挫折しかけるかもしれませんが、その時にモチベーションになるからです。

 

ただ、事前知識・基礎知識を学ぶ前に、作り始めても挫折してしまう可能性が高くなってしまうので、まずは学習です。

 

例えば、車の免許を取る際に、自動車教習でいきなり車道に出て運転をするということはありませんよね。

事前に、座学で車のシステムや標識などの必要な知識を学び、自動車教習の敷地内で運転を練習した後に、実際に公道に出て練習するという手順になっています。

 

プログラミングも同じで、書籍やWebの学習サイトなどでプログラミングを学びつつ、書いていることを試して理解を深めます。

 

書籍なり、Webサイトなり一通り学習を終えたら、プログラミングをする上で必要な基礎知識は、完ぺきとは言えませんが、ある程度付いているはずです。

その後に、自分の作りたいものを実際に作っていくという流れになります。

 

何か作りたいものが決まっているというのは、今後モチベーションを維持する上でとても大切ですが、ひとまず頭の中だけにしまっておきましょう。

 

プログラミングを始める前に、”目的・モチベーション”や”学習方法”が重要になってきます。

 

それを明確にする前に、自分の作りたいものをプログラミングしていくと、エラーなどが多発して思った通りに動かせず、早い段階で挫折します。

経験上、仮に挫折をしなかったとしても、非常に遠回りで時間のかかる学習となります。

 

挫折や遠回りをしないために、次の6つのことから始めましょう。

  1. プログラミングをどういう目的で学びたいのか明確にする。
  2. プログラミングで何をしたいのか、何を作りたいのかを決める。(プログラミング言語を決める)
  3. 作りたいもの、言語に適した学習方法を決める。
  4. プログラミングに必要なパソコンを用意する。
  5. 目的に応じたプログラミングをする。
  6. 実際に作ってみたいものをプログラミングする

 

①プログラミングをどういう目的で学びたいのか明確にする。

まずは、プログラミングを「どういう目的でプログラミングを学ぶのか?」をはっきりさせておきましょう。

なぜなら、

“目的”が、プログラムのエラーなどで行き詰った際に、挫折せずに乗り越えるための”モチベーション”に繋がる

からです。

 

この目的が無ければ、少し行き詰ると”続ける理由”が無くなってしまうので、挫折します。

 

例えば、

  • プログラミングを覚えてIT企業に就職する。
  • 潰しの利くプログラミングスキルを持っておきたい。
  • 何か自分が作りたいものを形にしてみたい。

などです。

 

私の場合は、当時高校生で書籍代もケチって、Web上で体系的に学習できるサイトもない上に、早々に作りたいものを作り始めていたので、行き詰る度、数日、数週間放置するということを繰り返していました。

このまま放置してプログラミングを諦めれば挫折ということになっていましたが、それでも向き合い続けたのは

  • 自分で作ってみたいものがあったから。
  • プログラムが高速にデータを処理できるということを目の当たりにして、このスキルがあれば将来必ずプログラミングができない人と比べて、圧倒的な生産性を出せると”確信”していたから。

です。

 

実際に、パソログで紹介している実機レビューのベンチマーク結果を収集するために、プログラムを作って運用していますが、かなり時間短縮に繋がっていたりします。(1つパソコンをレビューするのに半日~1日程度)

 

このように、途中で行き詰った際に、挫折しないだけのモチベーションを維持するために、”目的”があった方が良いです。

 

②プログラミングで何をしたいのか、何を作りたいのかを決める。(プログラミング言語を決める)

次のプログラミングで何を作りたいのかを決めます。

これは、

作りたいものによって、学習するプログラミング言語、開発するためのツール、学習方法などが変わってくるため

です。

 

プログラミングと一言で言っても、プログラミングで作れるものは色々あります。

例えば、

  • Webサイトを作りたい場合は、Html, PHP, Javascript
  • Windowsアプリケーションを作りたい場合は、C#
  • スマホアプリを作りたい場合は、AndroidアプリだとJava, Kotorin, iOSアプリだとObjectice-C, Swift

という形で、作りたいものに対して、プログラミング言語、開発ツールがある程度決まってきます。

また、書籍、学習サイト、スクールなどでプログラミングを学習する際に、言語によって学習内容が変わってきます。

 

プログラミングを始めようとちょっと調べた方であれば、C#, Java, Pythonといった言葉を目にしたことがあると思いますが、これがプログラミング言語です。

基本的に、WindowsアプリはC#, エクセルのマクロはVBAというように作りたいものによって言語が決まってきます。

 

作りたいもの別の言語一覧

開発物主要な言語
Windows向けアプリケーションC#, VB
Mac向けアプリケーションObjective-C, Swift
Web系
(サイト/通販サイト/ブログなど)
Html, Javascript, php
(サイトによっては全部必要)
Android向けアプリケーションJava, Kotorin
iOS向けアプリケーションObjective-C, Swift
エクセルのマクロVBA
ゲームC#
データ処理/分析ツールPython
人工知能Python
組み込み系
(自動車/電化製品/ロボット等に組み込まれるプログラム)
C, C++

※この表はあくまで基本であって、それ以外の言語でも書ける場合がありますが、最初は作りたいものに対して情報が豊富という意味でもスタンダードな言語で学習することをおすすめします。

 

この言語によって、学習する際の書籍、学習サイト、スクール選びも変わってくるので、

  • どういった分野に興味があるのか?
  • どういったツールを作りたいのか?

といったことから絞ると良いと思います。

 

プログラミングの学習を始める前に、”自分が何を作りたいのか“を明確にしておきましょう。

言語選びに必要なだけでなく、目的の部分でも解説したように、作りたいものが無いまま学習してもモチベーションは続きません。

ケンさん

挫折の原因になるで!

 

最終的にIT企業に就職・転職してお金を稼ぐためにプログラミングを学習したいから作りたいものなんて無い!

という方も、スマホアプリ開発に携わってみたい、サイト開発に携わってみたいなどがあると思うので、そこから何を作りたいのか落とし込んでいきましょう。

 

また、別のものを作りたくなって新しく言語を覚えたいという場合は、最初の言語をしっかり勉強していれば、それほど時間は掛からないと思います。

そのため、「1つの言語で突き進まないといけないので、言語は慎重に選ばないと…」と思わなくて大丈夫です。

プログラムの書き方は若干変わるので覚え直す必要はありますが、プログラムを書く根本的なところは変わらないので、一から覚え直すということは無いありません。

 

私は結構、Windowsアプリ作ってみたい!スマホアプリ作ってみたい!人工知能作ってみたい!と色々やってきたので、C#, Java, Python, Html, javascript, php, VBA, Objective-C, Rubyと色々な言語が使えます。

始めに使った言語が一番時間が掛かりましたが、2つ目以降の言語は、全く苦労していないというのは嘘になりますが、1つ目ほど苦労していないことは確かですね。

 

以上を踏まえて、自分が何を作ってみたいのかを決めて、その言語からチャレンジするのが良いかと思います。

 

③作りたいもの、言語に適した学習方法を決める。

次に学習方法を決めておきます。

 

プログラミングを学習する方法は、主に次の3つです。

  1. 書籍を使う方法
  2. ネット上のプログラミング学習サイトを利用する方法
  3. スクールに入り学習する方法

 

基本的に、①②に関しては、1人で黙々と学習する方法になります。

完全に独学というスタイルですね。

 

(書籍代を除くと)無料で学習できコストを抑えることができる一方で、分からないところが出てきた際に誰かに聞くということができません。

プログラミングの基本的な部分(if文とかfor文など)を学ぶ分には構わないですが、自分で何か1つツールを作ろうとした時に必ず思い通りに動作しないということが起きるので、その時に苦労すると思いますが、QiitaなどのIT向け質問サイトなどを活用することで先に進めると思います。

 

③に関しては、誰かに教えてもらったり、分からないところを質問できるというメリットがありますが、10万~20万円前後の費用が掛かってきます。

転職のサポートもしてくれるところがあるので、「仕事としてプログラミングを覚えたい!」という方は、学習効率を最大化するため、スクールがおすすめです。

 

とは言え、いきなりスクールを申し込むことはおすすめできません。

①②で軽く試した後、「自分はプログラミング向いてそうだな…」と感じたならスクールに入るというのが良いと思います。

※①②をマスターしてからスクールに入るという意味ではなく、単純にプログラミングに向いてそうか、向いてないかを判断するため。

 

ケンさん

スクール入ってからプログラミング向いてない…ってなったらもったいなからな

 

主に3通りの学習方法を解説しましたが、ここから上で決めた”作りたいもの”、”プログラミング言語”に沿って学習をします。

例えば、書籍やWeb上の学習サイトで勉強していくのであれば、C#の本、Javaの本(C#の講座、Javaの講座)

また、スクールであれば、何を作るかによって講座が分かれていることが多いので、それに沿って選びます。

 

④プログラミングに必要なパソコンを用意する。

プログラミングを始めるためには、パソコンが必要となります。

 

ですが、

今持ってるパソコンでできるの?

どの程度のスペックが必要なの?

と疑問が出てくると思います。

 

結論から言うと、既に持っている場合は、とりあえずそのパソコンで進めて大丈夫です。

持っていない人は、10万円以内のミドルレンジ(中性能程度)のパソコンがおすすめですね。

 

詳しくは、プログラミングに必要な目安スペックを徹底解説!を参考にしてください。

 

基本的には、ノートPC, デスクトップPCに関わらず、ミドルレンジ(中性能)~ハイエンド(高性能)をおすすめしていますが、プログラミング自体それほどパソコンのスペックを必要せず、初学者向けのパソコンとなれば、10万円以内か少しはみ出るぐらいのミドルレンジのパソコンで十分です。

 

仮に、既に持っているパソコンがローエンド(低性能)なパソコンであったとしても、勉強用としては問題ないかなと思います。

ですが、作ったプログラムを実際に動作させるという段階で処理するデータが多く動作が遅かったり、プログラミングするための開発ツールが重く動作が遅いという段階で、買い替えを検討するという感じで大丈夫です。

 

また、スクールによっては、Macパソコンを自前で用意する必要があったりするので、スクールを考えている方は事前に確認しておきましょう。

 

⑤学習方法に沿ってプログラミングしてみる。

これで一通り、プログラミングをするために必要な”目的”, “作りたいもの”, “学習方法”, “パソコン”が揃いました。

ここからは、実際に自分で選んだ学習方法(書籍、Web・スクールの講座)に沿って、学習を始めます。

 

学習の進め方としては、次を繰り返していくことで、1つ1つ基本的な知識も身に付けていきます。

  • 書籍(Web・スクールの講座)などで学習する。
  • 学習したことを実際に自分でプログラミングする。
  • 期待通り動くか動作確認する。

 

一通り最後まで学習できれば、最低限、基本的なプログラミング知識は身についたかなという感じです。

冒頭の自動車教習の例で言うと、第一段階の座学や学校内での運転が終わった感じですね。

 

この学習が終えてから、自分が作りたいものをプログラミングしていくようにしましょう。

 

⑥実際に作ってみたいものをプログラミングする

では、実際に作ってみたいものをプログラミングしていきます。

しかし、実際にイメージしているものを作ろうとした時に、

今まで学習したことで本当に作れるの?

と疑問が出てくると思います。

 

結論から言うとできないと思います。

正直、書籍やWeb上の学習サイトで学習を進めている場合は、プログラミング言語に対して基本的な部分しか書かれていないので難しいと思います。

 

そのため、ここからは不足している知識をネットで1つ1つ検索して、実際に試して身に付けていくということが必要になります。

※スクールの場合は、何か1つ自分でプログラムを作るところまでがパッケージとなっていることが多いので問題ないと思います。

 

例えば、画像を読み込んで、拡大縮小やモザイクといった画像処理するツールを作りたいとします。

そうなれば、使っている書籍やWeb学習サイトにもよりますが、次のような方法は分からないと思います。

  • 画像ファイルを読み込む方法
  • 加工した画像を保存する方法
  • 画像に対して色々処理する方法

この辺りは、1つ1つ調べていく必要があります。

 

このようにして自分が作りたいプログラムでは、どんな処理をしないといけないかをイメージします。

これに対して、自分が今持っている知識を整理して、不足している部分を1つ1つ検索していくことで、自分が作りたいプログラムを実現できるように学習していきます。

また、自分が扱える技術を増やしていくことで、スキルアップしていきます。

上の例で言うと、モザイク、拡大処理だけでは不十分ですが、極めれば画像処理関連のスキルを身に付けたということになります。

 

IT企業への就職・転職を目標としている場合は、担当するプロジェクト毎に使う言語も使う技術も全然違います。

プロジェクトが変われば、また新しいことを勉強する必要がありますし、同じプロジェクトでも機能追加などをする際に知らないことを調べていく必要が出てきたりします。

そのため、勉強していくのが苦痛という方は、正直、あまり向いていないと思います。

 

私の場合、比較的短期スパンでプロジェクトが変わっていたので、スマホアプリ、Windowsアプリ開発で言語は色々触りましたし、Bluetooth通信、超音波通信、画像認識、データベースと色々な技術を学びました。

ここを「へぇー、こんな技術あるんだ!自分もやってみたい!」と楽しんで学習できる人は向いていますね。

 

 

まとめ:私はプログラミングを始めた時、今後生きていく上で”必ず役立つと確信”して始め、実現しました。

一通り、これからプログラミングを始めようとする方向けに、挫折せず、遠回りせずに効率的に学習するための方法を解説しました。

 

もう一度まとめると次の6つでしたね。

  1. プログラミングをどういう目的で学びたいのか明確にする。
  2. プログラミングで何をしたいのか、何を作りたいのかを決める。(プログラミング言語を決める)
  3. 作りたいもの、言語に適した学習方法を決める。
  4. プログラミングに必要なパソコンを用意する。
  5. 目的に応じたプログラミングをする。
  6. 実際に作ってみたいものをプログラミングする

 

プログラミングを進める上で、思った通りプログラムが動かなかったり、エラーが発生して解決に時間が掛かったり、ということが”絶対”に起きます。

約10年プログラミングをしてきた私も、新しい言語や技術を使う時はこうなります。

 

その時に、挫折せずに突き進めるかが”非常に重要”になってきます。

 

私の場合は、次の2つがプログラミングをする目的でした。

  • 自分で作ってみたいものがあったから。
  • プログラムが高速にデータを処理できるということを目の当たりにして、このスキルがあれば将来必ずプログラミングができない人と比べて、圧倒的な生産性を出せると”確信”していたから。

 

当時、プログラミングを始めた時は高校生でお金もないので、書籍代をケチって、Web上で体系的に学習できるサイトもない上に、早々に作りたいものを作り始めていたので、エラーの連続でした。

行き詰る度、数日、数週間放置するということを繰り返していましたが、そこで挫折しなかったのは、目的があったからです。

この目的がモチベーションに繋がり、またチャレンジしよう!という気になっていました。

 

実際に、今では小規模なツールを色々作っており、作業の効率化を図ることができています。

このようにプログラミングを学ぶ目的がある方は、素晴らしいスキルなので、ぜひチャレンジしてみて下さい!



どうも、ケンさん(@pasolog_ken)でした。

コメントを残す

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