【ウェブカツ#3】手を動かすということ

プログラミングの勉強を始めてから、10日が経過しました。

HTML、CSS、Javascript、PHPの触りの部分を一通り終え、
現在はMySQLというデータベースを触るところに来ています。

一日や二日単位で振り返りをしてもしょうがないので、
周囲には一週間や一ヶ月単位でアウトプットをする人が
とても多いですが、やはり延々とコードを書いていると
それだけでも学ぶことは非常に多いです。

実践を中心にやるほど頭に入ってくる

ウェブカツは、最低限の基本要素を学んだら、
すぐに具体的に何かひとつの制作物を作り、
その派生で知識を取り込んでいくという、
かなり実践的な内容になっています。

JAVAやPHPは、それがかなり顕著です。
鬼練の補講がその点をかなりカバーしており、
有難く感じています。

具体例を挙げると
・メールや名前を入力するフォーム
・ログイン機能付きのフォーム

この辺りは、自分でWEBサービスを作る際、
まず絶対に必要なものとして考える部分です。

どうしても分からないところがある時は
ネット上の無料情報を検索したり、
オンライン上の教材を消化したりもしますが、
実際に動くものを作る過程やエラーを見つけて
修復する作業の方が、遥かに勉強になります。

仕事を実際に取りながら勉強している人は
緊急度も責任もリアルタイムで相当大きいので、
この感覚がより大きくなってくるのだと思います。

手を動かさないと知識は定着しない

ウェブカツには、鬼練という練習科目が
HTML、CSS、Java、PHPそれぞれに設定されており、
練習問題をゼロから自力で取り組む内容になってます。

動画の講義本編では、出てきたコードを書き写したり
ソースコードと比較して動作確認ができたのに対し、
こちらは、解答を見るまでの間、完全にゼロから
コードを考え、書いていかなければいけません。

すると、不思議なことに、既に分かっていたと
タカを括っていた内容が、いざ書いてみろと言われると
適切に命令を選べなかったり、凡ミスが起こります。

・ブロック要素にしてなくて中央揃えが無効になる
・floatを親要素で解除していない
・margin autoの使い方が分かっていない
・行末のセミコロンが抜けている

・フォームのtypeやClassの指定が漏れている
・メソッドのスペルミス(margin→maeginなど)

また、そもそもの構文自体を理解してない場合も
何かを作るとそれが露呈されるので、仕方なく
本編に戻って動画を繰り返し見ることになります。

1から10まで延々と知識をなぞるよりも、
一つミスをして頭を抱えた方が、結果的に
ずっと理解が進むということを、日々実感しています。

エンジニアがコードを触る上での最低基準値

ウェブカツの講座内では、講義の内容の中に
ちょくちょく、コーヒーブレイクとして業界事情や
実際に働く現場の小話などが話されます。

その中で、現役のエンジニアが、平常時どれくらい
勉強をしているのかという話があったのですが、

「現役のエンジニアでも、月平均で
 160時間以上はコードを書いている」

という話がありました。

一日単位に分割すると、一日あたり約5時間は
何かしらコードを書いていることになります。

つまり、未経験の状態でそれ以上の勉強をしない限り、
普通に働いているエンジニアの人達との勉強量は
開く一方なので、一生追い付くことはできません。

出来るのは、2倍3倍の勉強時間をかけるか、
2倍3倍の集中力で効率よくやるかの、どちらかです。

一見、すごく大変な量に聞こえますが、
受験生は余裕でそれ以上の勉強をしているし、
将棋のプロでもその位の勉強は当たり前です。

そして、その勉強量で先輩方が持っている差分は
一日二日では取り戻せませんし、逆に、それ以上に
勉強を続ければ、差を詰めることができます。

そういう前提で最初から勉強を始められる人は
プログラミングスクール自体不要かもしれませんが、
より効率良く勉強したい人、こういった業界の現状や
基準値を刷り込んだ状態で最初からやりたい人のみ、
投資する価値があるんじゃないでしょうか。

ブログもそうですが、長期戦になるからこそ、
絶対に更新を落としてはいけないし、毎日の積み重ねが
先の結果を決めるので、とにかく継続を心掛けます。

まとめ

今後の流れとしては、
・本編消化、二週目
・鬼練をやる
・サイト模写をやる
・今より上のレベルの仕事を請ける
を考えています。

勉強に没頭できる期間も、永久に続く訳ではない為、
集中して効率良く学習を進めていきます。