本当にゼロから学ぶ未経験者のためのプログラミング学習法

この記事は、

こんな人におすすめ!

・プログラミングを勉強したい

・いつか自分でWebサービス開発をしてみたい

・でも現時点ではまったくのプログラミング経験なし

・まずは手軽に学習できる方法を知りたい

という方にオススメです!

Me
はじめに簡単に自己紹介を。

・年齢:30代前半

・学歴:私大文系(学部卒)

・仕事:外資MR→コンサル→メガベンチャー経営企画

・好き:サウナ

という感じのバリバリの文系で、少し前にプログラミング学習を始めるまでは全くのプログラミング未経験者でした。

本当にプログラミングをかじったことすらないまっさらなゼロです。

そんな僕が思い立ってプログラミング学習を始めることにしました。

詳しい経緯や「なぜプログラミングを学ぶのか」ということについては以下の記事で書いているのですが、

なぜ30歳過ぎ・未経験でプログラミング学習を始めるか|30代文系・未経験のプログラミング学習記

ざっくり言うと、

・自分でサービスを作って事業を始めたい

・将来こどもにプログラミングを教えてあげたい

というのが、僕がプログラミング学習を始めた理由です。

僕自身、まったくの未経験者で30歳を過ぎてプログラミング学習を始めたばかりなのですが、学習を始めて数ヶ月が経った今、これから学習を始める方のお役に立てればと思いこの記事を書いています。

というのも、学習を始めたい!という意欲はあるものの「何から手をつけていいかわからない」という状態のまま、手当たり次第いろいろやってみたものの長続きせず、

実際に「これなら続けられるかも!」という学習方法に出会うまでかなり遠回りしてしまったので、これから学習を始める方には同じ思いをして欲しくないと思ったのです。



“"

どのプログラミング言語を学ぶべきか?

プログラミング初心者がまずぶち当たる壁として「どの言語を学べばいいの?」というものがあると思います。

かくいう僕も、どの言語を学ぶべきかわからず色々調べました。

が、調べれば調べるほど、

Me
Ruby、Python、PHP、Javaとか色々あるのはわかったけど結局どの言語から始めればいいんだ・・

悩みが深まり、なかなか次のステップに進むことができませんでした。

僕の場合は結果としてはRubyを学習することにしました。その理由は以下の記事にまとめていますのでよかったら読んでみてください。

初心者の学習におすすめのプログラミング言語は?

Rubyを選んだ理由をざっくりいうと、

・Ruby on Railsというフレームワークを使ってWebアプリを効率的に開発できる

・学習難易度が比較的低い

というものでした。

そんなわけで僕はRuby/Ruby on Railsを学習することにしたのですが、正直「最初に学ぶ言語はあまりこだわらず何でもいい」と思います。

それよりもまずは1つの言語に絞ってしっかりと学習することが大切だからです。

「そんなこと言われたら余計に悩む!」という場合は、RubyかPythonを選んでおくのがいいと思います。

僕がリサーチしたところによると、プログラミング言語選びの際には、

・そのプログラミング言語でできること

・プログラミング言語の将来性

・習得難易度

・平均年収

などを基準とするのが一般的のようですが、この基準に照らし合わせてもRubyとPythonが良いのではと思います。

ということで、最初に学ぶプログラミング言語はそれほどこだわらなくてOKだと思うのですが、ゆくゆくWebサービス(Webアプリ)を開発したいのであれば、必須で学習しておくべき言語があります。

その言語とは、HTMLとCSSです。

このあたりについて少し解説します!

プログラミング言語の種類

先ほど「最初に学習を始める言語はそんなにこだわらなくていい」と言いましたが、それはいわゆるサーバーサイド言語のお話で、HTMLやCSSのようなクライアントサイド言語はある程度のレベルまでは学習が必須といっていいと思います。

プログラミング言語にも様々な種類がありますが、大きな括りとしては

①クライアントサイド(フロントエンド)

②サーバーサイド(バックエンド)

③データベース

に分かれています。(下図参照:Progateより引用)

①クライアントサイド言語は、ブラウザ(ホームーページなどの画面)上で表示される見た目を作ったり、動きをつけたりする役割を担っています。

先ほど学習必須と言ったHTMLやCSSはクライアントサイド言語で、ざっくりいうと

・HTMLは、Webページ上にどのような内容(文字・文章・画像など)を入れ込むかを定義する言語

・CSSは、HTMLで定義された内容のレイアウトや色などの装飾を定義し、見た目を整える言語

といった感じです。

②サーバーサイド言語は、その名の通りサーバーで行う処理について記述する言語です。

HTMLやCSSを使って表示するWebページ同士の関連性やアクションを定義したりするもので、ざっくりいうと「ユーザーがここをクリックしたら、データベースからこのデータを取ってきて、このページに表示してね」ということを記述する役割です。

RubyやPython、PHPなどがこのサーバーサイド言語に分類されるものです。

③データベースでのデータ保存、変更、削除などを行う言語で、SQLなどがこれにあたります。

以上のように、一口にプログラミング言語といってもその種類は様々なので、まずは大枠の役割の違いについて理解しておくのがよいと思います。

Webアプリなどを作りたい場合、RubyやPythonを学んでもHTMLやCSSの基礎知識がないと、そもそもRubyやPythonの学習段階でつまずいてしまうと思うので、まずはHTML・CSSの基礎も合わせて学習することをおすすめします。

どのように学習すればいいのか

独学かスクールか

では実際にどのように学習を進めるのがよいのでしょうか?

そもそも、「独学かスクールに通うか」という分岐があると思います。

どちらがいいということではなく、ご自身の目的・リソース(お金・時間)・期限(いつまでに学習を終わらせたいか)・場所などから総合的に判断することが重要だと思います。

スクールがおすすめの人

例えば、

学習志望者
プログラミング学習にまとまった時間が取れるし、お金はそこそこかかっても構わないから集中的・効率的に学習を進めたい!

という方は、スクールに通うのがいいと思います。

スクールのメリットは、

・講師から講義を受けられるので書籍やWebサイトで学習するより効率がよい

・わからないところを質問できるので理解促進かつ継続しやすい

・受講期間が決まっているのである程度勉強をしなきゃという強制力がはたらく

というものだと思います。

一方で、当然学費がかかるのである程度金銭的な余裕がないとスクールに通うのは難しいと思います。

スクールに通うか悩まれている方は、まずは無料の説明会などに参加してみるのがいいと思います。スクールにはTech Camp(テックキャンプ)TechAcademyなどがおすすめです。

独学がおすすめの人

スクールではなく独学が向いているのは、

学習志望者
・まずはあまりお金をかけずに学習したい!

・自分のペースで学習を進めたい!

・自分一人でも学習を進めることができる!

という人だと思います。

ではどのように学習をすすめるのが良いかということですが、僕のおすすめはまずProgate(プロゲート)を受講することです。

Progateは初心者向けの学習サービスで、プログラミングの基礎の基礎から学ぶことができます。

上で「HTML・CSSは必須」とお伝えしましたが、Progateでは「Ruby+HTML/CSS学習コース」「Python+HTML/CSS学習コース」など、サーバーサイド言語に加え最低限のHTML/CSSの知識が学べるコースが用意されているので、そのコースを受講することで本当に基礎の基礎レベルの知識を得ることができると思います。

さらにおすすめポイントなのが、コスパがめちゃいいということです。

無料で学べる範囲もそもそも広いのですが、全てのコースが受講できる有料プランでも月1,000円程度なので、とてもお財布に優しい学習をすることができるのです。

Me
(Progateさん本当にありがとう・・・!)

Progateのネクストステップは

プロゲートで基礎学習を終えたら、次のステップとしてはUdemyなどでもう少し難易度の高い講座を受講するのがいいと思います。

Udemyは世界最大級のオンライン学習プラットフォームで、プログラミング以外にも様々な分野でのオンライン学習講座が用意されています。

その特徴は、動画の学習コンテンツ多数揃っていることと、比較的低価格(1,500円程度〜2万円程度)で講座受講が可能なことです。

僕はRubyを学習しているので以下の講座を受講しましたが、Pythonの講座も多数あるので、評価が高い講座のリンクを貼っておきます。

▼Ruby/Ruby on Railsの講座▼

はじめてのRuby on Rails入門-RubyとRailsを基礎から学びWebアプリケーションをネットに公開しよう
“"

▼Python/Djangoの講座▼

【3日でできる】Django 入門 ( Python 3 でウェブアプリを作って AWS EC2 で公開!)

いかがでしょうか?

このようにプログラミング学習の手段は様々ありますが、その多様さゆえにどのように学習すべきか迷ってしまうと思います。

ご自身の目的やリソースに合わせて、ご検討ください。その際にこの記事がお役に立てれば嬉しいです。

シェアしてね!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です