- プログラミングを勉強したいけど、何から始めれば良いか分からない…
- ネットで調べてもプログラミングスクールの情報ばっかりで結局分からない…
- 間違った方法で始めて遠回りするのが嫌だ
ネットや本を参考にプログラミングを始めようとした初心者が「結局何から始めれば良いの?」と最初の一歩で挫折してしまうケースが意外に多いです。
私は、高校生からプログラミングを独学で始めて約10年経ち、文系新卒でIT企業に就職し、それなりに作りたいものを自由自在に作れるようになりました。
しかし、その10年の間、何度も挫折し失敗を繰り返し、たくさんの遠回りをしてきました。
この記事では、遠回りした経験も踏まえ、初心者でも迷わずにプログラミングを学べるよう何から始めれば良いのか解説していきます。
また、プログラミングを始めるにあたり、
- 文系大学でも勉強できるのか
- 英語や数学は必要なのか
などの良くある質問も解説していきます。
プログラミングは何から始めるのか?
プログラミングを始めるにあたり、事前に色々と知っておくべきこと、決めておくべきことがあります。
挫折や遠回りをしないために、次の5つのことから始めます。
- プログラミングをどういう目的で学びたいのか明確にする。
- プログラミングで開発したいものやプログラミング言語を決める。
- プログラミングに必要なパソコンを用意する。
- 勉強方法を決めて、それに沿ってプログラミングを始める。
- ある程度プログラミングに慣れたら作りたいものを作ってみる。
①プログラミングをどういう目的で学びたいのか明確にする。
まずは、プログラミングを「どういう目的でプログラミングを学ぶのか?」をはっきりさせておきましょう。
なぜ、目的が重要かというと
プログラムがエラーや不具合で行き詰ることが多々あるので、その際に挫折せずに乗り越えるための”モチベーション“に繋がる
からです。
この目的が無ければ、少し行き詰ると”続ける理由“が無くなってしまうので、すぐに挫折します。
例えば、
- プログラミングを覚えてIT企業に就職する。
- 潰しの利くプログラミングスキルを持っておきたい。
- 何か自分が作りたいものを形にしてみたい。
などです。
ケンさん
私は、当時高校生で書籍代もケチって、Web上で体系的に学習できるサイトもない上に、早々に作りたいものを作り始めていたので、行き詰る度、数日、数週間放置することを繰り返していました。
このまま放置してプログラミングを諦めれば挫折になっていましたが、それでも向き合い続けたのは
- 自分で作ってみたいものがあったから。
- プログラムが人より高速にデータを処理するところを目の当たりにして、このスキルがあれば将来必ず圧倒的な生産性を出せると確信していたから。
です。
ケンさん
実際に、パソログで紹介している実機レビューのベンチマーク結果を収集するために、自作のプログラムを活用していますが、かなり時間短縮に繋がっていたりします。
また、Webページの情報収集であったり、株価データの分析であったり、多くのことをプログラムで効率化・自動化しています。
このように途中で行き詰った際に、挫折しないだけのモチベーションを保つためにも、”目的”は重要です。
≫ 関連記事:「目的」はプログラミング学習の成功の秘訣【独学歴約10年】
②プログラミングで開発したいものやプログラミング言語を決める。
次にプログラミングでどういったジャンルのものを作りたいのかを決めます。
例えば、Webページ、スマホアプリ、Windows向けアプリ、AI、ゲームなどです。
作りたいジャンルを決めることで、
学習するプログラミング言語、開発するためのツール、学習方法が変わってくるため
です。
プログラミング言語(※)によって、学習に使う学習方法が変わってくるので、こちらも決める必要があります。
例えば、書籍を使って学習する場合、プログラミング言語毎に書籍があるので、プログラミング言語が決まっていないと書籍を選ぶことができないためです。
学習方法については、後程詳しく解説しますが、Web上の学習サイトやプログラミングスクールの場合でも同様で、開発するジャンルや言語が決まっていないと選べないです。
とは言っても、どういったジャンルのものを開発したいかが決まれば、大体使うプログラミング言語も決まってきます。
※プログラミング言語とはプログラムを記述するための言語で、C#, Java, Python, PHP, 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++ |
この言語によって、学習する際の書籍、学習サイト、スクール選びも変わってくるので、
- どういった分野に興味があるのか?
- どういったツールを作りたいのか?
という観点から絞ると良いと思います。
また、別のものを作りたくなって新しく言語を覚えたい場合は、最初の言語をしっかり勉強していれば、2つ目以降はそれほど時間は掛からないと思います。
そのため、「ここで決めたら後から変えられなさそうだから、慎重に選ばないと…」と思わなくて大丈夫です。
プログラムの書き方は若干変わるので覚え直す必要はありますが、プログラムを書く根本的なところは変わらないので、一から覚え直すことは無いありません。
私は、Windowsアプリ作ってみたい!スマホアプリ作ってみたい!人工知能作ってみたい!と作りたいものがコロコロ変わるので、その度に新しい言語を覚えてきました。
結果的に、C#, Java, Python, Html, javascript, php, VBA, Objective-C, Rubyと色々な言語が使えるのですが、始めに使った言語が一番時間が掛かりました。
2つ目以降の言語は、全く苦労しないというのは嘘になりますが1つ目ほど苦労していないですね。
③プログラミングに必要なパソコンを用意する。
プログラミングを始めるためには、パソコンが必須なので持っていない場合は購入しましょう。
また、パソコンを既に持っている方でも、自分が開発したいジャンルに対してスペックが適切かどうか確認しておきましょう。
とは言えっても
今持ってるパソコンでできるの?
どの程度のスペックが必要なの?
と疑問が出てくると思います。
結論から言うと、
・既に持っている場合は、とりあえずそのパソコンで進めて大丈夫
・持っていない人は、10万円以内のミドルレンジ(中性能程度)のパソコンがおすすめ
開発するジャンル別のスペックやおすすめのパソコンについては、こちらを参考にして下さい。
≫ 関連記事:プログラミングに必要な目安スペックを徹底解説!
基本的には、ノートPC, デスクトップPCに関わらず、ミドルレンジ(中性能)~ハイエンド(高性能)をおすすめです。
プログラミング自体は、それほどパソコンのスペックを必要せず、初学者向けのパソコンとなれば、10万円前後のミドルレンジのパソコンで十分です。
仮に、既に持っているパソコンがローエンド(低性能)なパソコンであったとしても、最悪、勉強用としては問題ないかなと思います。
ですが、次のような性能不足を感じる場合は買い替えも検討しましょう。
- プログラミングするための開発ツールが重く動作が遅い。
- 処理するデータや計算量が多く処理が終わるのに時間が掛かる。
また、スクールによっては、Macパソコンを自前で用意する必要があったりするので、スクールを考えている方は事前に確認しておきましょう。
④勉強方法を決めて、それに沿ってプログラミングを始める。
プログラミングの勉強方法は、主に次の3つです。
- 書籍を使う方法
- ネット上のプログラミング学習サイトを利用する方法
- スクールに入り勉強する方法
基本的に、①②に関しては、1人で黙々と学習する方法になります。
基本的に独学というスタイルですね。
スクールと比べると、書籍代や無料の学習サイトなのでコストを抑えることができます。
しかし、1人で勉強を進めるので、分からないところが出てきた時に誰かに聞くということができません。
もし、行き詰った際は、QiitaなどのIT向け質問サイトなどを活用することになります。
③に関しては、誰かに教えてもらったり、分からないところを質問できるというメリットがありますが、10万~50万円前後の費用が掛かってきます。
転職のサポートもしてくれるところがあるので、「仕事としてプログラミングを覚えたい!」という方は、学習効率を最大化するため、スクールがおすすめです。
とは言え、いきなりスクールを申し込むことはおすすめできません。
①②で軽く試した後、「自分はプログラミング向いてそうだな…」と感じたならスクールに入るというのが良いと思います。
※①②をマスターしてからスクールに入るという意味ではなく、単純にプログラミングに向いてそうか、向いてないかを判断するため。
ケンさん
主に3通りの勉強方法を解説しましたが、この中から勉強方法を決めます。
さらに、上で決めた作りたいジャンルやプログラミング言語に応じた、書籍や学習サイト、スクールのプラン・講座を選びます。
⑤ある程度プログラミングに慣れたら作りたいものを作ってみる。
書籍や学習サイトで一通り勉強できたら、自分が作りたいツールなどを一度作ってみましょう。
IT企業への転職を目標にする場合は、勉強の時間効率を高めるために、スクールがおすすめです。
その場合は、スクールが終われば就職になると思うので、自分が作りたいものを開発する時間は無いかなと思います。
しかし、高校生や大学生がIT企業の就職やフリーランスのために、プログラミングを覚える場合は、一度勉強した集大成として、小規模なもので良いので自分の作りたいものを作ることをおすすめします。
これをすることで次のようなメリットがあります。
- 今の自分に何が足りないのか、追加でなにを勉強すれば良いか分かる
- エラー・不具合時に自分で調べて解決できる力が身に付く
- IT企業の面接時に、プログラミングに必要な素質があることをアピールできる
- フリーランスの場合、営業する際のポートフォリオになる
IT企業に就職するのであれば、次のようなスキルが必要になあってきます。
- 継続的な勉強
- スキルの不足部分の把握と勉強
- エラー・不具合への対処
書籍や学習サイトのみの勉強だと、この辺りが身に付きづらいです。
それを自分で作りたいものを開発することができる上、面接等でもアピールポイントになります。
しかし、実際に作りたいものをどういう風にプログラミングしようと考えた時に、
今まで学習したことで本当に作れるの?
と疑問が出てくると思います。
結論から言うとできないと思います。
書籍やWeb上の学習サイトで学習を進めている場合は、プログラミング言語の基本的な部分しか勉強できないことが多いので難しいと思います。
そのため、ここからは不足している知識をネットで1つ1つ検索して、実際に試して身に付けていくということが必要になります。
例えば、画像を読み込んで、拡大縮小やモザイクといった画像処理するツールを作りたいとします。
書籍やWeb学習サイトでは、ファイルの読み込み・保存の方法は勉強できるかもしれませんが、画像に対して色々処理する方法は分からないと思います。
この画像に対して色々処理していく方法を調べるという感じですね。
このように自分が作りたいものに対して、今自分の技術と不足している技術を把握して、不足しているものを1つ1つ調べていきます。
この把握と調べるスキルは、IT企業で勤める上で必須なので、ぜひ身に付けておきましょう。
IT企業への就職・転職を目標としている場合は、担当するプロジェクト毎に使う言語も使う技術も全然違います。
プロジェクトが変われば、また新しいことを勉強する必要がありますし、同じプロジェクトでも機能追加などをする際に知らないことを調べていく必要が出てきたりします。
そのため、勉強していくのが苦痛という方は、正直、あまり向いていないと思います。
私の場合、比較的短期スパンでプロジェクトが変わっていたので、スマホアプリ、Windowsアプリ開発で言語は色々触りましたし、Bluetooth通信、超音波通信、画像認識、データベースと色々な技術を学びました。
ここを「へぇー、こんな技術あるんだ!自分もやってみたい!」と楽しんで学習できる人は向いていますね。
プログラミングを始める際のよくある質問
プログラミングを始めるにあたり、色々と疑問が出てくると思います。
私自身、友人からプログラミングのことについて聞かれることが良くあるのですが、その際に出てくるよくある質問を解説していこうと思います。
よくある質問は、次の5つです。
- プログラミングを学ぶメリットって何があるの?
- プログラミングは挫折しやすい?【挫折率9割!?】
- プログラミングは文系大学生でも勉強できるのか?
- プログラミングに英語は必要か?
- プログラミングに数学は必要か?
プログラミングを学ぶメリットって何があるの?
プログラミングってプログラムを作れる以外に何かメリットあるの?
プログラミングを勉強するメリットは、次の9つです。
- 事務処理などの単純作業を効率化・自動化することができる
- 膨大なデータを計算・分析をして、改善点や今後の方針を決めることができる
- 自分のアイディアを形にできる
- 論理的思考力・問題解決能力が身につく
- パソコンに詳しくなる
- 自分のスキルを身に付けることができる【これからの時代に必須】
- IT企業、それ以外の業種に関わらず就職に強い
- フリーランスで時間や場所に捉われない働き方も可能
- 副業で月数万円の収入アップも可能
プログラムによる効率化だけでなく、論理的思考力や問題解決能力などプログラミング以外でも使える能力も身に付けることができます。
物事を論理的に捉えたり、現状の問題を把握してどのように乗り越えていくか考えたりする力は、私生活や仕事でも役立ちます。
また、IT企業を目指している方以外にも、自分の事務処理を効率化したい方もプログラミングはメリットがあります。
会社全体の業務改善でシステムが導入されたりはしますが、個人の業務に特化して効率化を目指すのであれば、自分でプログラミングを覚えるしかありません。
スキルを身に付けることで転職活動も有利になりますし、フリーランスで時間や場所に捉われない比較的自由な働き方も可能なので、自分の人生の選択肢や幅を広げたい方には、プログラミングはぜひ勉強しておきたいスキルです。
それぞれのメリットの解説やデメリットについては、こちらで解説しています。
≫ 関連記事:プログラミングを学ぶメリット【9選】/デメリット【3選】を歴約10年のITエンジニアが解説
プログラミングは挫折しやすい?【挫折率9割!?】
プログラミングって難しいって聞くけど、挫折しないために何をしたら良いの?
プログラミングの挫折率は、9割以上と非常に高いです。
私は10年以上プログラミングを続けていますが、初めの方は何度も挫折しかけました。
エラーや不具合が出るたびに、数日、数週間放置したこともあります。
プログラミングは決して簡単では無いですが、自分のスキルにもなりますし、人生の選択肢も増えるのでリターンは大きいです。
では、具体的にどういうところで挫折しやすいのか、挫折しないようにするためにどう対策すれば良いのかが気になると思います。
その具体的な挫折の原因と対策は次の通りです。
プログラミングのモチベーションが続かない
⇒目的を明確にする
学習手順が間違っている
⇒いきなり作りたいものを開発しない
エラーなどで行き詰った時に質問できる環境が無い
⇒質問できる環境を用意
プログラミングをする上で、エラーや不具合で行き詰ることは日常茶飯事です。
これは、10年以上プログラミングしている私でも起きるので、プログラミングはそれが当たり前と考えて下さい。
エラーや不具合が起きたときに行き詰ったモチベーションが無いとプログラミングは続きませんし、そもそも勉強方法を間違えてしまうといつまで経ってもスキルは身に付けることはできません。
手順については上で解説した通りなので参考にして下さい。
挫折の原因と対策をより詳しく知りたい方、行き詰った際にどう質問すれば良いのかも解説しています。
≫ 関連記事:【挫折率9割!?】プログラミングの挫折理由と失敗しない学習方法【独学歴約10年】
プログラミングは文系大学生でも勉強できるのか?
文系大学生だけどプログラミングって勉強できるの?
IT企業に就職したいけどいけるものなの?
文系だからという理由で、プログラミングには興味があるけど、不安でなかなか手を出せない方も多いと思います。
結論から言うと、
文系でもプログラミングの勉強はできますし、IT企業に就職することもできます。
私は、高3の時からちょこちょこプログラミングを勉強していましたが、高校・大学(法学部)はどちらも文系でした。
しかし、新卒でシステムエンジニア・プログラマーとして、割と大きめのIT企業に就職することができました。
ちなみに、IT企業は意外と文系のエンジニアも多いです。
企業にもよりますが大体3~4割ぐらい文系卒です。
最近では、プログラミングを勉強できる方法も色々と揃っているので、文系・理系よりも、プログラミングに適性があるかどうかの方が重要ですね。
この他に
- 文系でもプログラミングができる理由
- プログラマーに必要な能力
- 就職活動までにしておくべきこと
など詳しく知りたい方は、実体験を元に解説しているので、ぜひ参考にして下さい。
≫ 関連記事:文系大学生がプログラミングを独学/IT企業に就職する方法【実体験】
プログラミングに英語は必要か?
プログラムって英語で書かれているから英語も必要なんでしょ?
プログラミングには興味があるけど、英語が必要そうだから英語が苦手な自分にはできそうにないな…と思われるかもしれませんが、全然そのようなことはありません。
結論を言うと
中学生レベルの簡単な英単語が分かればOK
エラーや不具合を調査する際に英語のサイトしかない場合は、英文を読む必要も出てくるので全く要らないことは無いですが、そういう場合はGoogle翻訳でOKです。
ケンさん
実際、IT企業にも勤めていましたが、他の方もほとんど雰囲気で少し読める程度で、Google翻訳を使う方が多かったです。
そのため、プログラミングには興味があるけど、英語が苦手で…という方も、是非チャレンジしてみて下さい。
プログラミングで英語が必要なのか、どういう時に必要かなどをIT企業に勤めた実体験も含めて解説しています。
≫ 関連記事:プログラミングに英語は必要?【ダメでもOK/Google翻訳でOK】
プログラミングに数学は必要か?
プログラミングって理系のイメージがあるし、数学も必要なんでしょ?
数学についてもプログラミングで必要なイメージがあるかもしれませんが、ほぼほぼ必要ありません。
結論を言うと
プログラミングで作るものによって、数学が必要かどうか分かれる。
必要の無い場合でも簡単な四則演算(+,-,×,÷)レベルは必要。
Web系(ホームページ、ブログなど)やスマホアプリ、Windowsアプリであれば、数学は使わなくても開発することができます。
一方で、ゲーム、データ分析、AIでは、基本的に必要になってきますね。
大雑把に数学が必要なものと不要なものを分けましたが、開発するものによっても変わってくるので、一概には言えません。
しかし、絶対数学が必要という訳ではなく、数学の必要ない分野のプログラミングもたくさんあるので、数学が苦手な方は、そちらをチャレンジすると良いですね。
プログラミングで数学が必要なのか、どういう時に必要かなどをIT企業に勤めた実体験も含めて解説しています。
≫ 関連記事:プログラミングに数学は必要?【ダメでもOK・実体験】
まとめ:プログラミングは挫折率が高いので挫折の原因と対策はしっかり考えて始めること
これからプログラミングを始めようとする方向けに、挫折せず、遠回りせずに効率的に勉強するための方法を解説しました。
もう一度まとめると次の5つでしたね。
- プログラミングをどういう目的で学びたいのか明確にする。
- プログラミングで開発したいものやプログラミング言語を決める。
- プログラミングに必要なパソコンを用意する。
- 勉強方法を決めて、それに沿ってプログラミングを始める。
- ある程度プログラミングに慣れたら作りたいものを作ってみる。
プログラミングを勉強する上で、思った通りプログラムが動かなかったり、エラーが発生して解決に時間が掛かったり、ということが”絶対”に起きます。
10年以上プログラミングをしてきた私も、新しい言語や技術を使う時はこうなります。
その時に、挫折せずに突き進めるかが重要になってきます。
私の場合は、次の2つがプログラミングをする目的でした。
- 自分で作ってみたいものがあったから。
- プログラムが人より高速にデータを処理するところを目の当たりにして、このスキルがあれば将来必ず圧倒的な生産性を出せると確信していたから。
当時、プログラミングを始めた時は高校生でお金もないので、書籍代をケチって、Web上で体系的に学習できるサイトもない上に、早々に作りたいものを作り始めていたので、エラーの連続でした。
行き詰る度、数日、数週間放置するということを繰り返していましたが、そこで挫折しなかったのは、目的があったからです。
この目的がモチベーションに繋がり、またチャレンジしよう!という気になっていました。
実際に、今では小規模なツールを色々作っており、作業の効率化を図ることができています。
このようにプログラミングを学ぶ目的がある方は、素晴らしいスキルなので、ぜひチャレンジしてみて下さい!
コメントを残す