こんにちは、ガルゾウです。
今年から本格的にプログラミングを習得している者です。
スクールに通いつつ
クラウドソーシングで仕事を受けようと頑張っている最中です。
独学でプログラミングを習得するのに何か困っていますか?
はっきり言ってプログラミング独学にウルトラQ的な近道やメソッドは無いと思います。
それは僕もひしひしと感じている最中ですよ。
しかし
できるだけ効率的に質と量を高めることが出来たら独学でも十分習得をすることは可能と感じております。
今回はその効率的な方法をシェアして
少しでも皆様の助けになればと思います。
では、さっそく行ってみましょう。
最初は頭から煙が出るくらいプログラミング難しかったけども、ちょっとずつ勉強していけば慣れてくるもんですよ!
逆に、慣れって怖ぇ!
もくじ
IT業界的にはプログラマー・エンジニアは完全に売り手市場
マクロ推計によれば、2015年時点で約17万人のIT人材が不足しているという結果になった。さらに、前頁で示されたとおり、今後IT人材の供給力が低下するにもかかわらず、ITニーズの拡大によってIT市場は今後も拡大を続けることが見込まれるため、IT人材不足は今後ますます深刻化し、2030年には、(中位シナリオの場合で)約59万人程度まで人材の不足規模が拡大するとの推計結果が得られた。
経済産業省 IT人材の最新動向と将来推計に関する調査結果
上記を簡単に言うとエンジニアが全然足りないんですね今。
この先の未来もどんどんエンジニアが足りなくなるのが見えてきてるんで
政府も国を挙げてやっと、2020年からプログラミングを義務教育に取り入れるなど、IT人材の育成に着手しはじめました(遅いな〜)。
つまり、エンジニア不足=仕事にありつける
ってことになるんですね〜。
また、昨今の人工知能(AI)などの流行言葉から
”人工知能(AI)によって単純作業やルーティンワークはプログラムによって自動化され、人間にしかできなクリエイティブな仕事やプログラムを作る側の仕事をしないと将来は職がなくなる” と言われています。
このような社会情勢から、プログラミングができることは今後の社会でもっとも重要なスキル・職業といえるんですね〜。
プログラミング習得で得られるメリット
ま〜、プログラミングで得られるメリットなんか無限にありますよマジで!
でも今回は学生・就活生・社会人などいろんな視点からメリットを考え「9つ」くらいに絞ったんで見ていきましょう。
1.大学生:自己研鑽も含めた企業でのインターンやアルバイトができる
学生の頃からプログラミングをたしなんでおけば、そりゃ企業も多分「うちにアルバイト来て」ってなると思います。
そんで、比較的高時給のアルバイトになることは間違い無いでしょうね。
自己研鑽もできて最高やん!
ちなみに、どんだけプログラミングができるかは企業によって色々あると思いますが、最低限「HTML&CSS」は理解しある程度コード書けるようにしておくと良いですね。
2.就活生:就活でスキルをめちゃアピールできる
僕が企業の採用担当だったら、別にIT関係の業態じゃなくてもプログラミング理解できてる人を注目すると思います。
なぜなら、業務改善なんかでもプログラミングの知識や考え方って有効活用できますからね普通に。
プログラミングができれば、確実に強力な武器になります。
新卒採用でのITエンジニア職は入社後に研修がある企業も多く即戦力レベルにならなくても大丈夫です。
自発的に学習し、スキルを身につけることで自分の選択肢を広げることができます。
3.転職考え中の社会人:転職に役立つ強力なスキルになる
もう一度言いますが、プログラマーやエンジニアは人材不足。
2020年には37万人の技術者が足らなくなると言われるぐらい需要が多く、スマホの普及・IoT社会の発展により将来性の高い職業です。
ビジネスサイドでもプログラミングを理解している人材は開発サイドとのコミュニケーションが円滑になるため、大きなアピールポイントとなります。
有益な人材になることは間違いないでしょうね。
4.社会人:副業で稼げるようになり収入増
別に、転職するだけが社会人プログラミングスキルのメリットではありません。
企業に所属している社会人でプログラミングができると、クラウドソーシング案件受注などで副業ができるようになり本業以外の収入を増やすことができます。
システム開発の仕事の規模は大規模なものから小規模なものまでたくさんあり、小規模な案件は企業ではなく個人に依頼されることが多いんです。
案件の単価は1ヶ月の期間で5万〜20万ほどの報酬が出ます。
スキルを磨けば、週末エンジニアとしてお金を稼ぐことも可能です。
5.自営業:自分の会社のサイトや予約システムを自前で作成できる
現代においては、どの企業でも自社のホームページ・webサイトを持っている時代。
さらにインターネットを活用したマーケティング・集客が一般的となっています。
会社のホームページを外注して作成する場合、価格で言うと30万〜100万円ほどの高額な費用がかかり、なかなか発注できないケースが圧倒的に多いです。
しかし、プログラミングが出来れば、自分で作成することが可能となり無料で自社のサイトや予約システムを作ることができるんです。
6.ビジネスマン:ITリテラシーを高めることができルーティンワークも削減できる
現代の仕事はすべてITと密接に関わっていると言っても過言ではありません。
そのIT技術はすべてプログラミングによって生み出されています。人工知能もそう。
プログラミングを学び、ITの裏側の仕組みや開発の工程を知ることで、ビジネスでの提案力の向上・プロジェクトの見積もり・新しいアイディアの創出につながります。
また、日々の手作業で行っているルーティンワークを自動化することができ、人間にしかできないクリエイティブな仕事に時間を充てることができます。
7.フリーランス:案件が多くて食いっぱぐれない
フリーランスになりたい方は、プログラミングスキルを身につけるのを超絶おすすめします。一定期間ある会社のプロジェクトに参加するような形や、クラウドソーシングサイトで案件を獲得する方式など、プログラミングスキルがあれば働き口に困りません。仕事量も調整できます。
高いスキルがあれば、高単価の案件を獲得することができ、さらに紹介が回ることで、継続的に自由に仕事ができます。
8.起業家:自分のアイデアをカタチにできる
起業志望の方で、アイディアはあっても、サービスにするまでには時間やお金がかかりすぎるので断念する人が非常に多いです。
しかし、プログラミングができるとパソコン1台あれば自分のサービスを無料でスピーディーにつくることができ、また改善のサイクルを高速で回すことができます。
起業とプログラミングは非常に親和性が高いです。
9.主婦:家事と両立して在宅ワークで仕事ができる
主婦やママさんのプログラミングブームが来ています。
プログラミングはパソコン1台あればどこでも仕事ができるため、子育でや家事と両立して自宅で仕事をすることが可能です。
女性の在宅ワークに理解のある企業も増えています。
プログラミングスキルがあれば、理想のライフスタイルの実現が可能です。
自身の偏見・誤解を解くマインドを持て
「プログラミングは専門の人や特殊な訓練を受けた人だけしかできない」
そう思い込んでる人もめっちゃ多いんじゃないでしょうか?
簡単に一言で言うと
「プログラミングは誰でも何歳からでも習得することができます」
以下に参考になるやつをいくつか紹介します。
企業で活躍しているプログラマーは文系出身者が多い
IT人材白書によるとIT技術者の最終学歴で文系が比率多めという結果になりました。
- 20代:40%
- 30代:35%
- 40代:35%
- 50代:30%
意外と文系が多いことに驚きでした。
プログラミングに使う英語は中学レベルで問題なし
プログラミングは、全ての言語において英単語を使用します。
英語は不得意だから僕にはプログラミング無理!
とアレルギーを起こしている人いないでしょうか?
最初は悩むかもしれないですが、実際には難しい単語はほぼ出てきません。
強いて言うなれば、中学で覚えるレベルの英語ができればプログラミング はできちゃいます。
独学で習得までに必要な時間は?
結論から言うと、自分で簡単なアプリを作成できるようになる時間はおおよそ「200時間」と言われています。
最初はProgateやドットインストールなどの無料で基礎が学べちゃうサイトを活用し、ちゃんと真剣に参考書などで学んでいけばオリジナルのアプリは作成可能です。
ちなみに僕は180時間ほど学習と開発に時間を投下し作成することができました(お天気アプリを作成)
また実用的なサービスではなく、簡単なプログラミングのためのアプリであれば数日間の学習時間で開発することができます。
例えば
じゃんけんアプリ
「グー、チョキ、パー」のどれかをクリックすると、コンピューターも同時にランダムで手を出し、勝ち負けを判定するゲームを作る場合は、5~10時間あれば仕組みを理解しながら作成することができます。
おみくじアプリ
選択肢を3つ作成し、どれかひとつを選ぶと「大吉・中吉・小吉・吉・凶」の5段階の運勢をランダムに表示するアプリケーションを作る場合は、3~5時間あれば作成することができます。
メモ帳アプリ
メモを作成し、それを保存し、また新しいメモを作成することができるアプリケーションをつくる場合は、10~20時間あれば開発することができます。
いきなりオリジナルのサービスを開発するのではなく、プログラミングを理解しながら、小さい制作物を作ることで、モチベーションも継続しやすいです。
コツは、気軽に50点の出来でいいから開発しまくることが大事です。
初心者が学習していくステップは?
プログラミング学習は圧倒的に挫折する人が多いと言われています。
その原因に、学習していくステップを知らない という問題点が多いようです。
挫折しないステップとは?
見ていきましょう。
ステップ1:最初に自分が作りたい物を決める
まずは作りたいサービスを決めましょう。ゴールがない学習は続きません。
作りたいものを決める方法は2通りあります。
・日常で困っていることを解消するためにサービスを作る
プログラマーの仕事は「課題解決」です。自社の業務を効率化させたり、社内の情報共有を活発にするツールをつくりたいというクライアントの要望に対して、ITの力を使ってソリューションを行います。自分の身の回りで困っていることを思い出し、それを解消するサービスを考えることが大事です。
・純粋に自分の興味のあるものを作る
「こんなサービスがあったらおもしろい!」「昔から作ってみたかったものがある!」という方は、自分の興味から考えてサービスを作りましょう!
学習では「楽しい!」と思えることが一番の原動力になります。自分がワクワクするものをつくりましょう。
なかなか思い浮かばない場合は、学習していくうちに自分の作りたいサービスが見つかるはずなので、まずはプログラミングの基礎が学びやすいサービスを作りましょう。
一旦はTwitterやFacebookのようなSNSのサービスや、料理や写真の投稿型サイトのようなものをつくるのがおすすめです。
ステップ2:学習する言語を決める
作りたいサービスが決まれば、次は学習する言語を決めましょう。
世の中には200種類以上のプログラミング言語があります。
その中で、ゼロから効率よく学習したい初心者の方におすすめの言語を紹介します。
webサイトを作りたい人
自分でWebサイトやHPを作りたい方は、HTML、CSS、JavaScriptを学習しましょう。
HTML、CSSはWebサイトの見た目を作るための技術です。正確にはプログラミングではありませんが、プログラマー・ITエンジニアのほとんどが使用できるので、マストで学習しましょう。
JavaScriptはWebサイトに動きをつける言語です。ボタンを押すと振動するようなアニメーションや、通販サイトのトップページで画像がスライドショーになっているような場合、このJavaScriptが使用されています。
以下の記事を見つけたので参考にしてみてください。
【初心者向け】JavaScriptでプログラミングを学ぶ4つのステップ
webアプリを作りたい人
SNSのようにログイン機能があるサービスや、お問い合わせフォームがあるサイトを作りたい場合はWebアプリケーションができる言語を学習しましょう。
Ruby on Rails、PHP、Pythonがおすすめです。特にRuby on Railsは「Ruby」という言語のフレームワーク(一般的な機能を持つ共通コード)で、これを使いこなせれば誰でも本格的なプログラミングを短い時間で行いやすくなるため、Webサービスを運営する企業で使用されるケースが増えています。
以下の記事を見つけたので参考にしてみてください。
【初心者向け】Ruby on Railsとは?学習する3つのステップを解説
【初心者向け】Pythonプログラミングを学ぶ4つのステップ
iOSアプリを作りたい人
iPhoneのアプリケーションを作りたい場合は、Swiftを学習しましょう。2014年に出来たばかりの言語で、iosアプリの普及を目指し、誰もが開発しやすい言語として急成長中です。
【初心者向け】Swiftでプログラミングを学ぶ4つのステップ
Androidアプリを作りたい人
GALAXYなどのAndoroid端末のスマートフォンのアプリケーションを作りたい場合は、Javaを学習しましょう。
Javaはアプリだけでなく基幹業務システムなど、BtoBの大規模開発で使われることも多いプログラミング言語で、一度習得すれば仕事に困ることはありません。
ただ、まったくの初心者が学習するには難しいとされています。アプリ開発以外の目的でJavaを学習したい場合は、同じようなシステム開発ができ、初学者にもわかりやすいRubyを学習するのがおすすめです。
【初心者向け】独学でJavaプログラミングを学ぶ4つのステップ
ゲームを作りたい人
ゲームを開発したい方は、C#とUnityを学習しましょう。C#はゲーム開発で主流のプログラミング言語です。しかし、Javaと同様に初学者にはハードルが高い言語なので、学習には根気が必要です。
Unityはプログラミング言語ではなくゲーム開発環境のことです。2Dゲーム、3Dゲームともに作成することができ、VRアプリケーションもUnityで開発することができます。
【初心者向け】Unityでプログラミングを学ぶ4つのステップ
【初心者向け】C#とunityでゲームをつくるための3つのステップ
迷う人
具体的に何を開発したいのかわからない、って人は
Webアプリケーションが作れて、また初学者が理解しやすいRuby on Rails、PHP、Pythonを学習しましょう。
どの言語も、代表的なSNSサービス開発に使用されています。
・Ruby on Rails:Twitter
・PHP:Facebook
・Python:Instagram
こちらの記事からあなたに最適なプログラミング言語を発見できます。
ステップ3:環境構築をする
学ぶ言語が決まったらプログラミング言語を扱う場所である開発環境を整えましょう。
実はWindowsのメモ帳でもプログラミング用のコードを書くことはできますが、通常はテキストエディターをダウンロードして使用しましょう。
僕がおすすめするエディターは「Sublime Text」です。
エディターについて詳しくはこちら
ステップ4:実際に言語を習得していく
これで準備は整いました。実際に言語を学習していきましょう!
学習の手順は、3つです。
1.取得したい言語の専門知識を学ぶ(インプット)
2.人に説明したり、文章にまとめり、テスト問題を解く(アウトプット)
3.手を動かしてコードを書いていく(実践)
使用する教材によって学習のしやすさは変わってきます。自分にあう教材を選びましょう。
共通するのは、概念を理解し、それを実際に手を動かして体で覚えていく作業をするということです。
注意点としては、最初から完璧な理解は目指さずに、お手本のコードをとにかく書きましょう。これは写経と呼ばれる練習で、インターネットのない時代のプログラマーは、本にあるコードをひたすら学習していたそうです。
とにかく最初は「どういう理屈でそのコードが動いているかは完全に理解はできていないけど、エラーが出ずに実行できている」という状態を目指しましょう。
そして、反復練習を行うことで、今まで理解出来なかったところが理解できるようになります。
学習法4選
では、初心者が独学で学習する方法を詳しくメリット・デメリットで解説していきます。
本で学習
多くの人が慣れ親しんでいる書籍で学習する方法です。
本で学習することで「体系的に学習することができる」「信頼できる情報が多い」「スキマ時間で学習できる」などのメリットがあります。また、これまで教科書とノートで学習していたため、紙で学習するのが頭に入るという人もいます。
デメリットは「情報が古い可能性がある」「専門書なので値段が高い」「わからないことがあったら解決できない」といった点があります。
まずは書籍でしっかり学習したい方は、言語ごとに初心者向けの本をまとめてあるので参考にしてみてください。
以下の記事も参考にしてください。
【初心者向け】Ruby on Railsの学習でおすすめの本6選!
【初心者向け】PHPのプログラミング学習でおすすめの本11選!
【初心者向け】Javaプログラミングを独学で学ぶのにおすすめの書籍15選
webサービスで学習
「ドットインストール」「Progate」などのサイトが有名です。
学習サイトのメリットは「手軽に学習を開始できる」「無料で教材がたくさんある」「書籍にはないキーボードや映像を使ったコンテンツがある」などがあります。サービスとして利用しやすいのが特徴です。
しかし、「本に比べてわからないことを振り返りにくい」「疑問があっても質問できない」といったデメリットもあります。
最初の学習には向いていますが、Webだけの学習で自分でサービスを作るスキルを手に入れるのは至難の技です。
あくまでサブ教材として、「一番最初の導入として学習する」「一通り学習した後に網羅的に学習して抜け漏れを確認する」などの作業に使いましょう。
勉強会に参加
プログラミングは初心者向け〜上級者向けに向けて、基礎から最新技術までたくさんの勉強会が活発に行われています。
勉強会に参加することで「新しい知識を得ることができる」「自分の知識をアウトプットできる」「学習のモチベーションが上がる」といったメリットがあります。
初心者が挫折する箇所を知る
初心者が独学で学習できる3つの方法を紹介していきました。現在はプログラミングを学習できる環境が整っているため、上記を上手に活用すれば教材に困ることはないでしょう。
※ただし、普通の人なら本や学習サイトで独学で学習するのは非効率です。
プログラミング初心者は独学だと挫折する可能性が非常に高いです。
なぜなら、「わからない点があっても質問することができない」からです。
「何を学習したらいいかわからない」「専門用語が多すぎて理解できない」「エラーが出た時に1人だと解決できない」「そもそも概念が理解できない」といた理由が重なり、自分で解決するにはひとつひとつに時間がかかってしまうため、最終的に挫折してしまうケースが非常に多いです。
時間を無駄にせずに、最短で学習するためにはぶっちゃけプロから直接指導を受けるのが最も効率が良いです。
プログラミングスクールを使う
時間のない社会人や、独学で挫折した方はプログラミングスクールで学習するのをおすすめします。
受講料がかかってしまいますが、「最短距離で学習することができる」「疑問点を即解消できる」といった点で効率よく学習することができます。
以下の記事を参考にしてください。
僕のプログラミング学習が修了しそうな時期にオススメスクールを紹介する
プログラミング用のパソコンはありますか?
プログラミングには断然macが良い!
プログラミングをするのにはMacがおすすめです。Macは「ものづくりのためのパソコン」であるため、サービスを作っていくプログラミングには最適であるためです。
また、Windowsでしか学習できない言語の場合でも、MacはWindowsOSもインストールすることができます。
もちろんWindowsPCでも学習は可能ですが、WindowsではmacOSは使用できないため、パソコンを新しく買う場合はMacをおすすめします。
そしてデスクトップ用とノートパソコンだと断然ノートパソコンを買うことをおすすめします(持ち運びが可能)
挫折せずに継続する方法
モチベーションを上げる
プログラミングに限らず何かを続けるにはモチベーションの維持が大切です。
・「なぜやるのか?」学ぶ理由を明確にする
・プログラミングスキルを習得するメリットを知る
・プログラミング仲間やコミュニティを作る
以上のようなことを意識して、日々のモチベーションを保ちましょう。
効率的な学習方法のコツを知る
多くの人は、効率的な学習方法をお探しでしょう。
エラーの解決方法を知る
プログラミングにはエラーがつきものです。質問できる環境がない場合は、自分で解決する術を身に着けましょう。
どうしても解決できないエラーがある場合は、「質問サイトを活用する」「検索して解説サイトを見つける」といった方法がおすすめです。
プロのITエンジニア・プログラマーも、実は「自分でエラーを解決する」術を身につけています。
数多くのリファレンスサイトや情報共有サイトが存在しているのはそのためです。
簡単でも良いから開発してみる
学習に行き詰った時は、簡単なサービスでもいいので今ある知識を駆使して開発してみましょう。
プログラミングはものづくりです。学習している時より、開発している時のほうが楽しいので、モチベーションが復活します。
完全に理解せず動かし方を習得する
プログラミングでは自分の手で書いたものが動く経験が何より大事です。自分の頭で考えてできないときは、とにかくお手本となるコードをひたすら打って「写経」していきましょう。
コードを打ち続けていくうちに、自分がわからないところを認識できたり、コードに慣れることができます。
必要な項目だけ優先して学習する
一度にたくさんの知識を覚えようとすると混乱します。まずは必要最低限のことをしっかり学習し、確実に自分のスキルになった後に新しいことに挑戦しましょう。
独学にこだわらずスクールを活用する
プログラミングを勉強する意志はあっても、書籍や学習サイトを使った独学に限界を感じた場合は、プログラミングスクールに通って効率的に学習しましょう。
僕のプログラミング学習が修了しそうな時期にオススメスクールを紹介する
まとめ
僕の体験談としては、最初は独学で基礎を学びつつプログラミング面白いなと思ったらスクールに通ってみるのが最適解だと思いました。
独学で基礎をある程度覚えてスクールに入校すれば免疫がある状態で学習できるのでメンターの人も積極的に教えてくれると思います。
プログラミングを職業としてやっていく・やらないは別として単純に仕組みが面白いし、テクノロジーの素晴らしさに触れることができるだけで、それはそれで人生において価値のある体験になります。
ぜひ迷ってる人がいれば挑戦してみてください。
最後まで読んでくださってありがとうございました。
では、また( ̄▽ ̄)
おすすめ記事↓
【初心者】自分自身へ贈るオススメプログラミング言語まとめ5選
僕のプログラミング学習が修了しそうな時期にオススメスクールを紹介する
これ見てる若いやつ、自分に何も専門性ない人ならプログラミングはやっとけマジ!
自分を助けてくれるから、きっと。。。
最近のコメント