こんにちは。ソフトウェアエンジニア (SWE)の安東です。
突然ですが、estieのエンジニア5人の書いたRustの入門書『バックエンドエンジニアを目指す人のためのRust』が、翔泳社さんから10/25に発売されます!全448ページの大ボリュームで、様々なツールを作りながら、Rustの基礎から簡単なウェブアプリの作成、採用試験まで学べます。これからRustを初めて書く方だけでなく、Rustを触ったことはあるがアプリケーションの実装例を知りたい方にもおすすめです。
そこで今回は、本の内容と執筆風景を紹介したいと思います。
本の予約はこちらから → バックエンドエンジニアを目指す人のためのRust|翔泳社
本の紹介
本書は、Rustを初めて書く方を主な対象とした入門書です。全13章かけて、8種類のツールを作成します。
第1章 Rust はどういうところで使われているのか?
第2章 Rust のプログラムを動かせるようになろう[ Hello, World ]
第3章 インタラクティブなプログラムを作れるようになろう[ 計算クイズ ]
第4章 さまざまなデータ構造を扱えるようになろう[ ポーカーゲーム ]
第5章 関数とメソッドを扱えるようになろう[ メモリ機能付き電卓 ]
第6章 ファイル入出力のあるコマンドラインツールを作れるようになろう[ 家計簿プログラム ]
第7章 自作ライブラリを公開できるようになろう[ 本棚ツール ]
第8章 単体テストを書けるようになろう[ 勉強会カレンダーツール ]
第9章 エラーハンドリングを扱えるようになろう[ 勉強会カレンダーツール ]
第10章 かんたんなWebアプリを作れるようになろう[ TODOアプリ ]
第11章 自作Webアプリを公開しよう[ TODOアプリの公開 ]
第12章 並列処理を扱えるようになろう[ 画像処理ツール ]
第13章 バックエンドエンジニアになろう[ 採用面接 ]
どの章もツールを作ったり改良したりしながらRustについて学ぶ構成にしています。
これはなぜかというと、エンジニアとして働くにはプログラミング言語が身についているだけでは足りず、データベースやネットワークなどプログラミング言語以外の知識も数多く要求されるからです。
プログラミング言語以外の様々な知識を身につける一つの方法は、各領域の入門書をそれぞれ読むことでしょう。しかし、数多の入門書を読んで初めてエンジニアになれるというのは、まだ分野間の関係性の掴めていない初心者にとっては大変ハードルの高いことです。そこで、登場頻度の高い各分野のさわりの部分だけでもツールの作成を通じて触れておくことで、エンジニアとして最低限のことが身につき、また本格的に各分野に入門したくなったときのハードルが下がります。
このような目的で、ツールの作成をベースにプログラミング言語だけでなく周辺領域も同時に学ぶ、という構成にしています。
また、ツールを完成させるという明確な目標を置くことで学習のマイルストーンにもなりますし、なにより苦労して作ったプログラムが動いたときの感動というのは何事にも代えがたいものです。
プログラムが動いたときの感動を味わってもらうために、完成したツールが楽しく役に立つものになるよう、ツールの仕様にもこだわっています。そのため、Rust初心者だけでなく、Rustを触ったことがある方にも本書を楽しんでいただけると思います。中には中級者でも手応えのあるツールがあったり……?
執筆風景
本書は、estieでバックエンド開発を主に担当するエンジニア(estieでの職種はSWE)5人で分担して執筆しました。普段は別々のチームで働く我々ですが、業務の隙間を活用して協力しながら1年ほどかけて少しずつ書き進めてきました。締切直前までなかなか原稿が揃わず本当に脱稿できるかヒヤヒヤしていましたが、なんとか気合で完成に漕ぎ着けました。
執筆時の雰囲気を感じていただきたく、やり取りしていたSlackのスクリーンショットを少し載せておきます。
実は、本書の著者5人のうち以前からRustを使っていたのはkenkooooだけで、他の4人はもともと他のプログラミング言語をメインに使っていてRustを本格的に使い始めたのはestieに入社してからです。といっても社内には技術的な知見を集めたり質問したりできる専門のSlackチャンネルがあるなど技術的なサポート体制が整っていますし、5人とも普段別々のチームで別々の技術的課題に立ち向かって力をつけてきました。「Rust特化の入門書」ではなく「Rustを起点にしたプログラミングの入門書」を書くには絶好の体制です。
著者からのメッセージ
著者を代表して、kenkooooと私安東からのメッセージです。
kenkoooo
「estieの優秀なバックエンドエンジニアが結集すれば、プログラミング初心者が爆速でバックエンドエンジニアになれる本が書けるはず…」という思いから始まりましたが、全員が現場でサバイバルしながら力をつけていったタイプだったので、体系的に学べる形に落とし込むのに苦労しました。本書を読み終えた後、エンジニアリングを極める方向にもRustを極める方向にも進めるような、案内板のような本に仕上がったのではないかと思います。
安東 一慈
私が独学でプログラミングに入門した頃を思い出すと、プログラミング言語の入門書をひととおり読み終えたあと何をすればいいのかわからず、何年もの間停滞していたことがありました。本書では次に学ぶべきことの手がかりとして、プログラミングに関連する領域の重要な概念やキーワードを本文中に散りばめています。独学で入門している皆様や研修などで教材として活用されている皆様が、広大なソフトウェアエンジニアリングの世界を冒険するきっかけになれば幸いです。
最後に
estieはRustこそ未経験でも、ソフトウェアエンジニアリング経験者なら十分キャッチアップして働いていける環境です。興味のある方はぜひカジュアル面談しましょう!