こんにちは。
アサミです。
完全未経験からTech Academyというオンライン学習サービスを利用して、4か月間プログラミング学習に取り組みました。
何度も挫折しかけましたが、なんとかオリジナルサービスを2つ完成させるところまできたので、プログラミング学習する上で大切だと感じたこと3つを共有したいと思います。
・私が取り組んだこと
【学習した言語/フレームワークなど】
・javascript ( jquery/Vue.js含む)
(Tech Academyのフロントエンドコース)
・PHP/Laravel
(Tech AcademyのPHP/Laravelコース)
【学習期間】
・javascript ( jquery/Vue.js含む)
⇒1.5 か月
・PHP/Laravel
⇒2.5か月
それでは、プログラミング学習を効率的にする上で大切だと感じたことを書いていきます。
①とにかく『写経』は大切
写経とは・・・仏教において経典を書写すること(Wikipedia)
プログラミングにおける『写経』とは要するに、コードを、意味を理解しながら自分で実際に打ち込んでいく、模写していく作業のことです。
具体的には、下記の通りの作業をします。
・サンプルコードを実際に打ち込む(コピペはダメ!)
・実際に動かす(うまく意図通り動くか確認)
・コードを日本語訳
ここで、大切なのは、サンプルコードは実際に打ち込むということです。
なぜ、実際に打ち込む必要があるの??コピペでよくない??
そう感じる人もいると思います。
現に、私もそう感じ、学習の最初の1.5か月はコピペで学習してました。
コピペで学習すると何が起きたかというと・・・
・自分の頭でコードが考えられない
・テキストの課題はなんとか解けても、自分のオリジナルサービスがちっともできない
(応用がきかない)
⇒結果、挫折。プログラミング全然面白くない・・・(´;ω;`)
当然ですが、コード一つ一つには大切な意味があります。
一つが抜けていても動きません。
これらをコピペすると、これを一つのブロックとして切り取って張り付けてしまうので、
その中に含まれる、コード一つ一つの意味の理解がどうしても低下してしまいます。
プログラミング言語という言葉があるように、プログラミングは言語です。
実際に打ち込まないと、その言語は体に染み入ってくれません。
外国語学習と同じで、言語が体に染み込み、一通りの構文が理解&作れるようになると、
意図をもったコードをかけるようになります。
意図をもったコードとは『自分がなんのために書いたか説明できるコード』です。
その状態になると、『分からないことが分かる=質問できる状態』になります。
オンラインのプログラミング学習サービスには、だいたい質問し放題サービスみたいなものがついています。
ただ、自分が質問しようと思ったときに必ずぶち当たる壁が、
「どう質問・説明していいかわからない」「何がわからないかわからない」です。
意図をもったコードがかけるようになっていれば
「
・〇〇という機能を実装したくて
・★★という考えで、××というコードを書いた
・でも、動かない or こういうエラーがでる
」
というように、自分の意図を説明して質問することができます。
自分の考え方が間違ってるのか?コードの書き方が間違ってるのか?
質問に対する回答への理解度もアップします。
②質問できる環境
挫折しないためにも、質問できる環境を用意することを強くおススメします!
間違いなく、質問できなければ、私は挫折しプログラミングを辞めていたでしょう。
知り合いにエンジニアの方がいる方は、その方に頼んでみるとか、
有料のオンラインのプログラミング学習サービスを使う、MENTAというサービスでメンターを探すとか色々方法はあると思います。
プログラミングをやってて感じたのは、PCって本当融通きかない・・・ということです。
プログラミングの中に全角スペースとかが入り込んでるだけで、書いているコードの内容があっていても、エラーで動かないのです。
カンマのうち忘れとか、本当にしょうもないことでエラーがでます。
エラーの文章読めばわかるのでしょうけれど、最初のうちは、何がなんだかわからないので、そんなことで平気で3時間とか費やしてしまいます。
挫折街道まっしぐらでございます。
そんなしょーもないことで、プログラミングを辞めたらもったいないので、質問できる環境はなんとか用意することをお勧めします。
③サービスを作る(実践)
実際にサービスを作ってみるって本当大切です。
理解できてると思ってることでも、自分でサービスを作るとなると、全く歯が立たないなんてことは、しょっちゅうです。
そこで、粘って、
・テキストを読み込む、ググる
・質問する
を、繰りかえすことで、本当に使える知識となっていきます。
簡単なサービスでOKです。
むしろ、最初は簡単なサービスの方がいいです。
簡単だと思ってたものでも、いざ作ってみると難しいものです。
そんなことを知らなかった私は、大きな構想を描き、いざサービスを作り始めると、全く歯が立たず、そこでも挫折しました(何度も心折れてますね・・・)
以上が、私がプログラミング学習する上で大切だと感じたこと3つです。
最後に、これからプログラミング学習をはじめる人にメッセージ。
「挫折して当たり前」
どんな対策してても、やっぱり、どこかで壁にぶち当たるのがプログラミングな気がします。
現役フリーランスエンジニアのメンターさんも、何度も心が折れた経験があるといっていました。
でも、そこで、辞めないことが大切で、心若干折れながらも、続けていると、ほんのちょっと道が開けてきます。
道が開けてくると、ちょっとずつ楽しくなってきます。
その繰り返しで、どんどん自分のできることが増えていく。
私も、これからも、サービスを頑張って作っていきたいと思います。
アサミ
