コンピューターサイエンス、何それかっこいい!
程度の知識しかなかったわたくしですが、さすがに現職も9年めを間近にすると「コンピューターサイエンスを基礎で学んでないと諸々不具合が……」という気持ちになります。プログラミングの学習をしようにも、詰まるところはプログラムそのものというよりも基礎の基礎で引っかかるからです。
ど文系ですが、そうも言ってられない。なぜなら、弊チームの採用基準を考えると自身もスキルアップしなければならないので……!
そんなわけで、Googleの検索窓に「コンピューターサイエンス オンライン 無料」と打ち込んでみたところ、Recursionというサイトをお勧めされました。
上記リンクの説明文にもありますが、「一人で何も作れない」を解決することに特化したという一文がわたしの心をサクッと捉えました。斬り付けた部分もある。
無料枠と有料枠があって、無料でもそこそこやれそうだし、ひとまず無料分をやってみるか!
というわけで、メールアドレスで新規登録をして、さっそくチュートリアル。
目標設定として開発ロードマップを選択するのですが、フロントエンドかバックエンドか悩んだ結果、バックエンドにしました。
一応、Webアプリケーションの脆弱性診断業務に関わる仕事をしているので、今のフワッとした理解をより盤石にするべきだろうと……(フワッとしてても質問したら逐一理解できるまで回答してくれるリーダーや周囲のエンジニアには感謝してもしきれませぬ)。
説明を読んで、ところどころ挟まるコーディング問題のリンクに遷移し、Progateみたいな画面で実際にコーディングをしてみて採点したり、一通りページ学習をしたら5問前後の選択式テストをして理解度を測る、みたいな流れ。
Progateは説明がスライド形式っぽくなっていて、スライドの先にコーディングページ、みたいな作りでしたが、Recursionはふつうにページをスクロールして読んでいって、コーディングページは別タブで開いて入力する形でした。
また、Progateだと言語単位で学習していきますが、コンピューターサイエンスとして全体を学習するからか、コーディングページで言語を変更することができます。
デフォルトはPythonのようですが、PHP、JavaScript、Java、C+、TypeScript、Rubyと選択できました(問題によってはRubyがなかったりするのかな?)。
一区切りつくとX(旧Twitter)でポストする画面が表示されるので、ここまでやりました! を記録できるし、そこまでは頑張ろうとやり切れる、ような気がします。
わたしは今日、コンピューターサイエンスの基礎・初級の「データ」まで(コース1のレッスン20まで)を進めたのですが、初級はそれ以外に「プリミティブ型」、「変数」、「関数」が用意されているようです。
コンピューターサイエンスの基礎は初級・中級・上級とあって、その後もいろんなレッスンが用意されている模様。どこまでが無料の範囲なのかしら。
有料だと、月額61ドルらしく、ちょっと……だいぶ家計に打撃を食らうので、いったん無料の範囲をしっかりやってから考えたいと思います。。
なお、今回の勉強の最終目標は「ローカル環境でLaravelを使ったポートフォリオサイト作成をし、ドメインとサーバーも契約してデプロイするところまでひと通りやる」です。自分で書いてて、ちゃんと理解した上でこの目標立ててるのか不安になってきていますが(何が必要でどんなコストやリスクがあって、どんなメリットがあるのかの検証をやり切れていない気がしている)、その辺のことも含めて自分がどこまで理解できていて、どこの理解があやしくて、というのを切り分けていきたいと思います。
これからの弊社弊チームは、どんどんスキルを持った若い人を採用していかなくてはいけないフェーズに入っています。そこで曲がりなりにもサブリーダーを担っているわたしが、いつまでもスキルを持ったエンジニアにおんぶに抱っこでは申し訳ないので、どこまでやれるかの挑戦も兼ねてやっていこうと思います!