LoginSignup
22
11
エンジニアキャリアについてあなたの考えをシェアしよう!

新人(学生)を指導するよりも新人(学生)に指導してもらった方が効率的。仮説(139)

Last updated at Posted at 2019-08-13

はじめに

工業系の大学の卒業研究の指導を20年ほどしていた。
毎年、題材は学生が自分の好きなことか、就職に有利なことを選んでもらっていた。
好きなことをあげてもらったのは、音楽がゲームが多い。
就職に有利なことは、その企業に売り込んだり、就職した後で役立つ技術は何かを議論して題を決めた。

これらの場合は、私より学生の方が、知識が多く、ひたすら学生に教えれもらうばっかりだった。私が関与した事をしいてあげれば、関連する英語の論文を輪講する際に、英語の表現の理解の仕方か、参考文献の探し方を指導するだけだった。ほぼgive and takeで、私のtakeの方が多い学生が大勢いた。

実際にプログラムを組んだり、BSDのシステムを構築したりとかは、圧倒的に学生の方が質・量ともに凌駕していた。

新人(学生)を指導するよりも新人(学生)に指導してもらった方が効率的だというのは数十人の学生で検証済み。

音楽活動をしていて、コンピュータ音楽、カラオケなどを題材にした学生と、
ゲームを題材にした学生には、ついていくこともできない状態だった。

仮説(54)プログラムは音楽だ (A program is a music.)

ゲームでは、唯一、色使いについて助言していた。

プログラマが知っているとよい色使い(JIS安全色)

背景

囲碁、将棋で、10年間真剣にやっていればプロ一流になれる人は大勢いる。
音楽も同様。10代のすばらしい演奏家はごろごろ。ネット公開の人気の演奏家が日の目を見る機会も増えているか。
運動競技でも、10代が頂点の競技はいくつもある。
大学4年生までの10年間、プログラミングを真剣にやってれば、プロ一流になっている人はごろごろいる。
古い話と、お金をもらってプログラムする辛さを知らないだけかも。

大学4年生までの10年間というと、中学1年生から。
小学1年生からプログラミングしていれば、高校2年生でプロ級は何人かいる。

大学生のうちに、または卒業してすぐに起業したプログラマのうち、何人かは学生のうちからお金をもらってプログラムする辛さを知っていた。納期に追われ、学業との両立に苦心していた。

音楽、遊興競技、運動競技はプログラミングと同じように時間に敏感な若さが大事な部分もある。

大人が大学4年生に教えてもらうことはいっぱいあるはず。

私はある大学の卒業研究の指導を20年、別の大学の大学院の非常勤講師を10年していて、
10人に1人は自分よりプログラミング能力の高い学生に教えてもらってきた。
ただし、知識や経験が偏っていたり、20年前、30年前のことを知らないので、
こちらから教えられることもそれなりにあり、give and takeの量はなんとか確保できることがある。
こちらに蓄えの足りないこともあり、おしえてもらうばっかりの学生も何人かいた。
足りない機材を貸したり、買ったりして、こちらのgiveするものの不足は大人買いで補足してきた。
大学はFラン私学であっても、国立大学であるかの差は統計的にはない。

「新人(学生)を指導するよりも新人(学生)に指導してもらった方が効率的」というのが経験則です。

新人といっても、22歳で採用なら、10歳からプログラミングしてたら、12年で、もうベテランのはず。そんなベテランを新人と呼ぶIT業界の人たちはなんか変だと言う気がしていた。

新人(学生)を指導するよりも新人(学生)に指導してもらった方が効率的。仮説(139)

IT業界で新卒学生採用時に大事なこと。仮説(46)

新人になにか教える量と、新人から学ぶ量が等しくなるように、新人から学ぶようにしています。50歳から毎年プログラミング言語一つを学ぶようにしてきました。半数近くは、新人から教えてもらったかもしれません。

50歳からのプログラミング言語入門。docker(152)

@autotaker1984 新卒1年目が荒れ果てた開発環境に1年間でCIを導入し単体テストを布教した話

コメント欄、違和感のかたまり。どこの会社の新人でもすごい人いる。
そのひとたちを潰したり、やめさせたりしている人が書いている可能性がありコメントできない。

アイビスペイント2億ダウンロード

の会社も、大学卒業時で会社社長だったような気がする。
そんな人、毎年、何十人といたはず。

経理的な問題、資金繰りの問題など、技術的な事項以外で支援がしてもらえず、やむなく組織を解散した事例も半分くらいあった。

技術的な評価をしたら、資金的な支援をするとよいかも。

<この項は書きかけです。順次追記します。>

就職または起業するまでに10年間プログラミングを真剣にしてこなかった人は含めていません。

仕事は、学生向けが主ではなく、企業向けの教育、試験、標準化を主に担当してきた。

ある大学の大学4年生の卒業研究の指導を20年間、別の大学院の非常勤講師を10年間していた。
10年くらいやってきた若者にプログラミングでかなうはずはない。

卒業研究の学生の方が、新人教育の社会人より質が高いのは、自分の研究室を希望しても来れる枠は狭く、
能力のある人しか来れなかったからかもしれない。企業の新人教育の方が質が低いのはまずいと思い、
常に卒業研究の学生程度の質は要求していた。例えば、コンパイラがかけなきゃC言語は書くなとか。

経緯は下記。
転職(1) なぜ経済学徒を辞め、計算機屋になったか(経済学部入学前・入学後・卒業後対応)
https://qiita.com/kaizen_nagoya/items/06335a1d24c099733f64

経済学部を出たのは昔。プログラミングは科目になかった。
工学部では電気科だった。計算幾科学の単位は一つも取らなかった。
プログラミングも大学では習わず。自分でプログラムを書いていた。
大学のホストの通信エミュレータの移植をしたのは情報系の先生でも学生でもなくて、当時情報系ではない学生の私。企業との共同研究のモータ制御のアセンブラを書いたのも私。

学生の頃から、学生に指導してもらうのがいいと思ってた。
自分が学生じゃなくなっても、そのまま同じ考えを何十年も持っている。

例1:M.O.さん

一つの例が、M.O.さん。
M.O.さんが大学院生の頃、大阪で開催されたUnixユーザ会で、マウスのドライバの実演(demonstration)をされていた。UNIXユーザ会って、お高くとまった人が多く、偉そうなアプリ書いてという印象を持っていた。地味だけど、技術力のいる展示をしていたのに好感を持てた。

その後、学生のM.O.さんは、VZエディタのMifes互換マクロを書いた。
ライセンス関係は、ビレッジセンタ(VZエディタの発売元)の社長と、メガソフト(Mifesの発売元)との間で相談があったか、相互尊重の合意があったかだと記憶している。

Mifes互換マクロは慣れた操作で使え、本当に助かった。自分では、キーボードマクロを少し編集して使う以上のマクロを利用したことがなかった。

どちらのソフトも、自分なら30年かかっても書けない。学生に指導してもらい、学生の作ったソフトを利用して、自分のやりたいことをやらせてもらった。

VZエディタでは、当時使っていたN5200という機種への移植を行った。すべてのアセンブラのソースコードをコメントにして試験をしていたら、たまたま、画面の高速化に成功した。すごく多くの人に喜んでもらえた。

N5200のSDKの契約を結んでいる人は、ソースコードの差分を公開することができないかもしれないし、高速化をたまたま見つけても契約の範囲内かどうかの判定に困っただろう。契約を結んでいないことと、N5200ユーザネットのシスオペ(ネットのユーザ会の代表)をしていたこともあり、こちらもライセンス上の問題は生じなかった。

例2: UnixのFD(ファイル操作ツール)作成

大同工業大学(現在の大同大学)の卒業研究の指導をしていた。
一人の学生は、MS-DOSで流行っていたファイルを操作するソフトウェアをUnix上のC言語で作っていた。
画面はcursesを浸かっていた。
https://netbsd.gw.com/cgi-bin/man-cgi?curses+3+NetBSD-current

自分では一度もcursesを浸かったことがなかったので、学生がUnixで設計しているソフトウェアをMS-DOSに移植する作業を行いながら勉強した。Unixはマルチユーザ対応の機能がいるが、MS-DOSではいらないため、拡張はなく、縮小作業だった。

連名でUNIXユーザ会で発表した。

ディスクユーティリティon UNIX and MS-DOS, UNIXユーザ会東海研究会, 1992年3月

例3: BSDカーネルコンパイル

同じく大同工業大学(現在の大同大学)の卒業研究の指導を学生に、BSDのカーネルソースのコンパイルの仕方を教えてもらった話。

UNIXマシンのX-Windowのソフトウェアのコンパイルで、OSの一部をコンパイルし直す事はしていたことがある。OS全体をコンパイルしなおしたことがなかった。

BSDのportの仕組みを利用すれば、カーネルのコンパイルもエラーがでずにコンパイルできることを学んだ。

その後、同僚にLinuxでもDebianのaptでカーネルソースを導入すると、カーネルのコンパイルがエラーがでずにコンパイルできることを経験した。

そのおかげで、自分の博論の実験のために、Mobile IPのコンパイルのため、Linuxカーネルのコンパイルしなおしが無事にできた。

対向試験としてBSDを使い、Linuxとの間の通信で動作を確認することができた。

博論には、基礎技術の確認作業であり、詳しくは掲載していない。作業としては一番かかった。
GPSを利用した通信遅延の測定プログラムも博論の発表日の前日、徹夜で書いたため、博論には掲載されていない。

博論にはPHSでの実験結果しか掲載してなかった。質問が出た時の回答用の追試実験である。

これも、日頃、学生が次々新しいソフト、新しい開発環境、新しい道具を導入して実験しているのから教えてもらった成果だと感謝している。

ネットワーク ReferenceとしてのBSD

TOEIC

1回目は650点ぐらい。

新TOEICテスト「直前」模試3回分
51wo5P875aL.SL500.jpg
https://bookmeter.com/books/232004

をやったら750点ちょっとになった。

学生に外資系に就職するなら800点以上って説明したらいきなり800点以上取られてから、ショックで受けに行ってなかった。

最近の大学院の入試でTOEIC or TOEFL必須の学校があるらしい。

学生くんに倣って、また受けよう。

試験

単体試験は商用ソフトのC++TESTと、オープンソースのCunitなどを使った単体試験の計画、実施、対応。
ネットワーク試験のWiresharkによる測定。

標準化

ISO/IEC 15504(ISO/IEC 33001)process Assessment。
コーディング標準に基づいたソフトウェアの品質の向上のための逸脱の手続きの普及。

教育

学生、企業の新人教育。プログラミング言語、OS、ネットワークプロトコル。数学、物理、確率・統計、経済計算など。

IT業界の新人教育でおかしなことによく出会う。

新人を指導するよりも新人に指導してもらった方が効率的なことがしょっちゅうある。

教える側が気がついていないだけだったりする。

新人から指導を受けた件をいくつか記録する。

大学の卒業研究の指導を二十数年、大学院の特別講義の非常勤講師を10年してきた。
新人だけでなく、大学生でも学生を指導するよりも学生に指導してもらった方が効率的同じであることを経験してきた。

はじめる前に

いくつかの大学と共同研究をしていて、優秀な学生と出会って、プログラムを拝見していると、その学内の先輩や先生が、不必要な助言、不必要な方向転換や、不必要な修正をしているのを目撃して本当に嫌な思いをした。有能なプログラマが企業に入って潰されていくのではなく、大学ですでに潰されることがあるんだと。

学生が学生を潰さないように、岐阜大学での非常勤講師の10年間のうちの最初に、作成した資料。
「始める前に kaizen 岐阜大学」検索。

自分の得意なところを伸ばしつづければ、10歳からプログラムしていれば、10年後の20歳には十分な専門家になっているのを何度も目撃している。

経験則

10歳くらいから取り組んでいれば、20歳になれば、専門家として通用するのが経験則。
その専門家を新人と称して、教わろうとしない人はいつまでも新人以下のままかも。

参考資料(reference)

@e99h2121 2020年Advent Calendarに1ヶ月開発・学習記録を投稿し続けた結果を報告します

@e99h2121 スーパーマンではなかったオッサンは荒れ果てた環境でどうリファクタリングできるのか

@e99h2121 Androidアプリでありますまいか

自己参照

仮説(51)公開算譜は機敏だ(open source is agile)GitHub and docker
https://qiita.com/kaizen_nagoya/items/5dd49a046b5991af3a5e

詳しくは書いてない。python, C++でのゲームの作り方の指導を受けた。

「DockerでPHP7.0×Apacheの環境を構築する@kurkuru」IT業界新人利用時の16の壁(mac mini編)
https://qiita.com/kaizen_nagoya/items/315e8d05a6eef00b56d1

javascript, PHPを使ったサーバ構築の指導を受けた。

docker(19) 言語処理100本ノックをdockerで。python覚えるのに最適。
https://qiita.com/kaizen_nagoya/items/7e7eb7c543e0c18438c4

gitでpythonのプログラムの上げ方などの指導を受けた。

仮説(67)「プロセス改善」が改悪へと突き進む
https://qiita.com/kaizen_nagoya/items/0f3a1174f81935bb6d85

あるセミナで、入って2年目のやや新人が、10年以上IT業界に居る人に指摘をしていた。
ああ、そうやって率直に言わないといけないんだという指摘を受けて書いた文章。

アカデミアの囚人
https://qiita.com/bluepost59/items/a08c0eb0a57f8b28abdf

##自己参考資料(self reference)
プログラミング言語教育のXYZ
https://qiita.com/kaizen_nagoya/items/1950c5810fb5c0b07be4

ぼくの先生 プログラマになるまで
https://qiita.com/kaizen_nagoya/items/53e4bded9fe5f724b3c4

「未経験者が認識してなさそうなTIPS」で同意できること
https://qiita.com/kaizen_nagoya/items/9759de698df880eb1f77

Fラン文系によるFラン文系のためのFラン文系プログラマ /「Fラン文系」でも就職(プログラマ)できる5つの道
https://qiita.com/kaizen_nagoya/items/c72fa39e3191ea0290df

プログラマで「飛び抜けた人が少ない」という仮説
https://qiita.com/kaizen_nagoya/items/f0d22e20f6d2c58f2c1b

「プログラマを目指す」ことの間違い?
https://qiita.com/kaizen_nagoya/items/513f39bcf01a3db36d09

岐阜大学 大学院 応用情報特講 記録
https://qiita.com/kaizen_nagoya/items/a24d988501fc85da1f55

ちなみに、自分は転職したいために、工学系の大学を出なおした。

転職(0)一覧

プログラマが苦手な「人との口頭のやりとり」面談技術(interview technique)7つの要点。仮説(48)転職(9)

人間の感情を大切な振りをしたり、人の意見を聞く振りをしているのが見分けられるか。

<この記事は個人の過去の経験に基づく個人の感想です。現在所属する組織、業務とは関係がありません。>

文書履歴(document history)

ver. 0.01 初稿 20190813
ver. 0.02 加筆 20190817
ver. 0.03 参考資料追記 20190818
ver. 0.04 参考資料追記 20190829
ver. 0.05 はじめに加筆 20201030
ver. 0.06 順番入れ替え 20210101
ver. 0.07 補足 20210731
ver. 0.08 はじめに追記 20210831

このエントリーをはてなブックマークに追加
https://b.hatena.ne.jp/guide/bbutton

最後までおよみいただきありがとうございました。

いいね 💚、フォローをお願いします。

Thank you very much for reading to the last sentence.

Please press the like icon 💚 and follow me for your happy life.

22
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
22
11