SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

挑戦するエンジニアを目指そう! 技術とキャリアの可能性

スタートアップ/メガベンチャーで働くには? 20代から考えたい、エンジニアに求められる4つのスキルとこれからの伸ばし方

スキルの伸ばし方

 エンジニアとしての自分の市場価値をさらに上げていくために、どのように自分のスキルを向上させていくとよいのでしょう? これまで説明した通り、スタートアップとメガベンチャーでは求められるスキルも与えられる環境も大きく異なります。まだどう言ったキャリアを形成したいかがはっきり決まっていなくても、それぞれに共通して求められるスキル・経験は以下の通りです。

  • コーディング力
  • コミュニケーション能力
  • チーム開発の経験
  • 設計力

 これらのスキルはどの職種や企業においても求められるため、非常に重要です。個人開発で培える技術もあれば、企業に所属しないと習得することが困難なスキルもあります。ここではそれぞれどのように習得できるかを説明します。

コーディング力

 コーディング力は職種や企業問わず必要とされるスキルです。コードが書けるだけではなく、クラスなどの概念を理解していたり、複雑なアルゴリズムを実装することができたりといったスキルです。企業が採用面接の際に実施するコーディング試験などでもよく見られる点であるため、これから就職を考えている方も含め習得しておいて損はないかと思います。

 コーディング力は比較的個人でも学習しやすく、教材やサイトなども充実しているため、学習は容易です。クラスなどの基礎概念を知りたい場合は、技術書や、UdemyやUdacityなどのオンライン学習サービスでのプログラミング講座、アルゴリズム等、実装力を鍛えたい方はAtCoderやLeetCodeなどの競技プログラミングサイトが楽しくておすすめです。また個人開発等で実践しながら学ぶことも非常に有用です。

コミュニケーション能力

 ここでのコミュニケーション能力は、一般的な対話能力等も含みますが、それ以上に技術的なディスカッションをできるかを指します。例えば新しい機能を設計することになった際に、ホワイトボードなどを前にチームのメンバーと一緒にシステムを設計できる、コードレビュー等においてペアプロなどをする際、技術的な会話を円滑にできるなどの能力を指します。

 個人開発で鍛えるのは比較的難しい分類のスキルですが、オープンソースの開発にコミットしたり、周りのエンジニア仲間と趣味プロジェクト等を開発したりすることでも習得できます。手を動かす現場のエンジニアにももちろん求められますが、テックリードやマネージャー層などでは、技術選定や機能設計に必要なコミュニケーションが発生するため、より重要視され、面接等で評価されます。

 企業にすでに所属している場合は、チームを横断した開発に積極的に取り組み、普段コミュニケーションを取らない人と一緒に仕事をしたり、システム設計や、開発ミーティング等でファシリテーションをしたりすることで、開発に必要なコミュニケーション能力を鍛えることができます。

チーム開発の経験

 チーム開発の経験で求められるのは、Git等のバージョン管理ツールや、コードレビューのプロセス、またスクラムという開発手法等を用いたフローに慣れているか等、チーム開発する上で必須となるスキルのことを指します。スタートアップやメガベンチャーでの開発は多くの場合、個人での開発ではなく、チームとして開発するため、チーム開発に必要な最低限のツールの知識や、開発の流れの把握はかなり重要視されます。

 チーム開発のスキルを向上させるには、すでに企業に所属している場合は、実際に経験を積んで習得することができます。個人開発をしている場合には習得が難しいスキルになります。周りにエンジニアがいれば趣味プロジェクトを始める方法や、オープンソースにコミットする等の方法もあります。またある程度の概念や用語については本などでも学習が可能になっています。

設計力

 設計力とは、ある目的に対してシステムを設計する上で必要なスキルになっており、例えばAWSやGCPを使って〇〇をするといったシチュエーションに必要になるスキルです。またアプリケーションレベルでは、サーバーを構築する際にDBのスキーマの設計等も含まれます。現場レベルのエンジニアでも重要視されますが、テックリードやエンジニアリングマネージャー等のポジションに置いては、様々な制約のもと、トレードオフを考慮した上、システム設計をリードされることが求められるため、より重要視されがちです。

 設計力のスキルを習得するには、まずは基本的な概念をオンラインや書籍をもとに勉強し、その後実際に手を動かしてシステムを構築してみることがおすすめです。趣味プロジェクトでの開発でシステム設計の知識を実践することや、Kubernetes等のオープンソースのコアの設計のドキュメントを読むなど、さまざまな学習方法があります。

まとめ

 いかがでしたか? 本記事ではエンジニアとして今後のキャリアを考えている方向けに、さまざまなキャリアの選択肢や、スタートアップやメガベンチャーにおける求められるスキルの違いや、必要とされるスキルの伸ばし方などを説明しました。

 連載の次回の記事では、これからエンジニアとしてキャリアを歩んでいく中で避けては通れない、コーディング試験と、コーディング試験を通して企業が見ている点について、筆者の経験をもとに紹介します。

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
この記事の著者

葛岡 宏祐(株式会社ハイヤールー)(クズオカ コウスケ)

 1996年生まれ、京都府出身。バックパッカーとして世界一周を経験後、独学でiOSの旅行アプリ『AminGo』をリリース。2018年にAIエンジニアとして株式会社ディー・エヌ・エー(DeNA)に入社し、数々のイベントに登壇。2020年2月、画像検索プロジェクトのテックリードとして株式会社メルカリに入...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/17057 2022/12/22 11:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー