Hi there 👋

mineoが書く技術ブログ的な何かです

AWS 認定 ソリューションアーキテクト – アソシエイト(SAA-C02)を取得しました

まえがき 前々から気になっていた資格 AWS の ソリューションアーキテクト アソシエイト を取得しました。 https://aws.amazon.com/jp/certification/certified-solutions-architect-associate/ 受けたいなーと思いつつ受講料が 1.5 万円ほどで高く今まで尻込みしていたのですが、今年に入って会社で資格取得制度ができたのでそれを活用して受験しました。 落ちたら自腹になるのでビクビクしてましたが受かってよかったです 😅 モチベーション 背景 AWS は IaaS の中でもっともシェアが高いパブリッククラウドです。 https://www.publickey1.jp/blog/20/iaasaws45azure182320208.html 弊社でも AWS を全面的に採用しているので日々活用しているのですが、クラウドサービスを学習するのはなかなかコストが高いです。 AWS はサービスだけでも 200 程度あり名前を覚えるのだけでも大変で、コアの部分を学習するだけでも独自の文化があり学習にかなりの時間がかかるといって良いと思います。 AWS に特化していくというのは現在の業務にもすぐに活用できますし、私にとってとても良い選択肢に感じました。 体系的に理解したかった 業務で使用しているサービスに関しては日頃から調べていますが、果たしてそれで本当に AWS を理解しているのか?と言われると非常に怪しいです。 新規開発するときを除けばインフラ構成がどうなっているか知らずとも普段の業務に支障が出ることはありません。個人的にはそれなりに把握しているつもりですが、畢竟すでに動いている基盤は何も意識せずに日常的に開発できてしまいます。これは役割分担としては正しいのかもしれませんが、私は裏側でどういうものが動いているのかを知っておきたいし、そもそも役割が会社内で変わりつつあってインフラも深く理解することが求められつつある雰囲気を感じています。 とはいえ、手当たり次第に勉強していくのも厳しいものがあるので SAA という AWS 認定の資格学習を通じて理解が深まればいいなという目論見 がありました。 学習 0 からの学習の場合は書籍などを一冊通して学習するのが最適かもしれないですが、私は業務で使っているので、不得意な分野を集中的に学習 & 練習問題を解きまくる という方針にしました。 教材と学習方法 こちらのサイトの問題集(通称小岩)がもっとも有名らしいですが、私は Udemy で勉強しました。 以下の 3 つのコースを購入しハイブリッドに行き来しつつ学習していきました。 https://www.udemy.com/course/aws-associate/ https://www.udemy.com/course/aws-knan/ https://www.udemy.com/course/aws-uoyc/ まずは これだけで OK からあまりよく知らない分野をピックアップして動画で学習しました。2 倍速がおすすめです。 ハンズオンを推奨しているようですが時間のロスのが大きい気がしたのでただ動画みて理解するだけにしました。 特に以下の内容はよかったのでおすすめです。 Well Architected Framework 信頼性の設計 練習問題は短期突破の講座と演習問題の講座に含まれているのでそちらをひたすら解きまくりました。...

March 27, 2021

VSCodeでleetcode環境を導入しGitHubでコードを管理する

まえがき leetcode 始めようと思い環境を整備しました。 leetcode は日本ではそんなにメジャーではないですが、面接などで、エンジニアに出されるコーディング試験などを集めたものらしいです。日本でいう AtCoder みたいなものですね。 正直多少のパフォーマンスより可読性を重視した方が良いと思うのですが、バックエンドエンジニアをやりつつアルゴリズムがわからんというのも問題なので、挑戦してみようと思いました。 仕事で使っている主な言語は TypeScript なのですが、いつの間にか TypeScript も対応しているようでちょうどよかったです。 また、どうせなら以下の要件でやってみたく試してみました。案外簡単に整備できました。 VSCode でコーディング テーマやフォーマッターをいつもと同じにしたかった GitHub でコードを管理 進捗がわかりやすくなるし対外的にアピールできるかも VSCode に leetcode の拡張機能を導入 こちらの拡張機能をインストールするだけです。中華製なのかな? leetcode-cli というのがあるのでそれをうまく使った拡張機能みたいです。node が必要なのでもし入ってなかったら入れてください。 https://marketplace.visualstudio.com/items?itemName=LeetCode.vscode-leetcodes install & login VSCode に leetcode の拡張機能を install したら以下のようにサイドバーに leetcode が追加されました。 Sign in を押してみると以下のようにログイン方法がリストで表示されます。 私は GitHub でログインしましたが、2factor 認証もそのまま入力できて地味にすごいなと思いました。 problem ログインすると以下のように表示が変わります。 どうやらここに problems のリスト並ぶようです。 試しに Two Sum をクリックしてみると Description が VSCode 上で閲覧できます。 右下の Code now から実際にコーディングを開始することができます。言語を選んで生成するファイルの場所を選ぶ必要があります。...

February 1, 2021

pipenvがnpmみたいに使えて便利そう

まえがき 最近久々に Python を触ってみました。 Python といえばバージョン管理を考えるのが厄介だなという印象でした。 なにぶん macos ではデフォルトで Python2 が入っているので、Python3 を使うにはバージョン管理ソフトが必須となります。 バージョン管理のツールだと pyenv やら virtualenv やら入り乱れていて、何がデファクトスタンダードだかよくわからないのが実情だったと思います。 今回あらためて Python を書くにあたり調べたところ、どうやら pipenv がもっとも有力なバージョン管理であり、さらにパッケージの管理までしてしてくれるとのことで便利そうだなと思い使ってみました。 結論としては、 pipenv はバージョン管理+パッケージ管理ができる素晴らしいツールですが、ややデメリットもあるかなというところです。 導入(mac) README には書かれていないですが普通に brew で install できます。 brew install pipenv Python のディレクトリで以下を実施して仮想環境を初期化します。このとき Python のバージョンを指定して、そのバージョンで初期化することができます。 pipenv --Python 3.8 またこのときデフォルトではグローバルな場所に環境が構築されますが、環境変数を設定することでローカルな環境( .venv 配下)に構築することが可能です。 https://pipenv-ja.readthedocs.io/ja/translate-ja/advanced.html#pipenv.environments.PIPENV_VENV_IN_PROJECT VSCode では .venv に Python 環境があった方がインタプリターを指定しやすいので、なるべく設定した方が良いと思われ。 初期化すると以下のように Pipfile が生成されます。Pipfile が npm でいう package.json に当たるファイルのようです。 [[source]] url = "https://pypi.org/simple" verify_ssl = true name = "pypi" [packages] [dev-packages] [requires] python_version = "3....

January 26, 2021