新しい研究にチャレンジし続けることについて
私,山崎進は何度も研究テーマを変えて,50歳になった今でも新しい研究にチャレンジし続けているのですが,それって実はすごいことで,普通にはなかなかできないことなのかもしれないと思い,そのようにするにはどうしたらいいかについて考えてみました.
今までの研究テーマの遍歴の概要
まず,今まで私がどのような研究テーマに取り組んでいたのかを,おおよその時系列に沿って書き下してみました.
- アルミニウムの複合材料
- OS
- プログラミング言語処理系のコード最適化
- ソフトウェア工学,特にソフトウェア・プロダクトライン・エンジニアリング
- 組込みソフトウェア
- マーケティング
- 情報分野におけるInstructional Design
- ビジネスモデル
- ユーザー・エクスペリエンス
- ファシリテーション
- 学生が地域の課題に役立つアプリケーションを開発することを通して得られる高次な学習活動について
- 並列プログラミング言語Elixirにおけるコード最適化
- そのエッジコンピューティングへの応用
- その宇宙利用産業向けの応用
- 宇宙機器産業向けの組込みシステム開発
- RISC-VベースのDomain-Specific Architecture
- FPGAの能力を引き出すRTL設計
- ソフトウェアとFPGAによる高速無線通信・SARの実現
- ソフトウェアとプロセッサの脆弱性
- 半導体設計・製造工程のカリキュラムのInstructional Design
- 並列プログラミング言語Elixirのスマート農業への応用
- RTOSへのElixirコード生成
- ElixirとCのコード生成・最適化におけるサイドチャネル攻撃対策
- 代数学のコード生成・最適化・論理演算への応用
- 宇宙機におけるソフトウェア工学
- Software-Defined Everything (SDx)
- 衛星・宇宙機上のデジタル・ツインの実現
- コンパイラのコード生成器・最適化器の正当性検証
我ながら呆れるほど,たくさんの研究テーマに取り組んできていますね.
一見すると脈略がないように見えますが,その時その時の研究テーマの変更では,それなりに合理的な判断をしています.例えば,4,5は研究プロジェクトの研究員になったことで,その職務に沿った研究テーマに変更しており,6は現在の北九州市立大学で職を得た際に,4のテーマをより深く追求するために必要な知識・スキルを習得しようとして研究を開始しました.それらの研究は,ある大企業との共同研究で行ってきたのですが,それがあるやむを得ない事情で継続できなくなってしまったために,大学単独でデータが収集できる研究を,ということで始めたのが,7でした.
新しい研究分野に飛び込むときにすること
例えば前述の6,7,8とかが典型的なのですが,今までと全く異なる研究分野に飛び込むというときに,最も効率的な方法の1つとしては,その分野の大学の学部や大学院に入学して知識体系を一通り得るというのがあります.6と8については,北九州市立大学に勤めているという地の利を生かして,所定の学内手続きをした上で,経済学部とマネジメント研究科の授業を学生に混じって一通り聴講させてもらいました.なお,このときには単位を取得しませんでした.7については,熊本大学の教授システム学専攻の科目等履修生として入学しました(こちらについては,その後,業務と両立できずに挫折するのですが).
あるいは9が典型的ですが,コミュニティに参加してその道の専門家の指導を受けるという方法も有効です.9については,ユーザー・エクスペリエンスについて扱っている地域の技術コミュニティに飛び込み,そこで,一流の先生方に基礎を教わりました.
あるいは10が典型的ですが,研究予算を注ぎ込んで書籍や論文などの文献をたくさん集めるということもしました.俗に1つの分野について極めようと思ったら,文献を100は集めて読む必要があると言われます.
また大学の授業で扱うような教科書では,参考文献を多く紹介しながら,体系的に知識を授けてくれます.学びたいと思った分野の学部のカリキュラムや授業のシラバスも,知識体系の全貌を掴む参考になります.これについては,私の場合は大体どの研究テーマの切り替えの段階でも行ってきたようなことです.
ただインプットするだけではなく,アウトプットする機会も重要です.私が特に有効だと思ったのが,たとえばTwitterとかで,〇〇についてわからない,知りたい,というようなツイートを見かけたら,それに対して,こういう書籍にこういう知見がありますよ,というようなリプライをつけることを延々と繰り返す活動です.あるいは授業等で学生から大量に質問を集めて,それに即席で一問一答する,というような授業を行う活動です.技術コミュニティにおいて,勉強会を主催するのも有効です.こうやって仕入れた知識を広めるような活動をすることで,実は自分自身が一番学びになっている,記憶が確実に定着するというような効果が得られます.さらにコミュニティにおける信用も増します.
プログラミングや設計に関する習得については,とにかく没頭してものを作り続けるというのがとても有効です.その作ったものを発信して,フィードバックを得て,さらにものを作る,そういったサイクルを回していくことが,モチベーションにもつながりますし,記憶の定着にもつながります.
他の分野に興味を持つにはどうしたらいいか
私自身はもともと知的好奇心が旺盛で,何でも知りたがるので,自然と他の分野に興味が向くようになりました.でも,そうでもない人もいると思います.そうしたときに,どのように興味の範囲を広げるかについて,考察してみます.
まず,ある原理を突き詰めようと思ったときに,周辺領域の知識が必要になることが多々あると思います.たとえば,プログラミング言語処理系のコード最適化について原理を突き詰めようと思うと,CPUの動作原理について知る必要が出てきます.そうした周辺領域についても,とことん原理を突き詰めていく,というのがやり方の1つかと思います.
もう1つは,ある技術の応用について,今までなかったような新規のものを含めて,想像力をたくましく広げていくという方法です.たとえば産業界への応用を考えるのであれば,どういった産業があるのか,それぞれの産業でどのような事業が行われているのか,そうした産業や事業ではどのようなことが技術的課題となっているのか,そういったニーズについて,広く知っていくことも重要でしょう.そしてそのような技術的課題に対し,自分だったらどのようなアプローチで取り組むかを考察していきます.なんなら研究計画を書いていくのも良いでしょう.
そうした研究提案を,そういった関心事を持つような国の競争的研究資金や地方・民間の研究助成などに応募してみるのはどうでしょうか.あるいはそういったニーズを持つ企業とマッチングを図ることもできるかと思います.そうしたマッチングを支援してくれるようなサービスも存在します.
あるいはこういう手もあります.自分の研究成果について,高校生の知識の範囲で本質を理解してもらえるような文書やプレゼンテーションを発信します.それを見てくれた人の中から,稀ですが,オファーがあることがあります.たとえば,私の場合は,前述の12の発信と地域の研究助成の応募によって,企業を紹介いただいて,13に至ります.そのつながりで,宇宙利用産業を推進する立場の方からオファーをいただき,14,15と宇宙に関する研究に広がることになります.