はじめに
今回はTechTrainで、Data Science RailwayのPython 入門編2 - 自動化 -を終えたので、その受講記録を残します。
モチベーション
先日、PythonRailway第二弾がリリースされました。
note.com
キャンペーンもあるので、なるはやで取り組んでおこうと思いました。
今回はTechTrainで、Data Science RailwayのPython 入門編2 - 自動化 -を終えたので、その受講記録を残します。
先日、PythonRailway第二弾がリリースされました。
note.com
キャンペーンもあるので、なるはやで取り組んでおこうと思いました。
ウルシステムズ株式会社様の「ITエンジニアを応援!【オライリー書籍プレゼント Twitterキャンペーン】」企画で、私の欲しいオライリーの本3冊をいただきました。
一通り読み終わったので、新鮮なうちに感想を残そうと思います。
/
— ウルシステムズ株式会社 (@ulsystems) 2023年7月1日
【オライリー・ジャパンと共同企画】
ITコンサルティング会社のウルシステムズがエンジニアを応援!
お好きなオライリー書籍を3冊プレゼント
フォロー&引用リツイートキャンペーン
\
技術書が好き!もっと技術を磨きたい!!そんなあなたに朗報です。…
www.oreilly.co.jp
プログラミングをはじめたころは、「とりあえず動けば・・・!」という思いでコードを書くことが多かったです。
しかし他の方に見ていただくことが多くなったり、開発プロセスを意識することが多くなると、可読性などは避けて通れないと感じます。
新人エンジニアの必読書として、よく挙がる本ですが、比較的コンパクトな本の割に「うっ・・・」と思うことが多い内容でした。
テストがプロダクトの開発の邪魔になる。ーープロジェクトの一部にすぎないテストが、プロジェクト全体を支配している状況を目にしたことがある。テストが触れてはいけない神のようになっているのだ。プログラマたちは、貴重なエンジニアリングの時間を犠牲にしていると知りながら、ある種の儀式としてテストを行っているのである。
(リーダブルコード p196:Dustin Boswell、Trevor Foucher 著、角 征典 訳 より引用)
テストは大事と思いながら、プロダクトとのバランスは大事だと思うことがあります。
ポートフォリオを作りながら、「開発とテストどちらもやるの大変すぎる」と思っていました。
たまに読みかえして、反省する本かもしれません。
www.oreilly.co.jp
全部で500P弱ほどの、とても分量のある本です。
フロントエンドの学習をはじめたころ、WebやInternetの知識が全然足りないと感じることがありました。(今でもかもしれません)
ずっと欲しかった本で、ようやく手に入りました。ありがとうございます。
ところどころGoによる、サンプル実装コードがあり、説明と相まって理解を助けてくれます。
最後の方は、CDNだったりクラウド関連の話まで出てきますが、読んでいて「なんだかWebの歴史書みたいだな」と思いました。
今後もWebでわからないことがあったら、この歴史書に頼ることがあると思います。
www.oreilly.co.jp
この本も、ずっと欲しかった本です。
最初APIについて調べていた頃、「まとまった知識がほしいな」と思うことがありました。
「GET、POST、PUT、DELETE」等のノウハウはネットで得ることはできると思います。
本書では、APIの設計やセキュリティについても触れられていて、「やっぱり読んでよかった」と思いました。
フロントエンドの実装をするときに、ローカルから外部APIを使う場合、結構CORエラーでハマったことが多かったです。
CORSについても、ある程度詳しく書いてあるのでかなり助かりました。
これからバックエンドの学習をする時こそ、この本に頼ることになる気がしています。
コードをたくさん書いていると、こうしてたまに読書をする時間がありがたいなあと思うことがあります。
名著と呼ばれるような本は、ググるだけでは得られない知識をくださるような気がします。
今後の開発に役に立てていきたいと思います。
ウルシステムズ株式会社様とオライリー・ジャパン様に御礼を申し上げます。
主にCypressについて、その学習記録を残します。
Cypress以外にも、ソフトウェアテスト一般的なものやエンジニアの教養的なもの(テストは意識してます)も学習したので、前回からタイトルを変更しました。
前回の記事については、こちらを参照してください。
bonomodel.hatenablog.com
業務の中で、Cypressによるテスト自動化に取り組み始めています。
Cypressによるテスト自動化を実践するために必要と思ったものを、少しずつ進めています。
www.cypress.io
主にE2Eテストの自動化に使われる、テストフレームワークです。
JavaScript/TypeScriptで書けます。
testautomationu.applitools.com
Cypressの実践的な使い方を学べました。
APIを通じてアプリケーションの動作をテストしたり、複数のアサーションをする方法などがよかったです。
testautomationu.applitools.com
一通りやりました。
CypressでTypeScriptを使うメリットを感じるためにも、もっと使う必要があると感じました。
testautomationu.applitools.com
一通りやりました。
Cypressのプラグイン以外にも、色々とAccessibilityチェックする機能の紹介がありました。
testautomationu.applitools.com
ATDDの解説とそれを小さく実践する講座でした。
受け入れテスト(Cypress)をして、それが通らない場合は単体テスト(Jest/Testing-library)をする。
その結果に合わせて開発コード(React)をリファクタリングして、テストが通るようにする。
といった具合でした。
個人開発などで実践してみないと、その良さがまだ分かっていないかもしれません。
www.codecademy.com
フロントエンド、CypressでTypeScriptが必要になるためやりました。
Free会員なのでLessonのみですが、なかなかやりごたえがありました。
TypeScriptに限らずですが、手を動かさないと実際理解できないことが多いと思いました。
・Github Actions for Testing(by Matthias Zax)
testautomationu.applitools.com
とても難しかったです。
テストコードを使用頻度の高いものにするためにも、まずは小さく実践しておきたいです。
www.oreilly.co.jp
DevOpsは文化というのを、初めて知りました。
今までDev(開発)・Ops(運用)という、技術上の循環プロセスぐらいに思っていました。
www.oreilly.co.jp
E2Eテストの学習をしているときに、たまに見かけることがあったので読んでみました。
個人的にまとめると「限られたリソースの中で実現可能なものを考慮して、ユーザーにとって使いやすく価値のあるサービスを作る」といった感じだと思います。
思いつきを形にするため、ただ手を動かすだけでは・・・ということなのかもしれません。難しいです。
www.oreilly.co.jp
モノリス/マイクロサービス/モノリポあたりの話からはじまって、中立的(and 批評的/経験的)に書かれていると感じました。
マイクロサービスという概念は、Google Cloud Professional Cloud Architectで覚えたきりでした。
単純にモノリスが古くて変更が必要で、マイクロサービスが革新的で良いという二項論ではないとわかりました。
アーキテクチャーってこんなに多くのことを考慮するのかと思いました。個人的にVault(HashiCorp)の話が面白かったです。
www.vaultproject.io
www.youtube.com
ソフトウェアテスト一般的な知識を得たいと思い、ISTQBのFoundation Levelの上記講座を一通り視聴しました。
各セクションで、小問がいくつかあります。
テストマネジメントは結構間違えました。
www.sbcr.jp
テスト技法の内容が濃かったです。
ソフトウェアテストについて一通り学べました。
教科書として、よいコンテンツだと思いました。
www.kinokuniya.co.jp
ソフトウェアテストについて、網羅的に触れられていました。
言葉が理解しやすかったです。
基礎的なことだけではなく、実務での受け止め方、考え方などにも触れられていました。
テスト自動化のセクションは、特にためになりました。
Cypressとソフトウェアテストの基礎知識について、学習記録を書きました。
久々に、紙の本をよく読みました。
図書館でソフトウェアエンジニアの本を借りることができるのは、とてもありがたいです。
アウトプットとのバランスは大事だと思いますが、本でのインプットもいいですね。
TechTrainの"React.js 基礎4 SSRをやってみよう"のRailwayを終えたので、その受講記録を残します。
本気で、エンジニアキャリアを伸ばす、エンジニア塾です。
詳細については、公式サイトを確認してみてください。
lp.techtrain.dev
Frontend Railwayの最後のRailwayです。
目的はフロントエンド(バックエンド)開発の基礎的な経験と知識を獲得することです。
最後の課題だけあって、とても実装に苦労しました。
おそらく、もっともメンターさんに教えていただくことが多かったRailwayだったと思います。
終えた頃には、とても充実感がありました。
typescript-jp.gitbook.io
一通り読みました。
他のTypeScriptの教材と、たまに比較しながら読んでいました。
www.typescriptlang.org
一通り読みました。
公式だけあって、わかりやすかったです。
主にHandbookがよかったです。何度か振り返って読むと思います。
abseil.io
とてもよかったです。
特にCI/CDやテストのところは、かなり勉強になりました。
他のことをやりながらでしたが、全部読むのに3週間ぐらいかかりました。
Amazon | Visualizing Google Cloud: 101 Illustrated References for Cloud Engineers and Architects | Vergadia, Priyanka | Human Vision & Language Systems
Google Cloudのイベントでいただきました。
前々からわかりやすい図を参考にしていて、本でも欲しいと思っていました。
Google Cloudのサービスについて、ざっくりかつちゃんと学べます。
www.codecademy.com
TypeScriptはCypressで使うので、この際書きながらもっと慣れていきたいと思います。
FrontEnd Railwayを無事すべて終えることができました。
おかげさまで、TechTrainのRank4に昇格することができました!
TechTrainの運営の皆様方やメンターの皆様方のおかげで、なんとかやり終えることができたと思います。
学習過程をTechTrainのSlack内のtimesに書き連ねているのを、たまに見守っていただいていました。
重ねて感謝を申し上げます。
しばらくは、少しTypeScriptとテスト周りのInput/Outputをやろうと思います。
E2EテストフレームワークのCypressについて、その学習記録を残します。
最近業務の中で、Cypressによるテスト自動化に取り組み始めています。
以前から少し取り組んではいたのですが、フロントエンドの学習を始めてから、あらためてCypressの理解が進みました。
CypressはJavaScriptやTypeScriptで書くことができるので、フロントエンドの学習との相乗効果が出ていると実感します。
先程記載したとおり、CypressはJavaScript(TypeScript)で書けます。
Cypressはテストの中でも、主にE2Eテストを自動化することになります。(APIテストとかもあります)
GUIもしっかりしていて、ブラウザベースのCypress上でスクリプトを実行できます。(もちろんヘッドレスでもできます)
動画を取ったりスクショをとったりもできるので、コードベース以外でも役に立ちます。
Cypressでテストを書くときは、原則この公式ドキュメントを読んでいます。
アサーションだったりも細かくのっているので、便利です。
公式のドキュメントはかなり広範なので、ドキュメントを読むのもいいと思いますが、公式のYouTubeチャンネルの動画がわかりやすいです。
また、発展的なことも動画にされているので、ちょくちょく見ています。
公式でわかりやすいラーニングコースが提供されているので、それをやりました。
後述のReal World Appもここで出てきます。
公式で提供されている、実際のアプリケーションを対象としたテスト用のリポジトリがあります。
Reactで作られたアプリをテストするのですが、カスタムコマンドだったり認証システム周りの話だったり、かなり実践的です。
私はまだあまり使いこなせてないですが、CypressのDiscordコミュニティがあります。
たまにQAのチャンネルを参考にしたりしています。
Blazemeter Universityが提供しているコースです。動画による講義とテストによってすすめます。
講師のGleb BahmutovさんのブログやYoutubeの動画は、発展的ですがかなり実践的でためになります。
コードを書いていて詰まったときに、よく参考にしています。
カスタムコマンドは可読性をあげたり、冗長的なコードを単純化するのに非常に便利です。
ただ最初は、必要最低限の機能を使いこなすことから始めています。
慣れてきたら、自分のプロジェクトに合わせてある程度カスタマイズしていきたいと考えています。
一方難しいのは、あまりカスタムしすぎても良くないのかなあと思っています。
あまりカスタムしすぎると、かえって個々のスクリプトファイルが標準とズレすぎてしまう気がしています。
このあたりは、使い続けないとわからないところなのかもしれません。
Cypressには、Cypress.SelectorPlaygroundやCypress Studioといった機能があります。
これらは、公式で提供されているものです。
要素の取得だったり、アサーションだったりに便利で、手軽にテストを書くことができます。
もちろん実際にコードを書くときにはうまくいかないこともあるのですが、書き出しのとっかかりとしてはいいツールです。
使ってみた感じでは、idやclassなどでアサーションを行っていることが多い気がします。
安定したテストを行うということでは、ベストプラクティス上はidやclass、htmlのタグやテキストでアサーションするより、data-cyなどの属性をサイトに追加するほうが望ましいみたいです。
ただ実際には前者を使うことが多そうな気がします。
安定して動くスクリプトをかけるようになりたいです。
testautomationu.applitools.com
Test automation universityが提供しているコースです。
Youtubeの動画による講義があって、提供されているリポジトリを使いながら進めます。
JavaScriptでもいいのですが、TypeScriptでかけるようになりたいです。
このあたりのことは、通常のE2Eテストスクリプトの作成がこなれてきたら考えようと思います。
最近のJavaScriptフレームワーク(React.jsやAngular.jsなど)に合わせた、コンポーネントテストもあります。
より安定したテストを行うためにも、DOMベースで作るE2Eテストに慣れてきたら試してみたいです。
テストの実行をCI/CDプロセスに組み込むこともできるので、ぜひ実装して使用頻度の高い自動テストを組み込みたいです。(少し背伸びしている感じはあります)
CypressとビジュアルテストツールであるPercyを組み合わせることで、画面の外観やスタイルに関する変更を自動的に検出することができます。
とても魅力的ですが、基本的なCypressでのテスト自動化ができてからかなと思っています。
インプットや学習上のアウトプットはもちろん、実際のスクリプトを地道に実装し続け、タスクを1つずつこなしていきたいです。
Cypressの扱いにこなれてきたら、色々プラスαの実装にもチャレンジしてみたいですね。(道のりは遠そう・・・。)
ちなみにCypressは英語の資料がほとんどなので、Google翻訳にいつも助けられています。
TechTrainの"React.js 基礎3 書籍レビューアプリ"のRailwayを終えたので、その受講記録を残します。
本気で、エンジニアキャリアを伸ばす、エンジニア塾です。
(以前のコンセプトから刷新されたようです。)
詳細については、公式サイトを確認してみてください。
lp.techtrain.dev
最近、ユーザー向けの有料課金サービスに移行されました。
prtimes.jp
Rank4までもう少しなので、続けて頑張ろうと思います。
最初の1ヶ月は無料(学生の場合は2ヶ月無料)なので、フロントエンドRailwayを最後まで走りきろうとおもいます。
フロントエンドシリーズの続きです。
目的はフロントエンド(バックエンド)開発の基礎的な経験と知識を獲得することです。
確認してみたら、2023/5/4から開始していました。
割りとコツコツ進められていて、詰まっても時間をおいて地道に進められている自覚はありましたが、時間が経つのは早いですね~。
ここ最近はフロントエンド(+Cypress)一色という感じになっています。
jsprimer.net
一通り目を通しました。ふとした時に戻って確認したいと思います。
typescriptbook.jp
一通り読みました。TypeScriptは読むのも良いですが、実際に書くまで勇気(JavaScriptで書いたらいいやという気持ち的な意味で)がいるなと思いました。
typescript-jp.gitbook.io
こちらもTypeScriptの定番だと思うので、一通り読もうと思います。
www.typescriptlang.org
TypeScript公式のドキュメントです。DeepDriveが終わったら読もうと思います。
基礎3は分量も多かったですが、段々とフロントエンドのスキルが身についてきていると感じるコースでした。
メンターさん方とのやり取りを含めて、日々着実に成長させてもらえていると実感しています。
基礎4はどんな課題が待ち受けているか、若干ビビっていますが走りきろうと思います。
ようやくTechTrainの"React.js 基礎2 TODOアプリ"のRailwayを終えたので、その受講記録を残します。
エンジニアとしての「実力を一段上に」なってもらうためのエンジニアコミュニティです。
techtrain.dev
詳しくは上記のHPに飛んでいただくか、下記の紹介記事をお読みください。
bonomodel.hatenablog.com
フロントエンドシリーズの続きです。
目的はフロントエンド(バックエンド)開発の基礎的な経験と知識を獲得することです。
そこそこすぐ終わると思いましたが結構時間がかかりました。
余談ですが、最初npm/yarnを併存させてしまったりしました。
zenn.dev
(※記事公開当初から一部内容を変更しております。)
今回はハマりポイントが多く、公式やブログ記事などの知識を得た上で、ああでもないこうでもないと唸りながら実装していました。
基礎1あたりから取り組んでいた、Udemyの教材を完走しました。
https://www.udemy.com/course/modern_javascipt_react_beginner/
特に、Reactに入ってからの動画がとても参考になりました。定期的に視聴しておきたいです。
そろそろTypeScriptに入門したいと思ったので、TypeScriptの無料のコースを完走しました。
https://www.udemy.com/course/typescript-react-frontend/
基礎的な文法について、とてもよくコンパクトにまとめられていて入門によい動画だと感じました。
jsprimer.net
現在はこちらを取り組んでいます。
一通り入門した後に取り組んだためか、目からウロコな物が多く完走したいと思います。
typescriptbook.jp
こちらはJavaScript Primerが終わった後に、取り組んでみたいと思います。
基礎2は当初思った以上よりも大変で、メンターさんとの面談で得たものを大事にしながら調べて実装という感じでした。
基礎3も地道に進めていこうと思います。
ようやくTechTrainの"React.js 基礎1 掲示板"のRailwayを終えたので、その受講記録を残します。
エンジニアとしての「実力を一段上に」なってもらうためのエンジニアコミュニティです。
techtrain.dev
詳しくは上記のHPに飛んでいただくか、下記の紹介記事をお読みください。
bonomodel.hatenablog.com
フロントエンドシリーズの続きです。
目的はフロントエンド(バックエンド)開発の基礎的な経験と知識を獲得することです。
基礎編はRank3の方がRank4を目指すコンテンツなので、難易度は高めだと思われます。地道に続けて力をつけていきたいと思っています。
(※記事公開当初から一部内容を変更しております。)
基礎1 掲示板はこれまでと違い、用意されたGitHub上のリポジトリからforkするというものではなく、最初にReactプロジェクトを作成するところから始まります。
細かい指示を順に満たしていくというよりも、必要な条件を満たすものを作るという感じでした。
これまでのVSCode上の拡張機能を使用したクリア判定ではなく、面談を通じてクリア判定がなされます。
ちょうど最近ChatGPTやGitHub Copilotの活用が流行っているということで、条件を理解した上でそれを実装するコードを書きながら、わからないところやリファクタリングが必要なところを上記のGenerativeAIに助けてもらうといった形で学習を進めていました。ちなみに、私が今使っているものは無料版のChatGPTです。GitHub Copilotも無印のものです。
openai.com
github.com
決して完璧なものというわけではないですが、とりあえず動くものを作るのに役立ったりしました。また、コードの書き方自体が勉強になったりするものもあり、直接の答えではなくとも壁打ち相手として素晴らしいと感じました。
プロンプトエンジニアリングやGenerativeAIのサービスへの活用については、もっと探究していきたいと思っています。
www.promptingguide.ai
saasis.jp
一方で特にGitHub Copilotについて思うのですが、意図しない改変が行われたりすることがあります。また、ChatGPTと壁打ちしていると、意図した情報が反映されなかったり欲しい返答が得られないことがよくあります。
もちろん性能や使い方の課題も大きいと思うのですが、やはり自分自身がきちんとした知識や経験を築いていく必要があると強く感じました。(GenerativeAIに限らず技術進歩は日毎に増しているので、状況はどんどん変わると思います。GPT-4を使用する場合は、もしかしたら違う感想になるかもしれません。)
openai.com
github.com
メンターさん達との面談を経て、ReactだけではなくそもそもWebやReact以前の技術についての知識も足りていないと痛感しました。
roadmap.sh
フロントエンドのロードマップは、上記のようになっているそうです。
これを見ると私の場合、見事に"Internet"から抜けています。
Webを支える技術やリーダブルコードだったりは、時間を見つけて読みたい本です。
Railwayに取り組んでいる時には、以下のようなものを調べていました。
まだ中々定着していない知識もありますが、少しずつ見に付けていこうと思います。
developer.mozilla.org
react-hook-form.com
mixi-developers.mixi.co.jp
blog.recruit.co.jp
私がフロントエンドビギナーということもあり、"React.js 基礎1 掲示板"だけでとてもメンターさん達にお世話になってしまいました。
1回30分という時間なのですが、メンターさんたちは私のコードや考え方の穴を見逃さないと感じました。
その上で、面談時に足りないものや理解しにくいもの、実務上こうした方が良いというものを教えていただけています。
現役のエンジニアにここまで真剣に向き合っていただけるのは、本当にすごいサービスだと思います。
まだまだ先はありますが、自走力もつけながら地道に前に進もうと思います。
基礎1 掲示板がおわり、今は基礎2 TODOアプリを進めています。
基礎1とは毛色が違うタイプのRailwayですが、地道にすすめていこうと思います。
今回はTechTrainで、Data Science RailwayのPython 入門編を終えたので、その受講記録を残します。
エンジニアとしての「実力を一段上に」なってもらうためのエンジニアコミュニティです。
詳しくは上記のHPに飛んでいただくか、下記の紹介記事をお読みください。
bonomodel.hatenablog.com
現在はフロントエンド(React.js基礎1 掲示板を進めています)
先日TechTrainでPythonのDataScienceのRailwayが実装されました。
prtimes.jp
Pythonはコンペなどでやったことがあるので、せっかくなのでやってみました。
講座自体はGoogleColaboratoryのnotebookを利用して行われます。
notebookで解いた答えを、TechTrainの所定の場所に書き込む形です。
最後のみ、面談でのクリア判定が必要なstationになっています。
面談を通して実務上のポイントなどを教えていただき、受講してよかったと思いました。
Google Cloud Professional Cloud Architectに合格しました。
前回のCoursera受講以降の学習法(演習)と受験してみての感想を紹介します。
前回の記事はこちらです
ちなみに過去の記事でもまとめていますが、1月から2月はじめ頃までTechTrainのRailwayでフロントエンドの学習を進めていました。
bonomodel.hatenablog.com
bonomodel.hatenablog.com
bonomodel.hatenablog.com
バウチャーまだまだ期限あるかなーと思ったら、2月末までということに気づき慌てて学習を進めていました。
前回の記事で、Cousera受講以降の学習について触れました。
実際には
【最短攻略】Google Cloud 認定 Professional Cloud Architect 模擬問題集
170問 (50問 × 3セット + 20問) 本番用問題集(詳解付き)
https://www.udemy.com/course/google-cloud-professional-cloud-architect-i/
Udemyはアプリでスマホでも進められるので、気軽にできるのがよかったです。
例えばVPCやVPNについて確認したいことがあったときに
cloud.google.com
cloud.google.com
blog.g-gen.co.jp
blog.g-gen.co.jp
公式を読んで分かりにくいと感じたところは、G-genの該当記事や他のサイトの記事を読んで、曖昧なイメージの解像度を上げるといった具合です
という感じになりました。
Notionでまとめたりするより、公式やweb記事に都度アクセスして身につける方法に落ち着きました。
また知識的な部分もそうですが、問題集を解いていて
あたりが大事なのかなと思いました。
はじめてのGoogleCloudの認定試験ということもあり、結局オンサイトでの試験に決めました。
Kryterionのテストセンターを見たら、地元になかったので福岡天神テストセンターまで行くことにしました。
夜行バスで向かい、テストセンターで受験してバスで帰るというひとり弾丸ツアーを実行してしまいました。
福岡天神テストセンターの行き方は、G-genの記事があるので参考にしてください。
blog.g-gen.co.jp
私もばっちり参考にしました!ありがたいです。
はじめてということもあり、身分証や認証コードなどの手続きが不安でしたが、職員さんが暖かくスピーディーに対応してくださいました。
認定試験もブースで受けられ、おかげさまでのびのび受けることが出来ました。
認定試験が終わってテストセンターを後にしてすぐ、スマホでKryterionのサイトにアクセスしました。
合格という文字があったので「おーーーー」とほっとしました。
現在、あなたの試験結果は Google Cloud に送信され、試験利用規約に遵守しているかどうかを審査中です。この審査には 7~10 日かかります。完了次第、最終結果をメールでお知らせいたします。
とあったので、のんきにしていたら翌日には正式な証明書がメールで連絡されました!
ノベルティはウェルカムキットにしました。大事に使わせていただこうと思います。
デジタルツールキットも公式配布されています。
sites.google.com
今回なんとか無事に合格することが出来ました。
おかげさまで、GoogleCloudの広範な知識を得ることが出来ました。少しずつ今後の業務に活かせるようにできればと思います。
前回の記事にも記載させていただいた通り、GoogleCloudのビギナー開発者に対する積極的な後押しがなければなし得なかったと思います。
試験勉強を応援してくださった皆様方ありがとうございました。