第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

さいごに

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

Python 入門編2 自動化 Railway 受講記録

はじめに

今回はTechTrainで、Data Science RailwayのPython 入門編2 - 自動化 -を終えたので、その受講記録を残します。

TechTrainとは

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

lp.techtrain.dev

モチベーション

先日、PythonRailway第二弾がリリースされました。
note.com
キャンペーンもあるので、なるはやで取り組んでおこうと思いました。

Python 入門編

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

今回も最後のみ、面談でのクリア判定が必要なstationになっています。
正規表現周りは、ちゃんと学んだことがなかったので、よい学習になりました。

最後に

Python 入門編2 - 自動化 -の受講記録を記載させていただきました。
普段Pythonにあまり触れていないので、こういった機会をいただいて触るとすごく楽しく感じました。

オライリーの名著3冊を読んでみて

はじめに

ウルシステムズ株式会社様の「ITエンジニアを応援!【オライリー書籍プレゼント Twitterキャンペーン】」企画で、私の欲しいオライリーの本3冊をいただきました。
一通り読み終わったので、新鮮なうちに感想を残そうと思います。


www.ulsystems.co.jp
www.oreilly.co.jp

リーダブルコード

www.oreilly.co.jp
プログラミングをはじめたころは、「とりあえず動けば・・・!」という思いでコードを書くことが多かったです。
しかし他の方に見ていただくことが多くなったり、開発プロセスを意識することが多くなると、可読性などは避けて通れないと感じます。
新人エンジニアの必読書として、よく挙がる本ですが、比較的コンパクトな本の割に「うっ・・・」と思うことが多い内容でした。

テストがプロダクトの開発の邪魔になる。ーープロジェクトの一部にすぎないテストが、プロジェクト全体を支配している状況を目にしたことがある。テストが触れてはいけない神のようになっているのだ。プログラマたちは、貴重なエンジニアリングの時間を犠牲にしていると知りながら、ある種の儀式としてテストを行っているのである。
(リーダブルコード p196:Dustin Boswell、Trevor Foucher 著、角 征典 訳 より引用)

テストは大事と思いながら、プロダクトとのバランスは大事だと思うことがあります。
ポートフォリオを作りながら、「開発とテストどちらもやるの大変すぎる」と思っていました。
たまに読みかえして、反省する本かもしれません。

Real World HTTP 第2版

www.oreilly.co.jp
全部で500P弱ほどの、とても分量のある本です。
フロントエンドの学習をはじめたころ、WebやInternetの知識が全然足りないと感じることがありました。(今でもかもしれません)
ずっと欲しかった本で、ようやく手に入りました。ありがとうございます。
ところどころGoによる、サンプル実装コードがあり、説明と相まって理解を助けてくれます。
最後の方は、CDNだったりクラウド関連の話まで出てきますが、読んでいて「なんだかWebの歴史書みたいだな」と思いました。
今後もWebでわからないことがあったら、この歴史書に頼ることがあると思います。

Web API: The Good Parts

www.oreilly.co.jp
この本も、ずっと欲しかった本です。
最初APIについて調べていた頃、「まとまった知識がほしいな」と思うことがありました。
「GET、POST、PUT、DELETE」等のノウハウはネットで得ることはできると思います。
本書では、APIの設計やセキュリティについても触れられていて、「やっぱり読んでよかった」と思いました。
フロントエンドの実装をするときに、ローカルから外部APIを使う場合、結構CORエラーでハマったことが多かったです。
CORSについても、ある程度詳しく書いてあるのでかなり助かりました。
これからバックエンドの学習をする時こそ、この本に頼ることになる気がしています。

さいごに

コードをたくさん書いていると、こうしてたまに読書をする時間がありがたいなあと思うことがあります。
名著と呼ばれるような本は、ググるだけでは得られない知識をくださるような気がします。
今後の開発に役に立てていきたいと思います。
ウルシステムズ株式会社様とオライリー・ジャパン様に御礼を申し上げます。