こんにちは!ShareWisインターンのほうのです!
この3月まで半年間インターンとして、ディレクション、デザイン、開発に携わらせていただきました。
ディレクション、デザイン、開発ともに、実務は初めてで、開発に関しては、個人で2年くらいしていたのですが、実務ってこんなに違うのかと、驚きまくりの連続だったので、
今回は、開発に関して学んだことをアウトプットとして残したいと思います。
対象読者:
趣味(※)でエンジニアをしていて、ある程度開発ができるようになって来た人で、企業に入って開発をしようか迷っている人
※趣味と個人を同じ意味で使ってます
伝えたいこと:
個人で開発するのと企業にいてチームで開発するのは全然違う→一度インターンか何かで実務で開発を経験するのがオススメ
開発における趣味と実務の違い
趣味と実務の違いで私がまず感じたのは、これです。
趣味:好きな機能を好きな技術で好きなタイミングで開発できる
実務:決められた機能を決められた技術(仕様)で決められたタイミング(期間)で開発する
趣味だと自分の好きなように開発ができる一方、実務だと仕様通りにいかに早く綺麗に実装できるかが、求められます。それぞれメリットデメリットがありますが、実務でないと実現が難しいのが、「レビュー」です。会社それぞれに設定された開発フロー(Githubフローなど)に従い、開発後のレビューがあるのが一般的ですが、レビューを通じて、他の人から「ここはいいね!」「ここはこのメソッドを使って書き直そう!」と言ったフィードバックを受けることができるため、開発を通じて様々な発見をすることができます。
私の場合、このコードレビューを通じて、いかにこれまで、一部の機能しか使っていなかったのか、またいかに汚い適当なコードを書いていたのかを知れて、コードへの向き合い方が180度変わりました。
このように実務ではチームで開発するのが一般的です。今あげた、決められた機能を決められた技術(仕様)で決められたタイミング(期間)で開発するの辛い、レビューがorzという方は、実務での開発に向いていないと思います(向き不向きの問題)。
企業に入って開発するメリット
「開発における趣味と実務の違い」のところでも少し触れましたが、ここでは、企業に入って開発するメリットにフォーカスしていきたいと思います。
全ての業種に当てはまることも含まれていますが、やはり、企業に入って開発することの最大のメリットは、企業がこれまで色々な試行錯誤をして導き出された開発手法のベストプラクティスを体験できることでしょう!それだけでも十分メリットですが、色々なツール(カンバンやCIツール、ChatOps等)を使用できる点もいかにして業務を効率化するのかの学びになります。さらに、日々の会話でも、新しい技術の話や、他サービスの仕組みの話など、常に発見の機会があるのも刺激的で、開発大好きな人にとっては、充実した開発ライフをおくれると思います!
他にもたくさんありますが、ざっとあげると以下が企業に入って開発するメリットになります。
- コードレベル
- 綺麗なコードの書き方
- 既にあるコードを読む中で、コードレビューを通じて知れる
- 後からみた時に理解しやすいコード
- コメント
- 無駄のない、冗長でないコード
- 知らないメソッドが想像以上に多いことが知れる
- コード規約の重要性
- テストコードの書き方
- サービスレベル
- 新規機能/機能追加の設計の仕方(役割分担)
- セキュリティの運用の仕方
- チーム開発(企業ではどう運用しているのか知れる)
- 開発の進め方
- 開発ルール
- コード規約
まとめ
この記事を読んでくれた人の中には「自分は院にいってやっているからスキルはめちゃくちゃある!」と思っている方や、今まさにアプライしようか迷っている方、はたまたエンジニアをやり始めてまだ1年もたっていない方もいるかも知れません。
しかし、レベルや状況に関係なく、間違いなく言えることは、「企業に入って開発をしてみると、想像以上に色々な学びがある」ということです!
企業で学んだことを自分が作ったプロダクトにアウトプットをするといったサイクルを作るのもありです!趣味でエンジニアをしていて、ある程度開発ができるようになって来た人は、一度インターンか何かで実務で開発を経験してみてはいかがでしょうか!
コメント