株式会社オズビジョンの@h_kamadaです。
17卒として入社して、気がつけばあっという間に3年目のAdvent Calendarを迎えました。(去年はかけておらずですが。。。)
そんななか、今年度はほぼほぼ未経験のスマホアプリ開発にjoinし、右往左往しながらなんとかリリースにこぎ付けました。
スマホアプリ開発1年生だった私が、ぶち当たった壁とその壁をどう乗り越えたかをまとめます。
どんな人に読んでほしいか
- 新しいことにチャレンジしている人
- 壁にぶつかってつまづきそうになっている人
壁その1. 初めて触る言語・フレームワークでそもそも知識がない
入社してから、1年目はSREチームで主にAWS基盤インフラの運用・改善業務に携わり、2年目に突入すると心機一転、phpでウェブサービスの機能開発・運用を担当していました。
そして迎えた3年目、社内でスマホアプリ開発のプロジェクトが立ち上がり、私が所属しているチームも開発にjoinしました。
必然的にスマホアプリ開発にjoinした私でしたが、これまでアプリの開発はswiftでタイマーアプリを作ってみたくらいの経験値です。
swiftにしてもjavaにしても少ない知識を活かして頑張ろうと思っていた矢先、技術選定が終わり方針が共有されます。
「React Nativeでアプリを作ります。」
https://facebook.github.io/react-native/
これまでReactは少し触っていました。が、React Native???Reactとなにが違うの???という状態でした。
コツその1. ググる、ドキュメントを読む、それでもわからなければ聞く
https://www.google.com/わからないことはググって調べました。Qiita等、先駆者の知識はゴロゴロと転がっています。英語の記事も多いですが、少ない英語力でなんとか読み進めたり、google翻訳にお世話になったりしながら情報を集めました。
でも、そもそもググり方がわからなかったり、調べても理解できない箇所も出てきます。
そんな時は社内でわかる人に聞きに行きました。
ただ、質問に行くときは「自分は今なにがわからないのか」を意識して、知りたいことを端的にまとめて持っていくようにしました。
教えてくれる人も時間は有限です。作業の手を止めてまで相談に乗ってくれるのですから、しっかり準備をして臨みましょう。
壁その2. 実装方法のイメージがわかず手が進まない
なんとなく言語・フレームワークのことをわかったつもりになったところで、いざ開発の時間がやってきました。
しかし、エディタを開いたまま時間だけが過ぎていきます。
実際にコードを書こうとしても手が進まないのです。
いつも通りググって見ると、実装のベース知識は出てきますが、その知識を自分のサービスに合わせて書くのは簡単ではありません。
コツその2. 既存コードやPRに挙がっているコードを読んで書き方を学ぶ
すでにマージ済みのコードや作成されているプルリクエストのコードをとにかく読みましょう。
参考書やネットの記事では「書き方の基本」や「よい書き方」は載っていますが、「自分が担当しているサービスでの書き方」は載っていません。
ドメイン知識はプロジェクトのリポジトリやwikiに載っています。
そこに書かれている情報を参考にコードを描いてみてください。
そして、真似するだけではなく、自分の知識を加えてよりよい書き方を学んできましょう。
最後に
エンジニアをやっている以上、新しい技術や知識は必要不可欠です。
その情報量の多さと速さに圧倒され、時には壁にぶつかることもあると思います。
私自身もよくぶつかります。
そんな時、ただがむしゃらに頑張るだけではなく、「自分は何に悩んでいるのか」「どうしたら解決できるのか」「どのように頑張るのか」をほんのちょっぴり意識してみて、そこにパワーを使うようにするとうまく進むのではないかと思います。
この記事が誰かの気づき・行動のきっかけになれば幸いです。