##はじめに
1年の終わりだし、新卒でエンジニアとして働いた今年のことをまとめたかったのと、
エンジニアになりたい人の参考(特にモバイルアプリエンジニア)、になればと思って書きました!
##エンジニアになろうと思った経緯は??
大学に入ったぐらいからプログラミングには興味があったものの、勉強とかは特にせずダラダラと大学生活していて、「エンジニアになりたい」って思ったのは大学4年の春ぐらいです。で、「iOSアプリつくりたい!」と思い就活中に1ヶ月間「TECH::CAMP」のiOSアプリ開発コースを受講したのがちゃんとしたのがプログラミング勉強のスタートでした。「TECH::CAMP」が終了したのが9月ぐらいでそこから就職活動を再開(この時点でSIer に内定していたが、SE嫌だ、アプリつくりたいと思い内定を断り就活再開)して、現在の会社に至ります。
##どうやって勉強してたの
「TECH::CAMP」を卒業してからは独学で勉強を進めていました。入社まで「TECH::CAMP」で作成したサンプルアプリの復習したり、オリジナルアプリを作ってみたりしていました。分からないとことがあったらググって調べる感じでした。ただ、実装のスキルが上がったと感じたのは実際に案件に携わってからでした。これは人に依るところが大きいと思いますが、自分は独学だとどうしてもやったりならなかったりで、知識の定着はあまりしていなかったような気がします。今思えばエンジニアインターンとかすれば良かったなと思います。。
調べ物や勉強の際に参考にしていたサイト
・Qiita
・stackoverflow
・udemy: オンライン動画学習サービスです。プログラミング初心者でも学んでいけますし、VRのアプリや、簡単なSNSアプリを作成するコースもあります。めっちゃおすすめです。
##どんなことしてたの今年
4月に入社してからは3ヶ月ほど外部で研修を受けました。IT業界の基礎や、グループワーク演習、ビジネスマナーを2ヶ月ぐらいやって最後の1ヶ月はjavaの勉強でした。
研修から会社に戻ってきてからはずっとモバイルアプリ開発していました。
Android のサンプルアプリの作成 → 新規開発アプリ開発(Android ) → 既存アプリの改修案件いくつか(iOS(objective-c, swift), Android(java))→ iOS新規開発アプリの実装お手伝い(swift)
大まかな今年の流れはこんな感じでした。iOS : Android = 4 : 6 ぐらいでやっていたイメージです。
iOSの開発は独学でやっきてましたが、Android は全くやったことありませんでしたし端末に触れることも今までほとんどなかったので、最初にAndroid アプリの新規開発案件を担当した時は本当に毎日新鮮でした。Android のライフサイクルも知らない状態からスタートし、なんとかリリースまでこじ付けました。
入社してからできるようになったことを簡単にまとめるとこんな感じでしょうか。
・iOS アプリの基本的な実装(Swift, Objective-c)
・Android アプリの基本的な実装(Java)
・gitでのソース管理
・Xcode のデバッグ機能の活用
・Android Studio のデバッグ機能の活用
##思ったこと
###継続は力なり
Android 始めた時は3日コード見ないと、書き方とか実装忘れてました。少なくても良いので草生やし続けること大事です。
###お手本となる人、コードを見つけること大事
最初にインプットすることは、その後の基礎になったりコード書いていく上での癖に影響を与えたりと、エンジニア人生に大きくインパクトを与えると思います。だからこそ、できる人のコードを真似したり、レビュー内容を忠実に守ることが大事だと思いました。なるべく良い癖を身につけていきたいものです。
###アウトプットしよ!
これはQiitaに投稿するようになって気づいたことですが、実装してみてうまく動くけど、いざ実装内容まとめてみるとコードで分かっていない部分が意外とあったりします。「何でこのメソッド使ってるんだろう(ほかのメソッドでも同じことできそうなのになんで?)」とか、「この引数いつもnil に設定してるけどなんでやねん」とかとか、アウトプットとして文字にまとめようとすると今まで有耶無耶にしていたところがはっきりしてきます。エンジニアとして働いていると、何をどう実装して対応したかをマネージャーの人に説明するとこがあるんですが、動けばいいや精神で実装してるとそういう時に困ります。それを防ぐためにもQiita とかメモにアウトプットするのは良いなと思ってます。
また、自作アプリをリリースするとかライブラリを開発するとかいったことは技術力が上がることに直結するので積極的にやって行くべきだなと感じています。
##これからどうするの
エンジニアになって約8ヶ月程経ちましたが iOS, Android ともに基本的な機能に関しては(調べながらではありますが)ある程度実装できるようになりました。で、今関心があるのは実装の設計部分です。自分で作ったアプリの実際内容を後で見ても理解に時間がかかったり、改修のしやすい設計になっていなかったりと思う箇所が多いので、みんなに分かりやすくて・堅牢で保守性の高い設計をできるよう今後は勉強していきたいと思っています。
あとKotlin、Rx-swift デファクトスタンダードなのでは早めに書けるようになっておきたいですね。
##おわりに
色々書いてますが、想像通りにエンジニという仕事は楽しいし、クリエイティブだし、クールでセクシーなイケてる仕事だと思います!(←語彙力) 働くようになってからもその考えは変わりませんでした。あと、文系や経歴なんて関係なく活躍できます。コード書きまくってスーパーエンジニアになりましょう。