よくありますよね。この手のランキング記事。 まあだいたいアフィリエイト広告なんですけど。
マイナビ転職の登録者層を考えると、それなりに需要はある話なんではないかと思うので、書いておく。
なお、あの辺の記事は広告ゆえに、最初から誘導したい答えが決まってたりします。この記事はそういう恣意的な誘導とかはあえて避けて書いておこうかなと。と言うか、ワシ技術者じゃないからもっともらしくトークして誘導とかできんのじゃわ。
あくまで本業がWebエンジニアな人たちから聞いた話と、営業的な視点(マーケット)の実情を組み合わせて書いた記事と言う感じかな...。


1.PythonとかRubyとかJSとか


〇実はけっこうよいもの。なのだが...。


だいたいあるあるなランキングの上位にくるやつですね。悪い訳ではないんです。
・すぐ動かしたりしながら試し試しすすめられるやつがよい。 ・難しすぎない方がよい ・個人レベルでも用途が多いほうがよい。
スクリプト言語のこのへんの要素が、初学者のモチベーション低下を抑えるのではないかと期待される訳ですね。なのですが、理解する前にいろいろとやってくれすぎる高機能なフレームワークなどは、後回しにした方がよいと思います。
Ruby on Railsなどが代表格ですか。 上記の言語で言えば、DjangoやCake、Laravelなども、初学者は避けた方が良いのではないかと思います。少なくとも何をやってくれてるのか、どうやっているのかなどのイメージが湧く段階にならないと、『なんかわからんけどそれっぽい動くものができた』 で終わってしまいます。趣味なら良いのですが、実戦レベルでの役には立たないでしょう。

Python、Ruby、PHP、いずれもとても普及した、人気のある言語です。ですのでWeb上にもかなりの学習者向けの情報があり、情報量の不足と言う心配はありません。
Python3などは、コマンド一発でWebサーバが立ち上がり、すぐ環境作れてすぐ動かせて、割と素直な言語仕様で、使われる範囲が広く、無料のライブラリも豊富と。(Shellのかわりに使われたり、Excel操作を自動化したりなどもできる)IT業界に入る前も後も腐りづらいスキルだったりで、とても初心者に良い言語なんじゃないかなあと思います。
腐りづらいと言えば、JavaScriptも利用頻度が高い。 フロント・通信周りで使用するので、Webシステムであれば基本的に登場します。Node.jsと言う実行環境を利用すればサーバサイドの開発も可能で、JavaScriptだけでWebシステムを作る事ができてしまいます。くせのある言語なので、その点は嫌われますが、初学者がやたらと学習範囲を広げるのもデメリットのある話ですので、その点では推されます。
基本的にこの辺の要素技術を選んで学習スタートと言うのは、要素技術・情報量の面からの問題は無いのですが.....。
特に初心者向きと言う事を想定した場合、これらのメリットをほとんど吹き飛ばす大きなデメリットが、2021年 現時点では存在します。

Web検索結果の深刻な汚染です。






2.検索汚染の背景と傾向



要はこのへん、いろんな広告のターゲットになってしまっております。
・プログラミングスクール→Ruby(Rails) ・AI関連→Python
などなど。 ぶっちゃけRailsは2012年ころにピークを過ぎて、その後の疎結合化の流れ、REST、マイクロサービス化などの文脈では過去のものに。(使えない訳ではない)
2016年ころのスタートアップバブルで復活、(運用を重視しない、短納期小規模開発に向く為)2018年前半ころにはSES市場からも急速に案件が消滅、以後は、広告の中やあやしいオンラインサロンの中でのみ、最新技術として扱われ続ける事になります。
ブロックチェーンは用途の少なさからイマイチ使われず、AIやデータ分析は前提に統計学などの知識が必要で、それらのバックボーンなしにプログラムだけやっても意味が無かったり。(これらの技術はより先鋭化。その領域では投資はまだまだ行われるはず)
実際の需要(又は要求ハードル)が厳しいことになっているのに、広告が強いのは、実際の技術に需要がある訳では無くて、それらのバズワードを使用したい別の需要によって広告がかけられているからです。

・プログラミングスクール関連 現在このビジネスの主な顧客は、Railsを使用する企業ではなくそれらの企業に入社したい求職者層です。実需要そのものが必要と言う訳ではないのです。 最新最強のRailsと言うイメージが崩れてくると、PHP/Laravel JavaScript/Vue HTML/CSS と、要素技術も変化。『Web系企業』の定義も変化していきました。 なお、構造上リピーターが発生しづらいビジネスモデルでもあります。
・人材ビジネス関連 こちらは実需要に基づく広告となりますが、この『需要』は要素技術ではなく、『頭数』を意味します。集客のうえでAI・IoT・Web系・自社開発などのワードを利用したい。そういう需要になります。 なお、採用側もその作られたイメージに乗って、AI・IoT・自社サービスなどの分野を前面に押し出したホームページや広告を出したりすることがあります。 この手のバズワードを推した広告の世界観で複数の業態の企業が得をするので、複数の業態にまたがって同様の価値観が推される。ある種のエコシステムを構成しています。

このエコシステムに乗る事がビジネスモデルの一環になっている企業群から、そのエコシステム下で発生した大量のアフィリエイターに広告費が流れ。
この大量のアフィリエイターが、莫大な量の不正確な記事を量産。
莫大な量の不正確な記事が、検索エンジンでの検索結果を埋めつくしてしまう為、真に得たい正確な記事にたどり着くことができない。
と言う現象が発生しています。 技術自体は問題の無いものですが、これらの広告のターゲットになっている要素技術は、ちょっと今は未経験者には勧められないな・・・・。と言う事態になってしまっています。




3.検索汚染を加味した上で、選択すべき言語は?


厄介な話ではありますが、実需要に基づく広告ではない為、ポピュラーな言語であっても検索汚染の外側に存在するものもあります。
・C#


は、現在、検索汚染はまだマシな方なほうなようです。(汚染ゼロにはならない)
C#は、当然にWindowsと相性がよく、Windows上で動作するアプリケーションの開発環境を用意するのも楽です。VisualStudio(これも性能いい)の無料版を落としてきて、『WindowsFormsプロジェクトを作る』、くらいであまりハマるポイントも無く、Windowsアプリを作る準備ができてしまうそうですな。 (自分でやった訳じゃないので断言できんのだけど) とりあえず、プログラミング自体とオブジェクト指向を初心者なりに理解するところまでは学習できそうです。 初期学習としては十分です。

・英語


プログラム言語ではありませんが、Google検索も、英語で検索するとゴミアフィ記事の量が一気に減るそうで、これも勧められました。 
職業エンジニアになりますと、いろいろな新しいものに対応していく人生になる訳ですが、新しいものは『英語しかリファレンスねえんだけど』なんてことがとにかく多いです。上記の検索面での優位もあり、今のプログラマー事情は、英語ができる人ほど有利。と言うのは言えそうです。(英語わかんないけど、技術関連のドキュメントならばなんとか読めるわ。って人も、職業エンジニアには多い。)


4.就職までの動き方を考える


C#は、他のポピュラーな言語と比較しますと、やはり仕事が少ない気がします。しますが、そこそこWinアプリ作って遊んだら、あとは開発会社に就職でOKだと思います。
ほか、現職の間にVBAやGASで仕事を便利にしてみるとか。 Paizaやドットインストール、Progateなどなど、たいしてカネのかからない初学者向けのサービス等でも良い。
未経験者が就職して、即戦力で即活躍と言う事は、ふつうはありません。 現在進行形ですげー困ってる会社か、情報系の大学などの卒業生やインターンでそこそこやってきた求職者を採用できるレベルの会社です。ふつうの中途入社の未経験者の場合、この辺りの会社はターゲットにしないかなと思います。
技術者として雇用するとして、企業側が気にするのは【戦力化までの時間とコスト】です。 最初期は生産性が低いだけでなく、他の経験者によるレビューやフォローが前提となり、他の経験者の生産性まで低下します。これらすべてが【戦力化までの時間とコスト】です。 企業はこの間、新規採用者に投資する事になります。
戦力化までの期間は『プログラム適性』みたいなもので大きく差が出ます。 よって会社は『プログラム適性』を判別できる材料を欲しがります。ありもののツールや外部サービス、ほとんどフレームワークがやってくれました、ガバっとコピペしただけ。などの要素は判別に寄与しない為、微妙です。
よく言われるコピペポートフォリオよりは、C#のただのWindowsアプリの方が有利な傾向はありそうです。ほか、動くところや完成する事よりも、ソースコードの方が情報を多く伝えます。GitHubなどはちゃんと使えば就職で有利に働きます。 ※コピペコードとか、だいたいバレます。継続性も見られます。

なお、『なんでもいいからロースキルたくさん集めて低リスクで売上に変えたい』と言う企業さんもある訳で、この場合は上記の前提である 『技術者として雇用する』 に当てはまりません。 違った対応になるはずですが、そのあたりはまた後日、別の記事で。




5.BAMVで採用するターゲット

騙して悪いが、ウチはJavaの会社だ.....。
でもJavaの世界は広がりすぎで、どれをどう使えばいいとか、初心者にはワケわからなそうなんだよな....。 EclipseのAll in One とか使えばいいのか? Paiza→ドットインストールで、この辺のサービスから得られる情報に忠実にやればいいとかなんやろか。
まあ、最初はC#とかVBAとかからでいいと思いますよ。最初からウチ一本狙いで就職活動する人って、ふつういないでしょう?
入社するとして、基本、外部研修からスタート。 その研修が終わってもプロレベルではないです。現場でハマったらググれるだけ。そのあたりが研修での目標到達レベル。
そんな訳なので、基本的には在籍社員の配下の枠を狙いに行く話になる。 前節で説明したように、会社も先輩も負担が大きい話なので、フリーライダーはお断りね。だいたいわかるし、ウソついて突破されても、入社後に干すわ。 なので、他社様へどうぞ。
会社が存在する理由=目的  があるので、それを全員で追っかける事に納得して頂ける方に投資したいし、時間などを投資して頂きたい。
そちらの内容については、求人をどうぞ。 (のちのち他の記事でもやるかもわからん。)