文系からエンジニアになって1年が経っちゃったよ

文系でバックグラウンドなかったけど、新卒入社でエンジニアとして配属、働いて1年経った区切りなので振り返ってみます。

何エンジニアか

JavaAndroidアプリを開発していました。

(ちなみに、学生時代はHTML,CSSをちょろっと書いていたくらい。webのフロントに必要なJSも少しだけ。)

1年間の仕事内容

JavaでWebアプリ開発(研修)

研修でJavaを学習、フルスクラッチでWebアプリを1本書いた。 今まで「ちょっとかじってきましたー」がいい感じに叩き潰されて一からJava勉強できてよかった。

新規アプリ開発①

OJT的なプロジェクト。1ヶ月ほどのAndroid学習期間の後アサイン。 ベテランの先輩のサポートもたくさんあってAndroidアプリってこうやって開発してリリースするんだぁ、って一連の流れがわかったという感じだったと思う。コーディング規約に沿ってないとか超基本的なところを指摘されてた。

新規アプリ開発②

1つめのアプリをベース&ちょっとアレンジしたアプリで、ベテラン先輩なしで1ヶ月ちょっとで開発。 少しずつできることも増えたけど不具合お化けである。 iPhoneアプリがすでに先にリリースされていたので、「iOSが正で!」的な要件だった。 iOSではできるけどAndroidでは実装つらい挙動とかにぶつかってAndroidのデザインとは?みたいなことを考えていたような気がする。

新規アプリ開発③

もうひとつ新規アプリ開発をした。規模は小さかったけど、MVP設計を取り入れて開発したアプリ。 設計とは?みたいなところも初めて考えるきっかけにもなった。結局何が嬉しいの?ってところをよく議論・考えたような気がする。 この時にかなり細かいところまでガッツリコードレビューをしてもらったのがとてもよかった。 そのお陰で「こういう書き方にした方がいいのでは?」みたいな意志がやっと芽生えた気がする。

tech.recruit-mp.co.jp

konifar.hatenablog.com

既存アプリのエンハンス

すでに数万のアクションをもっている既存のアプリチームに入った。 スクラムな体制で開発を進めていて、いくつかエンハンスの案件をやらせてもらった。 エンハンスで入るのは初めてだったのと、今までとは比較にならない規模の大きさ&ソースコードの複雑さで最初はかなり大変だった。あまり新しくコードを書いて機能を追加したりはしなかったが、プロダクトオーナーからの要求に対して最適な手段を提供するにはどうしたらいい?みたいなことを考えていた気がする。既存のコードがあるから、Howが一筋縄ではいかない、じゃあどうする?みたいな壁にたくさんぶつかれた気がする。

資格など

1年目に会社から課された資格が以下の3つ。ギリギリだったりしたけど3つ全部受かった。

Oracle Java Silver

研修でも業務でもやっていたので、良い復習&穴を埋める機会になってかなりよかった。 それまで「やさしいJava」みたいな本しか読めなかったけど、この資格きっかけに「Perfect Java」のありがたさを知る。今までなんとなくでしか理解していなかったものを色々発見しながら深められたのは楽しかったし、ベースアップにもなったと思っている。 いつでも受けられるけど受験料がクソ高いのが難点。

www.amazon.co.jp

応用情報技術者試験

ここから業務とはあまり関連のない分野もたくさんで辛かった。 2ヶ月くらいガッツリ土日の時間を割いて勉強していた。半年に一回しか試験がないし、落ちてもごまかしようがなくてかなりのプレッシャーだった。 情報系の全般知識を広く学べたのはよかったと思う。名前でも聞いたことがある&なんとなくあそこらへんの言葉だ、というのが今後に生きると信じてる。

LPIC レベル1

これも業務との関連性はなし。3月ギリギリまで残してしまった。 試験に受かるための勉強になってしまったことが反省。 コマンドのオプションなどかなり細かいところまで聞かれる自分にとっては鬼畜試験だった。 内容はとても楽しかったけどね。101に関しては一回落ちたんだけどね。受けなおしてなんとか取ることができました。

www.lpi.or.jp

業務以外

プロコン

同期と何人かでやっているプロコン勉強会。 蟻本を参考に毎週1問ずつ解いてきてAOJ,POJに通すというもの。 最初は何回やってもWA(Wrong Answer:そもそもロジックが間違っている・パターンが網羅されていなかったり)で通らなかったけど、少しずつ通るようになってきたり、 TLE(Time Limited Exceeded:制限時間内に返ってこない)になってなんでだろう!!とか少しずつ悩みの内容が変わっていくのがうれしかった。 CodeFestivalの予選を解いてみたり、などなど新しい世界を同期には教えてもらって結構楽しかった。

www.amazon.co.jp

AIZU ONLINE JUDGE: Programming Challenge

Welcome To PKU JudgeOnline

(おまけ)動画編集

副産物的な話ですが、 1年目で懇親会や忘年会などなどで新人芸をやる機会などが多くて、動画を作る・編集することが多かった・・・。結構楽しくてハマったところもあったので動画編集も新しい世界だったかも。

その他

  • Rails Girls Tokyoというイベントに参加したり
  • potatotipsにも参加してみたり
  • 会社で「Arduino触ってみた」でLTしたり

などなど少し興味の幅も変わってきたり、手を出せる幅も変わったのかなぁと感じています。

railsgirls.com

connpass.com

1年を総じて感じたこと

時間の使い方が大事

本当に時間がない(というか使い方が下手だとあっという間に過ぎていく)。できる人は家でも努力している。まだまだ時間の使い方が下手だったと思う。 そういうのを感じて「もっと頑張らなきゃ・・・私できてない・・・」と奮起&鬱にもなったり。 飲み会も選んで行くようになった。 以下の記事にはハッとさせられた・・・ life.libinc.jp

深ぼる癖をつける

私がこの世界に入った時は「これは呪文だからそういうものだと思って覚えようね」などと言われたりした。これが染み付いていて、必要になったらその分の知識をつけるという流れになっていた。 普段から調べる・深ぼる癖をつけておかないと、いつまでたっても活躍できるエンジニアにはなれないなと感じた。

指摘されなくても気づける能力がほしい

もはや願望ですが、今年1年は新人だから指摘される機会が多かったのもあって気づいたこともあったと思う。技術力に関してもコードレビューしてもらえないとスキルアップできないとなると困る。 自ら成長するとか簡単にいうけど、そして今まであんまり意識していなかったけど色々方法を模索していかなきゃいけないと感じた。2年目怖い。

最後に

1年間通して「どうしても勝てなさそうな相手」がいるということがわかったり、自分のできなさにかなり悩んだところもあった。「やっぱり私向いてない」とか「無能って思われるの辛い」とか色々感じていたけど、「できないけどこれからどうしていくか」について前向きに捉えられるようになったのはよかったと思う。まだ頑張れる。 書き始めたらどんどん書くことが湧いてきてこんなに長くなったし、それだけ新しい世界には出会っているんだな! 1年後これを振り返って「こんなちょろいことしてたのかーーーーー!」って思えるくらい成長できるといいな。