都内のとある企業に入社して5年経ちました。
こういうプログラマもいるというサンプル提示と振り返りをしてみようと思います。
入社当時のスキル
- 物理を学んでいた
- 大学生のとき, FortranとC言語を使う授業の単位を取った
- C言語はメモ帳かnotepad++で書いていた
- 独習Cを挫折した
- ポインタとは一体何なのか
- どのコンパイラでコンパイルしてるかなんて考えたことなかった
- C言語を使ったシミュレーションプログラムらしきものを作成して卒論を提出した(LaTex)
- デバックという単語を知らない
- 実数と浮動小数点数の違いを意識してない
- 今となってわかったことだが、大学のPCでEmacsかVimかを起動してえらい目に遭った
- 実家にPCがなかったので普段の生活でPCに触れるようになったのは大学から
- インターネットし始めたのは大学から
- タイピングがとても遅い
- レポート提出はWordを使用していた
- Excelは表計算ソフトとして実験レポートの資料に使用していた
プログラミングの能力は蚊程度ですね。大学でPCを使えるようになった感じです。
プログラミング自体は動くと嬉しくて楽しかったので、プログラマになりました。
入社1年目
前半(研修)
- 新人教育で使用する言語はC言語とC++
- ポインタについてわからないということがよくわかってきた
- VisualStudioというものを知った
- VisualStudioのブレークポイントが便利だったので感動していた
- デバックという単語を知った
- C言語とC++は違うというのを知った
- 半年くらい新人教育を受けたあと実務になった
- 割と年の近い技術力高そうな先輩社員の言ってることが意味不明でまともに会話できない
後半(実務)
- 実務は、典型的なアルゴリズムのカスタム実装だったので楽しい
- 一緒に仕事してる上司とはソースコードをUSBメモリでやりとり
- 実務内容と最近の技術話の内容に乖離を感じ始めていた
- 最近の技術について知っていくのは楽しい
- 実務しながらPythonを始める
- Python楽しい
- 実務以外の技術的なことがかなり楽しい
- Mercurialを導入
- Bazaar, Gitを検討
- Linuxに興味
- おもむろにVimを練習しはじめる
入社2,3年目
- 実務はC言語で数値計算系のアルゴリズムを実装することにだいたい固定
- 実務に飽きてきたので空き時間を見つけていろいろ勉強するようになっていた
- 途中でC#とかの仕事をやった気がします
が記憶が曖昧ですね
以下が入社2,3年目で触った技術に関するツリーです。
触れただけの技術もあります、触れたことをざっくり書いてます。
大半が趣味の勉強内容で埋め尽くされてる感じになりました。
~Javaは全くできません。~
趣味が高じて以下のような感じになっていきました。
- VCSは結局Gitを使うのが無難
- エディタはVimしか使わなくなっていった
- 開発環境は仮想環境のLinuxになっていった
- スクリプト言語はひとつ勉強しておくと仕事に役立つ
- 開発機がWindowsからOSX、Ubuntuに移り変わった
- Web界隈は情報を追っていて楽しいけど仕事にしたくないなぁ
- レンタルサーバ借りて遊ぶ(さくらのVPS, DigitalOcean, Gehirn, IDCFクラウドあたり)
- HerokuとかでWebアプリデプロイ遊び
- 個人で使うWebサービスを立てて遊ぶ
- 社外の勉強会に顔を出したりしてみた
- Twitterという最新情報収集ツールを活用しだした
プログラミング楽しい最盛期だった気がします。
実務もLinuxで開発するようになりエディタはVimになり、Gitでソースコード管理をしていました。
あとは、社内にSlackを導入したりしました(若手の団欒件お仕事連絡の場所になってます)。
入社4,5年目
実務は非常にレガシーな感じで楽しくないので、実務に趣味勉強内容を反映して楽しく仕事できるように取り組みはじめました。
- 数値計算系はテストを書くのが非常に有効なのでテストフレームワーク、TDDを実践し始める
- Jenkins, Drone.ioなどのCIを試験的に運用
- GitLabが社内に立って便利
- GitLab CIが出たので使えそう
- 仕様書ベースのTDDを始める
- お客さんを巻き込んでテストを書くスタイルが完成
- Electronを実務で使いたいので画策中
- 他の仕事とかを本来の作業以外に並行で頼まれたりするようになってきた
あと他には
- ブログとか書き始める
- Dockerを触り始める(上記のCI検証の一環)
- Node.jsで遊んでたら、NW.js、Electron(旧AtomShell)に出会う
- PyPIにパッケージを登録したりしてみた
- 社内勉強会を企画したりし始めた
現在
- 入社2年目くらいから仕事に飽きてきているので、そろそろ真剣に飽きてきました。もう全部自動化したいです
- 入社年数が深まると仕事の量が増えてきたりしたり負債が溜まってくるので今はそれに追われてる
- いかに自由な時間を生成できるか日々考え中
- 社内勉強会もりあげていきたい
- Ergodoxが欲しい
入社2年目あたりに何に影響を受けたのか
会社の強い先輩の影響もありますが、けっこう本の影響も受けてます。
- プログラマが知るべき97のこと
- 達人プログラマー―システム開発の職人から名匠への道
- Team Geek ―Googleのギークたちはいかにしてチームを作るのか
- Developer's Code 本物のプログラマがしていること
- ハッカーと画家 コンピュータ時代の創造者たち
他にもあった気がしますが、考え方とかはこの辺りのプログラマ読み物的な書物の影響が大きいです。
今後
かつては使ってるツールとかで困ったときはソースコード読めばいいじゃんとか言われて、何言ってんの...ふざけてるの...と思っていましたが最近はソースコード読もうかなぁという感じになってきました。
そんなこんなでツールを使うことで精一杯な感じだったのは終わってきたと思うので、自分自身も何か作る側に行きたいという気持ちも出てきました(実務以外で)。
最近はRustやHaskellあたりに興味があるので勉強時間取りたいなぁという感じです。
あと、勉強した技術のツリー書くと何か楽しいです、興味があれば作ってみるといいかもです。
ちなみに自分はMindMeisterのテストで作成してスクリーンショットを取っただけです。
プログラマして5年経ちましたが、まだまだやりたいことはいっぱいあります。
がんばるぞい!
Show comments