エンジニアキャリアでも振り返ってみるか
目的
どうせ自分が社会人一年目で何してたとか忘れてるから、備忘として
学生編
入学前 vimを知る
大学は情報学部のある学校へ。学科はCS系(情報学部の中でも文系・理系っぽい感じで分かれていた)。 斜め45度アイコンの人に浪人時代AtCoderを紹介されていたので、大学入学の1ヶ月前ぐらいにAtCoderを始めてみた。
Twitterで大学の人と絡んでいて、ツイキャスでAtCoderをしていた。 At Coderの提出エリアに直書きコーディングしていると、大学の先輩から「Vim使うといいよ」と言われたので、Vimを使うようになった。
大学入る前に準備しておくのはノートPCとPCのセットアップ(vimのインストール)らしい。
ゲームを作る授業
競プロerは1ファイルにコードを書くことしかしないので、classとか何みたいな感じで、複数に跨ったコードを書くことができません。僕もそうです。
大学1年か2年の頃に授業で、迷路ゲームを作る機会がありました。 その時はテンプレートであらかじめ迷路ゲームのシンプルなものが与えられ、オリジナル要素を加えるというものだったので、全部のファイルを確認することはしませんでした。そこそこコードは書いた気がするけど、全然コードを書いていない気もしている(ほぼ何も覚えていない)
インターン
大学3年時にインターンには2つ参加しました。 一つはリモートで1か2週間。なんかフレームワークを使ってゲーム作った。数百ファイルぐらいあったんだろうけど実際に触ったのは10にも満たない。(なんなら2、3ファイルかも)ぐらいで、ほぼ記憶に残っていないが、この時も複数のファイルに跨って仕事をする業務プログラミングの感覚は訳もわからないまま進んだ気がする。コミュニケーションも取りづらくてきつかった。
もう一つは対面で1週間ぐらい。インターン生が自分含めて三人ぐらいいた。pythonとLINEを使ってなんかした。この時は0からプログラミングだけど、結局1つのファイルで全部完結させてしまったので競プロの延長。
日常
趣味の開発とかはほぼしていなくて、友人が作ったDiscord bot の使い方を聞いてコードもらってたぐらい。
時々キラキラエンジニアに憧れて、言語勉強本を買ってみたりもしたけど、環境構築でつまづくことが多くてキラキラすることはできなかった。輝いているのはにぼしっていう名前だけ。(名前すら輝いていないよりマシ)
学生編 総括
- vimを知った
- 競プロをしてた
業務開発はしていない(体感)
- 業務開発に近いことをできる環境はちょっとあったのかもしれないけど、当時は業務開発がどんなものか知らなかったし、体感的には業務開発の経験は0だと思っている。
- ただ、情報学部系以外の競プロerよりかは謎のコードに触れる機会はあったと思う。(趣味開発をしている人は除く)
資格は何もとってない
社会人編
1年目 バックエンドエンジニア?
と言いつつAPI開発はしなかった(既にできていたから)。 だからAPIを新規に開発する方法(ルーティング?)とかもわからない。
Loggerを作ったり、ユニットテストのコード書いたりを研修でやった。
後はサーバで動かしているコードをdocker化したり(他プロジェクトはdocker化されてたからまねるだけ)。なんかあんまこれがバックエンドか!みたいな経験はしていない気がする。
Rustのロジック書いたり。
振られたタスクをこなす1年だった。
資格は LPIC Level1 基本情報 情報セキュリティマネジメントをとった
2年目 フロントエンジニア?
何かフロントエンジニアっぽい感じになってた。(チーム移動。)
って言ってもまだほぼHTMLとかCSSは触っていなくて、PHPのロジックちょっといじったりORMのSQLクエリ(日本語正しいかわからん)を修正したり。
アプリがあるからそのコードもちょっと触ったりした。
試験は人間が直接やる感じなので、テストコードは書いていない。
MVCモデルとかいうのを少し学んでなんとなーーくのイメージはついた。これが業プロか!っていうのを少し感じたかも。
後はバックエンドの時もそうだけど、ログ調査とか、新しい環境を作るためにインフラとゴニョゴニョして...みたいなこともしている。
総括とお気持ち
割とコード改修以外の、他部署の人間と連携して、みたいなタスクは、毎年やっているタスクだったり、前任者を真似たりみたいなことが多くて、人がやった時のメモ必死で探してなんとなーくでこなしている。
コードの改修は泣きながらやっているし、javascriptとかHTMLとかCSSを触らなきゃいけなくなった時は頭から精子出して濃い涙を流している。
ずっと同じような仕事するってよりかはログ見たり試験作ったりたまにコード書いたり、色々やっているような印象を受けている。だからぶっちゃけどこ行っても何やれって言われてもやろうと思えばできるような気がしている。一方で、Rustのコードで設計から実装まで全部やってねーみたいなこと言われたら泣く。ロジックの外側の実装が泣くほどわからない。
学ぶことがなくなったり、昇給幅が猿のちんこになったら転職したいなって感じがする。 自分で理解できないコードを部下が書いている。みたいな状況は嫌なのでマネジメントにはまだ行きたくないし将来行きたいかどうかもわからない。 言語はどうであれ「何もないところから、設計ー実装ーテストまで全部やってねーみたいなこと言われてもできる」みたいな強い人になりたい。
あとがき
書きたいこと書こうとすると、事実だけじゃなくてお気持ちとか主観がめちゃくちゃ入ってきて、自分語り始まっちゃう。