モダンプログラマになれないけど組込みプログラマは楽しい

# はじめに
少し前に[モダンプログラマになれない組込みプログラマの苦悩](https://qiita.com/yagisawa/items/bc087c6a0946aadc8925)という記事を書かせていただきました。正直同僚が見てくれればいいやぐらいに思って書いた記事だったのですが、予想に反して(私の今までの記事と比較して)多くのコメントやLGTMをいただき、大変ありがたく思っています。またtwitterでもちょこちょこつぶやかれていたようです。
しかしこの反響でちょっと気になることが出てきました。学生さんに見られたり、組込みは嫌だ的なツイートがあったりしたのです。「この先組込みエンジニアが減ってしまったらどうしよう」と…

そこで本記事では前回のフォローとして組込みの楽しさをお伝えしようと思います。と言っても前回苦悩をつらつらと書き連ねたのと違い、今回は基本的に1つしかありません。また業界的にそうという話ではなく完全に個人の感想となります。そんな話でも共感を得られたなら幸いです。


# 楽しい
* 組込みの楽しさといえば私的にはこれしか無い。

　　<font size="16" color="red">物理的なものを動かせる</font>
　　<font size="16" color="red">また、苦労してコーディングして動いた瞬間がめちゃめちゃ感動する</font>

* 2個目はどの業界でも同じかもしれないけど、フレームワーク等にあまり頼れない分、自力で作った感は大きいと思う。
* 物理的なものが動かせるということは、組込みエンジニア(ここではラジオ少年等も含む)ならスキルの無駄遣いかもしれないがこんなことができてしまうのである。
![shovon.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/469259/ab750b4a-707a-85fc-0864-dc001beaaafd.gif)

* うむ、ネタが古かったか…こいつは2年前に作ったので勘弁して欲しい。
* こいつが少しずつ動くようになっていくのがたまらなく楽しいのだ。
    * 最初は首しか動かなかった。
    * 首を回しすぎて首が回らなくなった…父に内緒でいつ借金したんだ。
    * 次に腕が動くようになった。
    * それから倒れたまま直立硬直姿勢が取れるようになった…金縛りだ。
    * 何度も転びながら立ち上がろうとするようになった。
    * 立ち上がれるようになった。そして手を振れるようになった。お辞儀もできるようになった。
    * 頑張って歩こうとするが2・3歩でコケるようになった。
    * 歩けるようになった。
    * そして…
    * U○Aが踊れるようになった！
* まるで我が子の成長を見守っているようだ。そう、こいつは息子だ！
* そんな感じで組込みエンジニアは息子・娘がいっぱい増えるような仕事な気がする…
* あとコメントやツイートでも話題に上がっていたけど、限られたリソースでどれだけパフォーマンスを出せるか試行錯誤するのに燃える。まぁ変態である。ゲームエンジニアとは仲良くなれるかもしれない？
* それから普段何気なく使っているものの仕組みが(ある程度)理解できる。Bluetoothとか。
* なのでスマホで操作するオリジナルガジェットとか作れちゃう。
* 最後にコメントやツイートで「誇っていい」「自信を持っていい」と言っていただいたので大きく出ようと思う。
* 我々がいなければ…
    * 車は動かない、
    * ケータイもつながらない、
    * エアコンも動かない、
    * 音楽も聞けない、
    * 写真も撮れない、
    * テレビも見れない、
    * ゲームもできない、
    * パチンコもできない、
    * なんとかペイも使えない、
    * コピーも取れない。
* つまり、我々は縁の下の力持ちである！


# おわりに
今の会社に入社した理由は大学の先輩がいたからで、特にこの会社がいいとか組込みがやりたいとかそういうのはありませんでした。しかし元々ものづくりをすることや問題を解決すること、与えられたものの中でよりよいものを作り上げることが好きだったため、ズブズブと泥沼に沈んで行きました…

大学時代は部活で[相撲ロボット](https://www.fsi.co.jp/sumo)とか作っていました。
当時はCのコンパイラは基本有料だったので、部室に転がっている怪しげなコンパイラを使っていました。エディタは[TeraPad](https://tera-net.com/library/tpad.html)でした。マイコンはPICを使っていましたが、ライタがなかったので自作していました。
今はアキバあたりに行けば安価に[Arduino](https://www.arduino.cc/)・[Nucleo](https://www.stmcu.jp/design/hwdevelop/nucleo/)＆[Discovery](https://www.stmcu.jp/design/hwdevelop/discovery/)・[Mbed](https://os.mbed.com/platforms/)・[Raspberry Pi](https://www.raspberrypi.org/)・[obniz](https://obniz.com/ja/)…辺りが手に入るようになりました。ライタ(デバッガ)も安価です。コンパイラもメーカの開発環境が無償で使えたりgccが使えたりオンライン開発環境が用意されていたりします。エディタもPCの性能アップでEclipse・VS Code・Atom辺りがサクサク動くようになりました。
こう考えると組込みの世界も言語やルールの縛り以外はかなりモダンになったのではないかと感じます。

コメントいただいた方の中には私よりも大先輩な方が結構いるようで、その方たちの昔の苦労と比べると今の組込み開発は結構やりやすくなっているのではと思います。
まだまだ(ずっと？)泥臭い分野ではありますが、ものづくりが好きな人にとってはワクワクが止まらない世界だと思うので、そういう方たちと未来の世界を(陰ながら)支えていけたらと思います。
[このテンション](https://qiita.com/baby-degu/items/98de55e0a94e4c0d65ba#%E7%B5%84%E8%BE%BC%E3%81%BF%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E9%96%8B%E7%99%BA)についてこれる方はぜひｗ

最後に、動画のロボットは[KHR-3HV](https://kondo-robot.com/product/03070)を使っています。ご存知の方に「有り物動かしただけじゃん」と思われてしまうかもしれないので中身をお見せしますと、[GR-ROSE](https://www.renesas.com/jp/ja/products/gadget-renesas/boards/gr-rose)というマイコンボードに載せ替えています。
![GR-ROSE.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/469259/7d0d1f21-a749-d2a8-fbf3-c72a2575ea70.jpeg)
このマイコンはシステムクロック120MHz・ROM 2MB・RAM 640KBでリソースはまぁまぁあります。開発は[WEB Compiler](http://tool-cloud2.renesas.com/index.php)が用意されています。OSも[Free RTOS](https://aws.amazon.com/jp/freertos/)が載っているため実装がしやすいです。
便利な世の中になりましたね…