ティレログ

プログラミング学習用にブログ作成しました。

フィヨルドブートキャンプに入会してよかったこと

この記事は「フィヨルドブートキャンプ Part 2 Advent Calendar 2024」21日目の記事です。
フィヨルドブートキャンプ Part 2 Advent Calendar 2024 - Adventar

adventar.org

昨日記事はyokomaruさんの輪読会で出会ったGit Bisectを理解したい~輪読会の良さみを添えて~ - returnえんじにゃーでした。

また、Part 1 もあります。 フィヨルドブートキャンプ Part 1 Advent Calendar 2024 - Adventar

adventar.org

Part 1の昨日の記事はKazuma.Nさんのフィヨルドブートキャンプのフロントエンジニアコースで学び始めて6か月たった。 - AndroidDev1721’s blogでした。

はじめに

 私は2023年5月からフィヨルドブートキャンプに参加しています。
簡単に自己紹介すると

  • 奥さんと子供2人(長男6歳、長女4歳)の4人家族
  • 年齢は30代後半
  • フィヨルドブートキャンプ入会前まで公務員として働いていて、現在専業主夫
  • プログラミングはほぼ未経験

みたいな感じです。

フィヨルドブートキャンプ入会に至った経緯

 家庭内の諸般の事情から育児の方により多くの時間をかける必要が生じたため、約15年くらい勤めた職場を退職しました。

 仕事を辞めた当初は再就職できる時期の目処が立っておらず、「子供が2人とも小学生になるまでは専業主夫かな」と考えていましたが、将来の再就職に向けて少しでも何かしておきたかったので、資格試験もしくはプログラミングのどちらかで今の自分でもやれそうなことを探していました。

 そんなとき見つけたのがフィヨルドブートキャンプで

  • 30代未経験からでも転職できた実績がある
  • 月の費用が30,000円程度で、自分の手元に残っているお金からでも払えそう

の2点で入会を決めました。

フィヨルドブートキャンプに参加してよかったこと

家庭以外の居場所ができた

 入会する前のフィヨルドブートキャンプのイメージは

  • 学習の進捗管理が厳しそう
  • 20代の方が中心で30代の方は少数
  • プログラミングの学習が自分に合わなくて、すぐ退会してしまったらどうしよう

と考えていましたが、実際に入会してみると

  • 学習の進捗管理はほぼなく基本的に自分のペースで学習
  • 20代と30代の方の人数は同程度。10代の方や40代、50代も在籍している(していた)
  • 休会・退会は自由で、そこからの復会・再入会も自由

といった感じでした。

 プログラミングを学習したい気持ちの反面、自分の経歴(年齢、専業主夫やってること等)の点で「なんでこんなところにいるの?」と思われて居心地悪かったらどうしよう・・とか考えていましたが、全くそんなことは気にする必要ありませんでした。

 受講生の年齢も幅広いですが、働きながら参加している方、学生の方、専業主婦の方、仕事辞めて参加している方等の様々な経歴の方がいました。
そもそも他の人の経歴を気にしている人はほとんどいないような気がします。

仕事を辞めてから社会との繋がりが途絶えてしまった感があったので、

「自分がそこに居ても変ではないコミュニティ」

に出会えたことはとてもよかったことでした。

相手に伝わりやすい文章を考える練習ができた

 フィヨルドブートキャンプは完全オンラインのスクールなので、メンターや他の受講生とのやり取りはオンラインでのテキストのやり取りが主になります、
 例えばスクールで用意されている各プラクティスの課題の提出については、

  1. GItHub上で課題を提出
  2. 課題をレビューしてもらう
  3. それに対しコメントを返す・内容の修正をする

というやり取りになり、チャットのようなリアルタイムでのテキストのやり取りとまた勝手が違います。

そのやり取りの中で、例えば「何かエラーが発生し、それを解決するために相談したい」という状況が発生した場合には

  • どんなエラーが発生したか
  • どんな資料を提示すれば相手にそのエラーを確認してもらえるか
  • エラーが発生するまでの手順
  • エラーを解決するために調べたこと
  • エラーを解決するために試したこととその結果
  • 自分の使用している環境の詳細
  • etc

等を適時組み合わせながら相手に伝わるように説明する必要があり、自分の考えを伝える能力に自信がなかった私にとっては良い学習の機会になりました。

 対面コミュニケーションの場合だと、困っていることを質問する際に曖昧な言い回しをしても「相手が内容を推測してくれて解決できてしまう」こともあるので、その辺の言葉によらないコミュニケーションに今まで頼りすぎていたのかもしれません。

 また公務員だった頃は「相手に伝わる文章か?」より「公用文に沿った書き方か?」を優先していた節があるので、改めて相手に伝わる文章を書く練習ができたことはとても有意義でした。

「調べる学習」の習慣がついた

 フィヨルドブートキャンプでは、新しい知識を習得する際にはまず公式のリファレンスマニュアルを参照するように指導されています。
 単にプログラムが動作すれば良いのであれば、QiitaやZenn等に掲載されているプログラミング関連の記事からコードをコピペしても良いかと思いますが、

コードを書くこと==自分の書いたコードに責任を持つこと(なぜ動くのか説明できること)

という姿勢がフィヨルドブートキャンプでは求められているため、使ったことのないメソッド・ライブラリ等を使用する際には公式のリファレンスマニュアルを一読する習慣が付きました。
(リファレンスマニュアルが英語だったり、言い回しが難しくて先にQiita等の記事で概要を把握してからリファレンスマニュアルを読むことも多いですが。。)

 公務員として働いた頃は事務のマニュアルを読み込むことはあってもその基となる法律・通達までは日々の仕事で忙しくて確認できないこともあったので、信頼できる資料を基にして学習する習慣を身に付けることができたのはとても良かったことでした。

 また、現在の私の力量では、例えばプログラミング言語 Ruby リファレンスマニュアル等は一次情報になるのですが、もっと勉強を進めて例えばRubyソースコードを読めるようになると自分が一次情報とするものの深度が増して自分にできることも増えてくると思うので、そういうところもこれからの学習の楽しみになっています。

最後に

 フィヨルドブートキャンプでの学習の楽しさ・居心地の良さを感じた反面、他の受講生の方との交流に一歩足を踏み出せなかったところがあるので、来年はRubyKaigi(松山はちょっと無理かも・・)などの技術イベント、地域.rb、フィヨルドブートキャンプ内の輪読会への参加へ積極的に参加できるような一年にしたいです!!

VSCodeでcodeコマンドが効かなくなる原因を調べる

初めまして、ティレルと申します。現在プログラミングスクールでプログラミングの学習中です。
今回はVSCodecodeコマンドが、PCのシャットダウン、再起動をした後にcommand not foundとなってしまいコマンドが効かなくなる原因について調べてみました。

環境:macOS Ventura13.4

codeの所在を確認

まずcodeコマンドのファイルの場所を調べます。

which code

/usr/local/bin/code

次にls -lでファイルの概要を確認します。

ls -l /usr/local/bin/code

lrwxr-xr-x  1 root  wheel  167  6 12 18:07 /usr/local/bin/code -> /private/var/folders/7k/m_lf2w4159bdxjz2y5tlwtl40000gn/T/AppTranslocation/95D363FC-571A-4C40-8B31-261EC1F3ACAA/d/Visual Studio Code.app/Contents/Resources/app/bin/code

ここでcodeコマンドがシンボリックリンクであり、元のファイルは別の場所にあることがわかりました。

次にPCを再起動して再度codeのパスを確認してみます。

which code

code not found

この段階でcodeコマンドが効かなくなりました。 次に先ほどのシンボリックリンクを確認してみます。

ls -l /usr/local/bin/code

lrwxr-xr-x  1 root  wheel  167  6 12 18:07 /usr/local/bin/code -> /private/var/folders/7k/m_lf2w4159bdxjz2y5tlwtl40000gn/T/AppTranslocation/95D363FC-571A-4C40-8B31-261EC1F3ACAA/d/Visual Studio Code.app/Contents/Resources/app/bin/code

シンボリックリンクは残ったままです。パスが通っていないだけでしょうか? リンク先のファイルを調べようとした結果以下のことがわかります。

ls -l /private/var/folders/7k/m_lf2w4159bdxjz2y5tlwtl40000gn/T/AppTranslocation

total 0
dr-xr-xr-x  3 username  admin  0  1 10 10:19 E14EA***-****-****-****-************

AppTranslocationというディレクトリの中にあるはずの95D363FC-571A-4C40-8B31-261EC1F3ACAAというディレクトリがPCの再起動によってなくなってしまいました。シンボリックリンクの参照先ファイルがなくなってしまったので、codeコマンドが効かなくなってしまったと考えられます。

解決方法

このような現象が発生する原因は、私がVSCodeApplicationsディレクトリへ移動させずDownloadsディレクトリへ残したまま起動させていることが原因でした。 なので、VSCodeDownloadsディレクトリからApplicationsディレクトリへ移動させれば問題は解決します。

解決方法実行時の動作確認

  • まずVSCodeApplicationsディレクトリへ移動させます。
    ここでいうApplicationsディレクトリはルートディレクトリ直下のApplicationsディレクトリのことであり、各ユーザーのホームディレクトリにあるApplicationsディレクトリのことではありません。

  • 次にcodeコマンドをアンインストールした後、再インストールします。(VSCodeのコマンドパレット上の操作になります)

  • 最後にcodeコマンドの場所を確認し、ls -lで内容を確認します。

which code

/usr/local/bin/code
ls -l /usr/local/bin/code

lrwxr-xr-x  1 root  wheel  68  6 12 23:14 /usr/local/bin/code -> /Applications/Visual Studio Code.app/Contents/Resources/app/bin/code

このようにシンボリックリンクの参照先が変更になりました。 これ以降はシャットダウン、再起動を行なってもcodeコマンドを実行できます。

原因

MacにはGatekeeperというセキュリティ機能があり、それが原因でした。

  • Gatekeeperはダウンロード後に自動展開した場所からアプリケーションを起動した場合にパスのランダム化を行う。
  • パスのランダム化は、読み取り専用に設定されたファイルシステム中の不特定の場所からアプリケーションを起動することで、アプリケーションが相対パスを使ってコードやコンテンツにアクセスすることを防ぐ。

とのことでしたが、仕組みについては理解が追いついていないのでもう少し学習が必要だと思いました。
出典:macOSのセキュリティ

総括

今回の件については私の知識の不足が原因でしたが、色々調べることで勉強になりました。


参考