プログラミングを始めてだいたい10年が経った

この4月で、プログラミングを始めてだいたい10年が経った。


最初に書いたコードは高専の部活動で書いたHello Worldだったと思う。
言語はCで、サクラエディタで書いてBorland C++ Compilerでコンパイルするという温かみのある方式だった。
当時は、エディタとコンパイラの違いもよく分かっていなかった。
Cでプログラミングの基礎的な部分を学ぶ機会があったのはとても幸運だったと思うが、当時はテキストを出力するだけではなんとなく面白さを感じることができなかった。
ただ、時計のプログラムを作ったり、system関数というやつで外部コマンドを実行するのは結構面白かったような記憶がある。
改めて考えると、自分は理論的な部分をやるよりも、実用的である程度動きのあるプログラムを書くのが好きなのだと思う。
ちなみに、もしこのタイミングに戻れるならC++C#を全力でやってたと思う。
C++は書けると強いと思っているし、C#は書けるとなんか良さそうと思っている。



2014年の後半くらいは、Androidアプリ開発をやったり、Visual Basicを書いたりしていた。
AndroidアプリはEclipse & ADTで作った。何もかも、みな懐かしい。
当時リリースしたAndroidアプリは、最終的に3万ダウンロードくらいされたのでそれなりに使ってもらえたと思う。
ただ、当時は技術力もマネジメント力も無かったので、かなり歪な作りだったり行き当たりばったりで開発を進めたりと結構ふわふわしていた気がする。
Visual Basicは、シリアル通信用のWindowsアプリケーションを開発するのに使っていた。
Visual StudioGUIを簡単に作れるのが面白かった。
この頃から、デバイス間での通信にかなり興味を持ち始めたように思う。



2015年からはWeb、特にWebRTC周りに興味を持ち始めた。
きっかけは、Webアプリケーションでカメラを使う方法を調べたことだった。
Webページにカメラの映像を出せるだけで結構面白かったし、シグナリングサーバーをSocket.ioで建てて、スマホとPCの間でP2Pで映像をやり取りするのもとても楽しかった。
この辺から、JavaScript母語になってきた。
あとは、高専プロコンに初めて出場したのもこの年だった。
技術選定のセンスが全く育っていなかったので、C#(ASP.NET WebForms)、Visual BasicJava(Android)という、今思うともう少し頑張れと言いたくなる選定をした。
開会式当日は、朝5時くらいまでふらふらになりながらコードを書いたりした。
閉会式の時は「もう二度とやらない」と思っていたが、結局あと2回出場することになる。
ちなみに、この時作ったシステムにはSQLインジェクション脆弱性が実装されていたり、DBにパスワードが平文で入っていたりする。
流石にもう時効だと思う。コードもサービスも非公開だし。
部活のGitHub orgにはコードが残っているので、もし見る権限を持っている人がいたらコードを見て好き勝手言ってくれると嬉しい。



2016年もどういうわけか高専プロコンに出ることになった。
この時は面白さ駆動でやったので、WebRTCを使いたいという気持ちでシステムを作った。
結局賞は取れなかったが、面白かったのでヨシ。
あと、ひょんなことからバイト先とインターンシップ先を手に入れることができた。
高専という枠を超えたターニングポイントだったように思う。



2017年は、インターンシップに行ったりリモートでアルバイトをしたり、またまた高専プロコンに出たりしていた。
普通は4年でインターンシップに行くので、3年でインターンシップに行くのはレアケースだったらしい。
この年の高専プロコンは、技術ベース半分、課題ベース半分くらいだだった。
賞ももらえたし、システムを作っていてとても楽しかったので一番充実していた。
あとは、ちょいちょい東京に行って勉強会に参加したり登壇したりしていた。
ついでにバイト先に顔を出したりもしていたので、バイト代を交通費に変換してうまくコネクションを作れたと思っている。



2018年は卒研と編入学の年だったが、あまり勉強はせずにまぁまぁコードを書いていた気がする。
隣の研究室の先生が「コーディングの様子をいい感じに共有できるシステムが欲しい」と言っていたので、めちゃくちゃ雑にシュッと作ったりしていた。
あまりにも雑だったので後からいい感じに作り直したけど、作ってて面白いものができたので楽しかった。
この年はまぁまぁの一年だったが、何とか卒業して大学に編入学した。



2019年は大学生活がとても大変な一年だった。
が、何もしなかったわけではなく、自作シェルを作ったり自宅サーバーをやったりインターンシップに行ったりした。
まぁまぁ情報系大学生っぽいことはできたように思う。



2020年は世の中がいろいろ大変だった。
卒研が始まったので自分も大変だった。
とはいえ、研究でもコードが書けたのでそこはとても良かった。
高専の卒研はコードを書くために研究したみたいなところがあったが、大学ではちゃんと研究をするためにコードを書くことができた。



2021年はついに社会の民となった。
この時点でリモートワーク歴==業務経験だったので、リモートであることの苦労はあまりなかった。
結局、リモートワーク以外の働き方をほとんど経験せずに就職してしまった。
既存のサービスのメジャーバージョンアップに関わることになり、システムを1から実装していく経験ができたので楽しかった。
プライベートではTURNサーバーを自作したりしていた。



2022年は、新バージョンのリリースに向けて引き続きコードを書いたりしていた。
コードを書く以外の仕事もたくさんあったので結構忙しない一年だった気がする。
プライベートでは、コードを書くよりも自宅インフラをいじってることが多かったように思う。



2023年は無事に新バージョンのリリースをし、保守運用のウェイトが増えたように思う。
あとはイベントで登壇したりとか、新機能のリリースに向けた諸々をやったりしていた。
プログラミングは全くしなかったわけではなく、社内用のちょっとしたツールを作ったり、自分たちのサービスの機能を拡張できるようなソフトウェアを非公式で作ったりしていた。
こういったツールを作る系の作業はやっぱり楽しい。



2024年は無事に新機能のリリースをやった。
まだ始まったばかりだと思っていたら、1年の1/3は終わってしまったらしい。
残りの2/3でまた何かツールを作ったりしたいと考えている。楽しいので。



10年間を振り返ってみると、n年にやったことをもっとうまくやるための知識がn+2〜3年後くらいに得られているような気がする。
意識して知識を身につけていたわけではないけど、どういうわけかそうなっているので、今後もいろいろやった方がいいんだろうなと思っている。



この10年間で、Visual Studio Codeというすごいエディタが出たり、DockerやKubernetesというすごいソフトウェアが普及したり、MicrosoftInternet Explorerをやめたり、生成AIによるコーディングができるようになったりと色々な変化があったけど、ずっとプログラミングをしていたいという気持ちはあまり変わらなかったように思う。
次の10年後に、AIがプログラミングを全て担うようになっていたとしても、きっと私はキーボードを叩いていると思うし、そういう生き方ができれば幸せだなと思う。