- 公開日: 2017年05月17日
【手順、ポイントを総まとめ】プログラミング完全独学ガイド
こちらの記事を見てもらっている頂いているということは、「プログラミングを独学で学びたい。」と考えている方が多いと思いますが、プログラミングを学ぶ「目的」はハッキリしていますか?それとも「なんとなく」でしょうか?
また、「本当に独学でプログラミングが習得できるの?」など学習について不安を覚えている方も多いでしょう。
今回は、これからプログラミングを独学で学習したい人へ向けた学習の方法から手順、つまづいた時の対処法までを紹介します。
- プログラミングを独学で学ぶ目的を明確にする
- そもそも、なぜプログラミングを学習する必要があるのか?
- プログラミングを独学で学ぶ理由とは?
- 独学で学習する時何から始めたほうがいいのかを知る
- 全体像の確認をする
- 学習方法の検討をする
- 目的別オススメ言語を把握する
- 自分に適切な学習サイトを知る
- 完全プログラミング初心者向けサイト
- 少しプログラミングを経験したことのある方向け学習サイト
- 自分に適切な学習本を知る
- 完全プログラミング初心者向けの学習本
- プログラミング経験者向けの学習本
- 独学の参考になるブログを見る
- 【独学】ゼロからのプログラミング学習計画
- 初心者から中級者まで正しく学べるプログラミングの勉強法
- 初心者も楽しく勉強できる!無料でプログラミング等が学べる漫画8選
- C言語すら知らなかった私が2ヶ月でiPhoneアプリをリリースするまでにやった事。
- 実際にプログラミングを始める流れを知る
- コードを入力できるソフトの起動
- Atomメニューバーの日本語化
- Atomとドットインストールの連携
- くじけそうになった時の対処法を知っておく
- くじけそうになった時に行うと効果的なこと
- 挫折を乗り越えた人達
- まとめ
プログラミングを独学で学ぶ目的を明確にする
プログラミングを学ぶ目的が「流行りだから」「なんとなく稼げそう」など曖昧なまま学習を開始すると、挫折する可能性は非常に高くなります。
最初にプログラミングを学ぶ目的を明確にすることが、独学でもくじけないためのポイントです。
そもそも、なぜプログラミングを学習する必要があるのか?
現在、私達の意志とは関係なく、もの凄いスピードで進化しています。
パソコンの処理能力の要となるCPUやGPUだけでなく、それらを連結させる技術も進み、一部では人間の脳やスーパーコンピュータの演算能力をも上回る能力になってきました。
これらのを使って、人よりも優れた知能をもつソフト開発にも成功し、囲碁のアルファ碁が代表的なモノでしょう。
囲碁以外にも、CTスキャンの画像を機械が読み込み、医師でも見つけにくい「がん」を発見するなど、人よりも優れたパフォーマンスを示す場面も年々増えてきています。
このようにコンピュータ能力が、もの凄い勢いで向上することで、今まで人間が行っていたことが機械やロボットに置き換わると予想され2024年頃には、7割近くの仕事がロボットに置き換わると予想する学者もおり、これから働き盛りを迎える10代から40代の方は、ロボットを意識して仕事を獲得していく必要が出てくると考えられます。
そのためには、ロボットや機械が動く仕組みを理解し、その中でプログラミングも理解する必要があると言われています。
プログラミングを独学で学ぶ理由とは?
あえてスクールではなく独学でプログラミングを学ぶ方の理由としては、
- 学習コストを抑えたい
- とりあえず一人で試してみたい
- 簡単なWebサイト作りたいだけ
- 近くにスクールがない
- 最終的には自分で開発(プログラミング)しないといけない
などなどの目的があるのではないでしょうか。
仕事の現場や自分でWebサイトを開発する場合でも、必ず応用的な問題が発生し、その問題を解決するための策を自分で考えなければなりません。
この問題解決能力は、自分で考え、試行錯誤を繰り返す中で学ぶことで成長していくことが可能です。
独学で学習する時何から始めたほうがいいのかを知る
独学で学ぶメリットや理由が明確になった上で、実際に学習を開始しようと思った際、どのような手順を踏めば良いのか紹介します。
全体像の確認をする
「プログラミング」と一言でいってもロボットを動かすためのプログラム、コンピュータに画像や文字のパターンを認識(学習)させるためのプログラム、アプリを動かすためのプログラムなど多種多様に存在します。
例えばWebページの作成が目的であった場合、HTMLやCSS、JavaScriptといった言語が基本となりますが、ある程度コードをパッケージ化したフレームワークやライブラリというツールも存在します。
たとえばBootstrapというCSSパッケージを使うとレスポンシブデザインが簡単に作れるようになりますし、jQueryというJavaScriptライブラリを使うと動きのあるWebサイトも簡単に作れるようになります。
HTMLやCSSに関する詳しい知識がなくても、本格的なWebページを制作できるWordPressというCMSもあります。
このような便利なツールや機能は、CSSやJavaScriptに限らず、JavaやRuby、PHP、Pythonなど主流言語には用意されています。細かい機能は抜きにして、はじめの内にこうした便利なツールがあることを認識しておくと、最終的な目的物もスムーズに制作できるのではないでしょうか。
あくまでプログラミングは、目的を達成させるための手段であることを認識しておく必要がありますね。
学習方法の検討をする
独学でプログラミングを学習する方法は一つではなく、いくつかの方法があります。あらかじめどんな方法があって、どんな特徴があるか知っておくと、自分にあった独学スタイルの構築に役立つことでしょう。
はじめの内は右往左往しても、決して諦めることなく、色々な方法を試してみることをオススメします。主な学習方法は、以下のとおりです。
- ネット動画をみて学習
- ネット上の学習サイトで勉強
- 本で独学
- コミュニティーを活用して独学
- 各言語の公式リファレンスを読んで独学
目的別オススメ言語を把握する
次にオススメのプログラミング言語を交え紹介していきます。目的によって学ぶ言語が変わってくるのでここはしっかり決めておきたいところです。
こんな人にはこの言語がオススメ
<<完全初心者>>
HTML、CSS、JavaScript
プログラミングの基礎知識がない状態で独学をはじめる方は、HTMLとCSS、JavaScriptのセットをオススメします。これら3つの言語は、Webページの基幹的な言語で、アプリ開発を行う上で必要な知識となります。
この3つの基本がわかると普段見慣れているWebページの成り立ちがわかるようになるので、初心者の方にはオススメです
またWebデザイナーの方でプログラミング学習する方も、ページ制作時に実装されるコードを知っておくと、デザイン作業とコーディング作業がスムーズにいくようになります。
いきなりJavaScriptを学習するのはハードルが高いので、HTML/CSSをマスターしてからJavaScriptに入るとよいでしょう。
学習の目安時間としては、HTML&CSS で25時間が目安となっています(Progateより)。
<< HTMLやCSSを理解している人>>
PHP
PHPは、WordPressで使われているプログラミング言語で、Web制作やWebアプリケーションの制作に役立てることができます。国内のプログラマ求人状況によると、PHPはJavaに次ぐ言語となっていますので、理解しておいても損はないです。
Macの場合は直ぐにPHPをプログラミングできますが、Windowsの場合はPHPを使えるようにXAMPPやMAMPなどをインストールするか、Cloud9などクラウド型IDEを利用する必要があります。
WordPress(ブログ運営サービス)ではPHPが必須となっているので、副業としてブログなどのサイト運営を考えている人はPHPを学んでみてはいかがでしょうか?
PHPの学習目安時間としては、15.5時間となっています(Progateより)。
<< アプリ開発をしたい人>>
SwiftやJava
iPhone用のアプリを作りたいなら「Swift」、Android用のアプリを作りたいなら「Java」を学ぶ必要があります。
しかし、プログラミング初心者の方が独学でこの2つの言語を学習するのは難易度が非常に高いため、よほどの覚悟がないと学習の継続は難しいかもしれません。
自分に適切な学習サイトを知る
独学する時に欠かせない学習サイトを紹介します。多くのサイトがありますので、ご自身にあったサイトを見つけてください。
完全プログラミング初心者向けサイト
ドットインストール
3分間の短編動画でプログラミングを予習できるサイトになります。
無料で視聴できる動画も多く、プログラミング初心者から中級者まで活用できる学習サイトです。
基本的にはHTMLやCSSの個別機能を紹介し、各言語の全体的な機能を把握するのに役立ちます。プログラミングを全くやったことのない初心者の方はまずドットインストールを始めるとよいでしょう。
PLURALSIGHT
こちらは子供用のHTMLレッスンビデオで、一つずつ丁寧に説明しながら、サンプルを確認する学習サイトです。Windows PCベースでデモしてくれますので、Windowsユーザーにとっては分かりやすい動画だと思います。
日本語の字幕にも対応しており、説明も分かりやすいです。HTMLのほかC#のコンテンツが無料視聴できます。
Dash
こちらも英語にはなりますが、HTMLのタグやCSSのコードをコツコツ学習するのではなく、サンプルページの制作というミッションのもと、HTMLやCSSを学習していきます。
各場面の指示にしたがってプログラムするだけで、立派なWebサイトができるので、自信にもつながります。
少しプログラミングを経験したことのある方向け学習サイト
W3school
英語サイトにはなりますが、HTMLのタグ一覧があったり、HTMLでできることの一覧があったりと、各言語の持っている機能をもれなくチェックできる学習サイトです。
各タグのサンプルコードも画面上でテストでき、コツコツ学習を進められます。
HTMLの他、CSSやJavaScript、それからCSSツールのBootstrapなどたくさんの教材が用意されています。
Progate
HTML&CSSについては、基本的なコードからレスポンシブデザインのコードまで、実用レベルの内容を学習できるサイトです。
PHPやRuby、Javaなど独学需要の高い言語もカバーしており、ブラウザ上でコーディングを行います。
paiza
こちらは基本的には、エンジニア向けの就転職プラットフォームになりますが、スキルチェック用の課題がたくさん用意されています。
基礎学習用のコンテンツも豊富で、paiza独自の「プログラミングで彼女を作る」など男性陣として気になる学習コンテンツも特徴的です。
自分に適切な学習本を知る
完全プログラミング初心者向けの学習本
「パソコンの基本操作はできるけど、プログラミングは初めて」という方向けの学習本はいくつか出版されています。
本のとおりにコードを記入して、ファイルを保存・実行すると本に示すとおりに結果が出力されますので、プログラミング初学者にとって学習本は面白いとでしょう。
ネットに比べて本の場合は情報が一元化しているため、理解しやすい特徴がありますが、本と自分のパソコンのバージョンが違ったり、既にソフトをインストール済みだったりするとエラーがでてプログラムを実行できなくなる、というデメリットもあります。
完全プログラミング初心者にオススメの一冊
ちゃんと使える力を身につける Webとプログラミングのきほんのきほん
特別どの言語を学習しようか決めていない方にとってピッタリの本で、JavaやPHP、Ruby、Pythonなどを例にコツさえ抑えれば色々な言語をマスターできることを指南してくれます。 こちらからサンプルのコードを拝見できます。
プログラミング経験者向けの学習本
経験者の場合、ファイルの実行方法やコードの仕組みがある程度解ると思いますので、本で紹介されているサンプル基準で選んでみるのもいいかもしれません。
ちょっとプログラミングを経験したことのある方にオススメの一冊
詳細! PHP 7+MySQL 入門ノート
プライベート、仕事でも活躍できるPHPを分かりやすく、使いやすく説明した一冊になります。
MAMPをインストールして、PHPのサンプルを実行しながら独学することができます。
HTML履修済みを対象にしていて、データベースも一緒に学習できる内容となっています。
独学の参考になるブログを見る
学習サイト、本は活用するとして、ブログの記事を見るのも非常に参考になります。無料で検索できるブログの中には独学でプログラミングを学習し、自分のサイトを構築している人が多いためです。
この章ではプログラミング独学の参考になるブログを4つ紹介します。
【独学】ゼロからのプログラミング学習計画
画像出典:NZ MoyaSystem
もともと文系大学生で現在はニュージーランド在住のはっしーさんによる初学者向けの記事が豊富なブログ。
IT企業に内定をもらったのを機に勉強を始め、今では海外でプログラマとして働けるまでになった。
という経歴の持ち主で、ご自身の経験を元に学習方法について解説してくれています。日本で過労死しそうになりニュージーランドに移住したという経歴は、これからプログラミングを学んでフリーとして雇われず、自由に生きたいと思っている方にすごく響くのではないでしょうか?
プログラミングに関することだけでなく、日本とニュージーランドにおける仕事論なども多く書いているので、ブログ全体が非常に参考になります。
初心者から中級者まで正しく学べるプログラミングの勉強法
大学院でプログラミングを専攻しているブロガーのshunさんのブログ。元々高校生の時にプログラミングに出会い独学で学習し、こちらのブログを構築しています。
今からプログラミングを学習する人はもちろん、すでに学習している人が見直しても勉強になる記事です。
プログラミングを学んだ後に、発信力を兼ね合わせて収益を得ているshunさんのブログは、プログラミングの学習方法だけでなく勉強になります。
プログラミングを学びつつshunさんのブログを見ながらブログ構築をしていくのも1つの学習方法だと思います。
初心者も楽しく勉強できる!無料でプログラミング等が学べる漫画8選
初心者も楽しく勉強できる!無料でプログラミング等が学べる漫画8選
paizaの開発者プログラミングネタなどについて書いているブログ。参考書やブログに比べてハードルが低い、「プログラミングを学べる漫画」を紹介してくれています。
paiza自体がプログラミングを学べるコンテンツを紹介してくれているので、他の記事も独学で学びたい人には参考になるでしょう。
C言語すら知らなかった私が2ヶ月でiPhoneアプリをリリースするまでにやった事。
C言語すら知らなかった私が2ヶ月でiPhoneアプリをリリースするまでにやった事。
アプリ開発をいずれしたいという目的でプログラミング学習をするならこちらが参考になります。
並々ならぬ努力と根性で2ヶ月でアプリをリリースを行った方の記事。このストーリは書籍化もされています。C言語という難しい言語でも独学でリリースまで持っていけるという希望が湧いてくる記事です。
初心者に思い描きにくい学習から、1つの成果物のアプリをリリースという所まで何をしたのか?どんなサイトや本を見て何ををしたのかまでが分かりやすくまとめられています。
youtubeにはお宝動画がたくさん眠っているのは盲点だと気づかせられました。
記事の筆者は文系出身で尚且つ社会人ということで、時間の確保の方法も、社会人の方には参考になるでしょう。
また、「Tech2GO」では以前、独学でプログラミングを学び、メルカリでインターンしている大学生の方にインタビューを行っています。合わせてご覧ください。きっと彼の行動力に驚かされることでしょう。
関連記事:文系でも独学でプログラミングを学び、メルカリでインターンする19歳大学生にインタビュー!
実際にプログラミングを始める流れを知る
プログラミングの第一歩ともいえる、コードを記述する方法を紹介します。
コードを入力できるソフトの起動
Windows PCでもMacでもテキストエディタは標準装備されていて、このソフトでプログラムを作成・編集することは可能です。
しかし、記号や文字が見にくく、保存の際も文字コードの指定が必要になるなど、使い勝手は人それぞれですが良くも悪くも感じるでしょう。そのためプログラミング専用のテキスト・エディタツールを使うことをオススメします。
エディタツールはいくつか種類がありますが、今回はAtomというエディタを紹介します。 理由は、学習サイトのドットインストールと連携することができるからです。
Atomのインストールは、公式サイトにアクセスして、ページトップのダウンロードボタンを押して、インストールを進めます。なお、ダウンロードのファイル形式は、使用しているパソコンのOSに合ったものが自動的に表示されます。
Atomメニューバーの日本語化
インストールしたAtom を起動し、メニューバーのPackages→Settings View→Install Packages/Themes をクリックします。
検索バーに japanese-menu とコピペし、リターンキーを押します。 すると該当ソフトが表示されますので、Installをクリックします。 インストールが完了すると、自動的にメニューバーは日本語に切り替わります。 (一部の英語はまだ日本語化されていません)
Atomとドットインストールの連携
先ほどの日本語パッケージをインストールした手順と同じで、今度はドットインストールのソフトをインストールします。 メニューバー→パッケージ→ Settings View→Install Packages/Themesをクリックし、Dotinstall Paneと検索枠に入力します。
インストール完了後にいったんエディタ画面に戻り、Shift + Alt + D を押すと、ドットインストールの画面が登場します。 ドットの画面を閉じる時は、もう一度 Shift + Alt + D を押すと、Atomのみの画面に戻ります。
これでドットインストールの講座で紹介されるコードを簡単に、記述できるようになります。
Atom HTML Preview というパッケージも合わせてインストールしておくと、HTML編集や表示確認が容易になります。パッケージインストール後に、Ctrl + Shift + H で起動します。
くじけそうになった時の対処法を知っておく
くじけそうになった時に行うと効果的なこと
独学でプログラミングをはじめる時の不安材料に、分からなかった時どうしようという問題があります。
スクールにいけば先生が教えてくれますが、独学の場合は自分で解決する必要があります。 これから学習を進める中で、「困った、挫折しそうだ!」 と思いはじめた時の対処法を紹介します。
プログラミング学習で挫折しない人は殆どいないでしょう。しかし、挫折を乗り越える方法を知っていることで乗り越えることができるのです。
- プログラミング学習をはじめた時の目的・目標を思い出してみる
- もう一度最初からやり直す
- 環境設定でつまづく場合は、一度アンインストールして、再インストールする
- 「Yahoo!知恵袋」や「教えて!goo」などのコミュニケーション・サービスを利用する
- エンジニア特化型Q&Aのteratailを利用する
- 違う学習サイトを試してみる
コレだけのことをしてみると、問題が解決されなかったとしても、代替え案など何らかのヒントは出てくると思います。こうしたバックボーンがあると、挫折を気にせずに、学習に専念することができますね。
こちらのような挫折体験談を探すのも1つの方法だと思います。 関連記事:文系でもプログラミングを始めたい人へ【挫折の体験談・おすすめ勉強法】:[https://taroken.org/programming-for-beginners/)
挫折を乗り越えた人達
-- STORY.js & コインチェックを立ち上げた和田晃一良さんの事例 --
和田さんは小学5年生の時に、家にPCが導入され、その後PC中毒になった根っからのパソコン好きな方です。しかし、そんな和田さんでも中学ぐらいでC言語をはじめ、うまくいかずに諦めた日々があったとつづっています。
Win32APIをはじめた時には、エディタ事態が重くて起動せず、サンプルさえも実行できなかったなど、何回も挫折を経験したのだとか。
しかし、そんな挫折からも、立ち直るための方法を調べ、試行錯誤するステップが楽しいと感じ、前進を続けた結果、国内1、2位を争うビットコイン取引所の運営に成功しています。 つまりパソコンが好きなことと探究心によって挫折を回避している事例でうs。
-- ウェブマーケティング担当への転職を成功させた事例 --
こちらの方は、独学でプログラミングをはじめたものの3回挫折して、転職後の4回目の企業研修でプログラミングを理解できた方です。
HTML、CSSは途中で学習がストップし、流行りではじめたObjective-C(iPhoneアプリ用言語)はコードが謎すぎてストップし、これまた流行りのRuby on Railsをはじめたもののオブジェクト指向を理解できずにストップ、計3回挫折し、転職後のプログラミング研修でHTMLやCSS、JavaScriptの理解に至ったとのこと。
現在、独自にRuby on Railsを使ってアプリを開発していますが、質問できる環境と検索力があれば挫折も回避できると名言しています。
\Webサイト担当者としてのスキルが身に付く/
まとめ
今回独学でプログラミングをはじめる方が、少しでもスムーズに自信を持って取り組めるようなノウハウを提供させて頂きました。何はともあれ、手を動かさないことには何も始まりません。
下記のコードをAtomの新規ファイルにコピペして、HTMLプレビューを起動してみませんか? もしくはHTMLファイルをダウンロードして、ファイルをダブルクリックするとブラウザが起動します。
スマホでもHTMLファイルをダウンロードして、ToDoリストを動かせますので、とにかく手を動かしてプログラミングの世界を体験してみることをオススメします。おもしろいですよ。
<!DOCTYPE html>
<!-- 日本語のサイトだよ -->
<html lang="ja">
<!-- 文字化け防止のため、文字コードの指定 -->
<meta charset="UTF-8" />
<!-- ここからJavaScript -->
<!-- AngularJSというJavaScriptでできたフレームワークを利用 -->
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<!-- AngularJSの読み込み完了 -->
<!-- このページで利用するAngularJSのアクション内容を記述 -->
<script>
var app = angular.module('myApp', []);
app.controller('todoCtrl', function($scope) {
$scope.todoList = [{todoText:'家の掃除', done:false}];
$scope.todoAdd = function() {
$scope.todoList.push({todoText:$scope.todoInput, done:false});
$scope.todoInput = "";
};
$scope.remove = function() {
var oldList = $scope.todoList;
$scope.todoList = [];
angular.forEach(oldList, function(x) {
if (!x.done) $scope.todoList.push(x);
});
};
});
</script>
<!-- JavaScriptおわり -->
<!-- ここから画面に表示する内容を記述 -->
<!-- ↓ ng-*** は上のJavaScript内のコードと連動、同じキーワード -->
<body ng-app="myApp" ng-controller="todoCtrl">
<!-- このページのタイトル -->
<h2>ToDoリスト</h2>
<!-- 入力枠を表示 -->
<form ng-submit="todoAdd()">
<!-- 入力枠内の文字の表示と入力後のアクションを指定 -->
<input type="text" ng-model="todoInput" size="50" placeholder="記入して下さい">
<input type="submit" value="追加">
</form>
<!-- <br>で改行 -->
<br>
<!-- 入力枠に入力された情報が表示 -->
<div ng-repeat="x in todoList">
<!-- チェックボックス -->
<input type="checkbox" ng-model="x.done"> <span ng-bind="x.todoText"></span>
</div>
<!-- ボタンの表示とボタン機能の指定 -->
<p><button ng-click="remove()">リストから外す</button></p>
<!-- おわり -->
</body>
</html>
HTMLファイル
HTMLファイルのダウンロード
スマホからもダウンロード、起動できます。
パソコンの場合は、リンク先で右クリック→名前を付けて保存
どうしても独学の学習がうまく行かなかった場合は、プログラミングスクールに通うというのも手段の1つになります。費用はかかってしまいますが、的確なフィードバックをもらえるため、スムーズに学習を進めていくことが可能です。
とはいえ、どこかの有料コースに申し込むのは不安。正直なところ実際にやってみないとわからないという方も多いと思います。そんな方のためにCodeCampでは現役エンジニアによる無料体験を実施中なのでチェックしてみてください)
完全オンライン型のスクールのため、オンラインで学ぶことに最適化したカリキュラムを体験していただくことが可能です。
最終的にどこを選ぶかは別として、ぜひ一度体験してみてください!
- この記事を書いた人
- オシママサラ