IT人材のためのキャリアライフスタイルマガジン

プログラミングを学びたい人の学習方法|独学とスクールの違い

プログラミング学習

現在最も注目されている技術といえばプログラミングです、ここではプログラミングを学びたい人の学習方法、プログラミングを学びたい人の準備(開発環境/時間確保など)、学習期間、独学とスクールのメリット・デメリット、開発言語の選び方などについてお話します。

更新日時:

とりあえずプログラミングを始めてみたい人にオススメの学習方法

HTML・CSSプログラミングから始めてみるのがオススメ!

 世界中には、たくさんのプログラミング言語があり、プログラミングを始めてみたくても何から始めていいのかわからないという方はたくさんいらっしゃると思います。そんな人向けに、オススメなのがHTMLとCSSから始めてみるというやり方です。  HTMLとCSSを学習することで簡単でシンプルなwebページを作ることができるようになります。HTMLは、簡単に説明すると、webページのテキストを記述するもので、CSSは、webページのデザインを構成するものです。プログラミングを始めたての頃は、この説明だけでは漠然としたイメージしかつかないと思われますが、手を動かして慣れていくうちにわかるようになってくるので、心配ありません。とりあえず、始めてみることが大事です。

どうやってHTMLとCSSの勉強を始めればいいの?

 HTMLとCSSの独学をする時は、入門レベルの学びたい書籍を1冊購入するか、progateやドットインストールなどの学習サイトで、初めから最後まで実際にコードを書いて1つのサイトを作り上げていくのが一番効率的です。プログラミングスクールに通う場合は、スクール側がオリジナルのカリキュラムを用意してくれているので、それを利用して学習しましょう。独学にせよ、スクールに通うにせよ、自分で手を動かして1つのものを作り上げていくということが最も重要です。  人間は一度頭に入れことでもどんどん忘れていく生き物ですので、できるだけ短期間で1つのサイトを作り上げていくことがオススメです。できるだけ記憶に残っている状態を維持して行きましょう。

最初の目標は自分でゼロからWEBサイトを作り上げること!

 HTMLとCSSの勉強の目標は、本や無料学習サービスやスクールの教材を真似することなく、自力でwebサイトをゼロから作り上げるようになることです。  本やプログラミング学習サイトやスクールの教材をやりきってwebサイトを1つ作り上げたたあとは、自分自身で様々な種類のwebサイトをいくつか作ってみてください。自分で参考にしたいwebサイトを1つ決め、同じような構成になるようにゼロからコードを書いてみましょう。

デザインスキルを身につけスキップアップしよう!

 HTMLとCSSを学ぶことで、簡単でシンプルなwebページを作り上げることが可能になりますが、よりよりwebサイトを作り上げるためにはデザインスキルが重要になってきます。webサイトは、見た目が非常に重要であり、かっこいい、おしゃれなサイトの方が人気が出ます。HTMLとCSSを使って、簡単なwebサイトを作れるようになったら次はデザインを意識してみましょう。

どうやってデザインスキルを身につければいいの?

 サイトのデザインの勉強を始める前に、デザインそのものの基礎が頭に入っていると学習がすスムーズです。「デザイン 基礎」などの検索ワードで調べると、デザインの基礎が紹介されたサイトがたくさん見つかるので参考にしてみましょう。      デザインの基礎に触れた後は、実際にWenデザインの学習に入りましょう。webデザインのスキルアップには自分が気に入ったサイトや、有名なサイトのデザインをPhotoshopなどのデザインツールでひたすらトレースしていくのが効果的で、効率的です。Photoshopの使い方は、インターネットで検索するとたくさんの記事が出てきますので参考にしてみましょう。    デザインをPhotoshopなどでトレースする際には、なぜこのサイトの作成者はこのデザインを採用したのか、また、このデザインにすることによって何を強調しているのかといったことを意識して考えるとより効果的です。

次はwebサイトに動きをつけてみよう!

 HTMLとCSSを学ぶと、静的な(動きのない)webサイトを作れるようになりますが、動的な(動きのある)現代的なWEBサイトを作ろうと思うとJavaScriptを学ぶ必要があります。    JavaScriptはプログラミング言語の一種で、webサイトに動きを加えることができるよになります。普段よくみる動きのあるサイトにもよくJavaScriptが使われています。HTMLとCSSに比べると難易度が上がるため、ここで挫折してしまう方が多いのも事実です。これまで本や無料webサービスなどで独学されていた方も、プログラミングスクールに通うことで挫折する可能性を少しでも下げた方がいいこともあります。  JavaScriptの学習も、HTMLとCSSの学習の時と同様に、本や無料学習サービスやスクールなどで実際に手を動かしてコードを書き、学習しましょう。  JavaScriptはwebサイトに動きを加えるということ以外にも使えるので、プログラミングコミュニティWEBサイトのS Stack Overflow Developer Survey 2016 Resultsによれば、技術者に最も人気のある学びたい技術となっています。

ぶっちゃけ、オススメの学習サービスや本は?

[大定番のプログラミング学習サイト]ドットインストール

 動画をみながらプログラミングを学習できるのがドットインストールです。実時に独学でプログラミングを始めたという人の中でも、とりあえずドットインストールから学習を始めたという人も非常に多いです。実時のコードの書き方からプログラミングを学びたい人や、本当はプログラミングスクールに通いたいけど費用がないという人やは、一度ドットインストールの動画を見てみてください。

ドットインストールのリンク

[入門書の定番]スラスラわかるHTML&CSSのきほん

 HTMLとCSS入門の最初の1冊として、評価の高い1冊です。本の中の演習でWebページが作成できます、初心者のケースがまず覚えておきたいプログラミングの基本的な部分はこの本で充分学べます。経験の無い人が学びたい場合や、とりあえず何か最初の1冊を購入したいというケースにはよい1冊です。

[サイトを作るときの参考に!]HTMLクイックリファレンス

 webサイトを作る際には、リファレンスと呼ばれる参考ページを参照しながら実際にコーディングしていくことがあります。HTML系のリファレンスはいくつかありますが、このリファレンスは実例が多数掲載されています。実践的で分かりやすいリファレンスで、お世話になる学びたいWEBサイトです。

HTMLクイックリファレンス

[ゲーム感覚で学習できる!]HTML5カルタ

 カルタ形式で遊びながらHTML5を学べるHTML5カルタです。初級、中級、上級セットは有料です。

[ステップアップに!]これからの標準を身につける HTML+CSSデザインレシピ

 こちらはかなり実践的な内容になっていますので、そろそろ初心者は抜け出したかなという人や、実務で何となくHTML使ってるけどいまいち分からないところも多いという人にお勧めしたい本です。スマホにも対応するサイトの作り方を学びたい人向けにスポンシブWebデザインについて、CSSフレームワークを利用したページレイアウトのケース法等も掲載されています。パーツ別レシピ集なので、実践学習後、参考書がわりにも使える本になります。解説は基礎があることを前提に進んでいくので、初心者のケースが手を出すにはハードルが高めです、学びたい基礎を一通り習得して中級者を目指すケースには最適な学びたい1冊です。

Codecademy

 Codecademyは、実行環境を構築しなくても、書いたコードをすぐに実行できるオンラインプログラミング学習サービスです。サインインすると、面倒な設定や環境構築をしなくても、すぐにコードを書いて動かす実践的な学習ができます。WEBサイト内は一部のみ日本語対応していますが、大部分が英語のみの表示となっています。

paiza.IO

 paiza.IOは、ブラウザ上でコードが書け、書いたコードをその場で実行出来るオンラインプログラム実行環境です。面倒な環境構築なしに、例として本に載っていたコード、ネット上で他の人が公開していたコード等をオンラインで実行して最終的な状態を見ることができます。ブログパーツとして使えたり、GitHub(Gist)連携なんかもできますので、ぜひpaiza.IOでどんどんコードを書いてください。

paiza

 paizaでは、コーディング技術をはかるコーディング問題を実際に解くことにより、S・A・B・C・D・Eの6段階でランクが分かります。ぜひ問題を解いて、ランクアップを目指してみてください!プログラミング業務経験のないケースでも、Dランクが取得できると、プログラミングのベーシックな概要は理解できているということになります。

CodinGame

 対応言語はPHPの他にもava、JavaScript、Go、C、C++、C#、ObjectiveC、PHP、Perl、Python、Rubyなどなど20言語に対応しています。レベル1から始まって、もちろん最初のケースの問題は簡単なのですが、レベルを上げるごとに問題も難しくなっていきますので、初心者のケースが全てをクリアするには継続した学習が必要となってきます。

プログラミングを学びたい人の準備

モチベーション

 プログラミング初心者にとっては、モチベーションが全てです。プログラミングの学びたい目的があるケースでは習得率が上昇します。例えば、英語を学習する場合にも学びたい目的(野望)があって始めて英語を学ぶ意欲が湧いてきます。このようにまず自身がプログラミングを学習する目的を明確にすることが重要です。学びたい目的は本当になんでも良いと思うので、プログラミングを学んでこれがしたい、こうなりたい、というプログラミングを学びたいテンションが上がるものを考えてみてください。  まだプログラミングを始める目的が明確化されてない人は、プログラミングを学ぶことで得られることをイメージするといいかもしれません。プログラミングを学習することによってできるようになることには以下のようなものがあります。 1.起業に活かせる  最近は、色々な業界がIT化され、IT業界以外で起業する場合以外でもプログラミングスキルがあると、自分自身でサービスを作って起業できたり、新しいビジネスアイディアが浮かんだりといいことづくしです。 2.エンジニアとして高待遇で就職、転職できる  近年の急速に進展するIT化の流れで、エンジニアの需要が急上昇しています。エンジニアの需要の上昇に伴い、エンジニアの給与形態は高くなっています。今よりもいい仕事につきたいという方には、プログラミングを学んで高待遇で転職するということもオススメです。   3.単純にかっこいい

目的によって学びたいプログラミング言語を選ぶ

目的を明らかにしたら、学びたいプログラミング言語を選びましょう。プログラミング言語は200種類以上です。目標、目的に合った学びたいプログラミング言語を選択します。プログラミング言語選びは、技術者人生を決めると言われているくらい難しいです。コツは、学びたい、作りたいものを考察することです。

希望作成物の分類は3つです。 ○WEBサービス 、WEBアプリケーションケーションケーション ○ゲーム ○スマートフォンアプリケーションケーションケーション それぞれ、適した学びたいプログラミング言語があります。希望作成物の作成可能な言語を選択してください。

環境や道具を整える

プログラミング初心者にとっての学習は環境が大事です。道具、場所、環境で学習効率は2~3倍変わってきます。カフェ学習で、その中で集中するためのケース法なんかも使っていました。PCでプログラミング言語環境の作成が必要です。その前もって準備することを、開発環境の設定や環境構築と言います。プログラミング初心者の難関がこの準備です。中級者でもケースによっては1日〜2日程はまってしまいます。

学びたい仲間やコミュニティをつくる

プログラミング学習をしているとどうしてもエラーにぶつかったり、萎えてしまいます。一緒に学習する友達や、プログラミング学習コミュニティ参加で、モチベーション保持が可能です。同士のおかげで身についた。下手でなくできたところなどを軽く発信しあったりして褒めあったり、刺激になるので効果的です。

プログラミングエラー解決法

プログラミング初心者にとってよりも大きな敵はエラーです。このエラーによってモチベーションが下がったり、最終的に学習ストップのなる確立があります。エラーを出すことは悪いことではありません。プロのケースでも全体の8割の時間はエラーと戦っていたりします。ポイントは解決方法です。エラー解決で検索と質問サービスの使用が効果的です。

プログラミングの効率的な勉強法を知る

プログラミング学習は暗記だと思われがちです。プロのケースは文法や細かいルールなどが全て頭に入っていて、簡単に作成できるとも思われがちです。プログラミングは暗記ではなく理解です。プログラミング学習がさらに楽しくなります。

学習期間

動画学習で基本構文を抑える

初めてプログラミング学習をするときには、まず動画学習WEBサイトを利用して基本的な構文を理解しましょう。そもそもプログラミングとはこういうものなのか、学習するプログラミング言語でどんなことができるのかといったことを動画学習し理解していきます。 目安勉強時間 30〜40時間 プログラミングの基礎理解はだいたい30〜40時間くらいを目安に学習していきましょう。元々どの度合い理解しているのかにもよりますが、学習時間をかけ過ぎるとはまります。ひとまずは触って慣れていくことがポイントです。

動画や書籍でアプリケーションケーション開発のケース法を学習

プログラミングの構文を覚えただけでは、アプリケーションケーション開発をすることは出来ません。プログラミングで構文を組み立てて実時に動作するアプリケーションケーションを作っていくケース法を学習する必要があります。各言語で機能がまとめて提供されてるので、他の開発者が作ってくれた学びたい機能をそのまま使うことが出来ます。ゼロから自身で作ることは一般的には稀ですので、自身が作りたいものややりたいことで使われているものを調べてその使いケースを学びます。動画で解説しているWEBサイトで、使用しての学習がお勧めです。 目安時間 30時間 アプリケーションケーション作成のための環境構築や開発ケース法などの学習時間は30時間位を目安にしましょう。どの学びたいプログラミング言語を学ぶのか、覚えるよりも慣れることが大事です。

書籍やWEBサイトWEBサイトで学習

ここまで来てようやく書籍や一般的な入門のWEBサイトWEBサイトに入っていきます。学習教材として使うものはステップバイステップで、サンプルアプリケーションケーションが作れるものを使いましょう。サンプルの開発を経験して実時にアプリケーションケーションを作っていく流れを体感して下さい。 目安時間 70時間 どんな教材を学習するかにもよりますが、お70時間位目安で勉強してください。実時に本格的な開発をやり始めるということで色々なエラーに出会ったり用語を調べたりしながら進めていきます。

調べながら学習

作ったサンプルのアプリケーションケーションを改造していきます。その機能を実現するケース法をGoogle検索しながら実装していきます。作りたいものを考えて実時に作っていくというこの行為を3回程行えれば、開発の流れ、全体像がつかめます。 目安時間 40〜50時間 企画の時間を含めても、40〜50時間位を目安に進めていきましょう。大規模機能は必要ありません。自身が出来そうな小さなものから作って行くのが良いでしょう。プログラミングの時間配分を抑えたら、動機を明らかにしましょう。

独学のメリット

費用が高くない

独学の最も大きなメリットは、費用が高くないことが挙げられるでしょう。スクールに通ったり、コースを受講するケース、ある度合いの金銭的投資が必要となります。一ケース、独学のケース、書籍代で済ませることができりケースが大半です。無料でプログラミング学習可能なWEBサイトが多くあります。特に有名なのがドットインストールです。3分間動画で勉強することができます、プログラミング独学学習向きツールです、費用を抑えて学習可能です。

やる気次第で自身の進めたいように進められる

スクールに通ったり、コースを受講するケースでは、勉強進捗は自己決定できません。独学、勉強の進捗は自身次第です。自身に学びたい気持ちがあれば、短期間で勉強が可能です。

ゲーム感覚でプログラミングを勉強できる

progateというWEBサイトでも、学習スケジュールを自身で決めることができます。

プログラミング問題解決能力をつけられる

プログラミングをする人にとって、問題解決能力は必須です。プログラミングで、必ずといっていい程、バグが起こりプログラミング上達の鍵となります。独学のケースでは、スクールやコースのケースと違って問題が起こったときに、答えを教えてくれる人がいません。そのため、自身で問題を解決していく必要があります。stackoverflowといったインフォメーション交換WEBサイトを利用したりと様々な手段があります。プログラミングの当初から役立ちます。

自身の好奇心に従ってプログラミング勉強できる

スクールやコースを受講するケース、学習内容は決定されています。内容に沿って勉強を進めます。他の言語が勉強したくなったり目移りはあります。独学のケース、自身の好奇心に沿って、学習内容を変化させられます。

独学のデメリット

相談できる人がいない

プログラミング学習では必ず問題にぶつかります。そのとき、独学のケースでは相談できる人がいません。スクール、コースを受講なら、先生、メンターがおり、質問、相談が可能ですぐに解決できます。自身で悩んで試行錯誤する時間や労力を無駄にしないで済みます。独学で勉強するケースでは、学びたいプログラミングがわかる友達を作ったり、プログラミング言語のミートアップに行ったり、関連コミュニティに入り、相談できる人、場所の確保が必要です。

効果的な学習ケース法がわからない

独学のケースでは学習ケース法を自身で調べ決めていかなくてはいけません。その学習ケースが自身に適しているかもわからないので、試行錯誤で進めます。必要以上の時間、労力が必要なケースがあります。コースを受講するケースでは、プロが作った最適な学習ケース法で勉強を進めることができます。スクールでは、コンサルティングを行い、その人の目的や適性に合わせた学習ケース法を提案してくれます。効率よく学びたいプログラミング学習が可能です。

自身のレベルがわからない

独学で勉強をしていると、自身のレベルがどのくらいなのか計りづらいというデメリットがあります。勉強を続けていても、客観的判断を下せる人がいないからです。コースのケースでは、スケジュールが決まっており、達成すべきレベルが決まっています。客観的評価で、自身のレベルがわからないということが起こりにくいです。

だらけてしまう

プログラミングに限らず、独学のよりも大きなデメリットは、自律が必要です。独学のケース、勉強するかしないかは、自身次第で勉強が停止することがあります。コースを受講するケースでは、スケジュールが決定しているので、独学のケースよりもだらけにくい状況を作り出せます。 先生やメンターがいるので、勉強進捗を確認する第三者の目を獲得できます。コース受講するケース、独学より費用投資が大きいので、自律勉強不可能なケースでは独学プログラミングは難しいかもしれません。だらけてしまわないようやる気が維持できるように方法を確立しておきましょう。

開発言語選び

VisualBasic.NETプログラミングを学びたい

○とにかく簡単でわかりやすい ○そのまま業務で使えることもある ITエディケーションで使われているくらいなので、比較的少ない学習費用である度合いのレベルまでいけます。.Netframeworkがあれば業務用システム利用も有ります。特に実装に費用を掛けたくないユーザが操作する部分などで使用されます。NET(ドットネット)他にもC#..NETやASP.NETなど、似たように使えるものも有ります。

ExcelVBAプログラミングを学びたい

○感覚的に分かりやすい ○実務で使える Excelの基本的な関数(例として if など)の使いケースを知っていれば、動きも分かりやすくはじめやすいです。また、実時に日々の業務を自動化する業務用ツールを作ったり、本格的Excelアプリケーションケーションを作ったりと、少しの経験でも戦力になることがあります。

C言語 / C++(シープラプラ)プログラミングを学びたい

○比較的難しいがその分プログラミング基礎力が付く ○とても早い動作のアプリケーションケーションが作れるようになる この言語は学習費用の高い修羅の道です。ただ、コンピュータについて言語の基本的な使い方をしっかりと学習できるため、習得知識基盤として活用できる範囲は広いです。JavaAndroidアプリケーションケーションの処理が重いので、C++Androidアプリケーションケーション開発のケースもあります。技術と環境さえ整えられれば、処理速度の早いアプリケーションケーションを作れるようになるのは魅力です。リアルタイム性を求められる業務システム(例として証券取引システム)なども、C言語/C++がリクルートされていることが多いです。

C#(シーシャープ)プログラミングを学びたい

○ゲームで動かしながら学びやすい ○ゲーム開発に使える環境や、ライブラリが比較的多い為、ゲーム作成でオブジェクト指向を勉強できます。 .NETでiOS/Android向けのアプリケーションケーション開発できます。

Swiftプログラミングを学びたい

○活躍しやすい ○新しい使われケースも期待できる 新しい言語でまだ最前線を走っている人も経歴が長くない為、Swift技術者は引く手あまたです。Perfect、Swift製のWEBフレームワークにより、iPhoneアプリケーションケーションの制作のみならず他の領域に広がると予想されます。

Java(ジャバ)プログラミングを学びたい

○プログラミングそのものの知識がしっかりつく ○大きい業務を作るときにリクルートされやすい Androidアプリケーションケーションをスタンダードなケース法で作れる オブジェクト指向や、汎用的言語知識が学べます。Java経験の技術者は転職が容易なので、有効な武器です。WEBシステムのみならず、組み込み系やスマートフォン(Androidアプリケーションケーション)に利用されています。Java開発は、費用は結構かかりますがそこそこ処理速度が早く保守しやすいのでバランス型です。

PHP(ピーエイチピー)プログラミングを学びたい

○日本でよく使われている ○軽量で様々な環境で使える 学習費用が低く比較的シンプルな言語で、部分的なサーバサイドシステムが作れることや、レンタルサーバで使えることから、学習しやすいのでプラス評価です。プログラミング学習WEBサイトでも学習可能です。

Python(パイソン)プログラミングを学びたい

○学習費用が比較的低い ○言語が読みやすい(スタイリッシュ) ○専門的な企業に行きやすい 言語自体はとても良いものです。オススメしたい言語です。

JavaScript(ジャバスクリプト)プログラミングを学びたい

○新しい物が次々出ていて学習するポイントが安定しない ○結局広い範囲の知識がないと使いこなせない JavaScriptが使えるフロント技術者は重宝されるものの、サーバサイドの知識もある度要求されます。業務としてするケース、結局他の言語の知識も必要になってくるケースが多くなります。JavaScriptはいろいろなことが出来ます。

Ruby(ルビー)プログラミングを学びたい

○Rubyのケースがサーバーの知識がつくので、汎用的な知識もつけやすい点 ○非常に多くのWEBサービスやアプリケーションケーション、ゲームに使われている点 ○最近では業務系のフィールドでも案件が増加してきている点 WEBサービスののみならず、スマートフォンアプリケーションケーションケーションやゲーム、業務系アプリケーションケーションも可能で汎用性も高いです。業務面で日本でもリクルート事例が増加してきて、インターン、副業につながりやすい。

自分のやりたいことはコツコツ進めていこう!

いかがでしたでしょうか。プログラミングはたくさんの専門用語や言語を使うので、決して簡単なものではありません。まず勉強をしなければ、確実にプログラミングをすることは不可能です。学びたいという意志が大切なので、小さいことからでも着実に、知識をつけていきましょう。それが独学であっても、授業であっても、自分にあったやり方で進めてみてください。

関連タグ

アクセスランキング