IMAGE: https://cdn-ak.f.st-hatena.com/images/fotolife/i/ikmbear/20200810/20200810130426.png
$1ブートキャンプに入ってから、1ヶ月が経過しました〜。せっかくなので、この1ヶ月を振り返っていきたいと思います。
1ヶ月でやってきたこと
どのくらい勉強しましたか?
学習時間としては、30日で190.3時間。1日平均で大体6hくらい勉強しました。平日は働いているので、ざっくりこんな感じの生活を送っています。
実際にはこれよりも残業していたりもするので、もう少し学習時間が少ない時もあります(コロナの影響で基本リモートワークですが、たまに外勤もしているのでこの通りにいかない日もあります)。休日は6~12hくらい勉強してます。暇人ですね〜。
ちなみに進捗は39%です。
何ができるようになったんですか?
細々書くといろいろあるんですが、プ$1ティスに沿って記述すれば
「LinuxサーバでNginxを動かし、ちゃんとCSSも適用した静的ページをローカルPCから配置・配信できるようになった。あと作ったページはバージョン管理もできるよ。」
といったことができるようになりました。
とりあえず、突然母親に「いま私がやってるサークルのサイト立ち上げてよ」と無茶振りされても役に立つことができるようになりました。え?お問い合わせフォーム?会員専用ページ?ごめんなさいまだ無理です。
$1ベルで進捗を例えると(なぜ例えるし)、
- ザケル・ラシルド・ジケルド(HTML・Linux・Nginx…etc)はまだ初級ランクだけで使える。技のコンビネーションでなんとか敵は倒してる。
- そろそろバオウ・ザケルガ(Ruby)覚える。
- たぶんバオウにのまれる展開(Rubyむずい〜〜〜)がそのうちある
まずはバオウ・ザケルガ覚えて、リオウ戦(Railsとかかな)ですごい感情抱いて、ザケルなどの初級呪文がギガノ級へ進化することを期待する日々です。
独学をやめたことで風向きは変わりましたか?
方向性が見えたことで、先に進めるようになった
Railsブートキャンプのコースは「RailsRailsコース」と銘打っているので、Rubyが初級の状態ではまだまだです。
しかし、自分でサーバーを借りてそこから静的ページを配置することができるようになったことは、独学時代になしえなかった大きな一歩でした。
もう少し詳しくいうと、独学時代には
- 「どこまでできるようになればいいんだCSS。模写か、模写を続ければいいのか」
- 「サーバ立ち上げるにも何が必要かわからん。前提知識は何が必要?そもそもこのPCでできるの?」
と思い悩んでずっと同じ場所から進めていなかったのですが、
- 「CSSはまずHoly-Grail layoutの成果物が作れるようになろう」
- 「サーバを立ち上げるにはLinuxのこれは最低限必要。んでもってHTTPLinuxも知っておいて…」
と、方向性が見えていることで前に進めるようになりました。
学習時間を純粋に「技術を習得するための時間」に当てられるようになった
こうして方向性が見えることによる変化は、学習時間の使い方の変化にもつながっています。
これまでは「う〜ん、学習の進め方が悪いのかも。他の人のやり方を調べるか。」「計画をしっかりたてやってみよう」と学習の進め方自体に時間をかけていたのですが、キャンプイン後はほぼすべての時間を**「具体的な技術を習得するための時間」にかけることができるように**なりました。
$1ブートキャンプを1ヶ月間つづけていて、辛いことはありますか?
強いてあげるなら
- (後述)学習の習慣化のために、最初の1ヶ月は$1ブートキャンプのプ$1ティスを進めることに全振りしていたので、プ$1ティスに関係ない本はいったん読めなかった。
- 睡眠時間が少し減って眠い。
ぐらいです。
プログラミングが楽しくて始めたことなので、今のところはあまり辛くないです。
わかんないことが出てきても、わかった時の$1が全て精算してくれるので、むしろプラスです。
学習の継続に役立っている仕組み
せっかく1ヶ月続いたので、働きながらの学習に役立っている仕組み・考え方を振り返ってみます。まずは仕組みの方から。
todoist
todoist
可処分時間を増やすために、本業のタスク管理で使用しています。
- どのタスクをいつまでに終わらせる必要があるのかを一覧で認識できる。
- 仕事が降ってきた際に、進め方を考えてから着手できるよう無限に子タスクに分解できる。
- 可処分時間を勉強に回すと、記憶のキャパシティが足りないので、すべて機械が覚えて通知してくれる。
- タスク自体にコメント(PDFファイルとかも)を追加可能なので、ここをみとけば全部把握できる
- タスク管理ツール自体を使うのに多大な$1がかからない
可処分時間のほとんどを学習時間に当てたことによる、**「実は今まで頭で覚えていた」部分の抜け漏れが怖かったため、**柔軟に繰り返しタスク追加ができるtodoistはかなり重宝しています。
Notion
学習におけるNotionの役割は次の3つです。
- $1ブートキャンプの学習計画管理(ゆるめ)
- 学習メモと参考記事のストック
- ビジュアル担当
1.$1ブートキャンプの学習計画管理(ゆるめ)
学習計画
まず学習管理というほどの管理ではないのですが、Notionのカレンダービューを使って、直近1ヶ月のプ$1ティスの取組日程を記載するようにし、完了したらチェックを入れる形にしています。
(1ヶ月以降の日程も一応$1していますが、こっちは適当です。そこにたどり着く時に自分がどんな前提知識あるのかもわからないですし)
$1ブートキャンプは$1カの大学ばりに卒業するのが大変(FAQ | FJORD BOOT CAMP(フィヨルドブートキャンプ))ということで有名なので、毎日学習を進めていても「のれんに腕押し、糠に釘、豆腐にかすがい…」と思ってしまわぬように、「あらかじめここまで進めるんだ」「自分はこれだけ進んだんだ」と自分で納得感を出せるようにしています。
カレンダーのあるページには、各言語の学習メモへのリンクと自分の考えたこと(アウトプット)も一覧できるようにしています。これも「やった感」を自分に訴えかける工夫のひとつです。
2.学習メモと参考記事のストック
次に学習メモと参考記事のストックです。
$1ブートキャンプには日報システムがあるので、そこにつらつら書き連ねるのも一つの手ではあります。ただ横断検索と$1がないことに加え、自分の場合は学習に関する情報をNotionに集約したかったので、Notionで学習メモと参考資料をまとめています。あとは「何でもかんでも日報に書くのはあれだけど、勉強のためにメモしておきたいな〜」という場面が多いということも理由です。
学習内容ごとに一つのページを用意し、学習メモと参考記事を配置するテンプレートを採用しています。
(NotionTip的なところですが、テンプレートで作るとChromeのWebClipperでどれも同じ名前になってしまうので、インラインページにもちゃんとアイコンを設定することをおすすめします)。
Rubyの学習ページ
学習メモは参考書を読む時、課題に取り組む時、調べ物をする時は必ず用意し、
- 学習時点ではよくわかっていることでもわりとしっかり書く
- 自分がやってみたことは手順をまとめておく
こんなことに気をつけて書いています。
カリキュラム上は課題を提出すればクリアになるのですが、それは「この技術とはもうお別れだよ」でも「この技術は完璧にマスターしたね」でもありません。
カリキュラム上で先に出てくる技術は、その後の技術の前提知識です。そして人間なので時間と共に忘れる可能性があります。
そのため少し時間はかかりますが、トータルの学習効率を優先して、「忘れた時に自分がスッと分かっている状態に復帰できるメモ」「初心者の自分が、理解したことを後から教えてくれるメモ」となるように書いています。
参考記事は、Chrome拡張のwebclipper機能でどんどん入れていきます。ブックマークバーだといくつあっても足りないので。
3.ビジュアル担当
完全に個人的な好みです。私は仕事でもExcelのフォントや配色が適当だと気になるタイプなので、モチベーション維持のためには学習に使用するツールがビジュアル的にいけていることがマストでした。
Nginxの学習ページ
ちなみに今のところ、一番綺麗だなあと思っているのはNginxの学習ページです。「NGINXってアロマ通販サイトの名前なのか」と錯覚するような$1ル系ビジュアルです。
しょうもないですが、意外とこういうところは学習の継続に効いているんじゃないかと個人的に思っています。
朝勉強できたカレンダー
私の場合、学習の絶対時間を伸ばすためには、朝時間の活用が欠かせません。
そのため6:00起床し、学習する習慣としています。この習慣を支えるのが朝学習カレンダーです。
朝学習カレンダー
ルールは簡単で、
- 習慣を守れたら奥さんにサインをもらう
- サインが1ヶ月たまったら、二人でおいしいものを食べる
これだけです。大学時代も「6:00からパン屋でバイト→11:00から大学→16:00からパン屋に戻ってバイト」みたいなことはやっていたのですが、仕事の疲れや加齢とともに前ほどすっきり早起きできなくなっているので、朝学習を続ける仕組みは多ければ多いほどいいです(面倒でないほどに)。
朝の$1
毎日6:00から、sasaboさんという方がslack上で朝の$1を開いてくださっています(本当にありがたい)!
私の朝は6:00に起きて、slackに返信して始まります。繰り返しますが、朝学習を続ける仕組みは多ければ多いほどいいです。
$1ブートキャンプの日報へのコメント
$1期なので仕組みといえるか微妙ですが、$1ブートキャンプでは学習をした日は必ず日報を書きます。そしてたまにコメントがきます。
「良いやり方ですね」「いい心がけですね」「その調子で頑張ってください!」「参考になりました!」
コメントは基本こないものだと思っているので、不意打ちで来て嬉しさ倍増。
これで明日も頑張れそうな気がします。
$1ブートキャンプの芝
Githubブートキャンプのプロフィールページには、Github同様にキャンプでの勉強時間に応じた芝が実装されています。
「いっぱいあったら、いっぱいうれしい」
そんな単純な人間です。
学習の継続に役立っている考え方
役立っているという観点とは少し違うけれど、単にそういうこと考えているよ〜といった類のことも混じっています。
プログラミングは面白い
だから$1ブートキャンプに入っているんですが、やっぱり**「楽しい」は最大のモチベーション**ですね。朝起きて勉強するのも楽しいから続いているわけで。
習慣化の法則にのっかる
「ずっと読み続けている一冊はありますか?」と言われて、真っ先に答えるのがこの本です。
https://www.amazon.co.jp/gp/product/B01KJAOI9E/ref=dbs_a_def_rwt_bibl_vppi_i5
- 習慣には種類があり、「学習を続ける」といった行動に関する習慣は行動習慣に分類される。
- 一般的に行動習慣は定着までに30日かかる。
- 人間は現状維持を好む。多くのことを並行して習慣化しようとすると、拒絶反応が大きいので、習慣化する内容は一つに絞るべき。
本書の内容に沿って「$1ブートキャンプでの学習を継続したい」という習慣だけをこの1ヶ月は徹底しました。仕事は別として、「運動不足だから毎日運動するか」「やっぱ読書習慣身に付けたいな」と思っても、全部やらずに徹底したことで1ヶ月の勉強習慣が定着したと感じています。
新しいことを学ぶ時は「郷に入っては郷に従え」の精神
なまじ仕事でJavaとかAPサーバをかじったことがあるおかげで、プJavaティスで出てくる新しい概念も「ああ、これはJavaでいうあれね」といった比較による吸収が可能です。
これ自体は効率的でいいとは思うのですが、如何せん比較対象の知識自体が曖昧なので、比較による理解はせず、新しく学ぶ概念の言葉で理解するように心がけています。比較で学習しようとすると、比較元の理解度でしか新しい概念を理解できないような気がするので。
「人には人の乳酸菌」の精神
$1ブートキャンプにはいろいろな人がいます。バックグラウンドも違うので、学習進度の比較はあまり意味がありません。「自分がちゃんと進めているか?」を大切にします。
※そのための仕組みがNotionです。
問題を解く時は「シャーペンじゃない、ボールペンで」の精神
学習している過程では間違えるのは当たり前。だったら臆せずにどんどん間違えを晒して残して、成長につなげようといった意味合いです。
ここから余談ですが、これはもともと中学の数学の教師に言われた言葉です。
自分で言うのもなんですが、私は「学校」で常に高い評価を得られていたので、常に「優等生」であろうとしていました。そのことが邪魔をして、ノートに問題を解く時も間違った記録を残さないよう消して、あたかも最初から正しい解答をしているかのように書き直す癖があったんですね。
そして次第にテストの点数が上がらなくなった時に、それを見抜いたのか数学の教師から言われたのが
「問題を解く時はシャーペンじゃなくて、ボールペンで$1にかけ。間違いをたくさん積み重ねろ」
大人になった今でも「失敗を晒すのは恥ずかしい」と思っている自分はどこかにいますが、その度にこの言葉を思い出して「今は間違え時」と言い聞かせています。
これからの話(ざっくり)
アウトプットを習慣化する
先の習慣化の話には続きがあって、
「人間は新しい習慣を拒むけれど、一方で同じ習慣が続くと飽きる生き物。習慣が身についてきたら、新しい習慣を始めることでマンネリを防ぐべき」
という説明があります。これに則って、8月からは学習習慣にプラスしてアウトプットを習慣化したいと思います。1週間に2記事くらいかけるといいなあと思っています。
将来を考えていかないといけない
「楽しさ」を原点として本腰を入れ始めた**プログラミングに対して、「どうして仕事にしたいのか」「どんな仕事をしたいのか」**ということを、これからぼちぼちと考えていきたいと思っています。
- 仕事であれば、その時間含め長い時間プログラミングに触っていられる。
- 個人とは規模感が違う。その規模感ならではの$1を体験することができる。
- 仕事には責任が伴う。責任があるからこその試行錯誤がありそれが楽しい。…etc
最後に
最近「自分はいい時代に生まれたよなあ」と思っています(Windows95と同い年です)。
- もしプログラミングという概念が生まれたばかりの時代だったら
- もしJavaScriptが使えないものだと思われている時代だったら
- もし個人でさくっとWebアプリが作れる時代でなかったら
今ある技術はなくて、そしてその技術を懇切丁寧に教えてくれる環境もきっとなかったんですよね(もちろん、その中で学んでいくことも楽しいんだとは思いますが、今よりずっと大変)。
せっかく$1ブートキャンプという場所を選べる時代に生まれて、その機会を自分で選択したのだから、最後までやり通さないと損ですよね!
1ヶ月くらいで「やりきった」テイストの記事書いてますが、まだまだこれから!!プログラミング楽しんでまいります!
↓こちらもどうぞ