フィヨルドブートキャンプに参加して1か月が経ちました

フィヨルドブートキャンプに参加して1か月と少し経過したので振り返ってみました。

本エントリは以下の方に向けて書きました。

  • これからフィヨルドブートキャンプに参加する方
  • どんなスクールなのか気になっている方
  • 他の受講生

ラクティスの進捗

フィヨルドブートキャンプの学習内容はこちらです。

f:id:isshi-hasegawa:20210603214006p:plain

いまのところ筆者の進捗はこんな感じです。

序盤のプラクティスは提出物の必要のないものが多く、事前の学習である程度習熟しているものもあったのでサクサク進められました。事前の学習でどんなことに取り組んだかは、追々まとめる予定です。

Rubyのプラクティス以降はひとつのプラクティスにかかる時間も難易度もハネ上がるので、今後のパーセンテージの伸び方はゆるやかになると思います。

詳しくは後述しますが、蛇行しながら卒業に向けて進みたいので、いつまでに卒業したいとかはとくに決めていないです。

特殊クエス

僕の大好きなゲームに、「特殊クエスト」という要素があります。特殊クエストに取り組んでもゲームクリアには関係ありませんが、強い武器や防具が作れるようになって「俺TUEEEEEE!!!」という状態になれます。

LT登壇、他の受講生の質問への回答、ミートアップ、輪読会などは、フィヨルドブートキャンプ卒業に直結するものではありませんが、確実に「俺TUEEEEEE!!!」に近づく何かを秘めていると感じています。

上記は、筆者がフィヨルドブートキャンプに参加してすぐに拝見した、ある素晴らしい日報の一部を要約したものです。

  • 輪読会
  • LT会登壇
  • 質問やQ&Aへの回答
  • フィヨルドミートアップ
  • Rubyコミュニティ

たしかに、上記に参加したりチャレンジすることで得られる知識や経験の量は莫大です。筆者も「特殊クエスト」での学びをできるかぎり日報にまとめています。はじめてだとどうしても気が引けてしまうかもしれませんが、信じて飛び込みましょう!(Take a leap of faith!)まずは質問・雑談タイムから気軽にラジオ参加がオススメです。筆者もだいたい参加してます。

フィヨルドブートキャンプの特徴のひとつは、プログラミングスクールでありながらコミュニティでもあることです。他の受講生を巻き込んでイベントを主催したり、あるいは色んなイベントに飛び込むことが可能です。

フィヨルドブートキャンプをビデオゲームに例えると、自由度の高いオープンワールドRPGといえるでしょう。筆者はひたすら道草を食いながら少しずつメインクエストを進めるタイプなので、筆者なりのプレイスタイルを貫きます。

受注している特殊クエス

19時以降はだいたい映画を観ているか寝ているので、特殊クエストは午前中に固めています。

チェリー本輪読会 月〜金 朝9時から

プロを目指す人のためのRuby入門 言語仕様からテスト駆動開発・デバッグ技法まで(=通称チェリー本)』を読み進めて疑問点を洗い出し、Rubyへの理解を深める会です。チェリー本をすでに通読済みで、取りこぼした部分を重点的に再読したいというメンバーが集ったため、平日毎朝午前9時〜10時というハイペースな頻度で開催しています。しかし、1章から順に読み進めているため1周目の方でも参加可能です。

著者ご本人に質問できるハードルがかなり低いという信じがたい環境のため、検討の末にどうしても疑問が解決しなければ、最終的にQ&Aに投げることができます。

チェリー本はプラクティスに必要な書籍なので、輪読会の需要は高そうです。週末の部や夜の部などがあってもいいと思います。時間帯のせいで参加できないのはもったいないです。誰か主催しないかな〜?

Hirakata.rb 土曜 朝8時30分から

Hirakata.rb - connpass

フィヨルドブートキャンプ卒業生が主催しているRubyの地域コミュニティです。筆者は#1に参加し、ありがたいことにフィヨルドブートキャンプについて詳しく聞くことができました。基本的にもくもく会形式なので、参加ハードルはかなり低いと思います。

Rails輪読会 日曜 朝8時30分から

パーフェクト Ruby on Rails 【増補改訂版】』を読んでRailsの理解を深める会です。輪読会と聞いてとりあえず飛び込みました。パRailsは高難易度で、「なにがなんだかわからない」状態に陥ることが多々あります(もちろん理解できないからといって咎められることはありません)。いま学んでいる内容はすぐ理解できずとも、今後自力で読み進める際にとても役立ちそうです。また、著者のうちのおひとりが参加されています。これも信じがたい環境ですね…。

Rails輪読会に参加して輪読会の流れをなんとなく理解したおかげで、チェリー本輪読会に反映させることができました。とりあえずお試しで、信じて飛び込むことは重要です。何に役立つかわかりません。

分報チャンネルはスゴイ

フィヨルドブートキャンプには日報システムや個人ブログ作成のプラクティスなど、受講生が学んだことをアウトプットできる仕組みが整備されています。その中でも驚いたのが、Discordというチャットサービス上で行う分報(ふんほう)チャンネルという仕組みです。

以下は「⏱分報を書こう!!」というドキュメントからの引用です。

今自分が何をやっているか、どんな気持ちなのか、何を考えているのか、何か疑問があった、わからないことに出くわした、わからなかったことがわかった...などを実況中継する、ってやつです。要するに独り言です。自分の分報チャンネルには学習やプログラミングに全く関係ないことでも何を発言しても構わないです(アンチハラスメントポリシーに反するものとかではない限り)。

筆者は小心者なので、TwitterではフォロワーのTLを汚してしまうかもとドキドキしてしまいます。なのでこの分報チャンネルの存在はありがたいです。筆者もよく映画の話をしたり、娘と公園に行って遊んだとか頭が痛いとか学習に関係のないことを書いています。

分報チャンネルは他の受講生やメンターにも閲覧可能です。わざわざ分報チャンネルを覗きにきたということは、アイコンとユーザ名以外にあなたのことをもっと知りたいということです。フィヨルドブートキャンプはコミュニティでもあるので、自分を出すことが肯定されています。 この居心地の良さは癖になります。

また、プラクティスに取り組む際、思考過程や参考ページを分報チャンネルにメモするようクセづけておけば日報が書きやすくなります。疑問に直面して解決できなければ分報チャンネルで大騒ぎしましょう。整理して質問チャンネルに投げましょう。誰かが助けてくれます。フィヨルドブートキャンプを卒業するのが難しいことは間違いありませんが、挫折しにくいよう設計されています。このあたり、あまり「ブートキャンプ」感がありません。

読んだ本

Team Geek

高度な知識をまったく必要とせず読める書籍です。「チームが上手く機能し、効率よくコードを生産するためにどうしたらよいか?チームメンバーはロボットではなく人間なので、謙虚・尊敬・信頼(HRT)を以て彼らに接しよう。そして有害な振る舞いには正しい対処をしよう。自分のために組織を操作しよう。」といった内容が記されています。

角谷さんトークというプログラミングを学習するモチベが究極MAXになる動画で紹介された書籍のうちのひとつです。

観た映画

1か月で45本(ドキュメンタリーや短編映画含む)観ました。映画を摂取しなければ死んでしまう病なのでやむを得ません。

『Revolution OS』

まとめ

フィヨルドブートキャンプに参加して1か月が経ち、実際に参加しなければわからないことを多く体験できました、たとえば、フィヨルドブートキャンプにはいろいろな立場の受講生が在籍しています。現職を続けながら、子育てをしながらなんとか時間を捻出して学習に励んでいる方もいれば、プログラミング完全未経験者や、すでにエンジニアとして業務経験のある方が研鑽を積むために参加しているケースもあります。

受講生によって環境がまったく違うので、他人と比較することになんの意味もありません。自分らしく、楽しみながら続けることがもっとも重要だと思います。無理は禁物です。

自分なりにまとめてみましたが、質問などあればコメントください。

あと、「このリンク貼ったりしたらマズいよ」とかもこっそり教えてください。

学習に利用しているツールまとめ

この記事では、フィヨルドブートキャンプで学習する際に筆者が利用しているツールをまとめています。内容は随時更新します。

学習の過程でさまざまなサービスやツールを利用することになります。はじめは混乱するかもしれませんが、完全に使いこなす必要はありません。最初に基本的な使い方を抑え、徐々に慣れていけばよいと思います。

使用環境

デスクトップアプリ

Toggl Track

学習時間を測定できるサービスです。無料プランと有料プランがありますが、一日の学習時間の総量を計測して確認する程度であれば無料プランで十分です。

以前はChrome拡張機能版を使用していましたが、デスクトップアプリ版を使うようになりました。デスクトップアプリ版では、どこにフォーカスしていてもcommand + shift + Eで計測再開・停止をトグルできます。

筆者は雑に「勉強」というプロジェクト名で計測しています。 f:id:isshi-hasegawa:20210504125448p:plain

参考:「サボり」を見える化できる時間管理ツール「Toggl Track(旧Toggl)」の使い方 | ワードプレステーマTCD

Chrome拡張機能

Video Speed Controller

HTML5の動画の再生速度を細かく調整できるChrome拡張機能です。動画コンテンツで学習する際は必須の拡張機能だと思います。筆者はNetflixで長いドキュメンタリーシリーズを鑑賞する際、1.1~1.3倍速にするので重宝しています。

1. インストール後、Settingsを開きます。

f:id:isshi-hasegawa:20210504133112p:plain

2. ショートカットを設定します。筆者はこのように設定しています。

f:id:isshi-hasegawa:20210504131456p:plain

3. Saveで設定を保存します。

VS Code拡張機能

Code Runner

ゼロからわかる Ruby 超入門」「プロを目指す人のためのRuby入門」でサンプルコードを実行する際に便利な拡張機能です。筆者はoption + Aをショートカットキーに登録しています。

実行したいファイルにフォーカスが当たっている状態でショートカットキーを押すと

f:id:isshi-hasegawa:20210513105412p:plain

ターミナルパネルでコードが実行されます。 f:id:isshi-hasegawa:20210513105419p:plain

参考:Code Runnerを使いこなす - Qiita

VS CodeをMarkdownエディタとして使う

この記事ではVS CodeMarkdownをフォーマットしてみます。

プログラミングスクールのフィヨルドブートキャンプで日報を書く際、Markdownで記述する必要があります。筆者はすでに開発用としてVS Codeを使っているので、 ツールの分散を避けるためにVS CodeMarkdownを書けるよう環境を整えました。

また、VS CodeMarkdown専用エディタとしても優秀だと思いますので、

  • すでにVS Codeを開発用などで使用している方
  • VS CodeMarkdown専用エディタとして使いたい方

どちらの方にも役に立つ内容かと思います。

使用環境

動作を確認した環境は以下の通りです。

前提

Markdownを格納しておくディレクトリを任意の場所に用意しておくことをオススメします。筆者はバックアップと同期を使用しているので、~/Googleドライブfjold_noteディレクトリを設置し、日報編集用のファイルdairy_report.mdなどを格納しています。

setting.jsonの編集方法、コマンドパレットの開き方、ショートカットキーの変更方法がわからない方は下記のリンクをご確認ください。

改行の設定を変更

VS CodeMarkdown記述はデフォルトで「半角スペースを2つ行末にいれて改行」となります。これはMarkdownの正式な記述方法なのですが、setting.jsonに下記の通り記述することで意図した改行が反映されるようになります。

"markdown.ipreview.breaks": true,

ただし、コピペ先がはてなブログなどの場合は半角スペースを2つ行末にいれないと段落内で改行されませんのでご注意ください。

拡張機能のインストール

見出しのリンクからインストールできます。

Prettier - Code formatter

setting.jsonに下記を記載しておくことで、ファイル保存時に自動整形してくれます。

"editor.formatOnSave": true

ただし、Markdownをフォーマットする際に英語(アルファベット)と日本語の間に半角スペースを入れてしまいます。

たとえば、 ChromeとFirefoxはブラウザChrome と Firefox はブラウザ と、このようにフォーマットされてしまいます。

VS Codeを開発用に使用されている方は、後述の解決方法を御覧ください。 VS CodeMarkdown専用エディタとして使用する方は、この拡張機能は削除して頂いて構いません。

Remark

Prettierの代用です。コマンドパレットからRemark: Beautify markdown codeを入力するとMarkdownのフォーマットができます。

Markdown All in One

ショートカットや補完を揃えた必須の拡張機能です。

参考:VS CodeでMarkdownを書くために便利な拡張機能Markdown All in One

Markdown Preview Enhanced

Markdownファイルを開いた状態で、command + shift + Vでプレビュー画面が表示されます。また、コマンドパレットから「Markdown Preview Enhanced: Create TOC」を実行することで目次を自動生成してくれます。こちらもショートカットを登録しておくことをオススメします。

markdownlint

Markdownの構文チェックを行ってくれる拡張機能です。

テキスト校正くん

日本語の文章をチェックする拡張機能です。必須ではないと思います。

markdownlintテキスト校正くんはこのように問題パネルにエラー内容を表示してくれます。

こちらはタイトル付きリンクを貼るのに便利なChrome拡張機能です。 1. Create Linkをインストール後にオプションを開きます。 2. デフォルトをmarkdownに設定します。 3. Configure shortcutからショートカットを設定します。筆者はcommand + Lにしています。 4. Chromeのタブを開いた状態でショートカットを実行すると、クリップボードMarkdown形式のリンクがコピーされます。

Prettierの半角スペース挿入問題を解決

対処法1 拡張機能RemarkでMarkdownのフォーマットを行う

今回はこちらを採用しました。

  1. settings.jsonを開き、下記の通り記述するとMarkdownでPrettierが保存時に自動整形しないよう設定します。
 "[markdown]": {
        "editor.formatOnSave": false
    },
  1. settings.jsonを開き、下記のように記述することでRemarkの設定を変更できます。下記の例ではmarklintテキスト校正くんに引っかからないように設定しています。お好みでカスタマイズしてみてください。
  "remark.format": {
    "rules": {
      "listItemIndent": 1,
      "fences": true
    }
  },

コマンドパレットからRemark: Beautify markdown codeにショートカットキーを登録しておくことをオススメします。筆者はoption + Rにしています。

対処法2 Prettierのプラグインをインストールする

npm/yarnでprettierprettier-plugin-md-nocjsp(有志によるプラグイン)をローカルまたはグローバルインストールします。

$ prettier -w *.md

上記のコマンドで、カレントディレクトリのMarkdownをフォーマットすることが可能です。

対処法3 Prettierのソース(index.js)に手を加えて挙動を強引に制御する

~/.vscode/extensions/esbenp.prettier-vscode-6.3.2/node_modules/prettier/index.js

上記を編集する方法です。半角スペースを挿入しているらしき処理は何箇所か確認できましたが、編集してもうまく動作しなかったため筆者のような初心者は手を出さない方が無難です。

まとめ

現状はこのように対処しましたが、将来Prettierのバージョンアップで解決する可能性があります。よりよい方法や質問があれば、ぜひコメントでお知らせください。

参考文献

以下の記事を参考にさせていただきました。 執筆者様に感謝します。

はじめまして

はじめまして、いっしーと申します。

オンラインのプログラミングスクール「フィヨルドブートキャンプ」に参加し、プログラミング学習をはじめました。フィヨルドブートキャンプではアカウント名を統一してSNSやブログを開設し、アウトプットに慣れることを強く推奨しています。今後、本ブログに学習内容を記録します。

Leap of faith

"take a leap of faith"という英語の慣用表現が好きなので、ブログタイトルにしました。

たとえば、

He took a leap of faith and quit his job.(彼は思い切って仕事を辞めた)

のように使います。

これは『インセプション』や『スパイダーマン スパイダーバース』をはじめ、多くのアメリカ映画に頻出の表現で、キルケゴールの哲学的・宗教的思想が語源だそうです(町山智浩著『映画と本の意外な関係!』より)。

確実な保証がなくても、論理を超えて信じ思い切って行動する方がよいこともあります。プログラミングの学習もまた、長い人生の中の思い切った決断のひとつです。さて、気合い入れてがんばるぞ!…と言いたいところですが、学習自体は楽しくなきゃ続かないのでまずは楽しみます。