僕のコンピュータ工学の知識は独学です | 本当の日本の歴史と、日本人を知って、自信を持つ日本人になるためのブログ

本当の日本の歴史と、日本人を知って、自信を持つ日本人になるためのブログ

日本の若者に、我々の先祖は、今を築いた立派な人達であることを理解してもらい、未来を切り開く自信を持ってもらうためのブログです。

閉塞した現代日本社会を打開するためにも、日本人としての自信を取り戻す必要があると考えており、そのための分析も試みています。

僕が千葉大学の理学部物理学科から、

NECの半導体製造部門に就職したことは、以前書いた。

参考「僕は交通誘導員」


半導体というのは、その名の通り、

導体(電気を通すってことだ)と、絶縁体(電気を通さないってことだ)

の中間的な性質を持つ物質のことだ。


つまり条件によって、電気を通したり、通さなかったりする。

だから、その条件をコントロールすることによって、

開けたり閉めたり、スイッチとして機能させることが出来る。


もう電圧の具体的な値は違っているけど、

アドレスを与えて、そのスイッチを開け、

5Vが出て来れば1、0Vが出て来れば0、

そう判断出来るようにして情報を憶えられるようにした電子装置が、

いわゆるDRAMと呼ばれるメモリーだ。


この仕組みを使って、

巨大な数のスイッチを集積したのが、集積回路、LSIだ。


これは、巨大な数のスイッチ(回路)である部品を組み合わせて作るので、

僕の入社当時(20年以上前)から人手でやるのは不可能で、

CADプログラムというプログラムを使って、

コンピュータにやらせるものだった。


つまり、LSIを設計するには、

1. 一番核になる各種基幹CADプログラムを開発する人たち。

2. それに、読み込ませる部品(ライブラリといった)となる回路を作ったり、

  製品個々のニーズに応じて不足する細かな機能(ツールと呼ばれる小さなプログラム)を作って、

  全体つなぎ合わせて設計環境を準備して、ビジネス化する人たち。

3. それを使用して、製品であるLSIを設計する人たち。

の主に3部門が関わって、ビジネスをしていた。


また、そこに配属される人の出身大学には、

かなり明確な、ヒエラルキーが存在していた。


部署名で言うと、こんな感じ。

(これは、なんとなくイメージが分かる様に僕が考えたもので、正確ではない。)

1. 超LSI CAD開発研究所

2. XX LSI 開発事業部

3. LSI設計センター

で、2までは辛うじて、NEC本社の社員で、

3は、「NECなんちゃらシステム株式会社」みたいな名前の100%出資の子会社だった。


出身大学に関しても、ヒエラルキーは明確で、

1. 国公立、あるいは、有名私立大学の電気電子工学部の出身者

   これは、大学の研究室でもLSI用CADの研究をしてきた、即戦力だ。
   
2. 一応、国公立、あるいは、有名私立大学の理系ではあるが、

  理学部物理とか化学とか、「大学の専攻は、ちょっと畑違いかな?」って部門の出身者

3. 一応理系ではあるけれど、「大学の格としては、1.2.には、劣るよね?」みたいな学校の出身者

そんな感じ。

で、僕は当然、2のヒエラルキーに配属された。


本当は、

「トランジスターってどうやって作るの?とか、その特性はどうなの?」

だかとの話の方が、主要な課題なんだけど、

それを話し出すと、あんまりにも専門的な細かな話になっちゃうんで、


今回は、コンピュータ上で動くプログラムをどう作るか?

つまり、コンピュータ工学(プログラミングの方法論)に限定して書こうと思う。


それはそれで、

結構工学部なら授業の一環で習うわけだけど、

当時の理学部では教えてもらえてなくて、僕としては、

大学4年(修士なら6年)の遠回りを克服するために、

結構独自の努力を必要としたものなので。。。


プログラムというのは、

FORTRANとか、C言語とか、

まあ、コンピュータが理解出来る一種の言語で、

何かをする方法を、コンピュータに指示するものだ。

C言語で実際に僕の作っていたコードの一部を示すとこんな感じ。
 

#include <stdio.h>

int main( int argc, char *argv[ ] )
{
    char *dbname = "SiIP" ;
    
    if( argc > 1 && strcmp( argv[1], "-c") == 0 )
    {
        RUN_GUI_FLAG = FALSE;
        text_main(argc, argv, 0);
    }
    else 
    {
        gui_main(argc, argv);
    }

 

これは、

もしプログラムが"-c"オプションを付けて起動されたら、

  DOS窓みたいに文字端末モードで起動する。

そうでなければ、

  WINDOWSみたいにGUIウィンドウを立ち上げる。

って指示を、コンピュータに出している部分の抜粋だ。

数式と、英語が混じり合った感じで、何となくわかるでしょ?


だから、プログラムを開発するためには、

その言語を知っていることが、最低限必要です。

でも、それさえ知っていれば、良いソフトウェアが書けるわけではありません。


そりゃそうですよね?

文法と単語を知ってれば、いきなり良い文章が書けるわけではないのは、

日本語だって同じですよね?

「赤い靴はいた女の子」

この童謡を知らなければ、こんな歌詞は書けないし、

その解釈も出来ません。

参考「ベビーメタルの楽曲、"Catch me if you can"について」

 


ある言語を、理解できるためには、

様々な慣用句や、言い回し、歴史的背景等々

そういうのを知っている必要があるように、


プログラミングでも、

「こういう時は、こうする!」

みたいな定石が、あるわけです。


例えば、

「データを条件によって、並べる時はこうする。」

「データのプールから、条件に合うデータを引き出す時は、こうする。」

「コンピュータに何をやらせるかより、どういう形でデータを持たせるか?そこをキチンと設計するのが、何より大事。」

とか。


コンピュータ工学絡みの学部に行けば、

それを授業の一環で教えてくれるわけです。

でも、素人は、その必要性を、そもそも知らない。

だから、とりあえず、プログラミング言語の文法だけ覚えて、

プログラミングを始めてしまうのです。


上の2の範疇に配属された人は、ほとんど、このレベルでした。

この人たちの作ったプログラムなんて、

他人には、ほとんど解読不可能です。

と、言うことは、時間がたってしまえば、

自分自身でも解読不可能ということです。


そういうプログラムを、

「ひっからまってほぐすことが不可能」という意味で、

スパゲッティ・プログラムと言います。


そんな、2の範疇にいたエンジニアには、

「作りっぱなしのメンテ不可能なソフトウェアを書き散らかしているだけ」

そんなのが、大勢いました。


僕が、最初に作ったプログラムも、まさに、そんなもんでした。

だけど、読書家だった僕は、当時、

プログラミング関連の書籍を、

片っ端から読みまくっていました。


そのおかげで、そこに気付き、

プロのソフトウェア・エンジニアレベルになることが出来ました。


つまり現在の僕が持つ、コンピュータ工学に関する知識は、

ほとんど独学で得たものです。


そして、スキル的に1の部門のエンジニアと遜色がない

との、自信が持てた段階で、

初期のころに作ったスパゲッティ・プログラムを、

きちんと設計して、作り直したうえで、

志願して、1の部門に移動させてもらいました。


なぜなら、XX事業部では、その事業部が必要とする、小規模なプログラムしか作れませんが、

そこなら、全半導体関係の事業部の設計方法を取りまとめることが出来ますから。


そこでは、僕は、

「自分がどのようなLSIを作りたいか?」

を考え、それが出来るCADを作っていました。

ところが、そこにいる人たちは、それが分かっていないのです。

まあ、考えてみれば、

大学でも、会社でも、ずっとCADを作ってきていて、

実際にLSIの設計をしたことがないわけですから、

「どんなLSIを作りたいか?」を持っていないのも、当然かも知れません。


で、何をやっているかというと、一般的なCADシステムを、研究論文を参考に作っている。

そんな感じでした。


僕の作っていたCADシステムは、僕が考えたオリジナルでした。

他に競合はありません。

だから、その機能が使いたい人は、これを使うしかありません。

ですが、一般的な競合のあるCADシステムでは、

性能面で競合を凌駕する必要があるはずです。


そのためには、まだ一般には知られていない

独自の工夫を加える必要があるはずです。

それが、公開されている研究論文の引き写しと言うのですから、

とうてい勝てるとは、僕には思えませんでした。


そんな末期的な状態のNECエレクトロニクスの状況をまとめた記事が、これです。

参考「これで潰れない方が不思議」


ちなみに、NECエレクトロニクスとは、

投資家をバカにした、ひどい話ですが、

資金繰りに窮した会社が、市場から資金の調達をする目的で、

半導体製造部門だけをNEC本体から切り離して、

分社化したうえで、上場させた子会社でした。


その頃には、周囲のみんなからは、

スカピッピパパさん、何を作れば良いですか?」

逆に、そう相談される立場になっていました。


現場で、実際のLSIの設計をした経験、

つまり顧客としての経験があったからこそ、顧客のニーズが分かる。

ここが、ひっくり返って、自身のアドバンテージになったわけです。


人生って、「皮肉に出来てるな〜」と、当時思いました。


いずれにしても、2のヒエラルキーにいた人たち、

学生時代の遠回りの遅れを、生涯挽回できない人がほとんどで、

さらには、勉強不足で、その事実に気付かずに終わる人が、大半だと思います。


現在、その部署は、

ルネサス・エレクトロニクスの一部になっているはずです。


ですが、僕も、今年58歳になりました。

当時一緒に働いていた人は、もうほとんど残っていないでしょうね。。。


まだまだ、いくよ!

 



人気ブログランキングへ


にほんブログ村 教育ブログ 社会教育へ
にほんブログ村

 

Twitterへ:@bscppmm

 

 

<過去記事一覧
スカピッピパパの見解

                  =>トップページ

 

 

<日本愛国ブロガが使う1万5千円のパソコン
ブログの作り方を、パソコンの基礎から説明!

                  =>トップページ

 

 

<日本の本当の歴史を知って、未来を切り開く方法を考える
 ためのメールセミナー>

「このメルマガを読むと、将来に関して、漠たる不安を感じ
ているあなたは、自信がなくても、勇気を持って前に進むこ
との重要性を理解できるようになります。なぜなら、我々の
(つまり「あなたの」)先祖が、自立のために立ち上がった
勇気のある人々であったことが分かるからです。

それにより、まずは、自分の先祖に関して自信が持てるよう
になる。自信がなくても、勇気を持って前に進むことの重要
性を理解できるようになります。」

教科書に書かれていない、「日本の本当の歴史」を知るため
にも、ぜひこのメールセミナーを読んでみてください。

1日目 信教の自由の日に関するネット上の文章への反論
2日目 私が考える日本教とは?
3日目 信教の不自由な宗教と信教の自由な宗教
4日目 先の戦争の悲惨な体験を語り継ぐな
5日目 現代の鶴田浩二 ー傷だらけの人生ー
6日目 今までの社会人生活の中で、現在が一番満足度が高い
7日目 顧客満足第二

※必要がなければいつでも配信解除できます。
※迷惑メールを送りつけたりなんてことは当然ありません。
※ご登録いただいたメールアドレスがどこかに流出することなどは一切ありません。責任を持って管理いたしますので、どうぞご安心ください。

          ⇒登録はこちら(リンク