freeCodeCamp 記録その5 / さらに3年、足かけ6年経過しました!
みなさまこんにちは。2024年、はてなの記事も 48本目になりました。
実にほぼ3年ぶり!前回の記事はこちらになります。
- 2021年3月以降はどうしてたの?
- 思い立って翻訳に参加してみました。
- ほぼ3年後。再度、課題に取り組むことにしました。
- Information Security Certification なんとか完走!
- freeCodeCamp 振り返り。やってみて実際どうなの?
- またもや次に進みます!
2021年3月以降はどうしてたの?
freeCodeCamp を粛々と続けていた頃は、自社サービスを提供する事業会社でお仕事をしており、(能力はさておき)日々お仕事でコードを書く / テストを行っていました。
さて、2021 年春以後は転職に伴い、直接開発を行う職務から離れることになりました。これが、わたしにとってはかなりのチャレンジな職務だったので、環境に慣れる、仕事をなんとかこなすための知識をインプットするだけで精一杯...。
業務から離れた、プログラミングの学習にわりあてる気持ちの余裕が、なかなか取れませんでした。
また、お仕事としてサポートエンジニア職でしたので、日々扱う内容はお客様のためのもの。わたし自身はオープンな発信は好きなほうですが、線引きに自信がないので、職務第一として得られた知見 / 経験はチーム、組織内での情報共有にフォーカスすることにしました。
(※ なお、チーム、組織内でもみなさんものすごいホスピタリティ、発信力をお持ちの方ばかりでした。なんど助けてもらえたことか!これはこれでものすごく良い経験でした。恩返しや恩送りせねばと常々感じるくらいでした)
思い立って翻訳に参加してみました。
さて、課題には取り組む機会はガクンと減ってしまいましたが、freeCodeCamp そのものは時々目を向けていました。
なんとか職務もこなせるようになり、心の余裕が少し出てきたタイミングで、freeCodeCamp のコンテンツの翻訳のコントリビューターの記事を拝見しました。
そのころ、個人で細々とメンテナンスしていたリポジトリも対応を辞め、ささやかな OSS へのコントリビュートということからも離れてしまっていたのですが、いくつか過去やってみたカリキュラムからの気づきが役に立てばいいなと思い、翻訳作業に少し参加してみたりしました。
翻訳のコントリビューターも募集中とのことです!
— あきこ@春まで充電中 (@akiko_pusu) 2022年9月20日
わたしも少しだけですが参加し始めてます😊#WorldTranslationMonth #freeCodeCamp https://t.co/MHPzFy2RoT
カリキュラムの日本語化のほか、英語のブログ記事の日本語化も少し担当させていただきました。
この経験で新鮮だったのが、翻訳のためのツールとして Crowdin というものを使っていたり、最終的に Crowdin での承認が GitHub 側に連携して CI/CD が回り翻訳が反映される、といった裏側が見れたことでした。
freeCodeCamp のカリキュラム側の翻訳作業。
— あきこ@春まで充電中 (@akiko_pusu) 2022年10月9日
今は、翻訳作業と承認のワークフローは GitHub 上から直接実施ではなくて、別プラットフォームを使っています。
Approve されたあとに自動で GitHub 側にコミット&プッシュ。その後に CI でテスト回してる。面白いなあ。
記事翻訳の場合も、あまり経験のない言語やフレームワークについては、ねんのため動作確認しておきたかったので、小さいリポジトリを GitHub 上に作成して動作確認のタスク、コードを書いてみたり。
GitHub はしばらくコミット積んでなかったんですが、翻訳記事の動作確認用の簡単なコードとかをリポジトリに上げるようになって、砂漠の中にすこーしだけ草が生えました。
— あきこ@春まで充電中 (@akiko_pusu) 2022年10月14日
あと、おひとりさま GitHub プロジェクトを使ってタスク積んでます:)
こういうのを試せるのも、嬉しいんですよね。 pic.twitter.com/Qk8XFQzG5B
転職以降、GitHub 上のコミットグラフが真っ白になっていた状況だったので、完全に自己学習のためとはいえ、久しぶりに再びコミットグラフに緑色のドットが表示されたことは、とても嬉しい出来事でした。
このあたりの嬉しさから、これまた久しぶりに 吉祥寺.pm という幅広いジャンルを受け入れてくれるテックトーク系のイベントでお話しをさせていただきました。
そんなこんなで、2022年の後半に翻訳をきっかけに、少しばかり freeCodeCamp の世界に戻ってきました。Discord も紹介していただいたので、ログインしてみるようになりました。
ただ、流量がとても多くタイムゾーンも違うので、Discord のチャンネルで積極的に発言するとか、困っている質問になにか回答するといったことまでは至らず...。
非同期でのやりとりが可能なフォーラムのほうが、タイムゾーン的にも合っている感じでした。
しかし、2023年に入ってからは、職務&私事により、また時間とモチベーションの確保ができなくなってしまいました。お恥ずかしい限りです...。
ほぼ3年後。再度、課題に取り組むことにしました。
唐突な流れではありますが、前回の活動記録から3年が経とうとするころ。
しばらくお休みする時間を持つことができました...。
「せっかくなので、もっと他に旅行でもしたら?」というのが本音ではありますが、タイミング的に家庭も考慮しないといけない時期なので、リハビリがてら freeCodeCamp のカリキュラムを再開してみることにしました。
再開は、前回の記事でやると宣言していた Information Security のコースから。
I've completed "Python for Penetration Testing" chapter.
— あきこ@春まで充電中 (@akiko_pusu) 2024年3月1日
Next I need to implement some projects (programming) for the certification of this course.
Actually, the implementation of these assignments is more difficult for me 😉 #freeCodeCamp
これから久しぶりの課題です...。 https://t.co/TFCyMJ3MJO pic.twitter.com/3O6wA2ZsLf
また、2023年からもカリキュラムが増えていて、データーベースやC# のコンテンツも追加となっていました。
こちらも、C# はうろ覚えでやっていたので、おさらいも兼ねて取り組んでみることにしました。
MicrosoftLearn の最初の課題をやってみました。
— あきこ@春まで充電中 (@akiko_pusu) 2024年3月3日
ちゃんと「#freeCodeCamp の C# の基礎コースと連動してますよ」っていう説明が出ていました 😍
MicrosoftLearn 側は日本語表示もOK、英語版もわかりやすい内容だなと思いました(最初の段階ですが)
オンラインエディタで完結できそうです😊 https://t.co/6J6wDRA6Le pic.twitter.com/JZnlMpOkDK
Information Security Certification なんとか完走!
freeCodeCamp のカリキュラム、各章ごとの学習内容とチェック項目は、実はそんなに難しくはありません。章は順調に進めることができましたが、すっかり忘れていました。
認定用課題が、いきなり敷居が高かったりすること....。(あくまでも本人比)
今回目標にしたコースは Information Security と言っても、Webアプリケーションの基本のセキュリティ、主に対ブラウザを考慮したレスポンスヘッダを担保するという内容になります。
このため、認定用の課題としては、雛形となる Web アプリケーションのソースをクローンし、ヘッダの調整を行ったり、課題のテストで期待する結果を返すAPI を実装することが求められます。
半分は Node.js + Express を使ったものになりますが、テスト項目によってはDB を使って永続化した上でデータを加工する部分を作ることが求められます。
久しぶりの課題挑戦だったので、「あれれ、最初どうするんだっけ?」という記憶を掘り返してのスタートとなりました。
なお、前回の記録や実装したソースを GitHub 上に残しておいたので、この点は「ありがとう、よくやった、わたし!」と過去の自分に感謝をしました。
Information Security Project の一個めの課題、Stock Price Checker が終わりましたー。
— あきこ@春まで充電中 (@akiko_pusu) 2024年3月3日
MongoDB も久しぶりに扱ってみて嬉しい!
おひとりさまLGTM & マージしました!
で、次の課題がさらに敷居高いしテスト項目15個くらいある...。#freeCodeCamphttps://t.co/sp7L46s0o8
5つの課題のうち、2つは MongoDB を久しぶりに使いました。
シンプルな単一コレクションからのドキュメント検索、登録、更新、削除のほかに、複数のコレクションを使ってのレスポンスデータの生成(アグリゲーション)が必要な課題もありましたので、合わせて MongoDB のおさらいにもなりました。
POST は少しずつ実装中。問題は、GET でのレスポンス。
— あきこ@春まで充電中 (@akiko_pusu) 2024年3月4日
find で頑張るつもりが、コレクションの連結とか最新10件、入子の子コレクションは最新3件、フィールドは一部だけ返すみたいな条件🥹
若干微妙だけど aggregate を使ってみた...。 pic.twitter.com/emhx8gWURz
今回も、また MongoDB の環境には SaaS として Atlas を使わせていただいております。アグリゲーション用のクエリ生成は、少しずつ Mongo DB のインタラクティブシェルを使いながら確認。
なんとか想定したレスポンスが返せたときは、感激もひとしおでした!
後半は Web アプリケーションの課題ではなく、Python をターミナルで実行しUnitTest を満たす内容を実装するものとなっています。
こちらも TDD っぽく進められるので、やり始めればとても楽しい作業になります。
課題2つは MongoDB 思い出しながら進められたのでおさらいできてよかった〜。ありがとう、Atlas さま!
— あきこ@春まで充電中 (@akiko_pusu) 2024年3月5日
さて、3番目の課題は Python での簡易ポートスキャナを作る内容になってまし。
テストコードは付いているので、TDDっぽくやれるので楽しそう😊 pic.twitter.com/j4G6LX6oZI
実装に関しては無理矢理感もありましたが、お休みの期間内に 5つの課題を完了して、認定をいただくことができました。
うれしい!!!
おわったー! pic.twitter.com/Y1H4dACzC0
— あきこ@春まで充電中 (@akiko_pusu) 2024年3月8日
freeCodeCamp 振り返り。やってみて実際どうなの?
まず、3年前とくらべた感じについて。
正直、技術を追いかけ切れていれないのですが、freeCodeCamp のコミュニティは継続しているし、コンテンツも増えているところはとても感心しています。
また、他言語化も進んでいたり、freeCodeCamp として公開されるコンテンツも、動画のものがどんどん増えてきています。
freeCodeCamp で紹介している、オンラインで利用可能なエディタ、データーベース環境なども、前にもまして増えたり便利になっている印象があります。
個人としてこの学習を続けることに関しても、少し振り返ってみます。
サービス開発に関わるお仕事では、こうした学習はお仕事に直結してきますので、モチベーションも高く保つことができました。
その後のクラウドサポート職に関しては、日々の業務でソースコードを修正する、コミット&リリースするということから離れた世界でした。
このあたりに関して補足すると、サポートエンジニアのそれぞれが得意な分野で最終的に問題を解決することがゴールなので、ダンプ解析やパケットキャプチャの解析から解を導く方もたくさんいらっしゃいます。(所属チームとしては OS レイヤやアプリケーションレイヤをとても扱いました)
わたしの場合は、調査にともなってソースコードを読む、デバッグする、簡単な実装を行って動作確認をするといったことが苦にならないタイプだったので、Lambda 関数や AWS SDK での API 呼び出しにかかわる調査の際に、効果を発揮してくれました。
また、Node.js やフロントエンドの学習が Chime SDK のサポート / 調査に非常に役に立ったと思っています。(一見メジャーなサービスや分野ではないのですが、Slack にも使われています!)
わたしはスピードが遅く、なかなかこれといった取り柄がなかったのですが、ピンポイントにこの点に関してはチームの中で少しばかりお役に立てたのではないかな、と信じています。
なによりわたしが自信を失くしかけていた時に、わたしを立ち直らせてくれた分野でもありました。とにかく楽しめましたので。
お仕事関係は控えめに呟きますが、個人としてはChime SDK は面白いですし好きな分野です。
— あきこ@春まで充電中 (@akiko_pusu) 2023年11月9日
「こんなに簡単に組み込めるの?」って驚きがあったり。
SA の皆さんの啓蒙活動、ご支援がすごいんだろうなと思っています。そっと、ありがとうございます。
ということで、なんでもつながるもんだなと思っています。
またもや次に進みます!
とりとめもない内容で、またしても大雑把ですが、ひきつづき「やっていきますよ!」な記録でした。
さらにまたしても前回の記事同様、春先にお仕事を変える段階になっています。
前回の記事では Python のコースを取り組もうかなと書いていましたので、ここは変わらずにやっていくつもりです。上述の通り Python を利用する機会は結構ありましたので、やってて損はないことは体感しています。あとは C# から....。
また、次もプログラミング、コーディングに直接関わるお仕事ではないのですが、興味をもって続けていることが、いつか必ず自分を助けてくれるだろうと信じています。ツールや学習環境の進化も、とても刺激になりますし、万一路頭に迷ったときは、この分野でまた始めればいいと思っていますので。
ただ、ここから先、数学やコンピューターサイエンスの下地がないと厳しそうな予感がしていますので、若干怯んでいるところです。そのあたりは、AI が伴走してくれることを願っています。
子どもたちにも、負けないように。