「未経験が独学でプログラミングを勉強するときのおすすめな方法はあるの?」
プログラミングに興味があるけど、効率の良い勉強方法を知らない人も多いかと思います。
なので、そんな方に向けてボクが実際に行っているプログラミングの独学方法を解説しようと思います。
ぜひ、参考にしてみてください。
ボクの経歴エンジニア歴:6年
習得言語:VBA、JAVA、Ruby、Dart(最近始めた)
はじめに:何のプログラミング言語を学ぶかを決める
プログラミングの勉強を始める前に、まず学ぶ言語を決める必要があります。
ですが、IT知識が乏い未経験の人は「どの言語を始めればいいの?」と疑問に思うはずです。
なので、その言語選択で判断するための基準として、「次の3つのどれを自分は重視するか」を明確にすべきです。
判断材料・目的:自分がプログラミングで何がしたいか
・難易度:未経験の人が断念しにくいか
・需要:世の中(特に企業)から評価されるか
上の3つはどれもエンジニアとして働くうえでは、今後重要になってくると思います。
しかし、未経験者の場合、上のすべてを満たした言語を選ぶことは難しいと考えています。※習得難易度が高いほうが需要が生まれやすい(できる人が少ないため)。
なので、もしもボクが独学で未経験から勉強するのなら”難易度”を重視すると思います。
未経験からプログラミングを勉強したとき「9割以上の人が断念する」と言われています。
それだけほとんどの人にとって「プログラミングは難しい」と感じるわけです。
ですので、こういった断念を回避するために、未経験でも習得しやすい言語を選び、プログラミングに慣れることが大切だと考えているのです。
そして、結論を言うと、ボクだったらエクセルを使った業務効率化ができる『VBA』から始めて、プログラミングの考え方と感覚を掴みます。
ちなみに難易度はそこそこ高いですが、最近では『クロスプラットフォーム』で扱う言語が需要があったりします。
アンドロイド・アイフォンはもちろんゲームも作れる『Unity(C#)』、ゲーム開発には向いてないがそれ以外ができて処理速度が速い『Flutter(Dart)』を使った案件を最近よく見かけます。
以降、ここら辺の話を深堀していきます。
初めは習得難易度低めの言語から始める
「〇〇という言語が有名だから」
「〇〇が仕事でよく使われると聞いたので」
こういった理由からプログラミング言語を選択し、学び始める人が多いです。
確かに『Python』『RUBY』『JAVA』といった需要のある技術が扱えるようになれば、エンジニアとしての道も大きく拓けます。
しかし、それらは習得難易度がそこそこ高く、未経験者が独学で初めに取り組むに少々困難かもしれません。。
なので、まずは習得しやすい言語でプログラミングの考え方や感覚を養ったほうが良いと考えています。
IT企業で働いていた経験から言うと、まず新人には業務効率化ができる『VBA』から学ばせることが多かったです。
ボク自身は配属になった課で扱っていた『JAVA』から入りましたが、戦力になれるまでにそこそこ時間がかかり、慣れるまでは苦しかったです。
何も知らないなら、まずは『VBA』から学ぶと良い
ボクがお勧めする未経験者が初めに取り組むべきプログラミング言語は『VBA』だと考えています。
その理由は下の通りです。
学ぶメリット・習得難易度が他の言語より低い
・プログラム対象である『Excel』はどこの企業でも使われている(業務に活かせる)
・開発スケールが小さいことから完成までの時間が短い傾向にあるため、「作った」という感覚が頻繁に味わえる
VBAは習得難易度は他の言語に比べて圧倒的に低いので、躓きにくいです。
そして、エンジニアでなくても業務で活かす場面も多いので、最高です。
【残念】胸を張ってアピールできる言語ではない(と思う)
正直、企業に対して「VBAできますッ!」と胸を張ってアピールできないと思います。
アピールできない理由・VBAは進化が止まっているプログラム言語である
・ある程度の実務レベルであれば高度な技術力は必要としない
やはり、IT企業であれば『商品を作るための言語』などが重宝されます。
しかし、VBAではそういった商品を作るケースが少ないので、企業もVBAがある程度扱えても魅力に感じづらいといえます。
ボクの経験上、取引先から「VBAでシステムを開発してほしい」というのは、ここ最近ではあまり聞かないです。
VBAは業務効率化に重きを置いている言語といえるので、使っても自社や自分自身の作業効率を上げる目的になるかと思います。
なので、もしもこれからエンジニアになろうと考える人は面接時に「VBAできます!」といっても反応が悪いこともあることは覚えておきましょう。
【歓喜】業務で使えるし、プログラミングの感覚をつかむには向いている
上ではVBAのマイナス面を説明しました。
なので、「なんでVBAを勧めてくるんだ!」と思うかもしれません。
おすすめする理由・日頃の生活・業務で役に立つ場面が多い
・簡単でプログラミングの感覚を掴みやすい
現在の企業の業務でもExcelを扱うことが多いことから、日常的な仕事でも使い道があります。
そして、ボクは複数のプログラム言語を扱った経験がありますが、VBAに近い構文の言語もあります。
なので、VBAをサクッと覚えちゃって、その後に他の言語を取り組むと、比較的スムーズに違う言語でも理解できちゃったりします。
スポンサーリンク
ボクが実践した勉強方法【実践済み】
実際にボクが新しい言語を学ぶ時には下のような流れで勉強しています。
1.動画を観つつ、実際にプログラミングをする(数本でOK)
2.初心者用の参考書を購入して、基礎を固める(良本1冊でOK)
3.自分独自でシステムを作ってみる
では、さっそく上について解説していきます。
1.動画を観つつ、実際にプログラミングをする
プログラミング未経験者がまず初めにするとよいのが『入門的なプログラミング動画を見る』です。
プログラミングは始めが肝心です
プログラミングは出だしが肝心です。
というのも、初めから「プログラミングはつまらない」「プログラミングってこんなに難しいんだ…」という気持ちになってしまったら、一生やらなくなってしまうからです。
なので、初心者がまず意識すべきは「自分でプログラムを動かせた」という事実を作ることだと考えます。
そうすると、プログラミングへの「難しい」という気持ちが薄まり、取り組むハードルが下がると思います。
動画を観ながらプログラミングを実践する
そして、初心者がまず初めに取り組む具体的な方法として”動画を観ながら、同時にプログラミングをする”をオススメします。
良質な動画であれば、観終わった後には扱っている言語の仕組みがザックリ理解できるようになっています。
そして、今後のネット・参考書学習ではスムーズにできるようになっている状態に仕上がっているかと思います。
例えば、エクセルの自動化などで使われる『VBA』の場合は下のような動画が参考になります。※マジでわかりやすいです。
たぶん、上の動画を観終わった後には「意外と簡単じゃん!」となるはずです。
YouTubeで探せば、上のような良質な動画は結構あります。
なので、1本2本の動画を観つつ、同時にプログラミングを体験してみると良いです。
2.参考書を購入して、基礎を固める
上の動画を観終えたら、次は基礎知識を固めるために、必要な知識を参考書から満遍なく得ていくステップになります。
参考書で満遍なく知識を深める
動画を観て、ザックリとプログラミングの感覚を掴んだら、次は基礎を固める段階に入ります。
そして、”満遍なく基礎を固めるには参考書で学ぶ”のがお勧めです。
ちなみにネットで手あたり次第に勉強すると、知識にムラが出てしまうので注意です。
ボク的には参考書を購入する場合、中級者寄りのモノを選んだほうが良いです。
というのも、初心者の参考書だと浅いところまでしか学べないし、何ならネットで簡単に手に入る内容だったりするからです。
ちなみにVBAを勉強するときにお勧めな参考書があります。※難しかったら参考動画や、他に入門書1冊買ってから読み直してみてください。
中級者向きだけど、基礎から一通り学ぶことができる良書だと思う。
そして、1つ1つをそれなりに深く説明されているので、読み終わった後は、簡単なシステムが組めるようになっているかと思う。
基礎を理解した人にはマジでお勧めな参考書。
「〇〇と△△の違い」といった、似ているけど場合によって使い分けるべきことが明確になるかと思う。
たぶん、「基本的なことだけで、知らない人多いんだろうな」といった気づきがガッツリ得られる良書だと感じた。
上の2冊が理解できたら、あとはひたすらシステムを作り続ければ、実務で通用するレベルには達するかと思います。
ボクはプログラミング経験者ということもあり、VBAは大体3ヵ月程度で実務で活かせるようになりました。
そして、たぶん初心者の方も「上の2冊の読破+自作ツール作成2,3個」でそこそこのレベルになると思っています。
参考書+ネットで学ぶべき
参考書を読みつつ、ネットでググりながら勉強すると良いです。
上級者の考え方になりますが「参考書は知識のきっかけに使う」のもアリです。
今のボクでもパラパラと読みながら「こんなクラス・メソッドがあるんだ」と気づきを得ることがあります。
また、「早い段階で”ネットで調べる”という習慣を身に着けておく」と今後は楽に勉強ができるようになります。
その理由はネットが繋がっている環境であれば、ググるだけで知りたい情報が得られるようになるので、高い効率と低いコストで成長し続けることができるようになるからです。
※上級者はほぼネットから情報を得ています。
3.自作のシステムを作りまくる
「自分(もしくは他者)が思った通りにシステムを作ることができる」というのがエンジニアにとって最も必要なことです。
そして、その実践を積むことが何よりもレベルアップに繋がります。
自作システムを作ると劇的なレベルアップが見込める
扱っている言語の基礎が固まったら、あとは自作でシステムを作りまくりましょう。
つまり、”自分で作りたいモノをイメージして、それを実現する”を繰り返すということです。
例えば、『VBA』なら会社勤めで業務で資料作成(エクセル・パワポ)・データ管理(エクセル)を自動化できるシステムを作ると良いです。
そうすると、プログラミングの勉強もできて、普段の仕事が効率化されて一石二鳥になります。
実戦を意識したプログラミング経験を積む
もしも、将来的にエンジニアとして働く目標があるのであれば、”他者に要求されたシステムを作る”ことを意識した勉強法も取り入れたほうがいいです。
『Bizseek』や『クラウドワークス』といった”クラウドソーシングに登録して、実際に募集されている案件を確認して要望に満たすような模擬的にシステムを作る”というのもアリです。※別に案件こなさなくてもOK。
これは企業が実際にフリーランスに仕事を頼んでいるモノなので、実際にその要望で作ることができれば、将来的にはプログラミングでお金を稼げるようになります。
プログラミングでお金を稼ぐには”商品を作る”必要があります。
そして、需要を満たすことでお金がもらえるわけです。
もちろん、自分が思い描いたシステムを作りお金を稼ぐ人もいます。
ですが、他者から求められたモノを作ることでお金を稼いでいる人の割合のほうが圧倒的に多いのです。
だから、他者の要求に応えられるように準備を普段からしておいたほうがいいわけです。
スポンサーリンク
【おまけ】独学では継続できなかった場合の学習法
実はプログラミングの勉強で断念する人はたくさんいます。
その多くの理由は”プログラミングは複雑で勉強時に躓く回数が途轍もなく多い”からです。
学校の数学や物理も難しいですが、初めてでも意味は分かりますよね。
でも、プログラミングを始めてみた人の多くは「何をやっているか全くわからん」「謎の文字が並んでいる」といった感覚になります。※専門分野で新しいことを学ぶときはみんなそう。
「意味の分からないことが多いプログラミングだからこそ、独学は難しい」と考えられるのです。
そして、少し勉強してみて独学を断念しそうな人は”有識者に教えを乞う”という方法で基礎を学ぶことをお勧めします。
その『有識者に教えを乞う』方法には下の2つがあります。
・スクールに通う
・オンライン学習で学ぶ
どちらも有料のサービスになるので、お金に余裕があって時間がない方にお勧めな方法になります。
また、どちらも最終目標を『転職』にしているところが多いです。
なので、エンジニアへの転職を考えている人はおすすめだったりします。
では、少し上の2つについて解説していきます。
スクールに通う
プログラミングスクールは名のとおり”講習場所に通い、直接講師に会って学ぶ”サービスです。
学習時には数人、もしくは集団で学ぶ感じになるかと思います。
また、最近では最終目標を”転職”に設定しているところも多いです。
なので、『プログラミング学習+転職支援』がセットになっていたりします。
なので、「未経験からエンジニアとして働きたい」と考えている人にもお勧めなサービスでもあったりします。
メリット・同じ境遇の人たちが周りにいるのでモチベーションを保ちやすい。
・有識者が立てたスケジュールで、スムーズにある程度のレベルに到達できる。
・転職を目的にしている人にはお勧めである。
デメリット・お金がそれなりにかかる。
・わざわざ講習場所に行かないといけない。
オンライン学習で学ぶ
最近、数を増やしてきているオンラインスクール。
パソコンを持っていれば、自宅にて現役エンジニアたちから学ぶことができるサービスとなっています。
「独自に作られたオンライン教材を使って学び、分からないところは質問し放題」という躓き回避ができる環境が整えているところも多いです。
なので、独学が断念する大きな原因である「分からなくてたくさん躓いている」「長い間同じところで悩んでいる」という状況になりにくいといえます。
メリット・自宅でOKなので、普段の勉強を始めるハードルを下げることができる。
・分からないところは有識者に聞けるので勉強効率が圧倒的に高い。
スクール名 | おすすめポイント |
---|---|
【エンジニアへの転職を本気で考えている方向けのオンラインスクール】 ・オンライン教材を使用、かつ途中で躓いても質問し放題。 ・転職サポートも充実しており、未経験からのIT業界へ転職を求めている方におすすめです! ・DMM.comグループならではの求人紹介。 |
|
【堅実に実力を伸ばしたい方向けのオンラインスクール】 ・講師は全て現役のエンジニア。 未経験から確実に習得するために開発されたオリジナルカリキュラムでWebデザイン、 Webサービス開発、アプリ開発などを幅広く学習することができる。 ・オンライン・マンツーマン指導で、高い学習効果が評価され、多くのメディアで紹介されている。 |
|
【効率よく確実な実力が持てるエンジニア転職に特化したオンラインスクール】 基礎学習を2ヶ月、実践開発を2ヶ月で即戦力を目指す計4ヶ月のコース。 就職先の見極め方や応募書類の添削、面接対策なども提供。 |
|
【インフラエンジニアに特化した】 インフラエンジニアの登竜門的資格で、ネットワーク機器関連の知識を証明する『CCNA』の取得を目的としたスクール。 専任講師がしっかりと学習サポートし、 わからないことがあれば回数制限なしで質問も可能。 |
まとめ
本記事のザックリとしたまとめは下の通りです。
・独学でおすすめな勉強方法は『動画』→『参考書』→『独自でシステム作成』。
・全くプログラミングが分からない人は”難易度低め・需要アリ・開発イメージしやすい”『VBA』から始めるといいかも。
・独学で断念した場合は『オンラインスクール』を活用すると良い。※ただし、有料です。
プログラミング学習では9割以上が断念すると言われています。
なので、プロになりたければそれなりの努力と時間が必要になるのは当たり前なのです。
ですが、実務で活かせるある程度プログラミング技術を持つことができれば、働き口にも困りづらくなります。
加えて、うまくいけば収入も増やすことができるようになります。
ですので、興味があるのなら、プロに成れるまでの続けられる自分に合った学習方法を見つけ、取り組みましょう。
スポンサーリンク
スポンサーリンク
コメント