2ntブログ

プログラムってどうやって勉強したらいいの?

定期的に出てくるこの手の話題。

まずこの時点でプログラマには向かない。

プログラマは、開発言語のコマンドや文法を覚えている事が重要なのではない。
その完成形にたどり着くには、何をどうしたらよいかの道筋を考えられるかどうかだからだ。

プログラマになりたいなら、何が必要なのか?
それを得るためには何をしなければならないのか?
それが「逆算」できる人じゃないと、たとえ専門学校に行ったり分厚い専門書買って読んで覚えたり、運よくIT企業のPGとして就職できても、使えない人間になるだけだ。


とはいえ、これではあまりにも冷たすぎるので、ひとつ私がプログラムを学び始めた切っ掛けとその道のりを少し。

プログラムというものに最初に出会ったのは、友達から借りた、日清焼きそばUFOの懸賞で当たったとかいう「PB-100」というCASIOのポケコンだった。
当時すでにファミコンはあったし、PB-100は電卓に英字キーが装備されたような、コンピュータの最底辺の性能しかない代物だった。
だがプログラムを打てば、いろんなゲームが出来るという。
とはいっても所詮は電卓に毛が生えた代物。
ファミコンのように、色も絵も出せない。
英数字をキャラクターに見立てて、ゲームウォッチよりも簡単なものしか出来なかった。
付属の冊子に載ってるサンプルゲームプログラムでは。

そこでPB-100のプログラムが載ってた「マイコンBASICマガジン」を買った。
感動したよ、画面はしょぼかったけど。
「-」(マイナス)をビームに見立てて、しかもそれが発射されたように見せるプログラムとか、興味ない人には何のこっちゃ?と思うだろうがw

どうやってこういう表示をさせてるんだろう?
とか、興味を持ってまず「解析」したんだよ。
BASICだったから割と簡単だったよ。
こうすると、こういう事が出来るってのをそれで覚えていった。
じゃあこの部分をこうしたらどうなるだろう?
って「改造」を次にやっていった。

これの積み重ねにより、自分で一からプログラムを作れるようになった。
BASICだけど。
だがC言語やアセンブラだろうが、BASICだろうが、違うのはコマンドや文法だけ。
キーボードの「→」キーを押したら、画面の自キャラが右へ1マス移動するには、どういう処理をすればいいのか?
どういう変数が必要で、どういう計算式が必要で、って組み立て方は変わらないんだよ。

前にも述べたが、専門学校や、中には有名大学の理工学部を出たとかって鳴り物入りで入ってきた奴より、「趣味でゲームの改造とかしてました」ってただの高卒君の方が、遥かに早く戦力になったんだよ。
なぜか?
彼はこういう処理を実現するには、何をどうしたらよいか?が「自分で」考えられる人間だったからだ。
コマンドや文法を知っていても、何をどうしたら仕様書通りの動きをするプログラムになるのか?
それが自分で考えられない、先輩にいちいち聞いてたのがその他の諸君。

もっともファミコンより遥かに進歩し、いまや一人でゲームを作るのはほぼ不可能になってしまった現代のPCやコンシューマのゲームを改造するのはハードルが高いだろう。
今はデスクワークのある会社なら、会社独自のツールとかあるだろう、ExcelとかAccessとかを利用したやつ。
あれで「こういう事できないのかな?不便だなぁ」とか思う事あると思う。
そしたらソースを見るんだよ。
分からなくてもいい。
今はネットがある。
VBA程度なら、参考書買わなくてもコマンドや文法やサンプルソースはいくらでも出てくる。
それを見ながら改造していくだよ。
自分が求める機能や動きが出来るように。
注:バックアップを作って、あくまで自分のPC内だけでやるように

そうやって自分で何とかしようと改造とかしてるうちに、自然とコマンドや文法は覚える。
そしてPGにとって一番重要な、何をどうすればソレが実現できるか?ってのが思いつける、組み立てられるようになる。

私も以前の会社はPGで入ったわけじゃない。
ただのサーバ監視要員だった。
だが会社で使ってるツールを改造したり、新たに自分で作ったりしまくった。
暇だったからねw
それでただの誰でも出来る監視員から、PGへ転属になった。
こいつはプログラミングが出来るって思われたからだ。

もっともPGとは言っても、VBA及びUNIXやWindowsのバッチ処理が作れるぐらいだ。
Z80ならマシン語レベルでプログラムが作れるが、そんなもん扱ってるとこはほぼ無いからね…
ただ大昔のCPUでも今のCPUでも、動作原理は同じ。
マシン語というCPUの基本を知ってる事は、無駄にはなっていない。

工業高校とかなら、今でもポケコンは使ってるんじゃないかな?
あれで自分でゲームを作ってみればいい。
SHARP系のポケコンなら、マシン語に対応してるはず。
PEAKやPOKE、CALLというBASICコマンドがある機種なら、マシン語いけるはず。
工業高校じゃない人、ポケコンなんて持ってないって人も、ネットにPC-E500エミュレータとかあるんで、探してみるといい。
独自規格のCPUだから、社会に出て使えるものじゃないけど、コンピュータとはなんぞや?ってのが学べる。
おススメ。
デバイスマネージャで出てくる割込み、メモリ、I/Oポートの意味も分かるようになる。
なぜそれらがデバイスを制御するのに必要なのかとかも。

コメントの投稿

非公開コメント

カウンタ
プロフィール

ウホッ!いい男

Author:ウホッ!いい男
異世界転生を待ち続ける中高年のおっさん

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR