筆者: 蟇目 雄介
SIerで7年間基幹システム開発に従事し、gumi等でソーシャルゲームのデータ解析や運用開発を担当。Goodpatchでプロトタイピングツールを開発し、R CUBEにCTOとして参画して花嫁向けWebサービスを立ち上げる。2017年5月にフリーランスエンジニアとして独立し、2018年7月に株式会社マスドライバーを設立し、代表取締役に就任。フルスタックエンジニアとして活動中。
Contents
- Q1:これから身に着けるプログラミング言語として、おすすめの言語とその理由を教えてください。
- Q2:5年後を見据えたときに、身に着けることをお勧めするプログラミング言語と、その理由を教えてください。
- Q3:プログラマの面接では、何を重視して面接しますか?またその理由を教えてください
- Q4:身に着けたスキルを判定する上で、どんなことを、どんな質問で確認しますか?
- Q5:それを頑張ったとしても、企業の採用においてはあまり評価はされないよ。ということがあれば教えてください。またその理由も教えてください
- Q6:スキル以外でどのような部分に注目するのか?(パーソナリティ、前職での業界経験、マネジメント経験、コミュニケーション力、メンタルタフネス、など)を教えてください。またその理由も教えてください。
- Q7:「プログラミングスキルに加えて、こんなスキルを身に着けておくと、面接での評価や、人材としての市場価値が上がるよ」というプログラミング以外のスキル(例:マーケティング、デザイン、分析など)があれば教えてください。またその理由も教えてください。
- Q8:30歳以上で、実務未経験のエンジニアは採用する可能性はありますか?また、採用するとしたら、どんなことを求めるのかを教えてください(特に20代の未経験エンジニアを採用する場合と異なる部分があれば、そこをフォーカスして教えてください)
- Q9:プログラミングスクールを卒業した未経験エンジニアは、入社後どんな育成環境を用意しますか?
- Q10:入社半年後、1年後、2年後、でそれぞれどんなことができるようになってほしいか(マイルストーン)を教えてください。
- Q11:入社後に直面するであろう壁と、それにどう向き合うべきか、どんな覚悟をしておくとよいかを教えてください。
- Q12:プログラマーに向いているのはどんなタイプの人ですか?
- Q13:逆に、プログラマーに向いていないのはどんなタイプの人ですか?また、その理由を教えてください
- Q14:仮にスクール卒業生を採用したら、どんな仕事をやらせてもらえるか(1年目●●●、2年目●●●、3年目●●●、4年目●●●、5年目●●●)教えてください
Q1:これから身に着けるプログラミング言語として、おすすめの言語とその理由を教えてください。
一言でプログラマといっても、ゲーム、IoT、AI、組み込み系、業務系、Web系、HP制作など、プログラミングによって開発されるシステムは多岐に渡っており、それぞれに応じた専門性が求められます。具体的には、どの分野でプログラマになるのかによって、必要となる開発言語が異なります。
基本的には、まずどの分野に進みたいのかを考えてから、学ぶ言語を決めるべきだと思いますが、今回は、私が知っているWeb業界の場合を想定して、おすすめの言語をご説明します。
Web系といっても、Webサービスをつくりたいのか、キャンペーンサイトやランディングページ(LP)などのいわゆるWebサイトをつくりたいのかで覚える言語は、若干異なります。
◯ Webサイトの場合
ほとんどの場合WordPressというCMS(編集部による注:Content Management Systemの略)で制作することになります。その為、WordPressが、使用している言語であるPHPが必須になります。
◯ Webサービス
・フロントエンド
最近は、PWA(編集部による注:Progressive Web Applicationsの略)での構築が普及してきており、JavaScriptの習得が必須になります。また、JavaScriptの型付言語であるTypeScriptの採用も増えてきています。言語の習得も重要ですが、React/Vue.jsなどのフレームワークの習得も必要になってきます。
・バックエンド
RubyかTypeScriptがおすすめですが、一概には言えないので、代表的な言語の紹介をさせていただきます。
– Ruby
日本では採用例が多く、案件も多いです。基本的にRailsとセットになります。
– TypeScript/JavaScript
複雑化してきているフロントエンドと同じ言語を使えるメリットが有り、採用例が増えてきています。
– Python
最近採用が増えてきていますが、日本では、以前Rubyなどに比べると案件は、少ない印象です。データ解析に強く、データ解析系のサービスの場合、採用例が多い印象です。
– Java
toB案件であれば、採用されること多く、エンジニアの数も多いです。比較的堅いシステムに使われます。
Q2:5年後を見据えたときに、身に着けることをお勧めするプログラミング言語と、その理由を教えてください。
特定の言語ということになると、TypeScriptかJavaScriptがおすすめです。理由は、フロントエンド・バックエンド両方で使用することが可能で、採用例も増えてきている為です。
ただ、プログラミング言語は、定期的に新しいものが出てくる為、特定の言語を習得するということより、「新しい言語を覚える」ことに抵抗がなくなるくらい、多くの言語に触ってみることが重要だと思います。
- 言語などの技術トレンドに常にアンテナを張って、今後どんな言語が必要になるのかを見極めて学習していく
- 現在、自分が得意とする言語をベースに、より対応力や親和性が高い言語を学習していく
- 開発案件のマッチングサイトなどで、どんな言語の案件が多いかを参考に、習得言語を選ぶ
例えば上記のように言語学習をしていくとよいかもしれません。繰り返しになりますが、「学習し続ける」ということがプログラマとしての生き方の前提条件になります。
そして、その学習にかける時間や労力といったコストを、より効率よくスキルアップや収入アップに還元できるようにすることがおすすめです。
Q3:プログラマの面接では、何を重視して面接しますか?またその理由を教えてください
◯ ITサービスそのものへの興味
例えば、普段使っているWebサービスや業界の動向などを興味を持ってキャッチアップしているかなどは、重視しています。
◯ 技術に興味があるか?
プログラミングは技術の入れ替わりが激しい為、常に新しい技術の勉強をする必要があります。優秀なエンジニアになるためには、IT技術そのもの対する興味は、必須となります。技術に対する好奇心や探求心は教えて身につくというよりは、その人の性格や、純粋にIT技術が好きかという部分が大きく影響するので、現在だけでなく未来においても通用し続ける人材なのかを判断するには重要な部分です。
◯ 技術の名前や言葉を答えられるか?
使用している/得意な言語等の技術名を答えられるかを見ています。具体的に言うと、技術の名前を答えられるかを見ることが多いと思います。
プログラミングについて具体的な技術の名前を知っているかは、「ただなんとなく使っているのか」、「理解して使っているか」の判断基準になるためです。
新しい情報や技術をキャッチアップすることが重要であることはすでに説明しましたが、広く浅くではなく、重要な部分に関してはきちんと深堀りして根本的な理解をしているかは重要です。
Q4:身に着けたスキルを判定する上で、どんなことを、どんな質問で確認しますか?
相手に合わせて質問しているので、一概に言えませんが、以下のような質問をすることが多いです。
- 得意な言語はなんですか?
- 得意な言語の最新のバージョンは?
- 得意な言語特有の技術的な質問
- 提出したソースコードを説明してください
- XXXの技術について説明してください
Q5:それを頑張ったとしても、企業の採用においてはあまり評価はされないよ。ということがあれば教えてください。またその理由も教えてください
だれでも作れるようなソースコードを共有することは、あまり意味がないと思います。
採用をしているとよくGitHubにソースコードを提出される方が多いですが、ほぼコピーしているコードのどこを見てほしいのかなどがないと評価できません。どの部分に自分が関わったのか、どんな部分にこだわったのかなどはコードとセットでアピールしてもらう方が好ましいです。
また、面接では、提出されたソースコードに対して説明を求めることが多いのですが、殆どの場合、説明できなかったり、「コードをコピーしたのでわかりません」といった回答をいただくことが多いです。この場合、マイナス評価になります。
よく勘違いされるのが、大規模開発や、ネームバリューのあるプロダクトや会社の開発をアピールされるのですが、こちらはその個人のスキルを見ているので、「大規模開発 = 優秀なプログラマ」という安易な発想で採用することはありません。
利用者が少なくてもWebサービスとして実際にリリースしたとか、コードに関して、隅々まで説明できる方が技術者としての評価は高いと思います。
Q6:スキル以外でどのような部分に注目するのか?(パーソナリティ、前職での業界経験、マネジメント経験、コミュニケーション力、メンタルタフネス、など)を教えてください。またその理由も教えてください。
大雑把かつシンプルにいうと、一緒に働きたいと思えるかどうかです。
チームとして一緒に働く上では、コミュニケーションがきちんととれるかはとても重要ですし、それ以上に信頼関係も重要です。技術も大切ですが、極論それら外注すれば解決することが可能です。
自社のスタッフとしての採用となると、技術以上に「人」としての部分を重視しています。
Q7:「プログラミングスキルに加えて、こんなスキルを身に着けておくと、面接での評価や、人材としての市場価値が上がるよ」というプログラミング以外のスキル(例:マーケティング、デザイン、分析など)があれば教えてください。またその理由も教えてください。
フロントエンドエンジニアであれば、デザインができると市場価値が上がると思います。
フロントエンドエンジニアをやる場合、基本的にデザインがあり、それを実装することになると思いますが、「細かいデザインがない」「実装してみたら実現できないデザインだった」ということは、よくあるので、その場合に、デザイナーに返してしまうのではなく、それっぽいデザインで実装してしまえると、業務の効率が上がるため、市場価値が上がると思います。
イメージとして、「プログラミングの両隣」にあるスキルがあると、それは足し算ではなく掛け算で評価を上げていけるのではないでしょうか。
Q8:30歳以上で、実務未経験のエンジニアは採用する可能性はありますか?また、採用するとしたら、どんなことを求めるのかを教えてください(特に20代の未経験エンジニアを採用する場合と異なる部分があれば、そこをフォーカスして教えてください)
30歳以上での未経験エンジニアは、可能性はありますが、難易度は上がります。
それまでに非エンジニアとしてやってきたことが、エンジニアになってどれだけ生かせるか。またそれがどれだけユニークな存在として認められて、かつ需要があるかという問題になってきます。
例えば、それまでセールスをやってきた人であれば、顧客との直接コミュニケーションに対応できて、かつわかりやくプレゼンできるなどです。
Q9:プログラミングスクールを卒業した未経験エンジニアは、入社後どんな育成環境を用意しますか?
一定期間の研修と、その後はOJTになると思います。研修は、その会社の使用している言語・フレームワーク・ツールなどの内容になると思います。
実務未経験となると、いきなり一人前のエンジニアとして扱うのは難しいので、サポートをしながら徐々に慣れてもらうことが必要だと思います。
Q10:入社半年後、1年後、2年後、でそれぞれどんなことができるようになってほしいか(マイルストーン)を教えてください。
エンジニアの種類によってかなり違うと思いますが、例えばこんな感じでしょうか。
- 1年目 一つの機能を既にある設計に沿って独力で実装できる
- 2年目 助けを借りながら設計・実装を行える
- 3年目 設計から実装・リリースまで、一人で行える
Q11:入社後に直面するであろう壁と、それにどう向き合うべきか、どんな覚悟をしておくとよいかを教えてください。
モチベーションの壁かなと思います。
プログラム以外の仕事が多かったり、バグ調査やリリース作業などプログラム以外の地味な作業もそれなりにあります。一日中プログラミングをしてるわけではなので、想像と違っているなどで、そのギャップに悩む人が多いです。
実際の事業としては、プログラミングをすることが目的ではなく、そのシステムが使われて収益が生み出されることが目的になるので、そのために必要なことはみんなで手分けしてやらなければなりません。
中には地味な作業や、技術とは遠い作業もありますが、本来の目的をきちんと理解して受け入れていくことは大切です。
Q12:プログラマーに向いているのはどんなタイプの人ですか?
仕事を楽しめることが重要な要素になると思います。
今ある技術をより深堀することでもいいですし、新しい技術を取り入れるでもいいです。
また、バグ修正や動作確認など根気のいる仕事も多くあります。例えばですが、これらもパズル感覚で楽しみながらこなせるかは重要ですね。
大きなプロジェクトになると、開発期間が1年以上の長期に渡ることも多くあります。こういった場合には飽きずにやり切れるかも重要になってきます。
Q13:逆に、プログラマーに向いていないのはどんなタイプの人ですか?また、その理由を教えてください
「わからないこと」と正面から向き合えない人は、向いていません。技術の入れ替わりが激しい為、数年で新しい言葉や知らない技術が続々と出てきます。
当然、それらすべてを追うことはできないので、常態的にわからない言葉や技術にあふれている状況に置かれます。そんなときに、インプットをあきらめてしまったり、新しいものを避けてしまうと、技術者としては致命的になります。
Q14:仮にスクール卒業生を採用したら、どんな仕事をやらせてもらえるか(1年目●●●、2年目●●●、3年目●●●、4年目●●●、5年目●●●)教えてください
経験年数というよりは、本人の能力や信頼関係で仕事を割り振ることが多いため、一概に言えません。
優秀な方であれば、1年目でも重要な機能を任せてもらえると思います。
入社後、自身の実績と相談しながら、ご自身でキャリアパスを作り、周りにアピールして実現することが、重要だと思います。
人気記事スタートアップ企業の現役CTOに、未経験エンジニアの採用について本音を聞いてみた【10の質問】