この時期になると就活中の大学生や大学院生と採用活動の一環で話すことが多くなりますが、就活生からよく聞かれるとが「入社後のために就職後の学生生活で何をしたらいいですか?」という質問です。

自分は即答で「勉強とか、研究とか、バイトとか、旅行とか学生時代にしかなかなかできないことに頑張って取り組んでください」と答えています。

学生からするとやる気をアピールする意図もあると思いますが、IT系に就職となると入社後に要求される専門性が高くて、さらに周りにすでに何かしら専門性を身に着けている同期の学生もいるので、特にITに関連がないことを学んでいた方はやっていけるか心配してこの質問をしていると思います。

となると、自分の回答は期待されている回答じゃないかもしれないですね。

ただ、実際IT業界で働くと特定のプログラミング言語が書けるとか、機械学習ができるとか、セキュリティ技術に詳しいとか、そういったスキルは役に立つけど、それだけじゃ全然やっていけないんですよね。

プログラマでも、インフラエンジニアでも、プロジェクトマネージャーでも、デザイナーでも、営業でも、いろんな職種の人間がいますが、結局このロールはこのスキルがあればいいってことはなく、すべての役割で共通した多数のスキルを保有しつつ、専門性として尖った部分を作っていくことが必要だと思います。

例えば情報収集能力として、業務では社内外の会議や技術の仕様書だけから情報を仕入れるのではなくて、論文を読んだり、関係者にインタビューしたり、展示会や勉強会に参加したり、そのシステムやアプリケーションが使われている現地にいってフィールドワークしたり(時には覆面でユーザーとして潜入することもあります)と様々な方法を駆使して情報を収集します。

それに、どんな立場でもIT業界で一番必要なスキルはコミュニケーション能力です。何人、何十人もいるプロジェクトメンバーで複雑な概念や要件を整理しながら協力してコードに落とし込んでいく作業は他の業界よりも高度な情報伝達能力を要求されます。

そういった能力ってこれをやってれば身につくというわけではなくて、本当にいろんな経験をしないと身につかないので、アカデミアの世界にいるのならそこでしかできない経験を積んだほうがいいと思います。

その時々の状況に応じて臨機応変に対応するにはいろんな選択可能な選択肢を持っておくことが必要で、それは文系・理系に限らず大学時代の授業や研究室、ゼミ(ときにはバイトや遊び)での経験での得られる能力も多いです。

ただ、就職してから大学の先生になにか質問したくなっても、共同研究という形でお金を払わないと相手にされないですし、企業の人間として学会に参加することも可能ですが、そのための研究や資料作成は残業や業務外での負担が多く、定常業務をこなしながら参加するのはかなりコストが高いので、やっぱり学生としての立場を最大限活かしたほうがいいんですよね。

それに、就職してから専門性は業務の中で集中して身につければいいと思っています。よくIT系のインフルエンサーでエンジニアは土日も勉強しないとだめだと言っている人がいますが、仕事で使う知識は業務で身につけるべきですし(法律的に)、たとえ業務時間外で勉強することになってもすぐに実践で応用することができればより知識を自分のものにできます。

逆に、業務と直接関係しないスキルを身につけるのは、なかなか難しくなります。ただ、経済や法律、工学や医療の知識などITの現場で生かされるスキルって多いんですよね。そういったみんなが持っていないスキルを他者との差別化に活かすのは重要だと思います。

というわけで、今勉強していることを頑張って勉強する、それ以外の時間は遊んだりやりたいことをするのがいいと思います。強いて言うなら、例えば特定の学術誌に採択されることを目標にしたり、長期の休みにじゃないと行けない海外の秘境にいったり、興味はあるけど就職先として選ばなかった業界でバイトやインターンとして働いてみるみたいなことは価値があると思います。

それでも何かやってみたいという方は・・・

とはいえなにかITに関係することがしたいという方は簡単でもいいので、自力でwebアプリケーション構築してみると、働きだしてか周囲より一歩リードできますし、その後どんな職種についても(たとえデザイナーや営業でも)この経験を活かすことができると思います。

システムやアプリケーションがどのような仕組みで動いているかを実際に体を動かして感覚的に理解することで、その後に学ぶ新しい概念を高速かつ正確に理解できます。

  • APIとリクエストとはなにか?
  • ブラウザとサーバーの関係は?
  • 個人情報はどのようなセキュリティ技術で守られているのか?
  • フレームワークとはなにか?
  • 画面(UI・フロントエンド)の実装方法は?
  • サーバー(バックエンド)での処理を実装する方法は?
  • データベースはどんな役割をもつのか?
  • エラーメッセージの読み方
  • バグの修正方法の調べ方

ここらへんを完璧にわからなくても感覚的なんとなく理解できるといいです。

正直、就職してからコードを書くひとは少ないと思いますし、最初はプログラムの設計等に関わることはないのでこれらの知識をすぐに活かす場面は少ないです(逆にコードを書くなら必須です)。さらに、上流の工程やセールス携わることになれば直接活かす場面は一生こないかもしれません。実際、長年IT業界にいるのに全然わかってない人もいます。ただ、それって料理ができないのに調理器具売っているようなもので、たとえ使わない知識であっても基本は抑えておくべきだと思います。

使う言語とフレームワーク(webサプリケーションを作るためのテンプレートとなるプログラム)は、一番無難なのがSpring(Java)がいいと思います。Pythonに知見があったり、機械学習に興味がある方はFluskやFastAPI(python)、いまさらRubyをやる必要はない気がしますが、日本語の情報が多いRuby on Rails(Ruby)もいかもしれません。

正直コードを書いた経験がない方はいきなりwebアプリを構築するのはかなりハードルが高いですが、プログラミング言語を雑多に学ぶより、webアプリ構築に必要な知識だけを実装経験を積みながら取得したほうが身になりますし、楽しいと思います。

Springの入門書を紹介したいところですが、あんまりいいのがありませんね。Javaやwebアプリの知識が前提の本が多いです。強いて言うならこれとか良さそうですが、コーディングに知見がないのにいきなり挑戦するのはハードルが高そうです。

[brogcard url=”https://amzn.to/40O8csN”]

自分も学生の時Spring bootでwebアプリを作りましたが(ボタンを押すと夕食の料理名を答えてくれるだけのアプリ)、このUdemyの講座を参考にしました。

古典としてここらへんの書籍を紹介されることもあると思いますが、正直いきなり読んでもイメージが全くつかないので、最初は理解できなくても軽く読んでそういうものなのかと思っておくか、それこそwebアプリケーション自分で作ってみた後や就職して実際に設計や実装に携わったあと読むでもいいと思っています。

[brogcard url=”https://amzn.to/4glCXKj”]

徳丸本と呼ばれるセキュリティについての名著です。少し古い本ですが、最近も某航空会社がDDOS攻撃によってシステムダウンを起こしたように、セキュリティ技術が進歩しても攻撃の原則は変わらないので一度は読んで、どんなセキュリティリスクが存在するのか頭にいれておくのは意味があると思います。

[brogcard url=”https://amzn.to/4hCsFqi”]

IT業界の人が就活生におすすめする本、不動の第一位です。ただちょっとコードを書くぐらいだとここに書かいていることを気にしなくても支障がないので、普段業務でがっつりコードを書かないと学んだことを活かしにくいです。ただ、コーディングに限らず周りと協力しながら情報伝え合う心構え的なところも学べるので読み物として読んでもいいかなと思います。

それでは。