読者です 読者をやめる 読者になる 読者になる

組込み系プログラマの終末

プログラミング、デバイスドライバ、資格、試験、等などなど

プログラミングの面白さをひたすら語りたい

自分語り

私はブログタイトルの通り組み込み系プログラマとして働いています。「組み込み系プログラマ」とは電化製品等の中に組み込まれる制御ソフトウェアを開発する人を指します。

 

なんだかよくわからないけど制御って言うとかっこいい感じかしませんか?でも実際にやってることはけっこう地味だったりします。

 

例えば電気ポットなら、

・温度センサの値を読み取って、100度になったらヒーターを切る

・水の残量が少なくなったら、空だき防止のためにヒータを切る

 

お掃除ロボットなら

・ロボットのタッチセンサが反応したので方向転換する

・ゴミが満杯になったので、通知ランプを点滅させる

 

「なんだそんなことか〜」と思われるかもしれません。でもこれがやってみると思いのほか面白いんです。プログラミングって面白いのです。

 

プログラミングとの出会い

初めてプログラミングに触れたのは大学1年の時でした。

 

C言語の基本的な文法やデータ構造に関する講義でしたが、残念ながら当時の自分にとっては とても退屈だったことを覚えています。

 

講義を受ける前は「プログラミングってなんか面白そう!」という漠然とした期待に満ちていました。

 

しかし実際に蓋を開けてみると『変数の型』『繰り返しの制御構文』などについて淡々と説明する講義。実際にコードを書いてもコンパイルエラーばかり。コンパイルできても黒い画面に数字が出るだけ。おまじないとかいう謎のincludeなど。だんだんつまらなくなり、そして講義の内容も頭に入らなくなっていました。

 

1年の終わるころには「プログラミング、期待していたのと違うなぁ。つまんね」というプログラム嫌い人間ができあがっていました。

 

その後いくつかの講義でプログラミングに触れる機会があったのですが『ソート』や『グラフ』も全く興味がわかず、「これがいったい何になるんだ・・・」と常々思っていました。

転機は大学3年時に訪れた

当時パソコンを持っていましたが、やることと言えば動画を見たりSNS、ネットサーフィンくらいでした。プログラミングの『ぷ』の字もない生活です。

 

そんな中、友人Aが

 

「一緒にゲームを作らない?」

 

と誘ってくれたのです。これまでの講義ではプログラミングの可能性を感じることもなく苦手意識を強く持っていたのですが、「ゲームを作る」という目的が大学入学時の「プログラミングってなんか面白そう!」という気持ちを呼び覚ましてくれたような感覚を覚えました。

 

当時はまだスマホ全盛期ではなかったため、ガラケー向けのアプリを作ろうと言う話になり簡単なパズルゲームを開発。eclipce+Java+携帯会社提供のエミュレータを用いました。

 

勉強からはじめ、半年たってようやくアプリマーケットにリリース

 

「あー終わったー」という達成感と満足感がありました。1週間後には3000DL以上され、「意外と面白い」「もっとステージを増やして欲しい」といったコメントがついていて、リアクションがあることへの驚きと、褒めてくれたことへの嬉しさがありました。

 

その後大学の講義で見かけたC言語を思い出し、無性に勉強し直したくなり 苦しんで覚えるC言語 や積み本になっていた 「やさしいC」「ふつうのLinuxプログラミング」などを使ってやり直しました。大学1年時はあんなに興味を持てなかった『変数の型』や『繰り返し構文』ですが、この時は「floatとintの比較は危険なのか!」とか「do while は条件が成立しなくても1度は実行するのか!どんな時に使うんだ?!」などと本当に興味を持って取り組めたのです。

私の考える「プログラミングの面白さ」とは

プログラミングの面白さはスポーツ(プレイする方)の面白さと似ています。

 

最初は思ったとおりに動けなかったり、基礎練習ばかりでイヤになるかもしれません。

 

そんな時、ライバル校との試合をしてギリギリの駆け引きや緊張感の中で体を操り、点を取った!

 

次第に「もっと上手くなりたい」と思うようになり、嫌だった基礎練習も楽しくなってくる。もっと試合したいと思うようになっていく。

 

最初は楽しさより苦しさが勝っていても試合や大会を通じて次第にのめり込んでいくというプロセスは、そっくりそのままプログラミングにも当てはまります。

 

「ならスポーツでいいじゃん。体も動かせて健康的だよ?」

 

健康面にかんしては間違えなくスポーツに軍配が上がります。ですがプログラミングの場合、スポーツよりもずっと自由度が高く、楽しみ方の幅が広いんです。プログラミングには【スポーツのような面白さ+自由】があるんです。

 

どんな自由があるかというと、例えばプレイ人数なら、

一人で好きなものを好きなように作る楽しさもあれば

チームで力を合わせて大きなプロジェクトを成し遂げる楽しさもある

 

使う道具だって

プログラム言語(C言語Javaなど)やフレームワークは常に進化しているし

パソコンのスペックに拘ってももいいし

マウスやキーボードに拘っても楽しい

お気に入りのエディターの設定をいじって自分仕様にするのも楽しい

 

試合だって

アプリ開発でも

製品開発でも

個人でサービス開発でも

競技プログラミングだってあるし

 ロボコンだってある

スーパーコンピュータを使ってシミュレーションする研究者を目指してもいい

 

技術を磨いて個人技を極めようとすると多種多様なジャンルがある。

例えば、ネットワーク、組込み、シミュレーション、ビッグデータ解析、分散処理、機械学習 etc...

 

プログラミングは確かに最初は苦しいんだけど、そこを超えた後の面白さは無限なんです。

 まとめ

ITの進化は目覚しく、だれもがスマホを使いこなし、会社では当たり前のように海外支社とテレビ会議、一昔前の超ハイスペックPCが家電量販店で安価に手に入る、そんな驚き溢れる時代です。

 

一方で近年プログラミング経験者は減少傾向にあるそうです。

 

ITの進化に合わせて、プログラマの活躍の場は多岐に渡っています。いつか人工知能プログラマの仕事をごっそり奪うかもしれませんが、その日までは可能性が無限に広がっているのです。

 

若い人がスポーツで汗を流すのと同じように、プログラミング界隈が活発になるといいな。

広告を非表示にする