この記事は、そんなあなたに向けて書いています。
人気のプログラミングスクール、テックアカデミーは実際のところどうなのか?
気になっている人も多いと思います。
テックアカデミーフロントエンドコースをリアルタイムで受講中の僕が、現場の声をお届けします。
すこしでも、実際に受講する雰囲気をつかんでいただけたらうれしいです。
★カリキュラムの現在地は以下のとおり。
レポートするにあたって、書くポイントを以下のように設定しました。
・どこでつまづいたか?
・どう乗り越えたか?
・カリキュラムを進める上で、どんなことを意識しているか?
1つずつ、本音で書いていきます。
もくじ
つまづいた課題
タブレイアウトの実装
CSSとJavaScriptを使って、よくある「タブ」のデザインを作る課題があったのですが、これが難しかった。
課題には、すんなり一発でわかるものと、ずぶずぶと沼に入ってしまうものの2種類があります。
どこが難しかったか
僕たち、普段プログラミングで作られたサービスを使うときは、なんの気なしに使ってますよね。
HPとか、アプリとか。
ただ、作る側の立場に立ったとき、見る世界が変わります。
表面上はなめらかに見える動作も、裏側では細かい設定が張り巡らされているということに気づかされました。
僕たちが「使いやすいな〜」と思って利用しているサービスほど、コードを書いている人の工夫が詰め込まれています。
タブを切り替える動作を実装するときも、最初は「シンプルなコードを書けばいいんだろうな」と思っていました。
ですが、やっとの思いで合格したコードは、かなり泥臭いというか、「そんなとこまで書くのか!」というようなものでした。
どう乗り越えたか
そんなタブの課題ですが、乗り越えられたのはチャットサポートのおかげでしたね。
課題なので、力を付けるためにもできるだけ自力で合格したかったのですが、あまりにも沼だったのでメンターさんに頼りました。
これは個別メンターではなくて、毎日15〜23時にスラック上で質問に受け付けてくれるメンターさんのことです。
生徒がコードを書く場所は、メンターがいつでも見に来れるようになっています。
実際にコードを見て、
みたいな感じで教えてくれます。
もちろん、直接的な答えはもらえません。
あくまでヒントです。
そのヒントのおかげで、間違っているコードの場所に気づくことができます。
ただ、大体が
「うわ〜、しょーもないとこ間違えてたな〜」
と感じるようなところなんですよね。笑
なので、沼にハマった課題でも、合格していざ振り返ると、不思議と「大した課題じゃなかったな」って感じなんです。
BaaSの削除機能実装
BaaSもめちゃくちゃ難しかった。
正確に言うと、BaaSはフロントエンドではなくバックエンドの範疇です。
ですが、BaaSもやっておかないと、フロントエンドだけでは作れるサービスに限界があるので、カリキュラムに入ってます。
たとえば、「ログイン機能」とか、「ユーザーがアップロードした写真を保存する機能」とか。
こういった機能をBaaSで実現することができます。
個人メンターさんも、定期メンタリングで「BaaSが難しいですよ〜」とおっしゃっていたので覚悟はしていたのですが、やはり難しかったです。
どこが難しかったか
難しかったのは、ざっくり以下の2つのポイント。
1.コードが長い
2.保存先のデータベースの扱い方
コードが長い
まず、カリキュラムに掲載されているコードがクソ長いです。
これまで1個1個和訳するように読んでなんとか理解していたのに、コードがダラ〜っと200行くらい書かれています。
変数や関数が大量に定義されていて、関数の中に入れ子のように複数の関数が入っていて、「ぐちゃぐちゃのマトリョーシカ」みたいになっています。
「この関数はどういう意味の関数だっけ?」とあっちこっち参照しないといけないので、記憶力が追いつかない。笑
思い返せば学生時代も、いろんなとこを参照する科目が大嫌いでした。
単一のページで問題が収まらず、別ページをぺらぺらめくりながら解いていくのがめちゃくちゃ気持ち悪いんですよね。
(わかってくれる人いるかな?)
保存先データベースの取り扱い方
ここではfirebaseというバックエンドのサービスを使うのですが、その使い方が独特で、慣れるまで苦労しました。
どう乗り越えたか
BaaSには課題が2つあり、「削除機能の実装」はそのうちの1つめ。
ちなみに、10時間以上取り組んで、さっきやっと終わったとこです。笑
さすがに10時間もやってムリだと、「これは1人じゃできないやつだ!」と悟って、鬼のようにチャットサポートを頼りました。
もう、「詳しくわからないところを教えてください」と言われるのを承知の上で、つまったところを片っ端からスラックに投げていきました。
自分は内向的なので、ガンガン人に質問するのは苦手な方なのですが、お構いなしに攻めました。笑
「(オレはテックアカデミーのなにに金を払っているんだ?メンターにがんがん質問できる環境に金払ってるんだろ?そうだろ?向こうは「自分で考えた方が力がつく」と言ってくるかもしれない。でもひるむな。確かにそうかもしれんが、生徒からの質問が少ないほうが人件費が浮くからそう言ってるって側面も強い。クソ高い受講費の元を取る唯一の方法は、質問しまくることだ!いけ!)」
と、上記のように自分に言い聞かせながら、15時のサポート開始と同時に質問しまくって、なんとか課題をクリアしました。
(15時になるまでにジムでお風呂はいって、1時間昼寝して、体調万全にした状態で質問しまくってやりました。笑)
カリキュラムを進める上で心がけたこと
僕はいまのところ、予定より前倒しでカリキュラムを進めることができています。
メンターさんからも、「この調子ならオリジナル課題制作にたっぷり時間をかけられる」と言ってもらえています。
ここにくるまでで、心がけておいたことがあります。
それは、「挫折対策をしっかり取っておく」ということ。
テックアカデミーに入る前に読んだ、迫裕樹さんの『人生攻略ロードマップ』に以下のようなことが書かれていました。
たとえばプログラミングは、勉強を始めた人のうち8割は、途中で挫折するといわれています。
「勉強を続けるだけ」で自動的に、上位2割に入れるのです。迫 佑樹『人生攻略ロードマップ 「個」で自由を手に入れる「10」の独学戦略 (Japanese Edition) 』(Kindle の位置No.545-546). Kindle 版.
この言葉は、「プログラミング学習と平行して挫折対策をとっていれば、誰でも習得できる」とも読めます。
そこで、心理学の世界で効果があるとされているテクニックを、毎日のルーティンに組み込みました。
僕が取っている「プログラミング挫折対策」は以下のとおり。
・WOOPの法則+if-thenプランニング
・瞑想1日15分
・週に1日チートデイをつくる
・「集中できる環境」に課金する
・「時間の確保」に課金する
・読書量を抑える
・毎日運動する
上記のとおり。
「WOOPの法則+if-thenプランニング」は、心理学の世界で目標達成率が2〜3倍になると言われているテクニックです。
メンタリストDaiGoさんのDラボの「目標達成」に関する放送にて紹介されており、何度も聞き返して愚直に実行しました。
ざっくり言うと、「毎日目標を意識して、挫折対策をつくる」というもの。
「YouTubeが見たくなったら、代わりに音楽を聞く」みたいな対策を毎日設定します。
これで、ずいぶんムダな時間が減らせましたね。
あとは、プログラミング学習に集中するために、結構容赦なく課金しました。
【生産性を上げるために買ったアイテム】
・光目覚まし
・高級キーボード
・50%ブルーライトカットのメガネ
どれも、プログラミングをやめたとしても使えるアイテムばかりなので、躊躇なく購入しました。
プログラミングに挫折してしまう方が、長期的に見るとよっぽど損だと思えたってのもあります。
また、時間を確保するために、今は意識的に自炊を減らしています。
料理と皿洗いから解放されたおかげで、平日の仕事終わりでも、集中してプログラミング学習に集中できています。
おわりに
テックアカデミーは、正直カリキュラムがめちゃくちゃわかりやすいというわけではありません。
ふつうです。
特筆すべきは、やはりメンターサポートの充実。
ガンガン質問しまくってナンボの世界です。
独学でiPhoneアプリ開発をやっていたときとは、比べものにならないくらい学習がはかどります。
僕みたいな内向型でも、基本的にはテキストで質問できるので、やりやすい。
逆に、自分がわからないところを文章で言語化するのが苦手な人は厳しいかもしれません。
メンターさんの対応も丁寧でやさしいです。
一度聞いてわからなくて追撃で質問しても、しっかり対応してくれます。
今日のメンタリングも、僕がどうしてもわからないところがあり、所用の時間をすぎていたにも関わらず、最後まで教えてくれましたからね。
12週間コースなので、あと一ヶ月半ほど。
スキルをモノにできるよう、しっかり取り組んでいきます。