【プログラミング】エンジニア転職でPythonができても有利じゃない?【勘違い防止します】

「Pythonできたらすごそうだからプログラミング学習してみようかな」
「転職でPython使えたら有利かな?」
Pythonで何ができるのか教えてほしいわん!
おっけ~Pythonについて解説していくよん

●もくじ
1.Pythonで何ができるの?
2. AIエンジニアとWebエンジニアの違い
3.Webエンジニア転職でPythonは有利?
4.まとめ
僕は現在Pythonを使ってサービスのバックエンドを担当してるよん。
転職活動中にAIエンジニアとWebエンジニアを勘違いして面接官に笑われちゃったことがあるからまとめるね(照)

働いてみてやっと勘違いが解けたので、皆さんは勘違いしないように気を付けてください。(もしかして勘違いしてたの僕だけ…?)
ではいってみましょう~♪
1. Pythonで何ができるの?

Pythonが得意とすることやできることを解説していきます。
データ分析をして機械学習できるようにする
機械学習を取り入れたアプリケーションが作れる
機械学習関係なしにWebサービスを構築できる
わかりやすく、こんなことが出来ます。
Pythonは「機械学習だ、人工知能だ」って言われますが、Pythonでポートフォリオの作成も可能です。
よく未経験の方が勘違いするポイントは、1つめの「データ分析をして機械学習できるようにする」こと、2つめの「機械学習を取り入れたアプリケーションが作れる」ことです。
ひとつずつ説明していきますね。
1つめの「データ分析をして機械学習できるようにする」というのは、
例えば、色んなフルーツのデータがあるとして、「リンゴ」というものをコンピューターの中で判別できるように、エンジニアがデータを分析してコンピューターに判断基準を教えてあげるようなイメージ。
ここでいうフルーツのデータというのは画像を数値化したものです。
なので、その数値を使って統計学などの計算式にあてはめ分析していくみたいな難しそうなことやってるわけですね。
「Python使ってなくね?」
と思うかもしれませんが、
Pythonには画像や音声を簡単に数値化できるような機能(ライブラリーという)や、難しい計算式をコード1行できる機能が豊富あります。
だから「機械学習をするときはPythonだよね~」みたいに世間では騒がれていたわけです。
転職サイトには、データ分析を行うエンジニアを「AIエンジニア」や「Pythonエンジニア」などと言っていたりします。
詳細は2.WebエンジニアとAIエンジニアの違いでお話ししますね。

データ分析するならPythonの知識だけじゃなくて統計学とかの知識も必要わんね~
2つめの「機械学習を取り入れたアプリケーションが作れる」というのは、Webエンジニアをイメージしてもらうといいと思います。
機械学習を取り入れたサービスを作るっていくときには、バックエンドの処理にPythonを使ったりします。
ほんとにザックリと考えるなら、Ruby on Railsでサービスを作るのと変わらないようなことをやっていくイメージです。
こちらが多くの方が目指すWebエンジニアというような位置づけになります。
逆に、3つめの「機械学習関係なしにWebサービスを構築できる」ように機械学習を取り入れない場合でもPythonを使うことはできます。
ただ、これはあまり評価されづらい部分があるのでポートフォリオ作成でむやみにPythonを使うことはオススメしません。
詳しくは3.Webエンジニア転職でPythonは有利?で説明していきます。
Pythonでデータ分析をして機械学習できるようにする
→AIエンジニア
Pythonで機械学習を取り入れたアプリケーションが作れる
→Webエンジニア
Pythonで機械学習関係なしにWebサービスを構築できる
→オススメしないよ
2. AIエンジニアとWebエンジニアの違い

ここからはAIエンジニアとWebエンジニアの違いについて解説していきます。
1.Pythonで何ができるの?でも説明しましたがまとめます。
データ分析をして機械学習できるようにする
データを分析するのに数学や統計、機械学習の知識が必要
Webエンジニア
Webサービスやアプリケーションを作っていく
プログラミング知識、設計の知識、セキュリティなどの知識が必要
同じPythonを使っても目的とやることが全く異なっていますよね。
AIエンジニアを未経験からやるというのはかなり厳しいかなと思います。必要な知識が多いですし、大学である程度勉強しないといけないような知識なので。
Webエンジニアは未経験からでもなりやすいですし、Python言語が未経験でも入ってからキャッチアップすることが可能です。
実際僕はpython未経験で今の会社に入社してから、Pythonの開発&勉強をしてキャッチアップしています。
独学中はRailsをやってましたが、関係なしに評価して頂きました。
なので、Web系企業への転職を目指すのであれば、Pythonを学習する必要はないかなというのが僕の意見です。
学習の効率性を考えるためです。あくまで目的はWeb系企業に転職することを前提に考えたときです。
この理由は3.Webエンジニア転職でPythonは有利?で説明しますね。
AIエンジニアとWebエンジニアは共存して一緒に業務を進めていくような形になるよん

AIエンジニアとWebエンジニアは目的と役割が違う
AIエンジニアはデータ分析をするために数学や統計、機械学習の知識が必要
Webエンジニアはプログラミング知識、設計の知識、セキュリティなどの知識が必要
3.Webエンジニア転職でPythonは有利?

結論は
「Webエンジニア転職においてPythonは特に有利ではない」です。
理由は大きく3つです。
面接でPythonを勉強した理由付けがしづらい
Pythonでサービスの構築をするようなWebエンジニアの転職求人が少ない(AIエンジニアとしてならある)
1つめの「Pythonを勉強するとデータ処理用の機能(ライブラリー)の説明も一緒についてくる」というのは、Pythonはデータ処理用の機能(ライブラリー)が豊富なためPython勉強すると必ずライブラリーの説明が入ってきます。
ただ、転職用のポートフォリオでデータ処理用のライブラリーを使うシーンはほぼないため、効率的な言語選択とはいえません。
Webエンジニア転職を目的とするなら、RailsやPHPを学習した方が効率的かなと思います。
2つめの「面接でPythonを勉強した理由付けがしづらい」のは、Pythonを使う目的は機械学習を行うことが圧倒的に多いので、機械学習を使わないのにPythonを選択した理由付けはしづらいです。
「将来的にAIエンジニアになりたいので~」みたいにいうと、「じゃあ最初からAIエンジニア目指せよ」みたいに突っ込まれたりもするので要注意ですね。
3つめの「Pythonでサービスの構築をするようなWebエンジニアの転職求人が少ない(AIエンジニアとしてならある)」というのは、日本ではまだまだRubyやPHPを扱っている企業が多いため、最初からPythonで絞ると企業選びの幅が狭まってしまうためです。
Pythonで絞るとAIエンジニアの案件も一緒に検索ヒットし、その中でWebエンジニアとしての案件を見つけるのは結構大変です。
そのためWebエンジニアになる目的なら、Webエンジニアとしての案件数が多いRubyやPHPを勉強するのがまずは良いかなと感じています。

Pythonで機械学習ってかっこいいけど、Webエンジニアを目指すなら言語選択は注意わんね!
Webエンジニアを目指すときにPythonを選んでも面接で強烈なアピールポイントにはなりづらい
勉強効率や企業数を考えるとPythonよりRubyやPHPを使う方がいい
4.まとめ
Pythonで何ができるか、エンジニアの違いなど理解できましたか?
しっかり理解しておかないと、機械学習系のことをしている企業の面接でよく分からないことを言ってしまったりするので注意してください。
僕は面接で「AIエンジニアとWebエンジニアの違いがよくわかりません」というおバカな質問をしてしまったので皆さんは本当に気を付けてください。
よく内定くれたなと思います。(笑)
ただ、Pythonはシンプルなコードが書けて初学者が理解しやすいことは間違いないので、興味をもったら触ってみるのはありですよ。
楽しく学んでいきましょう!
無駄のない努力で楽しいエンジニアライフを♪
ではまた~