こんにちは。もんしょー(@sima199407)です。
という疑問があるかと思います。
以前に以下のようなツイートをしました。
実務経験があればやったことないこともできそうと判断されること。
例えばRubyの案件で2人の候補者がいる
・web系エンジニアとして1年、Ruby実務経験あり
・web系エンジニアとして5年、Ruby未経験だったら後者が選ばれるケースもある。
経験の破壊力。
— もんしょー@リモートエンジニア|YouTube登録者1500人突破 (@sima199407) May 19, 2020
実務経験があればやったことないこともできそうと判断されること。
例えばRubyの案件で2人の候補者がいる
・web系エンジニアとして1年、Ruby実務経験あり
・web系エンジニアとして5年、Ruby未経験
だったら後者が選ばれるケースもある。
これについてもう少し詳しく解説していきます!
動画でも解説してます
キーワードから申しますと、「知識よりも経験」です。
なぜ言語未経験がOKなのか?
Twitterでも触れた通り、
Web系のエンジニアとして1年でRubyの実務経験がある場合
Web系エンジニアとして5年でRubyが未経験の場合
だったら実務経験が長い方が採用されるケースがあります。
Rubyの求人であればRubyの実務経験もある方がいいと思いますよね。僕もそう思います。
プログラミング言語はどれも共通部分がある
これには理由があってプログラミングってどの言語でも規則性って似ているんですよ。
多少のルールの違いとかあるのですが、基本的な文法というのは同じようなものです。
例えばif文といわれる、条件分岐の文があるんですけども、条件式に従って、正しいなら第1処理をし、異なるのであればelse文を書いて、第2処理をするという感じの処理分です。
この文は3、4個の言語をやってみたところは、どの言語でも同じでした。
経験者は"経験"でショートカットする
実務経験が長いと「こうやって先処理した方がいいかな!」「ここは一旦変数で置いておいて後の処理に回そう!」「何回も使うから、それ変数にしようとか!」など、過去の経験から予測がつくというところになるのですけども、これって慣れの部分が大きくて習得しようと思うとなかなか時間かかるのです。
総合的なエンジニアスキルがベースに
言語を習得する時間とコーディングの経験値、言語を習得する時間は例えばRubyの言語を使っているというところで、コーディングの経験値はプログラミング全体としてのスキルというところです。
どちらかというと言語を習得する方が比較的楽だったりします。
そのため募集している言語がRubyとかであっても、その言語の使用経験なくてもエンジニアの経験が長い方が選ばれるということがあるんです。
大変なことって何?
ポイント1つ目で「実務経験重要」と何となくお分かり頂けたと思います。
しかし、「本当にそれで仕事ができるか?」という疑問を持つと思います。
実は実務経験が長いエンジニアの方でも最初で苦労する部分というか、ちょっと時間がかかります。
キャッチアップは必要
ある程度予測で何とか書いたりとかこういう風になるだろうと、そういう感じになると思うのですけども、学習とか調べる時間というのはあると思います。
この期間をキャッチアップ期間言います。
1つの言語を覚えようとすると大体1ヶ月とか3ヶ月かけて新しい技術に対応していくと思います。
パターンを掴むと習得は早い
これを複数言語やってみる、例えばPHP・Java・Python・Scalaとかしてくと「あの言語に似ているなぁ!」とか「これあのパターンだなぁ!」と経験で埋めていくことができるので複数言語を使いこなせる人ほどキャッチアップ期間が短いという傾向があります。
大変な部分はこのキャッチアップ期間があることですが、複数の言語を使いこなせる熟練のエンジニアであれば、この期間は比較的短くなります。
言語未経験で採用された話
僕の体験談ですが、現在はPHPを主に書く仕事が多くて、ほとんどの現場でこの知識でやっています。
しかし、もともと勉強していた言語はPHPではないんです。
プログラミングスクールに通っていた時に学んでいた最初の言語は、Rubyです。
スクールを終えた後もRubyの案件を探していました。
ズブの素人が未経験言語で内定
なかなか上手く行かず面接も結構落ちてはいたのですけども、そんな時にたまたまお話を頂いた会社さんに行ったらPHPを使っているところだったんです。
やっぱり使ったことがない言語だったので「PHP書いたことないんですけど大丈夫ですか?」と聞いたら、「勉強すればできるよ!!」と軽めな感じで返されたので「じゃあ、やってみるか!!」と思い、そこで働くことになりました。
能力不足でキャッチアップができない。。
先ほどキャッチアップ期間って1ヶ月長くて3ヶ月くらいという話をしたのですけども、そもそも僕はRubyをちゃんと使いこなせていなかったんです。
本当にプログラミングスクールでやったものを手で動かして「プログラミングってこういう感じなんだ」という感じでやっていたので、ほぼゼロからのスタートでした。
「分かってきたかなぁ」と思えるくらいまでは、半年かかりました。
後悔はしたけど..結果OK
PHPに言語を切り替えてやったのは、今思えば確かに良かったと思えるのですが、当時は「なんぜこの職場選んじゃったんだろう」と思うぐらいでした。
大事なのは言語でPHPがいいとかRubyがいいとかじゃなくて、何か1つ言語ができるようになれば、他にも対応できるということ、これを覚えていてほしいです。
まとめ
1つ目、実務経験の経験値はすごい!
1年よりも5年実務経験があるほうが、色んなケースを体験しているので、未経験言語の求人だとしても採用されるケースはあります。
2つ目、多少キャッチアップ期間が必要!
熟練したエンジニアだとしても多少の学習期間が必要ですが、複数言語を習得しておくと、その期間の縮めることが可能です。
3つ目、1つの言語を極めよう!
何か1つの言語を極めれば、この文法、この関数だなと応用が効きます。
初心者方はまず何か1つの言語を極めることをおすすめします。
今回のまとめです。
・実務経験の経験値はすごい
・多少キャッチアップ期間が必要
・1つの言語を極めよう