研究, 実験, 解析について大事だと思うことをまとめました.
質問の仕方
研究室に入ったばかりの頃は当然わからないことだらけだと思います. そして, 解析そのものやツールに関しても同様です. さらに, 本人は “何がわからないのかわからない” という状態になっていることがほとんどだと思います.
このような際には, 回答者が問題の本質を特定できるような必要な情報を提供できるように気をつけてください. 必要十分な情報である必要はありません. 多くの場合, 回答者は情報を取捨選択できます.
例えば, コードが思うように動かない際に, ただ「うごきません」と質問しても, 問題を特定することはできません. (時々経験者はエスパー的能力を発揮してこれでも何かしら回答することはありますが…) 自分のやりたいこと, やったこと, 実行したコードなどを全て示してください.
具体的には以下のものを示すと良いと思います.
- 実行したコード
- 参考にした書籍、論文、ウェブサイト
- エラーコード (一字一句変えずにコピペして送る)
- 自分が解決のために既に実施したこと
どうしても必要な際にはスクリーンショットの画像でも良いですが, テキストでもらった方が回答しやすいことが多いです.
実行したコードに, エラーに関係ない部分が大量に含まれていると, 特定が困難になります. エラーに直接関係する部分を切り出して, “最小のエラーを再現するコード” を作成してもらえると非常に助かります. その過程で, 自分で解決できることも多いと思います.
先生や先輩に質問をする際だけでなく, Webで質問する際にも同様です. 各ソフトウェアのフォーラム (ROOT, Geant4), 一般の質問サイト (StackOverflow) で質問する際にも上記を示してください. 有益な情報を得られる確率が高まります. 英語で質問してください(DeepL). Webで質問する際にはマナーとして, 複数の場所で同じ質問を聞くことをしないということと, 質問後に自己(や先生や先輩)解決した場合も結果を載せておくということに留意してください.
Amazon Web Service のサイトに掲載されている, 技術的なお問合せに関するガイドラインに良い質問、悪い質問が載っています. 参考にしてください.
本項のオリジナルアイデアは名古屋大奥村氏が2019年ROOT講習会で示したものです.
写経
人のコードを読むことは非常に重要です. 一般に, ある概念をコードとして表現するためにはそれなりに訓練が必要です. コードを読むことで, やり方を身につけてください. 私もコードを読んで発見することが毎日あります.
ここでは, コードを眺めていたり, コピペして実行するのではなく, 全て自分で入力する”写経” をはじめのうちはおすすめしたいと思います. 例えば, 本ガイドに示しているようなコードも写経することで学びが大きいと思います. 写経を通じて, C++/ROOTの構文を学び, コードの構造やアルゴリズムを追跡してください. 副次的な効果として, タイピング速度が向上することも期待されます.
いったん写経習慣を身につけて, アホらしくてやってられなくなるまで写経しましょう
写経ができたら, コードの一部を変更してみて, 自分の思惑通りに動くか試してみてください.
タイピング練習
ここをご覧になられている方は大抵解析技術を向上させることを目的とされていると思います. 万事に通じることだと思いますが, うまくなるためにはたくさん練習することが重要です.
特にソフトウェアを学ぶためには, たくさん人のコードを読んで, たくさんコードを書くことが必要です. そのために, 最低限キーボードを見ずにタイピングできるよう練習してください.
真偽不明ですが, ある大手ソフトウェア企業には, 山籠りを1週間してタッチタイプを練習するそうです. そして, 1週間で実際にできるようになるそうです. タッチタイプは特別な技術ではありません. 1週間本気を出せば誰でもできるようになることです. おそらく車の運転と同じくらいの難しさだと思います. ピアノよりは絶対に簡単です.
ゲームをやっていてレベルアップしたときに, 攻撃力か経験値効率を上げられるとしたら, 迷わず経験値効率を上げましょう. 将来への恒久的なボーナスは何を差し置いても取得するべきものです. もし, 今キーボードをみてタイピングしているのであれば, 今すぐ恒久的ボーナスであるタイピング練習をしてください. もし, あなたが物理以外の分野に進んだとしても, 間違いなく元が取れるスキルになると思います.
ブラウザ上で簡単に練習できるものとして有名なのは, e-typing や 寿司打 があります. これらは日本語の文章の練習ソフトですが, 始めたてであれば十分な効果があるでしょう.
ゲーム性が強すぎて研究室でやるのが気が引ける, あるいは記号などが含まれたもっとコードっぽい題材で練習したいということであれば, 拙作 typro をお使いください.