2024年3月の学習記録

はじめに

今月はReact(+α)スキルの向上と応用情報技術者試験の対策をしていました。
実務でReactを使うことになり、改めて自分のフロントエンドスキルを見直して実装力を高めているところです。
去年の8月にポートフォリオを作成した以来ですが、「今改めて見ると、まだまだ改善点が多いなあ」と感じます。
そこは現時点での成長と受け止め、ひとまずは実装力を上げていこうと思います。
応用情報技術者試験は午後問題の演習に時間がかかっています。

オンライン講座

Udemy

  • React & TypeScript - The Practical Guide

ReactをTypeScriptで書くのが、あまりよくわかっていないため受講しました。
www.udemy.com

Youtube

  • 【ゼロからスタート】情報処理安全確保支援士対策

キャッチーに動画で説明をしていただけているので、セキュリティもかなりわかりやすいなと思いました。
【ゼロからスタート】情報処理安全確保支援士対策 - YouTube

  • Get started with React.js & React Router 6+

ReactとReact-Router(react-router-dom)でTODOアプリの作成を通して、今のReactを手短に学べるものでした。
Get started with React.js & React Router 6+ - YouTube

書籍

  • インタフェースデザインのお約束 ―優れたUXを実現するための101のルール

UIデザインについて、ユーザー視点のものにするために、やるべきことやべからず的なことを教えてくれる本でした。「フォントやコントロールは、自分でカスタムするより標準を使うべき」など、学ぶことが多かったです。
www.oreilly.co.jp

  • サーバ/インフラエンジニアの基本がこれ1冊でしっかり身につく本

ネットワークを中心に、サーバーとインフラに関する知識を学べました。
とりわけクラウドインフラに関する記載がおおく、改めて中立的な視点で確認できたのが良かったです。
gihyo.jp

  • Webフロントエンド ハイパフォーマンス チューニング

フロントエンドの設計や実装で、パフォーマンスチューニングが気になったので読みました。
レンダリングの仕組みすら分かっていなかったので、学べることが多かったです。Chrome DevToolで計測できるメトリクスも多く、認知的チューニングは目から鱗でした。
gihyo.jp

  • インフラエンジニアの教科書

改訂前の版ですが、読みました。
スイッチの違いや活用方法、サーバースペックの解説など、実物の写真や図解を交えて、わかりやすく解説してありました。
インフラエンジニアの教科書

流れ図と疑似言語を中心に、よくあるアルゴリズムをわかりやすく学べました。
ソートの流れも、ソートとその派生という形で紹介があり、ヒープソートあたりが疑似言語を追うのが大変でした。
www.shuwasystem.co.jp

  • プログラマーのためのコンピュータ入門 内部ではどう動いているか

低レイヤーだけではなく、ネットワークやデータベースなどコンピュータ全体に関する知識をつけられる本でした。
www.ohmsha.co.jp

  • これからはじめるReact実践入門

propsやフック、ReactのTypescriptなどをわかりやすく解説してある辞書的な本でした。Reactに限らないですが、古い書き方などへの注意も併記してあったので、本で学んだ甲斐がありました。
www.sbcr.jp

  • インフラ/ネットワークエンジニアのためのネットワーク技術&設計入門 第2版

入門といいつつ、内容はかなり広く深いものでした。
物理設計、論理設計やセキュリティ設計から負荷分散設計や高可用性設計、管理設計など、今まで知らなかったネットワーク設計についても学べました。
www.sbcr.jp

ネットワークの階層構造モデルを、一つずつ体系的に学べました。
www.sbcr.jp

  • 図解即戦力 暗号と認証のしくみと理論がこれ1冊でしっかりわかる教科書

暗号と認証について、語句だけではなくその説明をわかりやすくコンパクトにされていました。
暗号の歴史とアルゴリズムに関しては、はじめてちゃんと理解したものもありました。
gihyo.jp

  • 現場のプロがわかりやすく教えるUI/UXデザイナー養成講座

UI/UXに関して、マテリアルデザインを読んだ+αぐらいだったので、ためになることが多かったです。
スマホの親指ゾーンやオートレイアウトの使い方など、新しい発見がありました。
www.shuwasystem.co.jp

  • プロの「引き出し」を増やす HTML+CSSコーディングの強化書

CSS力を一歩上げられる本だと思いました。
paddingとmarginの使い方や使い分け、レスポンシブデザインのコツやCSSの設計など一通り学べました。
books.mdn.co.jp

  • 今日からモノ知りシリーズ トコトンやさしい組込みシステムの本

組込みシステムに親しめる本でした。
デジタル回路や組込みシステムの設計は、わかりにくいと感じることが多いのですが、丁寧に実例多めで教えてくれるので楽になりました。
pub.nikkan.co.jp

  • ITエンジニアのためのプロジェクトマネジメント入門

PMBOKに即して一通り学べる本でした。
スケジュールの作成や期待金額価値分析で、間違って理解していたことに気づくことが出来ました。
www.ohmsha.co.jp

  • インタフェースデザインの心理学 第2版 ―ウェブやアプリに新たな視点をもたらす100の指針

主に心理学的なアプローチから、デザインを記した本でした。
読んでいて「確かにそうだな」と思ってしまうものが多かったです。
特に第10章の、「選択肢が多いほうが思いどおりになっていると感じる」あたりは耳が痛い話だなと感じました。
www.oreilly.co.jp

  • ほんの一手間で劇的に変わるHTML & CSSとWebデザイン実践講座

「このデザインは、CSSでこう表現出来るんだ」と言った感想を抱くことが多かったです。
www.sbcr.jp

  • プロジェクトマネジメントの基本がこれ1冊でしっかり身につく本

プロジェクトマネジメントの用語や考え方を、わかりやすく学べました。
アーンドバリューマネジメントの説明が、特に親切でした。
gihyo.jp

細かいところはわからない点もありましたが、最後まで楽しく読めました。
cpuの作り方というか、流れを知りたい時に頼もしい本でした。
book.mynavi.jp

試験対策

午後問題の進捗が今一歩なので、しばらくはインプットは減らす方向でいこうとおもいます。
午後問題の選択科目は、セキュリティ以外の4つ選択することになります。
・データベース
・組み込みシステム開発
サービスマネジメント
・システム監査
・プロジェクトマネジメント
を軸に練度を上げていこうと思います。
最近、Studyplusというアプリをインストールしてみました。
「これで演習量の可視化につながれば」と思っています。
zenn.dev

さいごに

4月21日が応用情報技術者試験の試験日なので、そこまでに午前・午後の問題演習を1問でもこなして合格ラインをきっちり超えたいです。

2024年2月の学習記録

はじめに

今月はGoの簡単なアプリケーションを作るために、右往左往している月でした。
Goとバックエンドを理解した上で、SPAでフロントエンドを実装するって本当に大変です。
また、応用情報技術者試験の午後問題に着手し、問題演習の大事さを噛み締めました。

公式チュートリアル

Angular

ふとAngularに入門したくて、チュートリアルをやっていました。
Learn Angular
Your first Angular app

TOPSIC SQL CONTEST

第11回 TOPSIC SQL CONTESTに初参加しました。
詳細は、以下を参照してください。
topsic-contest.jp
bonomodel.hatenablog.com

オンライン講座

TechTrain

SQL 入門編 Railwayを終えました。
詳細は以下を参照してください。
prtimes.jp
bonomodel.hatenablog.com

Udemy

  • Go - The Complete Guide

Goの基礎文法から、APIと認証周りの実装まで、とてもわかりやすい解説でした。
www.udemy.com

  • Echo/Go + Reactで始めるモダンWebアプリケーション開発

GoでのCORS/CSRFの設定が難しかったですが、全体的にコンパクトにTODOアプリが作れる構成でよかったです。
www.udemy.com

Youtube

  • Complete Playwright Testing Tutorial | An End to End Playwright with TypeScript Course

Playwrightについて、もう少し詳しく一通り使い方を知りたいと思い受講しました。
別タブ・別ウィンドウの扱い、リロードの待ち方や、POM→fixtureのやり方などためになるものが多かったです。
Complete Playwright Testing Tutorial | An End to End Playwright with TypeScript Course 🎭| LambdaTest - YouTube

  • 小学生でもわかるデータベース設計入門。実際に設計しながら基礎を学ぼう

最近データベースの問題を解くことが多いので、視聴しました。
視聴前は、正規化についてふわっと理解していることがありました。
そのため、正規化しないことによる問題について浅い理解になっていました。
そのあたりのことも含めて、解説してくださっているよい講座でした。
小学生でもわかるデータベース設計入門。実際に設計しながら基礎を学ぼう

書籍

  • マスタリングTCP/IP 入門編(第6版)

ネットワーク定番の本なので、読みました。
ネットワーク知りたいこと全部書いてる感じのものでした。
「最初に読んでおけば・・・」と思えるぐらい素晴らしい本でした。
www.ohmsha.co.jp

  • マスタリングTCP/IP 情報セキュリティ編(第2版)

入門編と合わせて読みました。
セキュリティ用語について網羅的に知ることができる本でした。
www.ohmsha.co.jp

  • 改訂2版 みんなのGo言語

「開発でもう少し知りたい」と思うことが網羅的に知れる本でした。
CLIツールの作成や、Goのテストなどためになりました。
gihyo.jp

  • プログラムはなぜ動くのか 第3版 知っておきたいプログラミングの基礎知識

例の如く、低レイヤーの知識を深めるために読みました。
個人的に、これまでのおさらいのような感覚で学ぶことが出来ました。
bookplus.nikkei.com

  • コンピュータはなぜ動くのか 第2版 知っておきたいハードウエア&ソフトウエアの基礎知識

コンピュータという視点で、必要になるものを解説した本でした。
bookplus.nikkei.com

データモデルについて、気になっていたので読みました。
ER図とは違いますが、案外読みやすかったです。
テーブルやキーの管理やリレーションの引き方を、多様な業種に合わせて学べました。
正規化やサロゲートキー等、なんとなく理解しているものを演習を通じて深められました。
www.njg.co.jp

  • ソフトウェアアーキテクチャの基礎―エンジニアリングに基づく体系的アプローチ

アーキテクチャに関する本がよみたかったので、読みました。
色々できるようになると、技術の見落としやトレードオフに気づかされることがたまにあります。
コンポーネントベースでの技術かドメインによる分割やリスクストーミングなど、ためになるものが多かったです。
www.oreilly.co.jp

  • 詳説 データベース―ストレージエンジンと分散データシステムの仕組み

ざっくりですが読みました。
分散データベースは、ツールやサービスとして学ぶ一方、そのアルゴリズムと概念について本格的に学ぶことはあまりなかったので、読んで良かったです。
ただ内容は少し私には早かったかもしれないので、またの機会に深掘りできるといいなと思います。
www.oreilly.co.jp

Go言語の文法について、一つずつ丁寧に解説された本でした。
単に文法というより、Goの仕組みについて教えてくれる本だと思いました。
ゴルーチンの場合の競合検出など、特に第8,9章が読み応えがありました。
プログラミング言語Go

  • プログラミングTypeScript―スケールするJavaScriptアプリケーション開発

最近型エラーで「ぐぬぬ・・・」と思うことがあったので、読みました。
型エラーが出たとき、たまに「なんでこんな型エラーが」と思うことがあります。
ただ、構文を理解したら「型エラーがあって助かった」ことがちょくちょくあります。
少しむずかしいものも多かったですが、概ね理解しやすかったです。
www.oreilly.co.jp

試験対策

午後問題の問題集を中心に進めました。
午後問題の得点力を上げるために、問題集と過去問をこなしていきたいです。
zenn.dev

さいごに

応用情報のデータベースの問題について、「結構難しいなあー。でもこれが今のところ楽しいかも」とヤキモキしながら取り組んでいます。
右往左往したおかげで、少しだけGoとWebアプリに馴染めたような気がします。
最近は、寒暖差が激しいので体調に気をつけながら、地道にやろうと思います。

第11回 TOPSIC SQL CONTEST に参加しました

はじめに

今回は、第11回 TOPSIC SQL CONTESTに参加してみました。
TOPSIC SQL CONTESTに参加するのは、はじめてです。

TOPSIC SQL CONTEST

TOPSIC SQL CONTESTは、SQLのコンテストです。
コンテスト時間内に出題された問題に対する解答(SQL文)を作成し、提出します。
topsic-contest.jp

モチベーション

バックエンドの学習の一貫で、SQLやDBの書籍に触れています。
また、Golangを通じてAPI/DBを構築するときにSQLが必要になることもあります。
そのため、ふと試しに素のSQLを書きたいなと思っていました。
コンテストの過去問への取り組みや事前準備は、ほぼ0でしたが、開催されているのでとりあえずやってみました。

取り組んだ結果

結果としては
2問正解で、84位でした。

SELECTやWHEREですら、「えーどうだったかな」と思いながらゆっくり取り組みました。
SQLiteかぁーなるほどー」と思いつつ、構文を調べながら進めました。
目標は1問正解だったのですが、いい感じに2問正解までいけて達成感がありました。
3問目は途中で終わりましたが、「何もわからない」状態にはならなかったので、楽しかったです。
期間中に、60分で4問を取り組むという形だったので気軽に参加できるのがよかったです。

最後に

以前は、AIのコンペに参加することが多かったですが、最近はWebに関する学習とタスクをこなすことが多いです。
そのため、すっかりコンペやコンテストに参加する機会から離れていましたが、こうして短い時間で取り組めるとうれしいです。
地道に力をつけて、そのうちまた参加してみたいです。

SQL 入門編 Railway 受講記録

はじめに

今回はTechTrainで、Data Science RailwayのSQL 入門編を終えたので、その受講記録を残します。

TechTrainとは

「本気で、キャリアを伸ばすエンジニア塾。」です。
詳細は、以下のURLを参照してください。

lp.techtrain.dev

モチベーション

SQLRailway入門編がリリースされました。
prtimes.jp
バックエンドの学習の一貫で、SQLの学習をしていることもあり興味があったのでやりました。

SQL 入門編

講座自体はPythonRailway入門編同様、GoogleColaboratoryのnotebookを利用して行われます。
notebookで解いた答えを、TechTrainの所定の場所に書き込む形です。

書籍や個人開発で学んだことを、実際手を動かしてSQL書くとしっかり身につく感じがしてよかったです。

最後に

SQL 入門編の受講記録を記載させていただきました。
複雑なSQLを書こうとすると、なれないせいもあってあたふたします。
やりながら段々なれていくと思うので、これからも地道に取り組んでいこうと思います。

2024年1月の学習記録

はじめに

今月は、オンライン講座や読書が多かったです。
主に取り組んだものはGo、応用情報、Playwrightです。
応用情報は、低レイヤー周りとネットワークあたりの知識を補強していました。
今は業務で、Playwrightによるテスト自動化に取り組んでいます。
そのため、業務以外でもPlaywrightに慣れるために、オンライン講座に取り組みました。

オンライン講座

Udemy

GoとGoによるアプリケーション開発を動画で学びたくて受講しました。
Goの解説がとてもわかりやすく、繰り返し学びたい講座でした。
特にgoroutineの解説が、個人的によかったです。Fintechについては興味はあるのですが、思った以上に本格的で難しかったです。
www.udemy.com

  • これからの時代に必須!基礎から学ぶ「情報セキュリティ入門」

応用情報技術者試験のセキュリティ分野に対する解像度を上げるために受講しました。
内容としては入門~情報セキュリティマネジメントレベルですが、とてもわかりやすく解説されていました。
特に情報セキュリティ技術やサイバー攻撃手法の講義が、ためになりました。
www.udemy.com

Test Automation University

  • Introduction to Playwright

Playwrightの公式をざっと読んだ程度で、取り組みました。
基本的な使い方について、きちんと学ぶことが出来ました。
testautomationu.applitools.com

  • Advanced Playwright

前回のIntroduction to Playwrightに引き続いて、受講しました。
POMの扱いやGitHub Actionsとの連携など、一通り知りたかったことを学べました。
思った以上にTypescriptしていて、いいなと思いました。
testautomationu.applitools.com

  • Web Element Locator Strategies

Playwrightのコースの最後にあったので、やりました。
ロケーターについては、Cypressを始めたときにとてもやきもきしました。
今でも、テストコードの合理性と可読性と安定性などで、たまに揺れるので改めて知ることが出来て良かったです。
Playwrightだと、Locatorは結構大事そうなのでやっておいてよかったです。
testautomationu.applitools.com

書籍

  • コンピュータシステムの理論と実装 ―モダンなコンピュータの作り方

低レイヤーのスキルが足りていないと思ったので読みました。
論理演算→ALUやメモリ→コンピュータ→機械語アセンブラアセンブリ機械語)→VM(中間コード→アセンブリ)→コンパイラ(高水準言語→中間コード)→OSなど、難しいですが順を追って学ぶことができました。
実装まで手が回りそうになかったので、ZennのYuki Yada / 矢田宙生さんの記事(@arr0w_swe)を読みました。
www.oreilly.co.jp
zenn.dev
zenn.dev
zenn.dev
zenn.dev

アルゴリズムの入門書として、読みました。
擬似言語を使った説明の前に、わかりやすいアルゴリズムの絵で解説してくださっているおかげで、ものすごく明快に理解できました。
ソートに苦手意識を持っていたのですが、目からウロコでした。
book.impress.co.jp

  • 動かしてわかる CPUの作り方10講

CPUについて、知りたいと思い読みました。
CPUの設計や仕組み、論理回路からVHDLVHDLによるCPUの設計、FPGA上への実装、メモリの実装などを学べました。信号の波形によって、設計通りかを確認するシミュレーションなどもあり、読むだけでもためになりました。
gihyo.jp

  • 30日でできる!OS自作入門

OS周りの学習をしたいため、はじめてOS自作の本を読みました。
普段Goの学習をしているのですが、この本を読んでいてようやくポインタを使う理由について、腑に落ちた気がします。砕けた文体や漫画コラムのおかげで、比較的構えずに読み進めることができました。
book.mynavi.jp

  • リレーショナルデータベース入門[新訂版] データモデル・SQL・管理システム

新訂版ではありますが、読みました。途中挫折しそうになりながら、演習は手を付けずに1週間程でなんとか読み終えました。
DB・SQLの本としては、学術的な志向のものでした。ER図や正規化の解説など、かえってわかりやすいものもありました。
www.saiensu.co.jp

  • コンピュータの構成と設計 MIPS Edition 第6版 上

コンピュータアーキテクチャの基本を知るために、読みました。
低レイヤーの知識を固めるために読んだのですが、応用情報で勉強することと被っていて勉強になりました。
特にプロセッサ周りがよかったです。
bookplus.nikkei.com

  • コンピュータの構成と設計 MIPS Edition 第6版 下

上巻の続きで読みました。メモリとキャッシュ、仮想記憶、並列プロセッサなどについて学べました。
bookplus.nikkei.com

  • コンピュータネットワーク 第6版

流し見ではありますが、読みました。
ネットワークの知識が不足していることもあり、一通り確認しました。
bookplus.nikkei.com

  • 【改訂4版】図解でよくわかる ネットワークの重要用語解説

改訂4版ですが、読みました。
NATやNAPTなど、ネットワークの理解が不足していたので読みました。左側に説明、右側にわかりやすい図という感じで、イメージが湧きやすかったです。
gihyo.jp

  • イラスト図解式 この一冊で全部わかるサーバーの基本 第2版

サーバーやネットワークについて、わかりやすいものが欲しかったので読みました。
図や絵がわかりやすかったです。
DNSサーバーの流れやDMZの意義、IDSやIPSの役割と仕組みなど一通り理解を深められました。
www.sbcr.jp

  • 現場で役立つシステム設計の原則 〜変更を楽で安全にするオブジェクト指向の実践技法

設計について理解したかったので、1冊読みました。
主にオブジェクト指向ドメインモデルの視点から、設計と実装をするというものでした。
6章のデータベース設計が、とくにためになりました。
gihyo.jp

第2版をさらっとではありますが、読みました。
思った以上に難しく、またSQLの経験を積んだときに読もうと思います。
www.kinokuniya.co.jp

  • 基礎からわかるTCP/IP ネットワークコンピューティング入門 第3版 TCP/IPネットワークの実際が基礎から理解できる

ネットワークの仕組みへの理解を、深めたくて読みました。
一通りの知りたいことが学べました。
データリンク、ネットワーク、トランスポートと順を追って説明があったので、混同しやすい用語の内容理解にも役立ちました。
shop.ohmsha.co.jp

  • DNSがよくわかる教科書

DNSについて、理解を進めたいと思ったので読みました。
今まで、ドメインに対応したIPアドレスを返してくれるぐらいの理解だったので、学びが多かったです。
www.sbcr.jp

ずっと読みたかったので、読みました。
Go言語ほんの少しだけかけるようになったけれど、もっとアカウンタビリティーを持って書きたいと思っていました。
その段階の私にとっては、とても素晴らしい本でした。
何回か読み返そうと思います。
www.oreilly.co.jp

試験対策

2024年春の応用情報技術者試験に申し込みました。
進捗は午前問題を少し進めただけです。
zenn.dev

さいごに

最近インプットによっている気がするので、来月はアウトプット多めでいきたいです。
応用情報の過去問をすすめないとやばめなので、地道にやろうと思います。

TechTrain Go 基礎編 受講記録

はじめに

TechTrain Go 基礎編のRailwayを終えたので、その受講記録を残します。

TechTrainとは

本気で、エンジニアキャリアを伸ばす、エンジニア塾です。
詳細については、公式サイトを確認してみてください。
lp.techtrain.dev

モチベーション

Go初級編の続きです。
Goの基礎的な開発スキルを身につけるため、基礎編をやりました。
11月からはじめたのですが、気づけば年末までかかってしまいました。

Go 基礎編

Goの初級編よりも、さらにGoの文法やバックエンドの仕組みなどを考えながら取り組む必要がありました。
あるstationで2週間ぐらいかかってしまい、Go「なにもわからない」状態になっていたこともありました。
その時は、バックエンド周りだったり、応用情報技術者試験の本を読んだりして気を紛らわしていました。
bonomodel.hatenablog.com
bonomodel.hatenablog.com
zenn.dev

最後に

Goをやればやるほど、さらに手を動かしてGoをやらねばという気持ちになります。
基礎編のRailwayを通じて、メンターの方々に多くの気づきをいただきました。
運営の方々、いつも本当にありがとうございます。
次は、Goを使ったポートフォリオをじっくり作ろうかなと思っています。

2023年12月の学習記録

はじめに

Goの開発の学習を主に進めています。
それに伴って、バックエンド周りの学習をしています。
個人的にデータベースが面白くなってしまい、少し偏っています。
OS周りやネットワーク関係の知識が、比較的おろそかになりがちです。
また、優先順位としては最後ですが、応用情報技術者試験の試験対策を地道にすすめています。
今月はZennへの技術記事の投稿もしました。

開発

TechTrain Go 基礎編を終えました。
詳細は、別途記事を参照してください。
bonomodel.hatenablog.com

記事

Qiitaの、GitHub Actions Advent Calendar 2023の12日目の記事として書きました。
zenn.dev

動画

日本語の動画で、Goをインプットしたいと思い視聴しました。
当初はgoroutineの動画だけのつもりでしたが、とてもわかりやすいので一通り視聴しました。
Gopher道場 - YouTube

書籍

  • おうちで学べるデータベースのきほん

「きほん」とあったので、よくある入門書だと思いきやかなり内容の濃い本でした。
データベースのコストの話は、かなり実務的だと思いました。
SQLもじっくり考えて取り組むものが多く、読み終えるのに時間がかかりました。
www.shoeisha.co.jp

  • 基本がわかるSQL入門――データベース&設計の基礎から楽しく学ぶ

入門というタイトルではありますが、読み終えるのに1週間弱かかってしまいました。
内容はとても実践的で、用語と実例が詳しく説明されていました。
gihyo.jp

  • 達人に学ぶSQL徹底指南書 第2版 初級者で終わりたくないあなたへ

初版ですが、読みました。
読み始めた時は「これは難しい、早かったかな」と思っていました。
しばらく読み続けていると理解が進むようになりました。
SQLをテーブルを扱うものとして考えていましたが、集合として考えるきっかけになりました。
得られる見識が多かったです。
www.shoeisha.co.jp

Linuxコマンドやシェルでつまずくことが多いので、一冊読みました。
一通りの解説があり、OSやネットワークに関するコマンドもあったのでためになりました。
gihyo.jp

シェルスクリプトで知りたい、整理しておきたいものが大体載っていてためになりました。
説明もとてもわかりやすく、繰り返し必要なときに読み返したいと思える本でした。
gihyo.jp

  • これだけ! 組み込みシステム

組み込み開発の知識が全然なかったので、応用情報の試験対策として読みました。
用語と仕組みの理解がざっくりすすんでよかったです。
www.shuwasystem.co.jp

ソートの学習目当てでしたが、機械学習などのアルゴリズム紹介がありました。
Pythonのコードによる解説があり、わかりやすかったです。
book.impress.co.jp

  • 体系的に学ぶ 安全なWebアプリケーションの作り方

初版ですが、読みました。
一度セキュリティ一通り知っておきたかったので、目を通しました。
これでもかというほど体系的で、開発に必要なセキュリティ要素を学べました。
www.sbcr.jp

  • 暗号技術入門 第3版

応用情報のセキュリティ分野対策として読みましたが、思った以上にわかりやすくて感動しました。
鍵→暗号→共通鍵→公開鍵→メッセージ認証→デジタル署名→証明書(認証局)を追ってその意味を理解することができました。
SSL/TLSあたりも理解を深められました。
セキュリティの学習をしていると、同時にネットワークの学習もしたくなります。
www.sbcr.jp

  • パケットキャプチャの教科書

ネットワークの学習のために読んだつもりでしたが、セキュリティやHTTP/HTTPSSSL/TLSなどの学習にも繋がりました。
図が多くて解説もわかりやすかったです。
www.sbcr.jp

試験対策

2024年春の応用情報技術者試験を、受験する予定です。
そのための試験対策を進めています。
学習開始時期は、11月中旬ぐらいだったと思います。
進捗は、Zennのスクラップに都度したためています。
zenn.dev

さいごに

年内にしておきたい学習は、ある程度できたと思います。
今年も1年、ありがとうございました。
来年も地道に、開発のスキルを高めていきたいと思います。

2023年11月の学習記録:読書多め

はじめに

少し早いですが、今月の学習記録をまとめます。
今月は、Goの学習と読書がメインでした。
バックエンドの学習を続けていてよく思うことですが、考えた上で実装することが多いと感じます。
特にOSやLinuxコマンド、DB・APIなどについて手を動かすことが相変わらず大事ですが、反面インプットして考える作業が必要だと感じます。
Goの学習だけではなく、バックエンド全般を中心に、書籍による学習をしていました。
ある程度学習が進むたびに、定期的に「Go言語プログラミングエッセンス」を読んでいます。
gihyo.jp

書籍

  • 新人エンジニアのための データベースのしくみと運用がわかる本

SQLの書き方やデータベースについて、基本が知りたかったので読みました。初心者でもわかりやすい内容でした。
gihyo.jp

コードについての認知科学や認知負荷について学べました。リーダブルコードなどをより科学的に書いた感じだなと思いました。
Chapter9,10,13あたりが好きです。潜在記憶の自動化と改善あたりが特に良かったです。
www.shuwasystem.co.jp

  • Djangoのツボとコツがゼッタイにわかる本

初版ですが、読みました。
今までPythonでweb開発したことなかったので、新鮮でした。
Goの標準でバックエンドの学習を進めていることもあり、フレームワークの偉大さが身に沁みました。
www.shuwasystem.co.jp

  • 1週間でMySQLの基礎が学べる本

こちらもデータベースの入門書です。
MySQL独特の書き方とかはありますが、サクッと読んだ感じでは、とっつきやすいDBMSだと思いました。
book.impress.co.jp

  • 達人に学ぶDB設計 徹底指南書 ~初級者で終わりたくないあなたへ

DBの基礎や論理設計(物理設計も一部)、バッドノウハウやグレーノウハウなど入門を超えて、実践的な内容が多かったです。
正規化、非正規化のトレードオフやテーブル分割の意義など、あまり意識したことがないものが多く、指南書として素晴らしい本でした。
www.shoeisha.co.jp

  • SOFT SKILLS ソフトウェア開発者の人生マニュアル

ソフトウェア開発者として、技術的な事以外をメインに大事なことを学べたと思います。
キャリアだったり資産形成のことだったりと、鵜呑みにするのがつらいものもありました。
しかし私自身不足している知識と感じていて、学びの多い本でした。
bookplus.nikkei.com

  • CAREER SKILLS ソフトウェア開発者の完全キャリアガイド

"SOFT SKILLS"の続編で、キャリア寄りの話がメインでした。
厳しい表現も多いですが、ためになる話が多かったです。
GitOpsのことやTDDに関することなど、教科書的な話とは違い本音で語っている内容が多く、共感できました。
bookplus.nikkei.com

  • 人月の神話

ソフトウェア開発でモノを作る時の話について、学べました。
印象的だったのは、利用者の力と使いやすさ(対象をどこにするか)の話と、そのためのインターフェイスを強制するMacintoshの成功の話でした。
古い技術の話が多いですが、ためになる本でした。
https://www.maruzen-publishing.co.jp/item/?book_no=294733

  • データベースの限界性能を引き出す技術 ~NoSQLに飛びつく前に知っておきたい原理と最新テクニック

Oracle DataBaseを例としながら、RDBMSボトルネックやその解決策を学べました。
キャッシュや待機処理等だけではなく、ハードの性能を踏まえた解説が多く、ためになりました。
gihyo.jp

  • 7つのデータベース 7つの世界

RDBMSPostgreSQL)やドキュメント指向DB(MongoDB)など、いくつかのDB分類があり、その説明と比較を学べました。
クラウドの学習時にふわっと理解していた話が、ここにきて深掘りできたと感じました。
www.ohmsha.co.jp

  • スッキリわかるSQL入門

初版ですが読みました。
最近DBやSQLの本を読むことが多いですが、私がなんとなく理解していたことをビギナーでもわかりやすく解説されていました。
book.impress.co.jp

  • たった1日で基本が身に付く!Go言語 超入門

Goの基本を、これ以上ないくらいわかりやすく解説してありました。
メソッドやクロージャ、アドレスとポインタなど少し曖昧に理解していたものを、すっきりさせることができました。
gihyo.jp

さいごに

最近業務でGithubActionsを扱うほか、個人開発ではGoを中心としたバックエンドの学習を進めています。
そのため、低レイヤーの知識が必要なことが多いです。
Web上の記事を読むことも多いですが、むしろ公式ドキュメントなどを読んで必要な工程や作業を考えて実装することが多いと感じます。
広くて深い知識と経験が必要そうなので、焦らずじっくり培っていこうと思います。

TechTrain Go 初級編 受講記録

はじめに

TechTrain Go 初級編のRailwayを終えたので、その受講記録を残します。

TechTrainとは

本気で、エンジニアキャリアを伸ばす、エンジニア塾です。
詳細については、公式サイトを確認してみてください。
lp.techtrain.dev

モチベーション

9月頃にポートフォリオの制作が落ち着き、改めてバックエンドの学習を進めたいと思っていました。
Railwayをやりながら、学習をしたものはこちらです。
目的は、バックエンド開発の基礎的な経験と知識を獲得することです。
バックエンド一般をながめていると、ロジックの構築と検証が大事だなあと思わされます。
インプットもさながら、手を動かしてトライアンドエラーしないと理解が進まないと実感しました。

Go 初級編

公式ドキュメント(主にpkg)や技術記事を読んで、ロジックを確認し実装してみて検証しての繰り返しでした。
画面での検証というよりは、きちんと手を動かしながら理屈を体感することが大事なのかなと思いました。

最後に

Go 初級編が終わり、次は基礎編になります。
焦らずじっくり取り組んで、バックエンドを血肉にしていこうと思います。

2023年10月の学習記録:バックエンド多め

はじめに

ポートフォリオサイトの制作が一段落つき、改めてバックエンドの学習をしています。
zenn.dev
合間に、最近GoogleCloudに触れていなかったのでCouseraの講座をやりました。
せっかくなので、ブログに学習記録を残そうと思います。

Codecademy

バックエンドのロードマップを参考に、OSやSQL、Goの学習(Free Courseのみ)をさらっとやりました。
初歩的なものですが、導入としてはありがたいコンテンツでした。
roadmap.sh

  • Fundamentals of Operating Systems

www.codecademy.com

www.codecademy.com

  • Learn Go

www.codecademy.com

  • Learn Go: Loops, Arrays, Maps, and Structs

www.codecademy.com

OS

OS開発関連のコンテンツをやりました。
プログラミングをはじめたころは、「OSって、開発でそんなに大事なのかな」と思っていました。
ただバックエンドやGoogle Cloudの学習をしていると、思った以上に大事だと思い知らされます。
なんとなく把握するレベルではありますが、振り返ってまたやるとさらに学びがあると思いました。

  • Writing an OS in 1,000 Lines

operating-system-in-1000-lines.vercel.app

  • 45分でゼロから作る!OS自作ライブコーディング 2023-7-29 C-3

www.youtube.com

Go

Goの公式ドキュメントを一通り読みました。
雰囲気だけわかっているものも多いですが、pkgなど実装しながら戻るものも多いのでよしとしています。

  • ドキュメント

go.dev

  • Effective Go

go.dev

  • 技術仕様

go.dev
Goは過去に少し触れています。ただまだ全然習得に至っていないので、一冊読みました。

  • Go言語プログラミングエッセンス

gihyo.jp
Goの文法やアプリ開発に必要なノウハウまで、幅広く濃い内容でした。

Coursera

最近Google Cloudに触れていなかったので、前々から触りたかったDevOpsの講座などをやりました。

  • Google Professional Workspace Administrator プロフェッショナル認定証

www.coursera.org

  • Preparing for Google Cloud Certification: Cloud DevOps Engineer プロフェッショナル認定証

www.coursera.org

書籍

主にバックエンド、テストの書籍を読みました。

アルゴリズムちゃんと触れたことがなかったので、読みました。
アニメーションのあるサイトがあり、そちらを見ながら進めました。
最後の方は理解できていないです。
book.mynavi.jp

  • ハッキングAPI

APIを、セキュリティテストなどの方向から解説した本です。
Web API: The Good Parts」もそうですが、セキュリティリスクについてAPIは触れられていることが多い気がします。
開発、実装するときには気をつけようと思います。
www.oreilly.co.jp

  • Web APIテスト技法

APIやテスト戦略・技法など網羅的に学ぶことができました。
ツール類の紹介や、検証できるサイトやコードの用意もあり素晴らしかったです。
Postmanいいなと思いました。
www.shoeisha.co.jp
www.postman.com

  • はじめて学ぶソフトウェアのテスト技法

ソフトウェアテストのテスト技法として、定番となっているようなので読みました。
少ないテストで多くの欠陥を検出するというコンセプトは、とても共感できました。
一通りのテスト技法が、コンパクトにまとめられています。
bookplus.nikkei.com

SQLでやるべきことではなく、やるべきではないことを網羅的に触れられていました。
現時点ではかなり難易度が高く、ほぼ眺めるだけで精一杯でした。
一通りSQLをやってから、また戻ってこようと思います。
www.oreilly.co.jp

さいごに

最近は少し涼しくなってきました。
一朝一夕とはいきませんが、これからもある程度気楽に、地道に実装をしていこうと思います。