日々是精進。(はてな館)

日々ネットで調べたり、付箋に書き留めたものをアップしています。子育てで中断しながらも、年に数回投稿しています。皆様の恩恵に感謝しつつ。

日々の記録を残しています。皆様の恩恵に感謝しつつ。

freeCodeCamp 記録その5 / さらに3年、足かけ6年経過しました!

みなさまこんにちは。2024年、はてなの記事も 48本目になりました。
実にほぼ3年ぶり!前回の記事はこちらになります。

2021年3月以降はどうしてたの?

freeCodeCamp を粛々と続けていた頃は、自社サービスを提供する事業会社でお仕事をしており、(能力はさておき)日々お仕事でコードを書く / テストを行っていました。

さて、2021 年春以後は転職に伴い、直接開発を行う職務から離れることになりました。これが、わたしにとってはかなりのチャレンジな職務だったので、環境に慣れる、仕事をなんとかこなすための知識をインプットするだけで精一杯...。

業務から離れた、プログラミングの学習にわりあてる気持ちの余裕が、なかなか取れませんでした。

また、お仕事としてサポートエンジニア職でしたので、日々扱う内容はお客様のためのもの。わたし自身はオープンな発信は好きなほうですが、線引きに自信がないので、職務第一として得られた知見 / 経験はチーム、組織内での情報共有にフォーカスすることにしました。


(※ なお、チーム、組織内でもみなさんものすごいホスピタリティ、発信力をお持ちの方ばかりでした。なんど助けてもらえたことか!これはこれでものすごく良い経験でした。恩返しや恩送りせねばと常々感じるくらいでした)

思い立って翻訳に参加してみました。

さて、課題には取り組む機会はガクンと減ってしまいましたが、freeCodeCamp そのものは時々目を向けていました。

なんとか職務もこなせるようになり、心の余裕が少し出てきたタイミングで、freeCodeCamp のコンテンツの翻訳のコントリビューターの記事を拝見しました。

そのころ、個人で細々とメンテナンスしていたリポジトリも対応を辞め、ささやかな OSS へのコントリビュートということからも離れてしまっていたのですが、いくつか過去やってみたカリキュラムからの気づきが役に立てばいいなと思い、翻訳作業に少し参加してみたりしました。

カリキュラムの日本語化のほか、英語のブログ記事の日本語化も少し担当させていただきました。

この経験で新鮮だったのが、翻訳のためのツールとして Crowdin というものを使っていたり、最終的に Crowdin での承認が GitHub 側に連携して CI/CD が回り翻訳が反映される、といった裏側が見れたことでした。

記事翻訳の場合も、あまり経験のない言語やフレームワークについては、ねんのため動作確認しておきたかったので、小さいリポジトリGitHub 上に作成して動作確認のタスク、コードを書いてみたり。

転職以降、GitHub 上のコミットグラフが真っ白になっていた状況だったので、完全に自己学習のためとはいえ、久しぶりに再びコミットグラフに緑色のドットが表示されたことは、とても嬉しい出来事でした。

このあたりの嬉しさから、これまた久しぶりに 吉祥寺.pm という幅広いジャンルを受け入れてくれるテックトーク系のイベントでお話しをさせていただきました。

note.com

 

そんなこんなで、2022年の後半に翻訳をきっかけに、少しばかり freeCodeCamp の世界に戻ってきました。Discord も紹介していただいたので、ログインしてみるようになりました。

ただ、流量がとても多くタイムゾーンも違うので、Discord のチャンネルで積極的に発言するとか、困っている質問になにか回答するといったことまでは至らず...。

非同期でのやりとりが可能なフォーラムのほうが、タイムゾーン的にも合っている感じでした。

しかし、2023年に入ってからは、職務&私事により、また時間とモチベーションの確保ができなくなってしまいました。お恥ずかしい限りです...。

ほぼ3年後。再度、課題に取り組むことにしました。

唐突な流れではありますが、前回の活動記録から3年が経とうとするころ。
しばらくお休みする時間を持つことができました...。

せっかくなので、もっと他に旅行でもしたら?」というのが本音ではありますが、タイミング的に家庭も考慮しないといけない時期なので、リハビリがてら freeCodeCamp のカリキュラムを再開してみることにしました。

再開は、前回の記事でやると宣言していた Information Security のコースから。

また、2023年からもカリキュラムが増えていて、データーベースやC# のコンテンツも追加となっていました。

こちらも、C# はうろ覚えでやっていたので、おさらいも兼ねて取り組んでみることにしました。

Information Security Certification なんとか完走!

freeCodeCamp のカリキュラム、各章ごとの学習内容とチェック項目は、実はそんなに難しくはありません。章は順調に進めることができましたが、すっかり忘れていました。

認定用課題が、いきなり敷居が高かったりすること....。(あくまでも本人比)

今回目標にしたコースは Information Security と言っても、Webアプリケーションの基本のセキュリティ、主に対ブラウザを考慮したレスポンスヘッダを担保するという内容になります。

このため、認定用の課題としては、雛形となる Web アプリケーションのソースをクローンし、ヘッダの調整を行ったり、課題のテストで期待する結果を返すAPI を実装することが求められます。

半分は Node.js + Express を使ったものになりますが、テスト項目によってはDB を使って永続化した上でデータを加工する部分を作ることが求められます。

久しぶりの課題挑戦だったので、「あれれ、最初どうするんだっけ?」という記憶を掘り返してのスタートとなりました。

なお、前回の記録や実装したソースを GitHub 上に残しておいたので、この点は「ありがとう、よくやった、わたし!」と過去の自分に感謝をしました。

5つの課題のうち、2つは MongoDB を久しぶりに使いました。

シンプルな単一コレクションからのドキュメント検索、登録、更新、削除のほかに、複数のコレクションを使ってのレスポンスデータの生成(アグリゲーション)が必要な課題もありましたので、合わせて MongoDB のおさらいにもなりました。

今回も、また MongoDB の環境には SaaS として Atlas を使わせていただいております。アグリゲーション用のクエリ生成は、少しずつ Mongo DB のインタラクティブシェルを使いながら確認。

なんとか想定したレスポンスが返せたときは、感激もひとしおでした!

後半は Web アプリケーションの課題ではなく、Python をターミナルで実行しUnitTest を満たす内容を実装するものとなっています。

こちらも TDD っぽく進められるので、やり始めればとても楽しい作業になります。

実装に関しては無理矢理感もありましたが、お休みの期間内に 5つの課題を完了して、認定をいただくことができました。

うれしい!!!

freeCodeCamp 振り返り。やってみて実際どうなの?

まず、3年前とくらべた感じについて。

正直、技術を追いかけ切れていれないのですが、freeCodeCamp のコミュニティは継続しているし、コンテンツも増えているところはとても感心しています。

また、他言語化も進んでいたり、freeCodeCamp として公開されるコンテンツも、動画のものがどんどん増えてきています。

freeCodeCamp で紹介している、オンラインで利用可能なエディタ、データーベース環境なども、前にもまして増えたり便利になっている印象があります。

個人としてこの学習を続けることに関しても、少し振り返ってみます。

サービス開発に関わるお仕事では、こうした学習はお仕事に直結してきますので、モチベーションも高く保つことができました。

 

その後のクラウドサポート職に関しては、日々の業務でソースコードを修正する、コミット&リリースするということから離れた世界でした。

このあたりに関して補足すると、サポートエンジニアのそれぞれが得意な分野で最終的に問題を解決することがゴールなので、ダンプ解析やパケットキャプチャの解析から解を導く方もたくさんいらっしゃいます。(所属チームとしては OS レイヤやアプリケーションレイヤをとても扱いました)

わたしの場合は、調査にともなってソースコードを読む、デバッグする、簡単な実装を行って動作確認をするといったことが苦にならないタイプだったので、Lambda 関数や AWS SDK での API 呼び出しにかかわる調査の際に、効果を発揮してくれました。

また、Node.js やフロントエンドの学習が Chime SDK のサポート / 調査に非常に役に立ったと思っています。(一見メジャーなサービスや分野ではないのですが、Slack にも使われています!)

わたしはスピードが遅く、なかなかこれといった取り柄がなかったのですが、ピンポイントにこの点に関してはチームの中で少しばかりお役に立てたのではないかな、と信じています。

なによりわたしが自信を失くしかけていた時に、わたしを立ち直らせてくれた分野でもありました。とにかく楽しめましたので。

ということで、なんでもつながるもんだなと思っています。

またもや次に進みます!

とりとめもない内容で、またしても大雑把ですが、ひきつづき「やっていきますよ!」な記録でした。

さらにまたしても前回の記事同様、春先にお仕事を変える段階になっています。

前回の記事では Python のコースを取り組もうかなと書いていましたので、ここは変わらずにやっていくつもりです。上述の通り Python を利用する機会は結構ありましたので、やってて損はないことは体感しています。あとは C# から....。

また、次もプログラミング、コーディングに直接関わるお仕事ではないのですが、興味をもって続けていることが、いつか必ず自分を助けてくれるだろうと信じています。ツールや学習環境の進化も、とても刺激になりますし、万一路頭に迷ったときは、この分野でまた始めればいいと思っていますので。

ただ、ここから先、数学やコンピューターサイエンスの下地がないと厳しそうな予感がしていますので、若干怯んでいるところです。そのあたりは、AI が伴走してくれることを願っています。

子どもたちにも、負けないように。