Vol.317 結城浩/自学自習とプログラミング言語/自然現象と数学/数学の記述問題でどこまで説明を書くべきか/数学ガールに掛かった時間/

結城浩の「コミュニケーションの心がけ」2018年4月24日 Vol.317


はじめに

結城浩です。

いつも結城メルマガをご愛読ありがとうございます。

新刊『数学ガール/ポアンカレ予想』はあちこちで好評を博しているようで、とてもうれしいです。

ジュンク堂書店池袋本店では新刊ランキングで第10位になったそうです。これは理工学書だけではなく写真集や英語学習書といった、すべてのジャンルの書籍中第10位なので、とてもすごいことなんです。応援してくださるみなさんに心から感謝!

◆ジュンク堂書店池袋本店(@junkudo_ike さん)
https://twitter.com/junkudo_ike/status/985787189966458880

◆池袋ジュンク堂で10位!!(@ECpeto さん)
https://twitter.com/ECpeto/status/987960413802319873

結城は、毎日のように(毎時間のように)「数学ガール」を検索しては、読者さんの感想を読んでいます。あまりにもうれしいので、いくつかピックアップしてTogetterというサービスでまとめてしまいました。以下で読むことができます。

内容に関わるツイートが含まれていますので、いわゆる「ネタバレ」を気にする方はご注意ください。一応は大きなネタバレがないものを選んだつもりですけれど。

◆『数学ガール/ポアンカレ予想』を読んでみました!
https://togetter.com/li/1220310

◆『数学ガール/ポアンカレ予想』
http://www.hyuki.com/girl/poincare.html


目次

  • はじめに
  • 目次
  • ScanSnapでスキャンするときのコツ
  • 初心者が自学自習するのにいいプログラミング言語は何か - 学ぶときの心がけ
  • 自然現象はなぜ数学で説明できるのか
  • 数学の記述問題でどこまで説明を書くべきか - 学ぶときの心がけ
  • 『数学ガール/ポアンカレ予想』を書くのにどれだけの時間が掛かりましたか - 本を書く心がけ
  • 妻と二人で
  • おわりに

ScanSnapでスキャンするときのコツ

質問

ScanSnapでノートを10冊ほどスキャンしようとしたことがあるのですが、時間がかかるので途中で諦めてしまいました。何かコツがあれば教えてください。

回答

ご質問ありがとうございます。

紙の本やノートをスキャンしてPDFにする作業、けっこう時間掛かりますよね。

私も「こうすればいい」という決定版の方法を持っているわけではないのですが、いくつか書いてみます。

スキャンする作業は時間は掛かりますが、頭を使う作業ではありません。なので、もう頭は疲れていて知的作業はできないな、というときにスキャン作業をします。そうすると時間が無駄にならないし「仕事をした」という気分になるのでいいですね。

スキャンするときに解像度を選べます。でも解像度を高くすると急激に処理スピードが落ちます。なので、結城はあまり解像度を高くし過ぎないようにしています。でもそれが許容できるのは、文字の本が多いからかもしれませんね。写真やグラフィックの本ですと、解像度を高くしないと意味がない人もいるでしょうから、いくつか試して自分の許容範囲を見つけるのがいいと思います。

スキャンするときには、数十ページずつScanSnapに乗せて処理しますので、細かい待ち時間が発生します。数十ページのスキャンが終わるまでの「ちょっと待ち」が何度も発生するのです。なので、その「ちょっと待ち」でできる作業を用意するのがいいです。結城の場合には、部屋の片付けをよくやりますね。またその「ちょっと待ち」の間に次の本を裁断しておくというのもいいです。

スキャンするときに時間を食う原因の一つは紙詰まりです。本を裁断してスキャンする場合には、ノリの部分が残らないように注意して裁断します。文章を切らないように注意しつつも、大胆に切った方がうまくいくようです。

本の裁断にはカッターよりも大きめの裁断機が便利です。私はスキャンのためだけに裁断機を買いました。たいへん便利なのですが、裁断機は場所をとって邪魔ですね。

古い本をスキャンするときには、紙のすべりが悪くなって時間が掛かります。これはそういうものなので、我慢します。

作業が飽きるといやになるので、厚い本と薄い本とを交互にスキャンするといいですね。

スキャンしてPDFにすると、たいへん便利です。検索できるようにOCR(光学文字認識処理)を掛けるのは強くおすすめです。

結城は外出先での調べ物や読書が非常に多いのですが、スキャンなどによって電子化した本がなかったらもう仕事になりません。そのくらい活用していますね。

BOOKSCANの活用も有効ですね。

そういえば、ScanSnapとは関係ないですが、以前受けたインタビューがこちらにあります。もしも未読ならどうぞ。

◆BOOKSCANインタビュー
https://www.bookscan.co.jp/interviewarticle/257

質問ありがとうございました! ScanSnapをうまく活用してみてください!


初心者が自学自習するのにいいプログラミング言語は何か - 学ぶときの心がけ

質問

私はプログラミングを自学自習したいと思っています。初心者にとってはどのプログラミング言語がおすすめでしょうか。

回答

ご質問ありがとうございます。

これは、とても難しい質問です。すぐに思いつくのはRubyですが、それ以外のプログラミング言語が初心者に向かないというわけではありません。

◆オブジェクト指向スクリプト言語Ruby
https://www.ruby-lang.org/ja/

なぜ答えるのが難しいかというと、初心者がプログラミング言語を学ぶときには「プログラミング言語の違い」よりも「ちょっとつまずいたときの解決手段の有無」の方がはるかに大きな影響があると思うからです。本当に一人だけで自学自習できる人なら、プログラミング言語による差というものはそれほど大きくないんじゃないでしょうか。

ですから、もしもあなたの「そば」に、あるプログラミング言語に詳しくて教えてくれる人がいたならば、そのプログラミング言語を学ぶのは一つの手だと思います。ここでいう「そば」というのは物理的なそばでなくてもかまいません。ネットを通じて質問したり相談できる相手がいるという意味です。

先ほどRubyと一つだけプログラミング言語を挙げましたが、それはRubyを教えてくれる人があなたの「そば」にいる可能性が高そうだと思ったからです。その意味ではRubyにこだわらなくても、PythonでもJavaでもJavaScriptでも……(ここにメジャーなプログラミング言語が並んでいると思ってください)なんでもかまいません。

また、初心者がつまずくところというのはプログラミング言語ではなく、プログラミングを行う環境構築の部分ではないかとも思います。本当のプログラミング初心者だとすると、テキストエディタや統合開発環境の使い方や、ソフトウェアのインストールや、ファイルの作成や削除、拡張子の扱い、環境変数の有無、パッケージマネージャ、複数存在する実行環境の選択など、「プログラミング言語を学ぶ」以前の周辺知識でかなり苦労すると想像します。

「ドットインストール」という動画で学ぶプログラミング学習サイトがあります。これは数多くの動画を通して「最初の難関」を乗り越えさせてくれるサイトではないかと思います。ぜひ見てみてください(結城はドットインストールのいくつかの無料講座を眺めたことがありますが、運営とは関係ありません)。

◆ドットインストール
https://dotinstall.com

以上です。がんばってプログラミングに挑戦してくださいね!


自然現象はなぜ数学で説明できるのか

質問

数学って人間が作ったものだと思うんですが、自然現象はなぜ数学で説明できるんでしょうか。

回答

これはすばらしい質問です。

ウィグナーという物理学者は、このことを「自然科学において数学は理不尽なまでに有効」と表現しました。自然科学とは無関係に作り出したもののはずなのに、自然科学の研究や表現において数学が非常に有効に働くということを表したのですね。

現代の数学は「もしもこのような前提条件が成り立つとしたら、いったい何がいえるか」を極限まで厳密に追求したものといえます(話をかなり単純化していますけれど)。ですから、自然科学を研究している人が、自分の研究課題を数学の前提条件に結びつけることができたなら、研究は数学の力を借りて千里を一気に駆けることができるのです。

数学者が作る数学的体系はその意味でハイウェイのようなものといえます。どんな車が高速道路の入口にやって来るかは知らず、数学者たちは淡々と立体交差の高速道路を建築しています。いったん入口をうまく入ることができたなら、何十キロ、何百キロの先まで高速に到達できるというわけです。

自然科学者はしばしば自分の研究課題の数理モデルを作ります。あるいは微分方程式の形で、あるいは代数的構造の形で、自分の研究課題を抽象化して数学で表現するのです。それは先ほどのたとえでいうならば、数学者が用意した数多くのハイウェイ、その入口の一つに入ろうとする試みです。いったんハイウェイに乗り、遠くの出口で降りたとき、数学なしではたどりつくのが困難であった遠くの結論まで高速に到達できるでしょう。

ただし、一点注意が必要です。それは自然科学は数学そのものではないということです。自然科学での研究対象を数学の前提条件に結びつける(数理モデルを作る)段階でずれがあるなら、そのずれのことを忘れないようにしなければなりませんね。

すばらしい質問をありがとうございました。