独学でプログラミング習得できる?
結論から先に書くと、全然出来ます。
- 目的
- やる気
どちらか片方でも人並み以上にあれば、[text type=marker color=pink]独学でのプログラミング習得はさほど難しくありません。[/text]
理由は順を追って説明していきます。
前提として、ちょっとだけ自分語り入ってしまいますが、僕は特段勉強ができた、とか、学校での成績が良かった、とか、そんなレベルの高い人間ではありません。ひいき目に見ても成績は中の上、学歴も、事実上の高卒です。
上記を踏まえて、記事をどうぞ!
プログラミングを独学で習得するための条件
僕自身、C/C++/VBA/HTML/CSS/JavaScript/Python/PHP という言語を全て独学で学んできました。 全て上に挙げた順番で学んで来たのですが、最初に挙げたCとC++は実用レベルになる前に挫折しました。
最初、C言語はただの思い付きで触り始めました。なんとなく、「プログラミングやってみよう」と思ったからです。なんの目的もありませんでした。
プログラミングを独学で勉強するということに関して、結構大切なのは、「明確な目的があること」です。
これは僕自身の体験に基いた非常に重要な要素です。
[box class=”box_style_green” title=”Point”]明確な目的があれば挫折はしない![/box]
プログラミングの独学習得に必要な「明確な目的」とは?
人間、やってもやらなくても、大して現状の環境が変わらないことは自分自身から進んではやりません。
案の定、特に目的もないC言語の勉強は途中で辞めてしまいました。独学あるあるですね。
明確な目的というのは、例えば、「10万行ある商品データを自分のネットショップに出品する」とか「毎日の注文データを運送会社のソフトで印刷可能な形に加工する」 とか、そういうのです。
これは実際に僕が実用レベルでプログラミングを習得した際の目的でした。
僕の場合、たまたまその 「明確な目的」「クリア必須の課題/問題」 にぶち当たった時、解決の手段として選んだのがExcel/VBAでした。
決して要領がいい方ではありませんでしたから、一日15時間、一か月ぶっ通し、くらいは勉強したと思います。
[box class=”box_style_green” title=”Point”]容量悪い方でも、さすがに450時間もやればバリバリ身につきます[/box]
独学でのプログラミングの学習は、目的さえあれば、まず失敗しない
ここで言う「目的」というのは、言い換えればmustです。やらなければならない状況、解決すべき対象が「目的」です。
10万点の商品、手作業で出品登録? 出来ません。1日500件の注文、配送ラベルを手書き?出来るワケがありません。
だからやらざるを得ませんでした。 目的の方からやってきたワケです。 僕の場合・・・。
解決するための問題(または目的)がすでにあるなら、あとは解決方法を調べるだけです。めちゃくちゃ簡単。
特にプログラミングなんかは、若干言語にも寄りますが、[text type=marker color=pink]調べれば基本的に解決しないことは、ほぼほぼありません。[/text]
これが、冒頭で述べた、プログラミングの独学習得は比較的容易と述べた最大の理由です。
目的が明確であればあるほど、解決するために調べることも明確ですので、失敗しようがありませんよね。
[box class=”box_style_green” title=”Point”]職務上、解決不可避の問題があった。[/box]
「目的なんてないわ。」という方へ。
プログラミング学習に興味がある人が皆作りたいモノがあるわけではないですよね。「独学で勉強して、転職するのが目的だよ」って人も多いかもしれません。
目的がないと必ず独学に失敗するのか?といわれると、別にそんなことはないと思います。
ただ、目的なしの場合は、「適性がある場合」でないと、たぶん挫折してしまうと思います。
僕が考える「プログラミングに対する適正」というのは、単純に[text type=marker color=blue]「プログラミング勉強していて楽しいか?」という一点のみです。[/text]
別に理数系である必要も全くないと思いますし、人より頭がいい必要もありません。まず、僕がどっちのタイプでもありませんし(笑)
ただプログラミングに対する「適正」はあったと自分では思っていて、取り組み始めの頃も普通に勉強していて楽しかったです。
とは言え、仕事辞めてプログラミングにトライしてみた結果、「全然楽しくねーわ」ってなる可能性も人によっては全然あり得るので、大きな決断をしてプログラミングに取り組む前に、ある程度触ってみることをオススメしますが(笑)
何はともあれ、はじめの一歩を踏み出すことが大事です。やってみないと楽しいかどうか分かりませんよね。
[box class=”box_style_green” title=”Point”]プログラミングの”センス”があるとするならば「楽しいと思える」こと。[/box]
無ければ作る、「目的」を。
独立したフリーランスエンジニアを目指すにしても、企業への就職を目指すにしても、「ポートフォリオ」はあって困りません!
ポートフォリオとは?
自分の作品をファイルし、就職先に「私はこういう作品を作っていました」「こんなこともできます」とアピールするための作品集です。
https://www.e-aidem.com/ch/jimocoro/entry/otakana01
言葉自体は主に、デザイナー界隈でよく使われますが、Web系エンジニアなんかだと「自分で作ったサイト」は言うなればポートフォリオです。
スマホアプリなんかもいいですね。
プログラミングの独学の目的を「ポートフォリオ」を作る事、に設定するのは結構いい手段だと思います。
[box class=”box_style_green” title=”Point”]就活に備えられて、学習の材料にもなる「ポートフォリオ作成」[/box]
一つのプログラミング言語を習得すれば、その後学ぶ言語の学習コストは大幅に減る!
突き詰めた話、プログラミングというのはただのテキストです。 言語ごとに違いはあれど、主に使うif/for/while処理なんかは、ただ単に書き方が少し違う程度ですので、一つのプログラミング言語を習得していれば、次に学習する言語習得までの時間は大幅に短縮されます。
もちろん最低限の学習コストは掛かりますが、第二言語以降は独学での習得難易度は大幅に下がるでしょう。 最初の言語が問題なのです。
より複雑な処理になれば、都度、新たに調べながら勉強しないといけませんが、それは元々その言語を使える人からしても同じ話です。
現役バリバリのプログラマーさんでも、何も調べずにコードを書くってことは、まぁないと思います。
[box class=”box_style_green” title=”Point”]大変なのは、はじめの一歩[/box]

プログラミングを独学で勉強しようと思っている方へ
独学でのプログラミング学習法
プログラミングを独学で学ぶには、いくつかの手段があると思います。
- 書籍を買って勉強する
- ネットで調べる
大体はこの2パターンです。
書籍での学習の場合
[box class=”box_style_blue” title=”書籍を買って学習する場合のメリット”]
- 体系的に特定の言語を学ぶことが出来る。
- ある程度の情報が一気通貫的にまとまっているので寄り道が発生しない。
- 作りたいモノがない場合でもある程度の道筋を書籍自体が示してくれる。
[/box]
こんなところでしょうか。
一方デメリットとしては、
[box class=”box_style_red” title=”書籍を買って学習する場合のデメリット”]
- 作りたいものに中々たどり着かない。
- 基礎学習ばかりに終始してしまい、下手をするとずっと書籍から抜け出せない。
- 書籍一冊やり終えたところで、大したものは作れない。
[/box]
これらが書籍学習のデメリットでしょうか。
ネットで調べる学習法の場合
あくまで個人的な意見になりますが、僕は、[text type=marker color=pink]プログラミングの学習はネットで調べるだけで十分[/text]だと思っています。
もちろん書籍での学習を否定する意図はありません。
特に作りたいモノが明確にあるような方の場合は、目的のモノを作りながら学習していくだけで十分実践的なスキルが身につくと思いますし、そういう方にとっては、[text type=marker color=pink]書籍で勉強すること自体が寄り道[/text]になりかねません。
実際、僕個人としては、プログラミングに関する書籍は一冊も買ったことがありません。
ネットで調べる学習方法に関してのメリットは、
[box class=”box_style_blue” title=”ネットで調べる学習方法に関してのメリット”]
- まず、無料。
- 今の時代、ググれば95%のことは大体すぐ答えが見つかる。
- 何か作る時はプロでもどうせググる。独学時点から的確なググり力が身につく。
- 基礎と同時並行的に実践スキルが身につく。
[/box]
こんな感じです。
プログラミングの未修得者の方からすると、意外に思われるかもしれませんが、バリバリのリーマンエンジニアの方でも、就業時間の80%から90%は「考えてるか、ググってる」時間だと思います。
実際コードを書いている時間なんて、たぶん10%くらいのもんだと思います。そのくらい、ググる力はどうせ必要になってきます。
一方デメリットとしては、
[box class=”box_style_red” title=”ネットで調べる学習方法に関してのデメリット”]
- 作りたいモノがない場合、そもそも何を調べればイイかわからない。
- ピンポイントな情報が出てこなかった場合、ドツボにはまって時間と精神力を浪費する。
- 体系的に学ばないので、めちゃくちゃ基礎的なことが分からなかったりもする。
[/box]
こんな感じです。
挫折ポイントになりやすいのは2番だと思いますが、ドツボにハマる時は大体コード関係の事じゃなくて、サーバーだったり、環境だったりすることが多いです(笑)
3番に関しては、それほど問題ないと思っています。どんなに特定の言語に詳しい人でも全てを知っているわけではありませんから。
独学でプログラミングを習得するための、オススメの勉強法とコツ
僕が色んなプログラミング言語を勉強してきて、たどり着いた勉強法とコツというか、学習スタンスをお伝えしていきます。
プログラミング独学の基本はコピペという名の写経
写経という修行があります。お経をひたすら書き写すやつですね。プログラミングの独学は写経と似ています。
プログラミングを勉強し始めの頃は何もわからないと思います。
書籍の内容をトレースするならそれでも全然いいのですが、何か自分で作りたいモノをイメージしてやっていくのがいいと思います。
企業への就職を前提としているのであれば、ポートフォリオとして提示できるものを始めっから作るつもりでやるのがいいんじゃないかと思います。
1.何もわからないながら、やりたいこと、作りたいモノを無理やりにでも作って、その動作に近いコードをネット上で検索します。
2.コードが見つかったら、そのままコピペします。丸写しでOK。
3.まずはとにかく動かしてみる。とりあえず、最初はコピペでも動いたら嬉しいです(笑)感動します。
4.コピペしたコードの一部を変えて、どんどんやりたい動作に近づけていく。
このループが独学の基本です。
[box class=”box_style_green” title=”Point”]コピペ→動かす→嬉しい→ちょっと変える→動かす→もっと嬉しい→以下無限ループ[/box]
コツその1:深く理解しようとしない。
このブログのタイトル【Let’s Hack Tech】を完全に否定したような発言に自分でも困惑しております(笑)
理解を深めようとするのは、イイことと言えばイイことなのですが、[text type=marker color=pink]理解しないままでも、とりあえず完成系を目指す[/text]、というスタンスが非常に大切です。
目的の動作を達成しているのに、何をやっているのかわからないコードの部分の理解に時間を使うのはある程度経験を積んでからの方がいいと思います。
理由を一言で言うならば「追求しだしたらキリがない」からです。
たった一つの言語でも、全てを理解するのはほぼ不可能です。多分そういう人も存在しません。どうせ全部理解できないならそもそも全部理解しようとする必要ないんじゃない?
というのが僕の結論。
[text type=marker color=blue]必要な時に必要な部分だけ、過不足なく理解すればいいのです。[/text]
これができないと、延々と基礎学習だけやって、結局あまり楽しくなくなって、学習をやめてしまったりという事態になり兼ねません。
いつまでたっても目標であるエンジニアにはなれません。
[box class=”box_style_green” title=”Point”]全部理解するとか、どうせ無理なんで目指すのやめましょう(笑)[/box]
コツその2:調べてすぐに出てくることを一々覚えない。
勉強法の基本でも述べたように、基本はコピペです。暗記ではありません。
そもそも、ググって0.5秒で出てくることに、脳のリソースと暗記のための時間を割くこと自体が、非常に効率悪いなと感じました。
何回も調べていれば割と自然に覚えますので、意識的に文法を覚えることに時間を浪費するのはやめた方がいいと思います。
何度も言いますが、現役のプログラマー/エンジニアの方でも全てを調べずに作れる人はいません。
[box class=”box_style_green” title=”Point”]【Googleのインデックス】 >>>>>>>>> 越えられない壁 >>>>>> 【脳のリソース】 [/box]
コツその3: 200時間~300時間程度の学習で、実務でギリギリ使い物になる
ダラダラ勉強しない。2か月でその言語で大体なんでも作れる状態を目指してやる。
未経験から企業でギリギリ使いものになるレベルのスキルになるために必要な時間は大体200時間~300時間程度の学習が必要と言われています。
「一日一時間、半年間はプログラミングの勉強します!」
とか、やめたほうがいいです。
多分モノになる前に、どっかで心折れて勉強するのをやめる方が早いと思います。やってもやらなくてもイイことを半年続ける人って、まぁいないですからね。健康器具とかダイエットと同じです。
一日10時間やって、1か月かかります。
現状、別の仕事をしていたり、学業のある方は「そこまで時間が取れない!」という方が大半かと思います。
それでも一日5時間の、二カ月間の学習で、第一言語習得を目指しましょう。
10時間は流石に無理でも、5時間程度であれば、寝る時間削れば大体の方は何とかなると思います。
3時間は睡眠を削って、2時間は隙間を見つける、という覚悟で2か月間、自分の限界まで勉強すれば、必ず身につきます!
[box class=”box_style_green” title=”Point”]心折れる前に習得&就職[/box]
まとめ
最後、ちょっとブラック企業論みたいになってしまいましたが(笑)、プログラミングスキルというのは割と人生の転機になりうる必殺技みたいなスキルです。
それを会得するのに一日5時間の2か月間は割と安いコストだと自分は思っています。
特に目的のない方は、より実践的なスキルを身につけるには、とにかく、会社に転がり込んで、働きながら勉強していくのが近道だと思います!
おそらく、独学で2カ月ほど勉強してポートフォリオになりうるモノを作っていけば、プログラマーとして拾ってくれる会社は全然あると思いますよ!
転がり込んでしまえば、あとはお金もらいながら勉強できるので、イージーモードです。
まずはそこを目指して、独学の第一歩、是非踏み出してみてください!
コメント