INDEX
プログラミング独学に役立つ学習サービスと書籍まとめ
ここでは、独学で活用することができるプログラミング学習サービスや、独学で利用する書籍の選び方について解説していきます。
- どうやって勉強を始めれば良いんだろう?
- 独学で効率的な勉強方法が分からない
という悩みを持っている方は、ぜひ参考にしてください。
プログラミングの独学で使える書籍のメリットと選び方
プログラミング学習を書籍で必ずやる必要はなく、初学者はWebで学習できるサービスを一度使ってみることをおすすめします。
ただ、書籍を使って学習することには、下記のようなメリットがあります。
プログラミング学習で書籍を使うことのメリット
- PCが使えない場所でも読書感覚で学ぶことができる。
- 学習中の辞書的な活用ができる。
- 体系的な知識(断片的な知識ではなく網羅的な知識)を学ぶことができる。
よって、学ぶ言語ごとに1冊〜2冊を持っておくと、何かと便利です。
プログラミング学習で使える書籍の選び方
大型書店や技術書がたくさん置いてある書店がある場合は、中身を直接見て初心者に分かりやすそうな内容のものを確認して書くことをおすすめします。
ただし、地域によっては手に入りづらいことも多く、選択肢が限られてしまうため、Amazonなどを利用して選びましょう。
上記は、「Ruby 入門」で検索した結果の画面です。
書籍と言っても、「入門書」〜「実践書」まで様々な種類があるため、どんな段階の人に向けた書籍なのかは、目次や概要欄で必ず確認しましょう。
また…
- 発行年ができるだけ最近のもの
- 自分と同じ開発環境のもの
- レビュー評価が高いもの
- 部数が多く売れているもの
を優先的に選ぶことをおすすめします。
一から学べる系のプログラミング学習サービス一覧
Webブラウザ上で一からプログラミングを学ぶことのできるサービスはたくさんあります。
すべてをちょっとずつ使うのではなく、「気に入ったものを継続して使い、何度も復習する」⇒「実際に自分が作りたいものを作り始める」という順序が大切です。
ここでは、ウェブ上で学ぶことのできるプログラミング学習サービスを5つご紹介しています。
1 Progate(プロゲート)
「Progate」は、プログラミング初学者向けに提供されている、プログラミング学習サービスです。
様々なプログラミング言語のレッスンを一通り学ぶことができ、実際にWebブラウザ上で、本物の開発環境に近いやり方で言語の基礎や書き方を勉強することができます。
また、レベル上げのシステムがあるため、モチベーションも維持しやすく、スライド資料でまとめられている学習内容が理解しやすいです。
すべてのレッスンを利用するには「月額980円」がかかりますが、学びたい言語を一通り学ぶなら最初に活用することをおすすめします。
2 ドットインストール
「ドットインストール」は、様々なプログラミング言語を3分の動画で学ぶことのできる学習サービスです。
広範囲の言語を無料で学ぶことができ、実際に自分のPCでマネをして作業するのもよし、通勤・通学時間などPCが使えない環境で観て学ぶのもよしと、便利な学習ができます。
Progateと並行して活用し、言語全体の流れやざっくりとした使い方を学ぶのに使うと効果的です。
動画中で使用されるソースコード一覧や動画の書き起こし文章、その他中〜上級者向け動画は、「月額980円」のプレミアム会員で利用することができます。
3 シラバス
「シラバス」は、Webサイト・Webデザイン、そしてWebアプリケーションを実践型で学ぶことのできる学習サービスです。
大きな特徴は、基本的なウェブ制作の学習方法が記事形式で閲覧できること。
実際にコードを写して学ぶ手順が細かく解説されており、作る工程をそのままコピーする形で学ぶことができます。
また、「RailsアプリをAzure Virtual Machinesにデプロイする」「Rails4のアプリケーションをHerokuにデプロイする」など具体的な開発手順や手法についても学ぶことができるため、学習の実践段階で取り組むと良いでしょう。
4 Udemy
「Udemy」は、動画形式で様々な言語・開発手順やプログラミング知識を学習することのできる有料サービスです。
コースごとに豊富な動画が用意されており、コース別に購入することで好きな学習方法を選ぶことができます。
有料コンテンツだけなのでまずは無料で学べる学習サービスから使ってみるべきですが、「学びたいものがほかの学習サービスにはない」という場合には、Udemyを使うと良いでしょう。
プログラミング基礎を学べるスマホアプリ
スマホアプリでもプログラミング学習をおこなうことができます。
ソフトウェア開発では、PCは今のところ必須ですので、時間の許す限りPCで学習を進めるべきですが、通勤時や移動中、スキマ時間に学習するならスマホアプリがおすすめです。
復習としても有効に活用できると思います。
1 Progate ※iPhoneのみ
「Progate」のiPhone用アプリがリリースされています。
2018年2月現在は「HTML」のみの提供になっていますが、今後Web版と同様にコンテンツが追加される予定です。
2 codebelle
「codebelle」は、スキルアップ形式で少しずつプログラミング学習ができる学習支援アプリです。
レッスンがひとつ3分で終わる程度の長さのため、ちょっとした時間を有効活用して勉強することができる点がメリットです。
参考になるエンジニア向けサービス一覧
エンジニアやプログラマーなど、開発者が集まる情報共有サービスやQ&Aサービスも、有効に活用することが大切です。
たとえば、自分では原因がよく分からないエラーなどが出た場合には、情報共有サイトを使って調べたり、Q&Aサイトで質問したりといったやり方が効果的です。
実際に専業になってからも活用できるサービスですので、今のうちから知っておいて損はありません!
1 Qiita
「Qiita(キータ)」は、エンジニアリングに関する情報が様々なエンジニア、プログラマーなどの開発者から共有されている情報サービスです。
プログラミングに関する基礎的な知識から業界のトレンド、エラーやトラブルに対する対処方法まで、多くの情報が集まっています。
学習する言語に関する情報収集は、基礎を一度おさえた後に行うとかなり学習効率を良くする効果がありますので、大いに活用していきましょう。
2 paiza
「paiza(パイザ)」では、プログラミングスキルチェックを行うことができるサービスが提供されています。
出された質問に対する答えとスピードによってスキルレベルをチェックしてくれるため、「あなたがどのレベルに達したか?」を確認することができます。
もちろん、まったくの初心者の状態でチャレンジしても意味はありませんが、ある程度学習をすすめると「どのくらい詳しくなれたのか?」が自分でもわからなくなってきます。
なので、paizaを使って自分のスキルをチェックしてみることも大切です。
3 StackOverflow
「StackOverflow」は、プログラマーやプログラミング学習者が利用できるQ&Aサイトです。
交わされる質問と回答は、ある程度学習を進めた方や、実際に開発を行っている人向けです。
ひとつの質問に対して賛成票をもとにランキングが上がるシステムを導入しているため、自分が気になる質問の的確な答えをすぐ探すことができ便利です。
また、実際に開発をしているときにぶつかった疑問や壁は、StackOverflowで解決することができるかもしれません。
4 teratail
「teratail」も、StackOverflowと同じくプログラマー向けのQ&Aサイトになります。
使い方はほかのQ&Aサイトと同じなので、StackOverflowにはない質問を探すときに活用することができるでしょう。
5 ミニツク ※Ruby限定
「ミニツク」は、Ruby学習者向けの学習コースを提供しているWebサイトです。
RubyやRuby on Railsを学習している人は、ある程度基礎知識をProgateなどで学んだのち、入門コースからミニツク内の学習コースにチャレンジしてみましょう。
ここまで「プログラミング独学に役立つ学習サービスと書籍まとめ」として数々のプログラミング学習サービスをご紹介してきました。
数が多く、どれを使ったら良いか分からないという方は、まず下記の通り学習をすすめることをおすすめします。
- Progateで学びたい言語の基礎を学ぶ。
- ドットインストールで言語の知識と流れをざっくり理解する。
- Progateの内容を復習する。
- 開発環境の構築。
- 実際に作りたい目標物を作り始める。
- つまずいたらProgateで復習・本を参考にする・Qiitaなどで調べる。
自分に合った学習方法を選ぶべきですが、まずは基礎を何度か復習し、その後にできる限り早い段階で作りたい目標物を作り始めることをおすすめします。
ただ、独学する方法を知っていても、ときに挫折しそうになったり、途中で諦めてしまったりする人は一定数いるのも事実です。
この記事を読んでいるあなたには挫折してほしくないので、下記では挫折してしまう原因を解説していき、挫折を避ける方法を解説していきます。
プログラミングの独学は不可能?挫折してしまう原因と対処法
「プログラミングを独学でやるのはムリ」と語る方は結構多いのも事実です。
そしてそれはあながち間違いではなく、実際に継続して学習を続けることに難しさを感じ、諦めてしまう人は多いのです。
下記では、挫折してしまう原因と、挫折を避けるための対処法ついて解説していきます。
1 ムダに学習時間が長くなってしまう
ムダに学習時間を長くしてしまうと、途中で投げ出したくなることがあります。
これは当然のことで、あなたが頭に作りたいアプリをイメージとして持っていても、それが目の前のコードとどう繋がるのかがよく分からなくなるためです。
学習時間自体が長くなってしまうのは、きちんと言語を学ぶ以上仕方がないことです。
しかし一方で、間違った勉強方法をしているといつまでも完成形や終わりが見えなくなってしまいます。
よって、まずは「一日○時間以上」「週に○時間以上」と学習時間を決めておくことが大切です。
2 変なやり方のまま知識を身に着けてしまう
言語を学ぶ最初の段階ではしっかり学んでいたのに、ある程度知識が着いてくると覚えるべき知識を省略したり、面倒な部分を外してしまうなど、勉強をおろそかにしてしまう場合があります。
また、自分としては真面目に学習に取り組んでいるつもりでも、間違ったやり方で知識を覚えてしまうことがよくあります。
独学では、プログラミング経験者から直接アドバイスをもらったり、「慣習的にこうなっている」という部分の知識を学ぶことがむずかしいです。
そのため、独学を始めるときは、できる限りプログラミング経験者とつながっておくことをおすすめします。
3 言語を学ぶこととプロダクト作成を履き違えてしまう
プログラミング学習を始める人でありがちなのが、「言語を学ぶこと」と「プロダクトを作成すること」を履き違えて、大量に言語を学ぼうとしてしまうということ。
プログラミングは、あくまでもWebサービスやアプリなどを開発できるようになること。
同じ使い方のできる言語を複数覚えることで浅い知識を身につけることよりも、イメージしたプロダクトを早く作ることができるようになることのほうが優先度は絶対に高いです。
もちろん、言語をとにかく学びたい方は別ですが、ほとんどの人は学習目標が逆になってしまわないように気をつけましょう。
4 チームメンバーで協同開発するノウハウが学べない
独学でプログラミングを行う大きなデメリットは、共同開発するノウハウが学びづらいことです。
共同開発とは、ひとつのプロダクト(Webサービス,アプリ)を複数人で開発すること。実際の現場では、新規事業で制作するプロダクトも、受託開発のソフトウェアも、ほとんどが共同開発です。
また、独学ではどうしても一人でエラーや疑問に対処する必要があるため、モチベーションを管理するのも大変です。
ただし、共同開発のノウハウは様々なエンジニアがネット上の記事で解説していますので、実際にエンジニア,プログラマーとして働き始める前に、ある程度共同開発のノウハウを学んでおきましょう。
5 自分でコードを書くことができない&思いつかない
ある程度基礎知識を学ぶことができて、いざ自分で作りたいものを作り始めるときにぶつかるのが「自分でコードを書くことができない」「書くべきコードが思いつかない」という悩みです。
そのときには解決策が2つあります。
- もう一度言語に関する基礎知識(理論やコードの意味)を復習する。
- 他人のコードを書き写して動作確認する。
理論的には理解できるけど書くべきコードが分からない場合には、もう一度学習してきた基礎知識を学びなおすか、コードを書き写して動作確認することが大切です。
経験者のコードを書き写すことで、適切なコードの書き方や、効率的なコードのノウハウを学ぶこともできます。
6 根拠や動く理由がよく分からない
言語を学んでいくと、「なぜこのコードを書くとこうなるのか?」とそもそもの根拠や動作する理由が分からないことも出てきます。
しかし、プログラミング学習は仕組みをすべて最初から理解するのは難しく、何度か異なる言語を学んでいるうちに共通する仕組みに気づくこともあります。
そのため、根拠や動作する理由が分からなくてもあまり心配する必要はありません。
それよりも重要なのは、「こう書けばこのように動作する」と書き方をハッキリイメージできるようになることなので、学習ではそれ以外のことに詰まらないようにしましょう。
7 全然面白く感じない・モチベが下がってきた
プログラミング学習は、ある程度知識を身に着けて専門用語が理解できるようになってきてからが本番です。
しかし、学習の最初の段階は何も知らないところからのスタートで、「今学んでいることが何に繋がるかまったくわからない」ということを起きてしまいます。
全然学習が面白いと感じない場合には、自分の作りたいと考えている目標物とは別に、今まで学んだ知識だけで作ることのできるアプリやWebサービスを作ってみると良いです。
「自分の技術で形にすることができた」という気持ちが、モチベーションアップに繋がります。
また、どうしても挫折しそうなときは、独学を早めに諦めてプログラミングスクールに通う方法もあります。
プログラミングスクールは「TECH::CAMP」がおすすめです。
ここまで、プログラミング学習に挫折してしまう原因と対処法をご紹介してきました。
プログラミング学習は、取り組み始める人が多い一方で、挫折し途中で止めてしまう人も多いです。
しかし、難易度の高い資格勉強や英語学習よりも効率的に勉強することは可能ですから、挫折せず継続するために対策を練っておきましょう。
下記では、プログラミング学習者が、より効率的・効果的に独学を進めるためのコツをご紹介しています。
より効率的・効果的にプログラミング独学を進めるためのコツ
プログラミングの独学で最も大変なのはモチベーションを確保すること。また、モチベーションがない日でも習慣化してプログラミング学習ができるようになればもっと良いです。
ここでは、プログラミング学習をより効率的・効果的に進めるためのノウハウや注意点を解説していきます。
1 段階的に到達する目標を「大」「中」「小」に分けておく
独学を進める上では、「自分が目標のうちのどのレベルに達したか?」が明確にすることでモチベーションアップに繋がります。
自分のレベルを明確にするためには、目標を細かく設定することをおすすめします。
たとえば、「Twitterのようなアプリを作りたい」という目標があるのであれば、下記のように目標を「大」「中」「小」に分けて設定してみます。
- 「大目標」⇒Twitterのようなアプリを作る
- 「中目標」⇒つぶやく機能、TL(タイムライン)機能、いいね機能をつける
- 「小目標」⇒つけたい機能をどうつけるのかを調べる
もちろん上記の例は一例で、作りたいものによっては自分でコードのアイディアを考えなくては行けない場合もあります。
ただし、作りたいものをどう作っていくのかを細かく分けて置くことで「今何しているんだっけ?」と自分の学習段階や製作段階が分からなくなることを防ぐことができます。
2 独学する時間を確保し固定させる
短い時間でも良いのでとにかく毎日プログラミングに触れる時間を確保することが大切です。
1週間のうち、休日だけにまとまった時間を確保して集中して勉強するよりも、毎日少しずつでも学習を続けたほうが学習効率が高いです。
3 正規表現を知る
「正規表現」とはいくつかの文字列をまとまったひとつの形式で表現するための方法のこと。
コードを書くときには、多くの文字列の中から文字列を検索していくことが効率的な学習・開発に欠かせません。
また、ソースコードを改善・改良する場合には、該当する修正した部分が複数あるときに一度に検索から置き換えができるため、効率的な開発をすることができるようになります。
さきほどご紹介した「ドットインストール」では、正規表現に関するレッスンも提供されているため、言語の学習と一緒に参考にすると良いでしょう。
4 「Linuxコマンド」を暗記する
Windows、Macのどちらを使ってプログラミングを行う場合でも、「ターミナル」を使って操作をするタイミングが必ずあります。
Windowsは、「ターミナル」にあたるアプリケーションは「コマンドプロンプト」と呼ばれる黒い画面のことです。
PCはキーボードとマウスで操作するのが一般的ですが、実はそれは後付の機能です。本来、パソコンはキーボードに文字を入力して操作するのが基本でした。
ターミナル操作はプログラミングで必ず必要になるものなので、基本的な操作方法をおさえておくことが大切です。
ターミナル操作には様々な「コマンド」と呼ばれるものがあります。
代表的なコマンドは下記の通りです。
- 「cd」⇒ディレクトリ(フォルダ)を異動させるコマンド
- 「ls」⇒ディレクトリの中身一覧を表示するコマンド
- 「pwd」⇒今現在のディレクトリを表示するコマンド
- 「mkdir」⇒ディレクトリの新規作成コマンド
「Progate」では、コマンドラインのレッスンも提供されており、基本的な操作はそのレッスンで学ぶことができます。
言語の学習の合間に基本的な知識を身に着けておくと、学習がスムーズに進みますよ。
ここまで、「より効率的・効果的にプログラミング独学を進めるためのコツ」を解説してきました。
学習効率は自分の工夫次第でかなり向上させることができます。
初心者の場合、そもそも何を順番にするべきかが分からないという悩みを持つ方が多いですが、必要最低限の基礎を学んだ後に、実際に作りたいものを作ることが最も効果的・効率的です。
独学した成果を仕事やお金に変える方法
ここでは、プログラミング学習を進めて開発ができるようになった後、どのように仕事やお金に繋げることができるのか、について解説していきます。
独学する理由は様々だと思いますが、収入や仕事に繋げることを早めに考えておくと、モチベーションアップにも繋がります。
1 クラウドソーシングで仕事を請け負う
「ランサーズ」「クラウドワークス」などのクラウドソーシングサービスをご存じでしょうか?
ウェブ開発などを含め、オンライン上で仕事の受発注を行うことができるサービスです。プログラミングで開発を実際にクラウド上で請負って、それで実務経験を積み重ねていく方法があります。
難易度やジャンルなどは細かく検索することができるため、自分にできそうなジャンルの案件を選び、実際に受注してみましょう。
2 知り合いに紹介してもらい受託開発を請け負う
友人・知人や会社の知り合いなどから開発を請負ってみる方法もあります。
受託開発はハードルが高そうですが、スキル・腕試しに無料でWebサイトの依頼を受けてみたり、友人と一緒にひとつのプロダクトを作ってみたりなどの実務をこなすと、独学で学んだこと以上の気付きや発見が得られる場合もあります。
3 作成したプロダクトをリリースする
どんなに作り込まれたサービスでも、実際に世の中に出さなければ人の目に触れることはありません。
あなたがもし、自分にとって便利なツールやアプリを開発したのであれば、少し手間をかけてでも実際にリリースしてみることをおすすめします。
Webアプリやスマホアプリをリリースするための手順は様々な方々が紹介・解説していますので、ノウハウに困ることはないでしょう。
リリース後の修正やフィードバックなどは実際にプロダクトを出してみて初めて分かることが多いです。
4 Githubでプログラムを公開する
「Github」では、制作したプログラムのコードを公開することができます。
Githubでコードをアップロードをすることを「コミット」というのですが、このコミットが活発なユーザーであればあるほど、エンジニア、プログラマーとしても評価されることが多いです。
また、企業によっては「Githubで公開しているコードを評価する」「採用時の判断材料にする」ということも多いため、積極的に利用することをおすすめします。
5 ITの勉強会に参加する
地域によって限界がある場合も多いですが、IT・Web関連の勉強会やイベントに積極的に参加することもひとつの方法です。
仕事をもらえる人脈を形成できるパターンもありますし、自分よりもスキルレベルの高いエンジニア・プログラマーと出会えるキッカケになります。
ときには、自分が作っているプログラムのフィードバックをもらえることもあるでしょう。
6 未経験者歓迎のIT企業へ転職する(おすすめ)
特定の言語のスキルや開発ができる状態まで学習をすることができれば、たとえ実務経験がなくても未経験からIT企業へ転職することは十分可能です。
そのため、プログラマーやエンジニアとしてできるだけ早くキャリアチェンジをしたいなら、未経験から働き始めることのできる企業へ応募することをおすすめします。
転職サイトを使った転職活動のやり方
自分で求人を探して企業に応募したい場合には、転職サイトを有効活用しましょう。
求人件数が多く、未経験からの転職が可能な求人を多数載せている大手転職サイトを利用します。
詳しい転職サイトの選び方や活用法については、ぜひ下記記事を参考にしてください。
おすすめ記事:おすすめ転職サイトランキング!選び方や登録後の流れ、活用法まとめ
転職エージェントを使った転職活動のやり方
転職サイトで希望条件に当てはまる求人がない場合には、転職エージェントを使うべきです。
転職エージェントであれば、希望条件に合った求人を、転職のアドバイザーが紹介してくれます。
利用は最後まで無料で必ず転職する必要はありません。
下記では転職エージェントの特徴やおすすめポイントを解説しているほか、ここで解説したよりも詳しく活用法や注意点をご紹介しています。
おすすめ記事:おすすめ転職エージェントランキング!選び方や注意点・活用法まとめ
まとめ|独学は忍耐力が大切!
今回は、プログラミング初心者の方向けに、プログラミングを独学するための方法や注意点、活用すべき学習サービスや効果的な勉強のコツをまとめて解説してきました。
プログラミング学習を独学でおこなうのはハードルが高いと言われます。それはその通りで、挫折してしまったり、途中で諦めてしまったりする人が多いのも事実です。
しかし、今回解説した通り、最終目標を決めた上で効率的に学ぶことができれば、モチベーションを維持しつつプログラマーやエンジニアを目指すことは十分可能です。
あとは行動あるのみです。
今回の記事を参考にして頂き、Web・IT業界での一歩を踏み出しましょう!