自分自身、大学の授業の傍らプログラミングを独学でやりつつ先輩の指導を受けながらプログラミングが出来るようになりました。また働き始めてから出会ったプログラマーの方、スクールの講師の方のお話なども含めて総合的に書いてみたいと思います。
エンジニアの需要が高まっていて、手に職をと考える人が増えた背景からか、最近プログラミングを独学で学ぶ人が増えてるそうです。
ある程度まで独学で習得することは可能だと思いますので、この記事では以下の内容について書いています。
プログラミングは独学可能か
→ある程度まで可能。
ある程度と言ってるのはある線を超えたら、あとは業務の中でしか習得できない事もあるからです。(まぁ業務中に習得できることも結局は独学なのでしょうけど)
例えばチームワーク、作成するアプリの企画立案、仕様策定、設計図の作成、情報の共有、作業の分担、他者が作成したプログラムとの連携などは独学では学べることではありません。(現場に出ればコーディングの上流下流の工程にも携わります。)
コーディングだけでよければ独学で習得できます。ある程度までプログラミングを習得したら、就職して業務の中でそのスキルを高めていくことになるでしょう。
独学でプログラミングを習得できるのはどんな人?
1.書籍や教材の読み込みができる
2.長時間PCと向き合えること
3.手を動かして教材に書いてあるプログラムを入力できる
4.自分で調べられる、試行錯誤できる
こんな人かなーと思います。
・1は書籍や教材は読み手に読みやすく書かれていない事が多いと感じています。そこを根気強く読み進める。場合によってはノートに図を書きこんだりして理解を深めながら進められるといいです。
・2はPCが嫌いな人はそもそもプログラマーになろうとは思わないと思うのですが、昨今の就職市場でそもそもPC初心者が独学で、という傾向もある様子。教材に書かれてる内容がわからないぐらいにPCに不慣れだとかなりハードルが高い。自覚して取り組めば大丈夫かも。途中でイライラして投げ出しそうな人には向かないと思う。、
・3は結局手を動かさないとプログラミングってできるようにならないのに、本を読んで出来た気になる人とかは無理ですね。手を動かして自分で書かないと。英語だって話さないと話せるようにならないのと同じで、プログラムも書かないと出来るようにならない。
・4は独学の時だけじゃなくて、プログラマーとして生きていくならこれからずっと。
トライ&エラー、改善の繰り返しなので。教材だけでなくWEB検索で答え探しができないと話にならないと思う。
プログラミングで独学の計画と進め方、必要な機材とは
さて、これからどのように計画を立てて独学でやっていくとよいか進め方をナビしたいと思います。
ここではスクールなどに通わないで、なるべくお金をかけずにやっていく手段として考えています。
Step1.教材選び
最近は様々な媒体の教材があります。書籍でもいいし動画でもいいです。けど無料の動画だと中途半端なのでちゃんとお金を払ってカリキュラムに沿って学べる教材を選んだほうがいいです。
書籍は発刊年月や更新年月に注意してください。古いのだと情報が古い、情報に誤りがある可能性があるので。
動画やWEBの教材だと常に更新されてて最新状態になってると思うのでお勧めです。
Step2.必要な機材(PCや周辺機やソフト)をそろえる
教材の前半でたいていは必要なPCスペックの記載があると思いますが、ここ数年で購入したPCなら大丈夫でしょう。iOSアプリの開発にはMacが必要なので、そこだけ注意。基本的にはWindowsで足りる。スマホアプリのプログラミングをしたいならスマホも用意しないといけない。
Step3.環境を構築する
教材によっては「環境構築」という重要な学習項目が無い場合もあるので気をつけて。環境構築から学ばないとダメです。環境構築というのはPCに必要なアプリをインストールして、設定して、さぁプログラミングを始めるぞ、という段階に持っていく事です。
Step4.教材に従って学習をスタートする
環境構築ができたらカリキュラムに沿って学習をスタートしましょう。
Step5.教材を最後まで終える
教材を最後まで終えましょう。終えたら自分が作りたいアプリ作りを開始してみましょう。自作のアプリを作ることが出来たらもう一通りのことは出来るようになってると思います。その自作アプリを増やしていけばいわゆる「就職に役立つポートフォリオ」になります。
さて、
実際にはStep1の前にStep0があると思います。
それはプログラミングを学ぶ「目的」「目標設定」です。
そこからの逆算で「習得すべき言語を決める」流れになります。
ここに関してはまた別の記事を書きたいと思います。個人的にはココが重要だと思うので。
独学でプログラミングをするためのコツ、効率よく学ぶ方法
さて、独学でプログラミングを学ぶためのコツについてお伝えします。
公式の教材、文書、マニュアルを確認する
どんな言語でもたいていWEBリファレンスマニュアルが用意されています。
何か調べものをスタートするときはまず公式のリファレンスを参照することです。
Google検索で調べた内容をうのみにしないことが大事。WEBのQ&Aは参考程度にしないと情報が古い、バージョンが古い、情報が不正確、環境違いで情報が合わない、といったことがよくあります。まずは公式リファレンスを調べることがコツです。
暗記する必要はない
初学者が勘違いしやすいのですが、暗記の必要はありません。
暗記するのはハードルが高すぎます。「どう書くんだっけ」と思ったときに調べて書けることがスキルになります。
索引だけ頭の中に入れておくとよいです。このワードでWEB検索すれば書き方が出てくるな、というのを知っておくだけ。
あとは自分だけのコピペ帳を作っておくのもお勧めします。
よく使う構文をPCのメモ帳とかエクセルにどんどん追加していきます。必要になったらそのメモ帳からコピペするだけにしておくことが重要。これはプロでもやってます。どれだけ備忘録を増やせたかで作業効率に関わります。
スピードアップする、自分で考える時間を削減するために、備忘録をつくりましょう。
2回やる、復習のコツ
言葉と同じで1回教材を流しただけでは習得したとは言い難いです。
教材を最後まで終えたら、また最初から流し読み、流し書きの要領でもう1度やってみましょう。つまり復習です。
また復習のやり方にはコツがあります。
先日こんなツイートをしました。
だから覚え直す作業が必要。
そのタイミングは翌日、6日後、1ヶ月後。
これで定着率が各段によくなる。
記憶力が悪いと思ってる人は、この復習方法おすすめ。
記憶力が無いワイのことや!🤣
— だんぷ@お祈りSEO@プログラミングスクール取材中 (@pg_happi) July 23, 2020
人間は覚えたことは1~数日日でめっちゃ忘れるってことです。
その逆で数日~1か月後になるとあんまり忘れてないってことも言えます。
なので今日やったことは翌日もう1度サラっとでもやると記憶が定着しやすいってことになります。
これが学習のコツですね。
プログラミング独学がきつい時期と乗り越え方
誰にも教えを請わずに頑張る訳ですから、当然独学がきついのは当たり前という心構えで行くことをオススメします。
その上できつい時期の乗り越え方についてお伝えします。
環境構築がきつい
プログラミングの学習を始める前段階の環境構築が最大の難所かもしれません(苦笑)
つまりPCに必要なソフトをインストールして設定して、の段階ですね。PCのスペック、言語のバージョン、使ってるPC環境によってなぜか上手くいかない事があるのです。そうなると教材通りに進められなくなるので。
しかも教材は環境構築が上手くいった前提で話が進んでいきます。環境構築に失敗してるのに気づかないこともあるのがきつい。
そういった事態にならないためには、できるだけ教材が推奨するPCを用意することです。1つ1つのステップを確実に確認しながら進める事です。ソフトを入れる順番や設定の順番も間違えると最初からやり直しになったりするし。
上手くいかなかったら全部消してアンインストールして最初からやり直すのが良いです。
どうしてもうまくいかなかったらお金を払って環境構築だけ誰かに支援してもらってもよいでしょう。
わからないところは飛ばす?
教材はステップバイステップで簡単なところから徐々に難しくなっていきますので、基本的にはその通り進めればよいです。
で、一度コードを書いて動かしてみても必ずわからない所がでてきます。深く理解をしてから次に進んでもいいですが、大抵のスクールでは飛ばして次に進み、一度完走を目指すことが多いです。
ちなみに自分はちゃんと理解をしてから次に進んでいます(笑)次の章で前章のテクニックを使ったやり方が再び出てくることが多いので、その周辺の章を前後移動しながら学習するとよいと思います。
自分の性格にあわせて飛ばすか、飛ばさないか決めてください。
理解せず進めて、わからないことが積み重なるともう学習意欲がわかなくなってきちゃうので。
配列やメソッドや関数が出てきたら
プログラミング学習の最初の方は簡単な画面表示とか、足し算引き算とかのレベルです。
けど進めていくと配列や関数(あるいはメソッド)と呼ばれるものが出てきて初学者を混乱させるかもしれません。
配列、関数(メソッド)というワードが出てきたら、紙とペンを使って、絵を描きながら理解することをオススメします。熟練のプログラマーでも紙に書いて俯瞰して見る作業はやります。
プログラムの流れを絵を描く、図示する作業はやったほうがいいです。
独学でプログラミングの基礎だけ学びたいなら
プログラミングを独学したいけど、それを仕事して就職・転職しようとは思ってない人も多いと思います。
・今の仕事に活かせる程度にプログラミングを学びたい
・営業マンなのでプログラマーのことも知っておきたい、教養レベルでいい
こんな人ですね。
そんな方でも独学でプログラミングを学ぶことは可能です。
どういうことをやってるのか動きを知りたい、どうやるとプログラムが動くのか仕組みを知りたいとか。そのレベルならProgateという超簡単やさしい無料のWEB講座があるので、それをやってみるとよいと思います。
自分のこととあとがき
自分は理系の大学に入学してからプログラミングを学び始めました。
大学の授業でプログラミングと言う授業はあったと思いますが、基本的に独学で、課題を提出して終わりという形。
当時はWEBの教材というものがなくて、皆同じC言語の書籍を購入してそれで学習してました。だからいちいちプログラミングの講義があったわけじゃなく、指導もなかったと記憶しています。
周りに遅れないように家でも書籍を書き写して理解を深めていたと思います。できる同級生が居て、彼に聞いたりして何とかやりおおした感じ。
いまこれから独学でプログラミングを始める方は、できれば仲間とかお金を払ってでも直接教えてくれる先輩のような存在を見つけられるとよりよいと思います。
昔の人はいいます。「俺らの時代はみんな独学でやったんだ」って。でも今は時代が違います。
最近は独学じゃなくて各言語についてプログラミングスクールに通って学びましたけど、出来る人は高い金払って行かなくていいと思います。あそこは本当に出来な人とか挫折した人が活用するのには良いサービスだと思いますね。
出来る人が効率よく学習するために行ってもよいと思いますが、コスパはよく考えてほしいです。
てことで、独学でプログラミングを頑張る人の参考になれば幸いです!