Bicepper
プログラミングを勉強し始めたばかりの頃って、どうやって勉強したらいいのかわからないですよね。
聞く人もいないし、調べてもいまいち分からないし…
もちろん、僕も最初はそうでした。
今回はそんなプログラミング初心者・独学者のための効率的な勉強法を紹介します。
Step1.Progateでプログラミングの基礎を勉強する
最初はプログラミングに関して何もわからない状態です。
プログラミング初心者
プログラミングの単語を一つ一つ自分で調べて完璧に覚えてから次に行くという勉強をすると、訳が分からず途中で挫折する確率が高まります。
僕が勉強していた頃は実用書をひたすら読み込んで、わからなくなったらネットでググるというのが一般的でしたが、今はオンライン学習サイトがあります。
僕もいくつか試してみましたが、その中でも特に勉強にオススメなのはProgateです。
Progateにはいろいろなコースがありますが、絶対に勉強しておくべきコースを紹介しておきます。
というより、やらないとダメですw
- HTML & CSS
- JavaScript
- CommandLine
- Git
- SQL
これらは、どんなエンジニアのポジションについても概ね必要になってくる知識です。
避けては通れないですね。
あとは「どんなことをやりたいか?」によって習得すべきプログラミング言語が変わってきます。
一応、最終的にはだいたいどの言語でも同じようなことができます。
- WordPressをやりたい:PHP
- 爆速でWebサービスを開発したい:Ruby、Ruby on Rails
- 機械学習とかやってみたい:Python
- プログラミングの王道を勉強したい:Java
Progateだけでは全く足りませんが、最低限学ぶという点から見れば十分です。
ずっと基礎ばかり勉強してても仕方ないので、Progateを終えたらさっさと次のレベルに行きましょう。
Step2.Udemyで基礎から応用を網羅する
Progateでプログラミングの基礎を勉強したら、次は動画学習サイトのUdemyです。
Udemyの最大のメリットはなんと言っても、動画でわかりやすくプロが解説してくれるという点に尽きます。
Udemyの講師のほとんどが、現役のエンジニアやプログラマー、あるいは何かしらの専門家、研究者であるため、知識レベル・実務レベルはまさに最高峰です。
オンラインスクールの講師とは比べ物にならないほどのレベルの差があります。
例えば僕はPythonの勉強のために「Python 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイルを学ぶオンライン講座」を購入しましたが、このコースの講師である酒井潤さんは、現役シリコンバレーエンジニアです。
Python, Goなどを勉強したいなら、酒井さんのUdemyが本当にオススメ!
安く購入もできるようなのでぜひ???? https://t.co/Bx06QXuzpR
— ????Bicepper@Webエンジニア (@bicepper) September 1, 2019
Udemyの動画にも様々な種類がありますが、基本的には基礎から応用まで、広く浅くまんべんなく学習できるものが多いです。
そのためProgateと比較すると学習することが爆発的に増えますが、基礎から応用までだいたいのことは学べると言っていいでしょう。
ちなみに、Udemyのメイン言語は英語です。
日本語の動画も素晴らしいものがたくさんありますが、英語ができるのであればプログラミングの勉強の選択肢の幅はさらに広がります。
Step3.自分でプログラミングを実践してみる
Udemyでも半分ぐらいは実践に近いことをやっていると思いますが、ここからはより本格的に実践します。
僕は、実践がプログラミングの勉強に置ける最強の方法だと断言します。
言い方は悪いかもしれませんが、勉強は所詮勉強です。
勉強で学べることはほんの一部であり、実践の中で自分の出会ったことない様々なプログラミングに出会っていきます。
実践の方法はいくつもあります。
例えば
- 自分の作りたかったWebサービスを作ってみる
- 友達や知り合いのWebサイトを作ってみる
- 自分が楽をしたい作業を自動化してみる
などなどです。
そして、初心者や独学者が実践で躓く最大のポイントを教えましょう。
それは、困った時の解決方法を知らないということです。
ここで2つの解決方法をお伝えします。
人に聞く
もしプログラミングで悩んだり詰まったりした時に聞ける人がいるのであれば、一番簡単で最速の解決方法です。
人に聞く場合でも2つのパターンに分けられます。
- プログラミングに詳しい友達や親しい人に聞く
- スキル販売サイトなどでお金を払って助けてもらう
周りにプログラミングについて聞ける人がいるのであれば、最高に運がいいです。
周りの人が解決できる内容であれば、快くわかりやすく教えてくれるでしょう。
もし周りにそういう人がいないのであれば、お金を出して解決するという方法もあります。
例えばココナラというサイトではスキルの売り買いがされていますが、もちろんプログラミングスキルの売買もされています。
こんな感じで僕も出してます。
ただ、自分も出品しておいてなんですが、あんまりオススメはしません…
お金を出してまで聞かなくてはいけないほどの問題というのはプログラミングではほとんど出てきませんし、だいたい別の方法で解決できます。
例えば時間が迫っていて早急に解決したい、という場合であれば有効かもしれません。
プログラミング情報共有サイトで探す(ググる)、聞く
プログラミング情報共有サイトとは、プログラマーやエンジニアが集まる専門のサイトです。
ずばり書きますが、使うべきはQiitaとStackOverflow(英語版)の2つです。
ぶっちゃけプログラミングの悩みはこの2つのサイトでほぼ問題解決できます。
流れとしては、
- Qiitaで調べてみたりググったりしてみる
- 解決できなかった場合はStackOverflowで質問を投げる
というとてもシンプルなものです。
StackOverflowは英語版を使いましょう。日本語版もありますが、やはり英語の方が圧倒的にレスが早いのと、日本人特有の妙なマウント取りみたいなものが無いのでスムーズに解決できます。
そして最後に書いておきますが、ググる力というのはプログラマーやエンジニアに必要とされる能力でもあります。
プログミングを勉強している段階の初心者や独学者が一番辛いのは、何がわからないかが分からない状態です。
なぜなら何も知らないからです。
しかし、情報の海からみなさんが欲しているプログラミングの情報に到達するためにはググる力というのも必要です。このググる力というのは自分で何回もググっているうちに身について行きますので安心してください。
誰かに聞くのも問題はありませんが、自分で調べて解決するためにも、ググる力というのはとても重要なのです。
Step4.プログラミングのアルゴリズムを勉強する
最後は、プログラミングに関する理論やアルゴリズムも勉強しましょう。
理論やアルゴリズムは、プログラムを構成したり書くうえで非常に重要な思考になります。
例えば今まで数十秒かかっていたプログラム処理が、アルゴリズムを変更するだけで劇的に短縮できる可能性もあります。
理論やアルゴリズムをWeb上で勉強するのに最適なのがPaizaとAtcoderです。
Paizaは一人でもくもくとアルゴリズムを解いていくスタイルです。
アルゴリズムの難易度ごとにランク分けされており、上級にいけばいくほど非常に難解なアルゴリズムになっています。
Paiza自体が転職サイトも兼ねており、アルゴリズム試験の判定結果をそのまま転職活動に使うことができます。
つまり、難解なアルゴリズムが解けるのであれば、それだけ転職時も有利に働くということになるわけですね。
AtCoderは競プロ(競技プログラミング)と呼ばれており、世界中の参加者とその順位を競います。
問題も難易度別に用意されており、初心者から学生、プロに至るまで様々なプログラミング好きが挑戦しています。
とは言ってもそこまでビビる必要はなく、気軽に参加してさまざまなアルゴリズム問題に挑戦してみるのがいいですね。
アルゴリズムをしっかりと体系的に学びたいのであれば、プログラミングコンテスト攻略のためのアルゴリズムとデータ構造をオススメします。
アルゴリズムの中にも一定のパターンがあるため、問題によっては適切な解決方法というのが決まっています。
例えばソート(並べ替え)問題であれば
- バブルソート
- クイックソート
- ヒープソート
- マージソート
- 選択ソート
などなど、たくさん種類があります。ここにあるのも一部です。
こうしたパターンを知っているかいないかでもプログラミングは大きく変わってくるので、勉強しておいて損はありません。
特に、本格的に競プロ(競技プログラミング)に参加しようと考えている人にとっては、絶対に必要な1冊と言えるでしょう。
【まとめ】プログラミングの勉強は継続が大事
プログラミングの効率的な最短・最速の勉強法を紹介しました。
コーディングやプログラミングは、一朝一夕で成せるものではないので長い時間の学習と努力が必要になります。
しかし、しっかりと身につければ自分の強力なスキルとなるので、ぜひプログラミングを手に入れましょう。
Bicepper
自分のペースでプログラミングを勉強していきましょう!