駆け出しエンジニアはPMFの夢を見るか?

駆け出しエンジニアの記録

『ふつうのLinuxプログラミング 第2版』を読んだ

www.sbcr.jp

Linuxの仕組みから始まり、よく使うコマンドの簡易版を自作しながらLinuxプログラミングについて学び、最後にHTTPサーバを作ってネットワークプログラミングについて学べる本。Spring でHTTPリクエストがどのようにルーティングされるのかについて知りたくなり、そもそもHTTPサーバってどんな仕組みなんだっけ?と知りたくなったので読んだ。

「プロセス」と「ファイルシステム」と「ストリーム」の3つの概念でLinuxの構造が説明でき、ファイルの読み書き・デバイスとのやりとり・パイプ・ネットワーク通信やプロセス間通信が全て同じ枠組みで動いていることを、よく使うコマンドの簡易版を自作やHTTPサーバを作ることで体感もできた。駆け出し当初にLinuxプログラミングをかじったときはピンと来なかったが、シンプルなインタフェースで汎用的な機能を実現しており、経験年数を積んで凄さを理解できた。

本書を読んだ後に、Javaが自分に一番馴染みがある言語なので、Javaで写経してみた。C言語のコードではプロセスをforkして並列化に対応したが、Javaで写経したものはスレッドを使って並列化させてみた。HTTPサーバを実装すると、並列化とかネットワークプログラミングをどうやるかも勉強できて、新しい言語に入門時の素振りにいい方法だと思った。

GitHub - genkiFurukawa/my-http-server: 「ふつうの Linux プログラミング 第 2 版」(ISBN: 978-4-7973-8647-9)のHTTPサーバをJavaで写経したリポジトリ

次はこの本を読んで、プログラムの実行時にメモリがどうなっているかなどを勉強していきたい。

Cプログラミング入門以前 [第3版] | マイナビブックス