こんにちは。カトー(@hisayosky)です。
プログラミングの学習って1ヶ月でどのくらい進むものなのかしら。
自分ではがんばってると思うんだけど不安。。。
もっとがんばったほうがいいの?
という疑問に答えます。
ぼくは現在ノマドエンジニア養成講座「iSara」の3期に参加中で、バンコクに滞在しています。
iSaraの過程は3つにわかれています。
- 基礎知識を学ぶ「事前学習」
- 実践的スキルを学ぶ「バンコク合宿」
- 案件獲得をめざず「フォロー期間」
第1段階の事前学習では約40日間、プログラミングを勉強します。
ぼくの場合は、
- プログラミング経験ゼロ
- 1日3~6時間学習
- わからないことはチャットで聞けるが基本自力で解決
という条件でプログラミング学習を開始しました。
その結果、40日間でレスポンシブ対応のランディングページが作れるようになりました。
ランディングページというのはiSaraのページのように縦につらつらとつながっているサイトですね。
自分ではすげえと思いましたが、ぶっちゃけiSara3期の受講者の中では進んでいないほうでした。
なので結論としては、1ヶ月でプログラミング学習がどこまで進むのかという目安はありません。
「どこまで進んだか」に目安をおくと人と比べて消耗しますので、「学習時間に何時間費やせたか」にフォーカスするのがオススメです。
今回はプログラミング学習が1ヶ月でどのくらい進むのか、ぼくが実際やってきた学習方法も含めて解説します。
ではいってみましょう。
iSaraでのプログラミングの学習過程
あくまでiSara3期の場合ですが、学習の進め方を紹介します。
基本的なコードの書き方を覚えたら、あとはひたすら自分の能力よりちょっと上のページを模写するという感じですね。
①Progate
オンラインのプログラミング教材。ゲーム感覚で学習できるので挫折しにくいのがいいですね。
「HTML&CSS」の上級編までを3回、続いて道場編の上級まで1回やりました。
🔶関連記事
プログラミング初心者がProgateで「HTML & CSS」に取り組むコツ【挫折防止】
②ローカル環境の構築
ローカル環境って何?と思いますよね。
インターネットがつながっていないPCの中だと思ってください。
ローカル環境でプログラミングをするにはテキストエディタが必要ですので、SublimeTextを導入して設定しました。
ローカル環境ではどこにファイルが保存されているのかが重要でして、おかしなところにあるとファイルがあってもコードが機能しません。
この段階ではそんなことを学びました。
③ローカル環境でサイトの構成を学ぶ
中身の入っていない四角だけが並んだページを作ります。
ヘッダー、メインコンテンツ、フッターという大まかな構成があります。
振り返ってみると、ページの構成を作れるようになるのがこの段階の目的でしたね。
④実際にあるサイトをコピーする
画像をお手本にサイトをコピーします。
画像がお手本なのでレスポンシブがどうなるのかはわかりません。自分で考えていい感じに整えます。
🔶関連記事
デザインとプログラミングの両方に共通する2つの勉強法【超初心者向き】
初期のプログラミング学習で押さえておきたいコツ
さらっと書きましたが、ここまでくるのに200時間くらいかかっています。
ぼくの場合はあまりにも学習が進まなかったので、40日で事前学習レベル5までコンプリートした同じ3期のトモキさん@bitKangaroo3 に学習のコツを聞いてみました(ちなみにカトーはレベル3まででした)。
コツその1 ボックスモデルを意識する
その③つづき
「ボックスモデル」
この単語をどれだけの人がちゃんと重要視したか?
もちろん単語は調べれば出てきますが、スルーしてしまうか、じっくり考えられるかが分かれ道。
基底にこれを置いておかないと、その上に積み上げていく知識がとても不安定なものになります。#isara3rd— トモキ (@bitKangaroo3) July 9, 2018
HTML&CSS学習初心者へのTips;
過去ツイートで「ボックスモデル」を概念と言いましたが、最小単位と捕らえてもいいかもしれない。
要素を追加した瞬間にそこには幅も高さも無い箱ができあがる。
箱に文字や画像を入れるとそれだけの空間を持つ。
その箱を装飾し、並べ、入れ子にする世界。#isara3rd— トモキ (@bitKangaroo3) July 11, 2018
トモキさんは「一番基礎になる概念は何か?」を考えながら学習する習慣がある人で、ブログラミングでは「ボックスモデルが重要」と考えました。
ページを見てもそこに箱はないわけでして、見えない箱を具体的にイメージできれば何をすればいいかわかりますよね。
ゆえに「ボックスモデル」なわけです。
🔶関連記事
プログラミング初心者がペラサイトのコーディングをやってみてわかったProgateの限界
#isara3rd の事前学習では講師にチャットでいつでも分からないことを聞けるのが魅力
しかし僕はほとんど聞かなかった
質問文を書いては送信せず消去を繰り返していた
質問するのがダメなんじゃない
質問をしようとする行為には意味がある
分からないことが言語化できた時点でその問題は99%解決している— トモキ (@bitKangaroo3) July 11, 2018
「わからないことを言語化できれば問題は自分で解決できる」は、じつはマナブさん@manabubannai も同じことを言っていました(飲み会で聞いた)。
誰かに質問を送るつもりでわからないことをテキスト化すると、何がわからないのか、どんな言葉でググれば答えが出てきそうなのかがわかってきます。
わからないことを質問文にしてみるのはオススメです。本当に誰かに聞いてもいいですしね。
目標を「成果」ではなく「学習時間」におくべき理由
目標は「成果」で測るより「時間」で決めるのがおすすめです。
どうしても成果を目標にしがちですが、成果は人によってかなり差が出ます。
差が出るとどうしても比べてしまうわけで、必然的に消耗します。
時間を目標にすると、例えば「200時間勉強する」が目標になります。
これだと人が何時間やったのかわからないので比べようがないですし、やればやるほど確実に目標に近づけます。
わかったようなことを書いてますが、じつはこれもマナブさんの受け売りです。
マナブさん曰く「とにかく1000時間やれば中級者ですから」なので、そう思って時間を積み重ねていけばいいかと。
ぼくは今プログラミングが全然思い通りにいかなくてかなりへこんでいましたが、まだ200時間ですから「じゃあ仕方ないか」となりますね。
まとめ:プログラミング学習の進み方は人それぞれ。成果より費やした時間に目標を置いた方が消耗しない
- 基本、HTML&CSSにひととおり慣れたらあとは模写
- 見えない箱を意識すると理解が早い
- わからないことは質問する体でテキスト化すると解決する
- 「1000時間でとりあえず中級者になれる」のでそこを目指す
▼最後まで読んでくれたあなたにおすすめの記事
プログラミングの勉強を続けるために整えるべき3つの学習環境