すゅん/Суюнのメモ帳/裏紙

またの名をゴミ捨て場

【UECアドカレ2023その2】今まで読んでみて良かった本を紹介する

はじめに

この記事はUEC 2 Advent Calendar 2023の23日目の記事です。

adventar.org

前日の記事はツナマヨさんの「積んでたコンテンツを消化していくよ」でした。

tunamayo1412.hatenablog.com

買ったけど未だ読めていない本は自分の本棚にもそこそこありますね…。(本当はこの記事でもちょっと紹介する予定でしたが締め切りを過ぎたのでカットしました)

自己紹介

電通大で2回目の3年生をしているすゅんという者です。昔はしゅんと名乗っていましたがあまりにもありきたりな名前で遂に23生とコンフリクトしたので変えました。

X(旧Twitter)は卒研配属を機に鍵垢へ移行しましたが、電通大生にフォローされたら基本的にはフォロー返しをするつもりでいます。まぁいるとは思えませんが。

twitter.com

サークルはVLLと〼研に所属しています。

VLL(バーチャルライブ研究会)では去年まで照明関係の制作をしていましたが、今年は留年したのでライブ制作に一切関わらずMIKUECのときだけ講堂3階に来る謎の人間になっていました。現役部員との接点が皆無で孤立するのがきつすぎたので来年からは観客席で観ることにします…。

〼研(アイドルマスター研究会)は今年の夏から所属しています。アイマスは1年生の頃には知っていたし好きではあったのですが、自分ごときがプロデューサーを名乗るのはちょっとな…というのと、(存在を知ったときには既に新入生ではなくなってたこともあり)途中から加わるのもな…というわけで入部はしていませんでした。

が、今年の1月に実績を作ってしまった*1のでP業から逃れなれなくなり入部しました。今となっては懐かしい話です。

↑ これは自分のPとしてのアカウント

今年は東京ドームに行ってUOを50本くらい折ったり、名古屋に行って生バンドの演奏に大興奮したり、また東京ドームに行ってウンババしたりしてました。ウンババってなんだよ。

突然ですが、読書していますか?

本を読むのは良いことです。が、その魅力を具体的に語るのは自分には大変なのでChatGPT君に代わりに説明してもらいます。

技術書を読むことにはさまざまな利点があります。以下はそのいくつかです:

  1. 知識の獲得: 技術書は、特定の分野やテーマに関する深い知識を提供します。新しい技術や概念を理解するための基礎を築くのに役立ちます。
  2. スキルの向上: 技術書は、特定のスキルやツールの使用方法についての具体的な情報を提供します。実践的な知識を得て、スキルを向上させることができます。
  3. 問題解決の手助け: 技術書は、問題解決に役立つ情報を提供することがあります。特定の課題やプロジェクトに取り組む際に、参考になる情報を見つけることができます。
  4. 最新の動向の理解: 技術は常に進化しています。技術書は最新の動向やトレンドについての情報を提供し、業界の変化に対応する手助けをします。
  5. 専門用語の理解: 特定の分野に特有の専門用語や概念を学ぶことができます。これにより、その分野でのコミュニケーションや理解が容易になります。
  6. 自己学習の促進: 技術書は自己学習を促進する手段となります。自分のペースで進められ、関心のあるトピックに焦点を当てることができます。
  7. 職業的成長: 新しい技術やスキルの習得は、職業的な成長につながります。技術書を通じて学んだことを実践に移し、仕事のパフォーマンスを向上させることができます。
  8. ネットワーキングの機会: 技術書を読むことで、その分野の著名な著者や専門家とのネットワーキングの機会が広がります。関連するコミュニティやイベントに参加するきっかけとなることがあります。

技術書はある分野において深い理解を得る手段として非常に有益です。それにより、個人のスキルや知識を向上させ、職業的な成功に寄与することができます。

というわけで今まで買って読んだ本の中から電通大生におすすめできる本を紹介します。

ほとんどは大学入学後に買ったものですが、中には高校生の頃に買ったものもあります。

また、タイトル(見出し)の部分をクリックすると本の紹介ページに飛びます。自分のしょぼい説明よりもそっちを見た方がいいです(企画崩壊)。


学生向け

LaTeX超入門

電通大では実験レポートを書く機会が非常に多いです。しかも数式をそれなりに書くことになります。一般的な文書作成ソフトのWordでは数式を大量に記述すると動作が重くなったり、また余計なおせっかいによって自分の思い通りにならないという苦労を経験しがちです。

というわけでほとんどの人はLaTeXでレポートを作成することになります。しかしながらLaTeXは環境構築や文書の作成方法などがWordとは大きく異なるため、初心者はそこそこ難しいです。一応コンリテの授業で簡単な使い方は習うのですが…。

そんな人におすすめなのがこの本です。オンラインでLaTeXを使えるCloud LaTeXというサービスを使い、LaTeXのあれこれを一通り学ぶことができます。とりあえずこれを読んでおけばだいたいは何とかなります。サイズも小さくて持ち運びにも便利です。

1年次の基礎科学実験だけでなく、各類・プログラムでの専門的な実験の授業でしょっちゅうレポートを書くことになるので、早めに覚えておくのが良いでしょう。

スペースキーで見た目を整えるのはやめなさい

エクセル方眼紙で文書を作るのはやめなさい

そうは言ってもいきなりLaTeXに切り替えるのは大変ですし、また大学の課題以外のところでもWordを使う機会もあるでしょう。Excelについては実験でも普通に使いますし。

これらの本にはWordやExcelをいい感じに使うためのテクニックがいっぱい載っています。レポートはWord派の人におすすめです。

分析者のためのデータ解釈学入門

実験で得られるデータというものはどうあがいても真の値から少しずれたものとなります。そこで真の値はどういうものなのか推定することになるのですが…。

この本はそういった手法を行うための入門書です。謁見に苦しんでいる人におすすめです。

まぁ、なぜか機シスの実験では謁見で注意されたことのほとんどが無視されてるんやけどな…

同じシリーズに統計学版もあります(買ったけど読めてない)。

www.socym.co.jp

いかにして問題をとくか

電通大の1年の授業では高校の延長線上にあるような数学や物理の授業が多く、結構な頻度で練習問題を解くことになります。こういった問題を解くときの考え方や発想のヒントがこの本にはたくさん詰まっています。問題を解決するためのアプローチは競技的な数学、物理、あるいはプログラミングの問題だけでなく現実の課題、それこそ研究のときにもきっと役立ってくれるはずです。まだ研究したことないけど。

個人的には大学受験の頃に出会いたかった本です。仮面浪人する人にもおすすめです。

数学ガール/乱択アルゴリズム

数学ガールは数学やそれに関連する分野の問題について登場人物が議論し、それに伴って人間関係が変化したりする小説です。時間軸的な順序はありますが、基本的には各巻は独立して読めます。

この巻は基礎プロでも習うソートアルゴリズムや計算量、それと確率や行列の問題などが登場します。

電通大の1年生にぴったりの本です。

よくわかる初等力学

Ⅲ類は2学期(1年の後学期)で力学と力学演習の授業があります(Ⅱ類にもあったような気がしますが詳しくは知りません)。そこでは行列や微積分を使って古典力学をやることになります。まぁ最初の方は高校物理に行列や微積を導入しただけなので簡単(当社比)なのですが、後半から回転運動が登場し、これが初見の概念のオンパレードなので高校物理の資産が全く活かせません。

というわけで生協で参考書を探し、そして見つけたのがこの本です。議論が一歩ずつ丁寧に進み、また図も豊富で非常に説明がわかりやすいです。Ⅲ類に進んだ人は買っておいて損はしないでしょう。

ちなみに熱力学や電磁気学解析力学量子力学版もあります(未購入)。


初級ロシア語文法

ここから2年生以上向けです。

ロシア語の文法書ではたぶんこれが一番初心者向けだと思います。電通大の二外の範囲でここまでのものが必要になるかはわかりませんが。

ロシア語をもっと知りたい人や、文法わけわからんな人におすすめです。

数学ガール/ガロア理論

現在どうなっているのかは知りませんが、自分が2年だったときは現代数学入門Bでガロア理論を扱っていました。

ガロア理論をある程度理解するのが授業の目標だったのですが、まぁ途中からわけわかめになったので参考にする目的で購入。

最初は全然分からなかったのですが、最終課題のレポート(当時)を書く過程で何度も読んだ結果7~8割くらいは理解できるようになりました。

ガロア理論はちょっとかじっておくと2次方程式の解の公式に何気なく存在する\sqrt{b^ 2 -4ac}が実はすごいやつであることがわかったりするので、数学が好きな人は履修してみても良いでしょう。

あ、履修するならヨビノリの群論入門も視聴した方が良いですよ。

ひとりで学べる電磁気学

1年の物概の電磁気の部分やⅢ類2年での(基礎)電磁気学ではベクトル解析を使うことになります。

この本は教科書とは少し別の角度から電磁気学を学ぶことができます。

高校生の頃に買った本です。高校物理版マクスウェル方程式を自作して課題で使ったりしてました。

もう解き方で迷わない ステップ解法で学ぶ 材料力学

材料力学の問題は「ある一定の手順」に従えば解けます。が、その「手順」を覚えるのが結構大変なのです。なにせ授業で使う教科書の説明が非常に不親切なのですから。

この本はその「手順」をわかりやすく説明してくれます。何なら教科書のほとんどの範囲をカバーしています。自分の知る限り、材力の参考書としては完璧と言っても言い過ぎではないでしょう。

後は教科書にしか載っていない部分を少し覚えれば、単位はもう取ったも同然である。

CPUの創りかた

CPU――Central Processing Unit(中央演算処理装置)――この記事を読んでいるあなたのパソコンやスマホに必ず搭載されている部品です。これくらい身近な部品であるのに、どんな原理で動いているのか知っている人はほとんどいないのではないでしょうか。

この本は簡単な4bitのCPU「TD4*2」の回路を設計する本です。もちろん、部品を秋葉原とかで買い揃えれば実際に作ることもできます。

電気・電子回路の勉強になる本です。実は高校生の頃にちょっとしたロボットの回路を描いたりはんだ付けを頑張っていたりしたので、その関連で本書の存在を知って購入しました。今久しぶりにペラペラめくってみたらカルノー図の説明が載っていました(驚愕)。なので論理回路の勉強にもなるようです。

Ⅱ類の人には役立ちそう(知らんけど)。


プログラミング(大学生活でも役立ちそうなやつ)

問題解決のための「アルゴリズム×数学」が基礎からしっかり身につく本

この本は簡単なアルゴリズムと、それを学ぶために必要な数学をわかりやすく教える本です。基礎プロのアルゴリズムや計算量などの内容をしっかりと網羅しており、また、グラフ上の探索など、競技プログラミングで使うようなアルゴリズムも載っています。

基礎プロが苦手な人、(競技)プログラミングやアルゴリズムに興味がある人におすすめです。そして競プロ沼に足を突っ込んでみてほしい

わかばちゃんと学ぶ Git使い方入門

フォルダがこんなことになった覚えはありませんか?

これを解決するのがバージョン管理システムGitです。この本はGitおよびGitに関連するサービスであるGitHubの基本的な使い方が載っています。

みんなもGitを使ってレポートを書きましょう。

ちなみに機シスではマシンデザインAという授業で設計を行うのですが、そこでもちょっとだけ役に立ちます。

現場で使える!Python科学技術計算入門

Pythonでの数値計算のためのNumPy, SciPy, 代数計算のためのSymPy, グラフを作成するmatplotlib, データ処理のためのpandas, そして高速化のためのCython, Numbaについて簡単な使い方を解説しています。

Excelで描けないグラフのためにmatplotlibを使おうとして買いました。

実験等で理論値を求めたいときなどに便利です。

Pythonで超らくらくに数学をこなす本

こちらはSymPyを使って高校範囲+行列の数学をやる本です。

数学の課題では文字変数のまま計算することがしばしばありますが、コンピュータでは具体的な値を求めるのは得意な一方で代数学的な計算はなかなか難しいです。

SymPyはPythonでこういった計算を行うためのライブラリです。これを課題で使わないでいつ使うんですか。

1週間で学べる! Julia数値計算プログラミング

何かと便利なPythonではありますが、実行速度が遅いという欠点があります(だからこそNumPyなどのライブラリが存在するのですが)。

そんなあなたにおすすめなのがJuliaというプログラミング言語です。

Pythonみたいに手軽に書けて使える言語でありながら、JITコンパイルを採用しているため適切に書けばC/C++に匹敵する…はさすがに言い過ぎかな…C/C++よりちょっと遅いくらいまで高速化できる言語となっています。

C言語PythonR言語と連携することもできます。

科学技術計算向けを謳っていることもあり、文法的にはPythonよりも書きやすいです。(SymPyをjuliaで使えるようにしたパッケージSymPy.jlも存在し、Juliaの文法も合わさってこちらの方がPythonで使うよりも使いやすいです。)

この本を読めばJuliaの文法から具体的な数値計算の方法まで学ぶことができます。

Juliaを試してみたい人におすすめです。


プログラミング(やや趣味寄り)

ちょうぜつソフトウェア設計入門

オブジェクト指向と、それを使った設計・開発について解説する本です。

オブジェクト指向については基礎プロでも習いますが…何かよくわからないというか具体的な定義がないというか…X(旧Twitter)上でもしばしば議論が発生しています。そういったオブジェクト指向に関する疑問についておそらく解決してくれる本だと思います(オブジェクト指向を理解できるようになるとは言っていない)。

また、最後の章である「アジャイル開発」は読んでおくとちょっと歴史の勉強になります。コンリテでは「昔はウォーターフォール型開発だったけど今はアジャイル型開発が普及している」と習いましたが実は…?という話をしています。

個人的には最初の方に出てきたクリーンアーキテクチャの考え方はプログラミング以外でも応用が効きそうだなと思いました。マシデザAをやる前に知りたかった…。

良いコード/悪いコードで学ぶ設計入門

主にオブジェクト指向プログラミングでやりがちな悪いコードの書き方と、それに対する改善方法を集めた本です。とはいえ、オブジェクト指向を使わない人にとっても役立つ知識がたくさん詰まっています。

なんとなくですが、さっきの「ちょうぜつソフトウェア設計入門」がマクロ的で、この本はミクロ的な感じというか…セットで読んでおくのが良いと思います。

少しネタバレになってしまいますが、この本は変更容易性の向上――つまり修正、改良、アップデートなどを簡単に行えるような設計にすることを目標にしていて、マシデザAでめちゃめちゃ苦労した自分にすごく刺さりました。今後どこかで設計をすることになったときはこれを心がけたいところです(できるとは言っていない)。

すごいHaskellたのしく学ぼう!

純粋関数型言語であるHaskellと、関数型プログラミングを学べる本です。こんな言語もあるんだなと、初めて読んだときは衝撃を受けました。

初めて読む人向けのアドバイス

  1. Haskellは数学です。わけがわからなくなったら定義に戻って確認しましょう。
  2. Haskell以外にも関数型言語はありますし、また最近の言語はマルチパラダイムなものがほとんどです。Haskellそのものを得意になれなくても、知識はきっとどこかで生かせるはずです。
  3. 少し古い本なので文法や環境構築の方法が変わっていたりします。この辺の記事を参考にすると良いでしょう。

zenn.dev

qiita.com

ちなみに本書の通称は「すごいH本」だったりします。死刑!

なっとく! 関数型プログラミング

こちらはScalaという言語で関数型プログラミングを解説しています。

なぜ関数型プログラミングをするのか、関数型プログラミングとはどのようなプログラミングなのかしっかりと理解できる内容で、また後半では簡単なアプリケーションを実際に設計し作成します。

ざっと読んだ感じだと前半は丁寧に関数型プログラミングについて手続き型やオブジェクト指向と対比しながら説明しており、初心者向けだなと思いました。後半はめんどくさくて読み飛ばしましたが…。

関数型プログラミングについて学びたい人におすすめです。

実践Julia入門

さっきJuliaについて紹介しましたが、最近できた言語だということもあって他の言語より日本語の資料が非常に少ないのです。おまけに速いペースでバージョンが上がるので今ある書籍も既に情報が古いものもあったりします。

この本は比較的最近(2023年3月)出た本で、しかも現在のJuliaの書籍の中では非常に内容が豊富なものの一つです。Juliaの仕様について詳細に解説し、後半では機械学習などの応用についても簡単な例を載せています。

Juliaを使うなら持っておきたい一冊です。

競技プログラミングの鉄則

競技プログラミングについてはさっきもちらっと言及しましたが、ざっくり言うと数学や物理の試験のプログラミング版で、問題に対し正しい出力をするプログラムをどれだけ多く、早く提出できるかを競うものです。

単に正しく出力するプログラムだと、実行時間制限(たいていは2秒)に間に合わないものもあるので、効率よく計算するアルゴリズムを考える必要があります。またそもそも正しい答えをどうやって出したらいいのかわからないような難しい問題もあります。

この本ではそういった競プロのためのテクニックがたくさん、しかも図も豊富に使った丁寧な説明で書かれています。

競プロをやるなら必須の一冊です。通称は鉄則本です。

問題解決力を鍛える!アルゴリズムとデータ構造

アルゴリズムとデータ構造について書かれた本は生協でも多数売ってはいますが、この本は比較的競プロ寄りの内容になっています。

競プロ寄りの内容といっても中身は教科書的で、例えば競プロでは主にライブラリで済ませるスタックやキューについても実際に実装しており、また鉄則本で解説されてない難しいグラフの問題もカバーしています。

鉄則本が出る前はこれが初心者向けの本として扱われていたと思います。たぶん。著者のSNSや競プロでのアカウント名から、けんちょん本と呼ばれています。


麻雀(完全に趣味)

麻雀1年目の教科書

麻雀はまずルールを覚えるのが大変で、覚えてからも上達するのはもっと大変なゲームです。でもネット麻雀を遊ぶだけなら「とりあえず4面子1雀頭作って役を作ればおk」さえ覚えればいいです。

「で、とりあえずまぁ遊べるようにはなったけどどうやって勝てばええんや」という人におすすめなのがこの本です。麻雀を主に遊んでいるVTuberの千羽黒乃さんが書いた麻雀の入門書で、基本的な攻撃と守備、そして麻雀の練習における心構えについて書かれています。

この本の内容を全て覚えればルール覚えたての人相手には負けなくなると思います。

千羽黒乃の強くなる麻雀

「とりあえずまっすぐ手を進めてリーチを目指す、リーチされたら基本は降りる…だけじゃ勝てなくなってきた」というあなたにおすすめなのがこの本です。千羽黒乃さんの2冊目の戦術書で、手組み、鳴き、押し引き、読み、着取り(順位と点数状況に応じた戦略)の5つのスキルツリーがあるということ、そしてこの場合はこうするという大まかな戦略について学べます。

この本に載っている全ての技術を極めればかなり上達すると思われます。

(自分はそこそこしか身につけられていませんが、雀魂で雀傑になって一区切りついたのと、あと留年回避に専念することにしたのでしばらく麻雀をやめることにしました。復帰するときはもう一度読み直します。)

麻雀初心者を卒業したい人におすすめです。

麻雀技術の教科書

最近はMリーグが世間でも流行りつつありますね。この本はMリーガーでもある小林剛さんが制作に関わっている本で、さっき書いた「大まかな戦略」について具体的にどうやるのか、こういうケースはどちらが得なのか、などといったことについて書かれています。

自分はとりあえず一周したけど全然習得できていません。麻雀を極めたい人におすすめです。

ちなみに守備編もあります(未購入)。

www.ikedashoten.co.jp

対戦型麻雀ゲームAIのアルゴリズムと実装

最近はAI=深層学習みたいな扱いをされていますが、そもそも人工知能というのは人間の思考をコンピューターにやらせるやつ全般を指すのであって…。

この本はJavaScriptでルールベースの麻雀AIを作った人がその実装を解説する本です。天鳳の四段、雀魂の雀豪くらいの強さだそうです。麻雀の戦術書や統計データを参考にして評価値などを設定しているので、人間でも参考になる部分がそこそこあります。ルールベースなので理論上は人間でも真似できますし。

ちなみに著者は電通大の卒業生らしいっすよ?

対戦したい人はこちらから↓

kobalab.net

おまけ

オルクセン王国史~野蛮なオークの国は、如何にして平和なエルフの国を焼き払うに至ったか~

Webで連載されていた、ややファンタジーなヨーロッパ風の世界でガチの近代的戦争をやった小説がついに書籍化されました。

昔Web版を紹介するためにツイートしたときの文がこんな感じなのですが…

普通の人へ:ダークエルフがオークたちと組んでエルフと戦う話です…銃と大砲で。

軍事系の知識がちょっとある人へ:兵站とその重要性についての入門書です。

ガチ勢へ:君は数々の小ネタの元ネタをすべて把握できるか?

読もうか迷っている人へ:参考文献リストを見よ。

元ツイのリンク(鍵垢なので見れない)

普通に書籍のあらすじ紹介の方が優秀なので引用しますね…。

「銃と魔法」の時代。オーク族を筆頭に多数の魔種族を擁する連合国家オルクセンと、美しいエルフたちの国エルフィンド。歴史的対立を深める両国家の国境で、オークの王グスタフと、故国を追われたダークエルフ氏族長ディネルースは、運命の邂逅を遂げた……。平和なエルフの国を、野蛮なオークが焼き尽くす――そんな「異世界ファンタジーあるある」の常識を覆した異世界戦記がここに誕生!

現実の方でも戦争が起こってしまいましたが、これを読めば何が起こっているのかちょっぴり理解できるようになった気分になれます。

あと異世界で現代知識チートなんてそう簡単に上手くはいかないことも学べます。当たり前だよなぁ?

ミリタリー系の話が好きな人におすすめです。ちなみに深夜に読むのは空腹感に襲われるのでおすすめしません。

おわりに

長々と書いていたら遅刻しました。ごめんなさい。

もし欲しい本が見つかったのであれば早めに購入するのをおすすめします。よほどの名著でもなければすぐに本屋からは消滅してしまいますので…。ちなみに電通大生は生協で買うとちょっと安く買えます。売っていない本の注文もできますよ!

明日の記事はhikkiさんの担当なのですが…コメントが「1224=12*102←ちょいおしゃれ!」となっています。いったい何を書くのでしょうか…?


*1:ざっくり説明すると、応募されたものの中から選ばれた曲をカバーするタイプのCDがあって、自分の担当(アイマス特有の概念。一般的にはお気に入り、好きといったところ)のキャラクターに何気なく送った曲が採用された上になんと自分の名前が公式のHPやCDのブックレットに載ってしまった。詳しくは過去記事を参照。

*2:とりあえず動作するだけの4bitCPU