はやいものでエンジニアに転職して1ヶ月がたちました。
生存報告も兼ねて、振り返りの日記でも書いておこうと思います。
転職してどうなの?
日々新しい刺激があって、とても楽しいです。
ベンチャー特有なのかわかりませんが、前職と違って慌ただしく日々が過ぎていく忙しない感じもとても新鮮です。
わからないことも多いですが、学びが多いことの裏返しでもあると思うので、やはりとても楽しいです。
どんなことしてるの?
わずか1ヶ月ですが、いろんなことをやらせてもらっていて、コードを書く関連では、医療データの前処理や集計解析、iosアプリのサーバーサイド実装、ちょっとした機械学習をやりました。
他にもpythonのformatterやstyle checkツールを導入して、commit時やpush時にコーディング規約をクリアしているか自動チェックさせるための設定を作成したりしました。
ついでにAWS周りも少し触って色々勉強しています!
新しい経験ばかりでとても刺激的です!
悩みは?
やろうと思えば家でいくらでも仕事ができてしまうのもあって、プライベートとの境目がなくなってきているのが悩みです。
仕事が面白いので休みの日にも色々触ってしまうのですが、実践(実務)の時間がたくさん増えて楽しい一方、座学の時間が減ってきてしまっているので、しっかりベースの知識(数学・統計・コンピュータサイエンス、開発に関する各種理論などなど)も磨いていきたいです。
うまく区切りをつけて個人的な勉強や家族の時間とのバランス取っていければと思います。
転職前にやっててよかったこと
基本的にやってきたこと全部役に立っていますが、特によかったと思うのは、今のところ以下の3つです。
- GUIアプリの作りなおし(コードの設計とか可読性を真剣に考える経験)
- WebアプリのAWSデプロイ(リモート環境を触るという経験)
- AtCoder Problemsへのコミット(他人のコードを読むという経験)
GUIアプリの作りなおし(コードの設計とか可読性を真剣に考える経験)
これはGUIがどうのこうのというわけではなく、真剣に設計や拡張性・可読性を意識して、プログラムを組み上げた経験がとても役に立っているということです。
小さめのアプリでいいので1からしっかり設計を考えて実装してみるというのはとても良いと思います。
通常の Webアプリだと設計がフレームワークでおおよその設計が決まってしまっているので、むしろ小さいGUIアプリやCUIツールの方が良いかもしれません。(とはいえ、Webアプリのフレームワークで使われている設計思想を勉強しておくのもとても良いです)
勉強し始めに作ったものを、しばらく経ってから綺麗に作り直すという流れでやってみると、色々学びもあって楽しめると思います!
WebアプリのAWSデプロイ(リモート環境を触るという経験)
AWSのEC2サーバーで作業をすることが多いという、かなり個人的な事情によるんですが、四苦八苦しながらインフラを勉強しつつ、一度AWSを使ってデプロイした経験は本当に役立っています。
特によかったと思っているのは、デプロイのスキル云々ではなく、リモート環境にssh接続して色々作業をするという経験です。
Webアプリを作成していたときにvirtual boxを使って環境分けた上で開発をしたり、デプロイでEC2を使うときにssh接続してvimでコードいじったりしていたんですが、正直最初はかなり苦戦していました。
触っているのは手元のPCだけど、実際作業しているのはローカルPCのグローバル環境だったり、virtual boxの環境だったり、あるいはその中のdocker環境だったり、はたまたEC2サーバーだったり、そこにさらにvenvでpython環境がわかれたりするので、今自分が一体どこにいるのかわからなくなります。
またそもそも接続用の設定で四苦八苦もします。最初やっていた時は、面倒臭いなと正直思っていたんですが、一回やり切っておけば全体の見通しが立って、設定で泥沼にハマることも格段に減ります。
仕事始まってすぐこの辺の設定作業をいくつかやったんですが、スムーズに進められたのは一度苦しんていたおかげかなと思います。(こういう基本設定のところで他人の時間を奪うのはとても恐縮なので。。。)
ちなみに今はvscodeのremote developmentの拡張を使ってコードを書いています。今の所vim等をしっかり勉強する時間もモチベもないため。。。
AtCoder Problemsへのコミット(他人のコードを読むという経験)
人のコードを読むというのはとても良いです。新しい設計思想や技術に触れるきっかけにもなりますし、初めて読むコードを読み解いていくための力になると思います。
私は転職まえの勉強期間に、pythonのrequestパッケージや、競プロ界の神サイトとして有名なAtcoderProblemsのソースコードを勉強がてら読んでいました。
またAtcoderProblemsにはほんの少しだけcontributeもしました。
機能追加やバグ修正をするためには、そもそも今のコードがどのように動いているか把握しないといけませんが、これが自分が今まで一切触っていないコードとなるとなかなか大変です。
仕事が始まると当然ですが、自分の一切触っていないコードに手を入れることになるので、こうした経験を一度やっておくと、転職後にスムーズに仕事ができるのではないかと思いました。
もっとやっておけばよかったこと
競技プログラミングにかける時間がめっきり減ってしまって、青になるのがとても先になりそうです。転職前にがっつりやって青まで登っておきたかったです。。。。
コメント