某新会長 (“2013年度役員改選および新体制スタートのお知らせ“) に買いなさいと言われたので、たまに気まぐれで購入する”Software Design|gihyo.jp … 技術評論社” 2013/05号を購入。
今回の特集は「IT業界ビギナーのためのお勧め書籍」ということだったので、自分の若かりしマイコンをいじり始めたころを思い返してみました。それから、しばらく「オススメ書籍」ってなんだろうなーって考えてみました。
Software Design (ソフトウェア デザイン) 2013年 05月号 [雑誌]
技術評論社
2013-04-18
技術評論社
¥ 240 (中古品) (2015/01/04 11:12時の価格)
目次
しょっさんオススメの書籍とは
結論から言うと「ない」にたどり着きました。
ないんです。
何故かというと、今、数ある様々な書籍はどれも役に立つし、初心者でも役に立つものが多くて、よりどりみどり…と言うわけじゃないです。初心者がいきなり本を買って読んだところで、理解できうるものなんてないんです [I]極論・暴言 。
と言うのも、多分、私の生い立ち・時代背景が全て良くなかったんだと思います。回想してみましょう。
ファミベ時代
あたしがコンピュータと知り合ったのは、幼稚園に上がる前のアーケードビデオゲームです。某タイトーのポンまがいなゲームをやり始めたころに遡ります。
そこから、インベーダー、パックマンと順当にアーケードの歴史を見守りつつ、ゲーム&ウォッチ、カセットビジョンからファミリーコンピュータとゲームを中心に、私のIT時代は築かれました。
今でも、ITと言えばビデオゲームが基礎の上に成り立っていて、ビジネスアプリの出来にはひどく文句を付けたくて仕方がありません。が、今日はそこについては言及しません。
そこで登場たる、ファミリーベーシックです。
その頃はまだ小学生で、キーボードに書かれている英文字を見て「このキーボードを打てるようになれば、英語が話せるんじゃないか」と考えました。幼稚ですね。
そもそも、この頃は、「た」→「q」 「ち」→「a」と、日本語の一文字が、そのまま英語と対応していて、日本語を、この対応のまま変換したら英語になると考えてたほどの幼稚さです。
どーゆーことかというと、「わたしはおとこです」は英語に直すと「0tdf6sbw@r」になると単純に考えていたのです。バカでしょ? バカだったんです。
さて、まぁそんな感じで始めたものの、意味が分かりませんでした。BASIC。仕方ないので、”マイコンBASICマガジン – Wikipedia“に書いてあったものを、見よう見まねで散々入力しては、動かない、と言う現実を目の当たりにし、死んでました。
ファミリーベーシックは、MSXも同じですが、ステートメントの間を切らなくても解釈する、クズw言語です。
たとえば、ループを示す「FOR」で、0から10までをループさせるとき、一般的に「FOR I=0 TO 10」と記述しますが、ファミリーBASICとMSXでは「FORI=0TO10」と記述しても期待通りに動いてしまうのです。
なんで、こんな柔軟な言語なのかというと、メモリが少なかったので、極限まで省略できることを推奨していたものと考えられます。とくにファミリーBASICでは「IF THEN」の「THEN」すら省略して「IFX>10P=10」も動くと思われます。意味分からん。
某ベーマガに書いてあるプログラムは、一般的にDr.某が読みやすくするために、ちゃんとステートメントを切ったり、マルチステートメントにしないことを推奨していました。が、メモリの関係上、節約に節約を重ねた、理解不能プログラムが多かったのです。とくにファミリーBASIC。
英語をまるで理解していなかった私が、こんな理解不能なものを入力して、どうこうできるわけがありません。しかも、意味の分からない暗号を入力しているので、エラーが出るのは当たり前です。
「SYNTAX ERROR 100」とでも出た場合、100行目の入力がまちがっているんだろうと予測しましたが、文法エラー以外は、その行者ないことが多く、いったい何でエラーが出てるのか、そもそも英語を読めないヤツがどうしろというの。みたいな感じで、挫折してジュースをこぼして、使えなくなったので、友達に返しました。
MSX時代
時は流れ、いろいろと諦めてゲームばっかりやっていましたが、どうしても私はゲームのデザイナーになりたくて、”Beep!“という雑誌を、母親のところに持っていって「オレは一流のゲームクリエイターになる!!」と言って、朝まで怒られたことがあります。
そんなことにもめげず、どうやったらゲームを作ることができるのか一所懸命悩みました。
そんな折、中学入学とともに PC-8801を購入する友人がいました。小学生のころにも、親がマニアでPC-6001が並んでいる家や、Macintosh IIや Classic の置いてある家がありました。小学生のころは、それのすごさが逆によく分からず(白黒だったし)(ドットは荒いし)だったのですが、PC-8801 ともなると、桁が違います。MK II-SR以降ではないので、しょぼいうちではありますが、友人が天使たちの午後を買いあさっては、オレにやらせようと躍起になっていたことを思い出します [II]今では信じられませんが、中学生のころはウブでした。子どもの作り方も知りませんでした 。
やがて、Xanadu や Romancia などで PCゲームの人気が高まるとともに、友人も Ysをプレイするようになりました。私は友人の家で FALCOMの虜になりました。
どうしても、こんなゲームが作りたいと、やっぱりベーマガを見ながら、友人の家で BASICを入力しては遊んだものです。相変わらず、意味は分かりませんでしたけど。
そのうち、やっぱり自分の家にもなにか一つ欲しいと、使える親類全てに「パソコンこうて」と懇願しました。とにかく懇願しましたけれども、結局、お年玉に援助してもらって MSX2買うのが関の山でした。
それでも、自分の家に初めてのパソコン(と言うのもおこがましい)がやってきました。それこそ、最初のころはゲームでひとしきり楽しむ生活でしたが、だんだんと”MSX・FAN – Wikipedia“とベーマガのプログラムを入力して遊ぶようになります。
何故、MSX FANを買っていたのか自問自答することがよくあるのですが、多分、エロゲもさらっとさりげなく入っていて、1冊に1枚あるかないかのエロ画像に萌えてたんだと思います。中学生ですし。
そんなこんなで、とにかくたくさん BASICを入力しては、ゲームをやって楽しんでいました。相変わらず「FORI=0TO100」の意味は分かりません。そこで、MSX関係の書籍を、近所の本屋で総ざらいして買ってきました。総ざらいしても2冊くらいしかないんですけど。「MSX入門」的な書籍です。ただ、いくら読んでもサッパリ意味が分かりません。どうやっても、分かりません。BASIC というものの他に、マシン語というものがあるらしきことは理解しました。が、そもそもコンピュータの動作原理自体分かりません。意味不明です。
仕方が無いので、入力したプログラムを変更したりしながら、結局、自分で BASICを解析しながら、TRY&ERROR を繰り返していました。ホント、こんな事、塾に通わず、部活もやらない、麻雀(とサッカー)しか趣味のない中学生にしかできないことでした。とにかく、作っては壊して、作っては壊してをくりかえし、なんとなくBASICがどーゆー原理で動いているかを理解することに。
そして、気がついたら自分でも一から BASICでプログラムが組めるような状態になっていました。不思議です。勉強しとけよ、もっと。
BASICが使いたかった理由はゲームを作りたいことでしたから、欲はどんどんと深まっていきます。「BASICは遅い」んです。
ついにマシン語へと入り、深みにハマります。この頃、まともなマシン語やアセンブラの入門書はありませんでした。ありましたけど、「入門書」というのはウソで、まったく入門じゃなかったことだけ記憶しています。
多分、押入を掘り返すと、この辺の書籍は出てくる気がしますが、あえて掘り返さないで置くことにします。
結局、マシン語も見よう見まね、MSX FANやベーマガのパクリをしつつ、使えるところを再利用してみたり、自分で直してみたり、いろいろやって自分で作れるところまできました。
ただ、このころはアセンブラもリンカも「高い」か「入力が面倒(マシン語 16進数 8ページ分)」とかで、ハンドアセンブルが基本でした。ハンドアセンブル、というのは、自分でニーモニックをノートに書いていって、その横にマシン語のコードを後で当てていく、と言うやり方です。できあがったマシン語を、専用の解釈ツールに読み込ませて、マシン語を実行させていました。今から考えると、キチガイの所業です。
とは言え、その頃はハンドアセンブルなど当たり前で、とにかく苦労することでしか、高速なプログラムの恩恵を得ることはできませんでした。
今でも、ハンドアセンブルしてたころのノートが残っていますが、嫁がそのノートを見て「この人には一生勝てない」と感じたそうです。それくらい鬼畜の所業なのです。
ただ、こんなことをしていたお陰で、コンピュータの動作原理を、気がついたら、おおよその理解をできるまでになっていました。不思議。
オススメは雑誌?
結局、マシン語を理解するまでに、ホントに役に立った書籍は
- ベーマガ
- MSX FAN
- プログラムポシェット
- MSX MAGAZINE
と、全て雑誌(及びその増刊号)であって、これを現代に表すと、「WEB+DB」や「Software Design」とかでしょうか。
しかし、こういったものを「お勧め」といって読ませるには、必要な情報が出てくるまで買い続けないといけなかったり、結局なにが必要なのか。体系だったことも分からず、いったい自分はドコを目指しているのか、理解できないと考えます。今はそんなことに時間を割くよりも、もっとできることがあるはずです。
今は昔と違って、もっとたくさんのものにあふれ、学ぶ順番を考えていかなければ、書籍も充当できないのではないかと考えています。
では、素人は何を読むべきか
先日、”oshiire*BLOG» Blog Archive » [大事なこと] #qpstudy 2013.04 で、(自称)カリスマ塾講師が、新人へ3つの言葉を送ってきた“において「コンピュータ」「プログラム」「ネットワーク」の基礎を学べと書きました。
そこで、各分野で基礎となる書籍を探せば、それらが「お勧め書籍」となるのではないかと考えてみたわけです。
自分で、新人たちにそのように伝えているのですから、そのようにするのがスジでしょう。
ここで、「コンピュータ」の動作原理を理解するには、私は「プログラミング」を推奨します。
以前より、ハードウェアを理解するために「アセンブラをやれ」と口を酸っぱくして皆さんに伝えていますが、コンピュータの動作原理は、ハードウェアだけでは理解することができないため、ソフトウェアの動作結果からで可視化することが望ましいのです。従って、「プログラミング」を学ぶことで「コンピュータ」の基礎も理解することができ、余計なことを一つ飛ばすことができるのではないかと推察します。
そして「ネットワーク」。私はRS-232CやMODEMをソフトウェアで制御したことで、どのように通信されているかの原点を学びました。今でも、若干利用されている SNA/FNA といった汎用機のベースプロトコルは、シリアルインターフェイスたる RS-232C経由の通信に似ています。似ているというか、手順自体は同じです。エラー訂正や、同期・非同期通信などは、ソフトウェアによってどのように処理されて対処をするべきか、これも「プログラミング」で理解をすることができました。
これも、「プログラミング」で「ネットワーク」を理解することに直結したわけです。
とすると「プログラミング」を学ぶことで、私が「学ぶべき」といった 3つの基礎を学ぶことができてしまうと言うことになります。
「おや?」
と思われるかも知れません。私自身が「おや?」と感じています。
自分の生い立ちから考えると、実はこれは後天的なものであって、一所懸命「プログラミング」したことで「コンピュータ」と「ネットワーク」の基礎を理解することが「たやすくなった」と考えることが、正しい理解であると考えられます。ですから、基礎を押さえる重要なカテゴリーとして「コンピュータ」「プログラム」「ネットワーク」は頑として存在しますが、まず「プログラミング」することで、これらすべてを理解する土壌ができあがるのではないか、と言うのが私の考えです。
だから、結局なにをお勧めするの
前に立ち返ってください。
私は結局、入力したプログラムを自分で解析して、TRY&ERROR を重ねてプログラムを理解し、プログラミングできるようになりました。
それも、低水準の言語です。低水準の言語を理解するために「はじめて読む486」をよめと、某@hasegawと同じコトを申すかというと、こんなものを素人が読んで理解できるなら、入門書など不要なのです。
ではどうすべきかというと、ないのです。
低水準の言語を多く収めた雑誌、ムック、書籍などないのです。
今の時代、高水準の更に高水準みたいな言語が活躍する場で、低水準な言語など利用価値も少なく、書籍も非常に少ないです。また、ある程度の知識を持った、力ある人だけが、その低水準言語の頂に立つことができるような、そんな時代になりました。大変なんです、今は。昔はアセンブラで書いて、PC飛ばしたところでなんの問題もありませんでしたが、今だとPC本体が止まると困ります。最悪、再起動しても上がってこない可能性もあります。OSが巨大化した恩恵は低水準言語の前では、一切役に立たないのです( ゚д゚ )クワッ!!
要するに、今、私の過去を振り返って、若い人たちに「これを読め( ´ー`)y-~~」と自信を持ってオススメできる本がないし、そもそも分からないのです。
自分の生い立ち自体がもう、今の人たちがくぐり抜けてこられる世界ではなくなってしまったがために、これからコンピュータのエンジニアになってやろう(´∀`)と言う人へ、伝えるべきものを見つけられないのです。
仕方ないので、Z80アセンブラ入門でも読んで、ちんぷんかんぷんになっておいてください。
分からなかったら、おいでください。講義します。どうぞ、無理難題の世界へいらっしゃってください。でも、業界では、そーゆーキチガイを募集しています。いざ、ホントの魑魅魍魎の世界へ。
こちらもフツーにお勧めです。
“IT業界ビギナーのためのオススメ書籍(しょっさん編)” への1件の返信