コンピューターとプログラミングと僕

どうやってプログラミングを学んだか振り返る - Konamikan.を読んで自分も書いてみたいなとおもったのでかく。そろそろブログ書かないと失踪を疑われそうだなとおもってたのでちょうどいいなー題材だったというのも理由にある。

人に見てもらうコンテンツを作るというのがかなり苦手なので文章構成などがむちゃくちゃで読みにくいかもしれない。心優しい人がいたらより良いセクション分けや文章の書き方などの指摘をしてくれるととてもうれしいです。連絡先はGitHubTwitterまでお願いします

幼少期-小学生時代

父がITエンジニアの家庭に生まれ落ちた僕は物心ついたくらいの時期(記憶に残ってるのは3歳)からコンピューターに触れていた。Windows98を搭載したマシンを駆り ペイントでよくわからん線を沢山書いて楽しい!!!とかしていたり、IEを使いYahooキッズなどのコンテンツを遊び倒したり、システムが不調でユーザーにログインできずギャンギャン泣いてたりグズってたりした。あとWindow Systemのテーマを変えて雰囲気が変わるのにめちゃくちゃ興奮していた。

幼稚園に入る前にWindows2000が発売されて、父親がOSを購入してきて家のWindows98マシンからアップグレードしている作業を隣で眺めていこともある。 アップデートするとテーマが増えてうれしかった。

幼稚園に入ったときにはたまたま同級生にパソコン触るの大好き人間がいて、お家に帰ったあとも電子メールでやりとりするなどして遊んでたりしたのを覚えている。

小学校に入ると地域区分の都合上、パソコン大好き人間とは別の学校に行くことになる。といってもパソコン大好き人間なのは変わらず、低学年の頃は家に帰っては自分が当時ハマってたゲームの攻略サイトを読んでいたり、Youtubeで動画を漁っていたり、自分のやっているゲームの掲示板に住みついていたりした。あと、おもしろフラッシュ倉庫

インフルエンザの高熱に魘されながらポケットモンスターパールで、インターネットの掲示板の情報を頼りになぞのばしょに潜り、幻のポケモン ダークライを捕獲したりしていた。ダークライ シェイミの捕獲方法は本物だったが、アルセウスを捕獲するためのバグ技は全部ガセみたいな時代だった。(これはアルセウスのシンボルエンカウントするための場所にいくにはイベントフラグを通さないといけなくて、なぞのばしょを用いた座標ハックだけではフラグをオンにできないのでどうやっても到達できなかったのだ)

小学校高学年になってくると、掲示板で人と話して一緒にゲームしたり、動画サイトはニコニコ動画にホームグラウンドを移した。あとはRPGツクールやWOLF RPGエディターのゲームを遊び倒してたり、RPGツクールを用いてゲームもどきを作っていたりした

掲示板で遊んでいたくだりを具体的に説明すると、どうぶつの森通信掲示板で、適当にフレンドコードを交換して相手の村にいったり、自分の村に来てもらったりしていた。遊んでいた人は男女や年齢問わずいろいろな人と遊んでた。

自分と同年代の人や、高校生とかの村に遊びにいったり、社会人のお姉さんが自分の村に来て手紙くれたりとかした。

社会人のお姉さんと遊んでたの今考えるとやばいな。完全にオネショタじゃん………… 同年代の女の子と無限にチャットしてたし多分人生のモテ期という物が実在するんだったらここで消費してるとおもう。

あと高校生男子の村に遊びにいった時、無駄に下ネタを振られて怖くなって、自分の村に逃げ帰ったりしていた。

ニコニコ動画では、ロックマンエグゼのプレイ動画(ロックバスター縛りやオワタ式)や、ポケモンに改造パッチを当てた萌えもんのプレイ動画を見ていた。フタエノキワミとかは最低限しっているけどズッポリニコ厨していたわけではなかった。

小学5年くらいの大晦日の日にたまたまニコニコ動画でVBScriptでダイアログを出す動画を発掘して、実績していて楽しい!!!!!してた。これが僕のプログラミングとのファーストコンタクトだったとおもう。特に概念を理解しないまま無限ループを作って無限にダイアログを出現させてゲラゲラ笑ってた。

今は亡きWindows Live Messangerを用いて幼稚園に入ったときにはたまたま同級生にパソコン触るの大好き人間(面倒になってきたので以下hakoneko)とボイス通話していたりもした。

この頃からhotmailのメールアドレスを取得することに成功してメールも再開していた。情報筋によると、hakonekoにはその時のメールのやりとりをバックアップされていたりするらしい。おーこわ

中学生時代

そうこうパソコンしていたら小学生時代が終わり、中学生時代になっていた。この頃は分かれた小学校のメンバーが一つの中学校に集結して阿鼻叫喚になっていた。パソコン大好き人間コミュニティに所属して平和な日常を送っていた。東方がブームになっておりみんなで遊んだ。

あとは親に自分のマシンを買ってもらった。当時流行っていた4万くらいの安物ネットブックだったが、自分のマシンということで弄り倒した。メモリを増設したりUbuntuとWindowsを同居させたりしていた。

学校での勉学でも落ちこぼれで勉強大嫌いだった僕はこの辺から、大学進学してまともな人生を歩むルートを諦めて、高校はなんとか行って就職するルートを通すこと重きを置いていた。そのため、就職先どうするかをぼんやりと考えていた

自分がやりたい仕事といえばプログラマーといったイメージがあったので、親にC言語の入門書を買ってもらい、ひたすら gcc コマンドを叩いていた。

得に何か作りたいみたいな欲求は起きずにコンピューターとおしゃべりしながら奴隷として働いてもらうのを楽しんでいた。

Ubuntuの派生ディストリをいくつか試したりもしていた。ディストロソムリエ芸を楽しんだ後に中学卒業前からArchLinuxに落ちついた。ArchLinuxというディストロは今でもWSL上で使っていて、長年使っていてすごいなあみたいな感動がある。

高専生時代

勉学ができずまともに高校受験したくなかったので、親の財布を生け贄に私立高専にAO入試で入った。その学費はなんと、年間100万円吹っとぶとか、人生のクズポイントだとおもう

パソコンダイスキー以外、食べていけそうなスキルがなかったので、情報工学科に入学した。部活でもパソコンできそうな情報研究部に所属してゲームプログラミングしていたり、普通にだらだら遊んでいたりした。

また、部活ではDXライブラリやSDK + OpenGLを用いてゲームを作っていた。東方大好き人間だった影響で弾幕シューティングゲームっぽいものを実装していたり、RPGっぽいもののシステムをどうやって構成するか設計していたりした。

ゲームのUI状態をStackで構築すると前の画面に戻るみたいなのをpop一回で実装できて便利!?とか、UIスレッドのイベントループで重い計算処理やIOを起こすとフレームレートに悪影響が出るので余分な計算処理は別スレッドに逃して、UIスレッドと通信してUIスレッドのイベントループ内の負荷を減らす、みたいな最近のフロントエンドで持ってると便利な思考セットを習得した。

プログラミング言語というのを学ぶのも面白かったのでいろいろな JavaやC++ Dlang や Pythonに手を出して遊んでいたりした。最終的にはPythonを良く書いていた気がする。

あとTwitterで他の高専の人と友達になったりして、一緒にゲームしていたりした

勉学のほうは壊滅的で常に留年ギリギリで進級していた。が3年の時にクラスの人間関係がギスギスしていた余波をくらい、人間不信とメンヘラを拗せて退学した。

退学したら就職などの進路に悪影響をきたすのでは?と教員や親から脅されていたが、前例として退学してなんとかなっていた人間が2人くらいいたので、なんとかなるでしょうしなんとかならなきゃ死ぬだけだなとおもって、退学した。

ニート期

早朝にコンビニバイトして家にお金を少し入れつつ、昼間はひたすらプログラミングしていた。この時季は時間もできたし前からやってみたかったGUIプログラミングに手を出していた。

何をつくっていたかというと、Twitter廃人だった僕はTwitterクライアントを自炊していた。

この頃になるとどうやって進めていけば物が作れるようになるのかがわかっていたのと、時間的リソースの暴力によってある程度形になるものが作れるようになってきていた。

ホワイトボードを購入して、スレッド設計に悩んだ時はホワイトボードに書き出していたり、メモリ上にあるデータを複数のスレッドが触って壊れるみたいなのをやった結果、メッセージングでやりとりしようみたいなの教訓を得たりした。ここで作ったTwitterクライアントは完成していなくて、理由としてはタイムラインのデータ構造が終わっており、長時間起動しているとCPUを無限に使うようになってしまったのと、リアルが忙しくなってしまって頓挫した

平行してブログシステムを自力で実装してデプロイしたが、htmlがinvalidすぎたり、ConoHaのDNSサーバーを使っていたらspamhouseに登録されてTwitterでブログを共有できなくなったりもしていた

高校生時代

退学したが、就職するには高卒くらいの学歴が最低でもないとキツいこともあり、親の金で高校の単位を最速で取得できそうなデキタテホヤホヤ学校に入った。

プログラミング専門の通学コースが存在したので通ってみることにした。ここではとても多くのことを学んだ。JavaScriptといった具体的なプログラミング言語の入門から、RESTfulなAPI設計、 ベンチマークの取り方や本格的なRDBMSの使い方といった職で使うには必須のスキル、SQLインジェクションやディレクトリトラバーサルといったアプリケーションの脆弱性の探し方、IaC Brainfuckインタプリタの実装といった変わり種など今の僕の基礎を作る部分が固められていった1年だった。

Vue.jsなどのモダンなUIフレームワークの使い方や利便生やJavaScriptでGUIアプリケーションを書けるElectronの存在に手を出したのもあって、卒業課題でTwitterクライアントを実装したりしていた。

社会人-

1社目

高校時代の教員のコネで業務委託契約で入った。Ruby on Railsで既存のPHPアプリをリプレースしたりしたり、管理画面にRiot.jsを用いてインタラクションが必要な部分を実装したりした。N+1の解決や、バッチサーバーをどういう時に使えばうまく機能したりしなかったりするのかや、仕事でもメンテナンスができるコードを書くためには?みたいなところで無限に戦っていた記憶がある

2年目からは部署を変えてもらって、Scalaを書いていた。モナドでトランザクションを表現して抽象化してするのに感動を覚えたり、CleanArchitectureとDDDもどきを配属先プロジェクトでやっていた都合で、覚えたDependency Injectionなどのテクニック趣味のプログラミングでも生かしていった。

が、会社の経営が怪しくなって次契約更新してもらえるか怪しかったのと、給料にめちゃくちゃ不満があったので次の職場が決まっていないにも関わらず、突然会社をやめた。

最近別の所で、感情で仕事をやめたりしないとか言いましたが、胸に手を当ててみたら嘘でした。その発言を見ていた人がこのブログを読んでいたら心から謝罪します。すいません

2社目

現職。ReactとRailsの会社、フォームライブラリを必要に駆られて作ったり、CIの仕組みを整えたり、念願のAWSを触ったりと元気にやっている。

ただ3年目にもなってくると、プログラミングは自分のスキルセットを切り売りしているだけだなと感じるようになっており、より仕事ができる人間として生きるにはどうすればいいかな?ということを考えるようになった。

そのため、最近ではコミュニケーション能力を磨いていたりする。

しかし、ドキュメントを書くとかやインフラの仕組みを整えるみたいなことをやっている時間が増えており、あんまりコードを書いてなくて危機感がちょっとある

趣味開発

社会人になったあとも、開発やりたい時にプログラミングをしている。職場の技術スタックの素振りだったり作れるようになったらかっこいいから、という理由で勉強したりを繰り替えしている。

しかし人に成果を見て貰うという行為がとても苦手で、プログラミングでプロダクトを作ってユーザーをちゃんと集めて運用している人にコンプレックスを抱くようになってしまい、プログラミングが嫌になったりするときがたまにある

ただ プログラムを書くという行為事態が好きなのはわかっているので、これからもプログラミングやコンピューターとは仲良くしていきたいなあっておもって今日を生きています

欲求ボタン