プログラム初心者にアセンブラを勧める理由
小学校でプログラムの授業が始まると最近ニュースになっています
小学生じゃなくても初めてプログラムを勉強する上で、実際にどの言語を選択するのかは大きな課題だと思います
自分は今までアセンブラ(PICマイコン)に始まり、C/C++/Objective-c,PHP,Java,VBAなど色々な言語を経験してきた上で言わせてもらいますが、
もしも特にプログラムでやりたい目標が定まっていないのなら、初めての言語にはアセンブラを激しくおすすめしたいです
なぜアセンブラか?
命令が少ない
ここでいうアセンブラとはPICマイコン用の命令言語のことです
アセンブラはまずコマンド(命令)が非常に少ないです
全部で60個くらい(だったかな?)
しかも、実際によく使うのはそのうちの10個くらいです
つまり10個のコマンドだけでプログラムが組めてしまうわけです
プログラム初心者にとってコマンドや規則が多いと覚えることが多すぎて、プログラムそのものを楽しめないという状況があるかと思います
だから最初は出来るだけシンプルかつコンパクトな言語を選択すべきだと思います
動作が体感できる

初めてプログラムをやる人にとって大きな疑問の一つは
「それができたから、実際に何ができるのか?どう役立つの?」
ということじゃないでしょうか
難しく難解なプログラムの書き方をようやく習得したところで、じゃあそれが何の役に立つのでしょうか?
例えばゲームが作れる、ウェブサイトが作れると言った目標はわかりやすいです
けど、そのどちらにも興味のない人にとっては「だから何なの?」です
例えばPHPはウェブサイトを構築するのに便利な言語ですが、ウェブサイトを淡々と作っても画面の中で何かよくわからないものが動くだけで、いまいち何かを作り上げた実感にかけるのは否めません
画面上で「Hello World!」が表示されたから一体なんの?全然面白くないんだけど
と感じる気持ちはよくわかります
その点、PICマイコンは実際に現実世界で物を動かしたりできるのでプログラムした実感が湧きやすいです
PICマイコンはプログラムを記憶させるチップのことで、記憶したチップはそのプログラムの通りに電気を流します
だからその電気が流れる先にLEDやモーターを繋げば、プログラム通りにLEDがピカピカ光ったり、モーターがウインウインと動きます
PICマイコンを搭載した車を1秒ごとにLEDを点滅させて、3秒前進してから停止する、なんていうプログラムも簡単に書けます
「電気で動くものだったら何でもPICマイコンに接続して、プログラム通りに動かせる」
と思ったら何だかワクワクしてこないでしょうか?
少なくともディスプレイ上で「Hello World!」を表示するだけよりも、こちらの方がプログラムによる実感が湧きやすいのは事実だと思います
安い
PICマイコンは、チップ自体の値段は500円もしません
小さなものだと200円とかで買えます
プログラムを焼き付けるのに専用のライターが必要になりますが、それも自作しちゃえば1000円くらいで作れます
そこにLEDとかモーターを付け足しても2000円もあれば十分に楽しめます
いろんな物が作れる
PICマイコンは非常に応用範囲が広くて、電子工作にはうってつけです
僕自身が過去に作ったことがあるのはバイクの油温やギアのポジションを液晶に表示する装置だったり、簡単なセキュリティ装置とかです
だけどPICマイコンの可能性は無限大です
しかも半田付けとか電子工作の知識も学べてまさに一石三鳥です
ディスカッション
コメント一覧
まだ、コメントがありません
みんながLoadingしてる記事
新たにPostされた記事
: JS
Dropzone.jsで編集画面を作る(アップロード済みの画像を表示)
前回からの続きです Dropzone.jsを使って画像アップロードの編集画面を作 ...: Laravel
LaravelでDBテーブルをupdateした時に、同時に更新した値を取得する裏技[Laravel8]
通常Eloquentのsaveやupdateでは、実行時に更新した値の結果を返し ...: JS
忘れがちなJqueryのあれやこれ
Jqueryって何でこんなに忘れやすいのでしょうか 呪文にかかったくらい覚えられ ...: 資格
理系エンジニアの僕がTOEICで800点をとるためにした勉強
先日、TOEIC L&R テストで800点を超えました 今回は理系エンジ ...: Laravel
[Laravel8]npm run devが失敗する場合の解決法
Laravel8にJetstreamをインストールする際、npm run dev ...HashMap
Created by
はやぴ
Web/アプリ開発エンジニア
Sierにてお堅いB向けのソフトウェア開発を経て、現在はC向けのWebやアプリを中心に開発しています。
そのほか