1
/
5

”アフィと違う視点の”未経験向け、初期学習にお勧めなプログラム言語。とか。』な記事。2021版

2021/9/8 新型コロナによる緊急事態宣言モードは続くも、そろそろコロナ市場も収束ではないかな?と言う時期に書いた記事。 

ぼちぼち未経験者にとっても勝負できる転職市場になってくるだろうと思うので、『今だったら』と言う汎用性を捨てた記事書いといてもいいかと言うのと。 2021はこんな時代だったという情報として、古くなっても修正しないで残しとくか的な感じで。
書いとくか。と。

なお、筆者はあくまでエンジニアではなく、ちょっと要素技術の細かい部分が多くて苦手な領域の話でもあります。そんでも書く価値があるじゃろなと思うくらいには、2021年の環境は未経験によろしくないものであったとも。


1.PythonとかRubyとかJSとかの話。

さて、アレです。よくアフィリエイト広告でランキングになってるやつです。なお個人的に、あの手のランキングで【なるほどな!】ってなったやつは、まだ無いです。(マトモなエンジニアだったら、そのへんの名も無きおっさんに聞いた方がはるかにマシ)

さて。

【なんでもいいよ。】

というのが、言うたら終わりなひとつの結論な訳ではありますが。それだとここで話が(記事も)終わるので、ここではもうちょい突っ込んで解説します。

経験者が未経験者に学習向けの言語を進める際、いくつか考え方があると思います。
だいたい下記の様な意見が多い印象です。

・すぐ動かしたりしながら試し試しすすめられるやつがよい。
・ちゃんとした記述を求められる、変な癖がつきづらいものの方がよい。
・難しすぎない方がよい
・個人レベルでも用途が多いほうがよい。
・裏側でいろいろやってくれ過ぎないほうがいい

初学者が心折れる可能性を減らす方向性と、よく理解しないままできた気になってしまう事を回避する方向性と。 相反する部分を含んでいたりもしますので、このあたりで意見が割れやすいですが、いずれの発言者も、未経験者の立場になって考えてくれている、親切な意見と言えます。

今は、ポピュラーな言語に関してはいずれも、Web上にかなりの量の情報が掲載されており、情報量の多い少ないはさほど問題にならなそう。

すぐ環境作れて、作ってすぐ動かせて、割と素直な言語仕様で、趣味や個人レベルで使い勝手良い言語。となると....。たぶん、今ではPython3が良かったんだと思います。

人によりますが、扱いやすいと感じる方が多いようですし、無料のライブラリも豊富、趣味でやれることも多ければ、Excel操作を自動化したりで、異業界の事務作業でも有用。Shellの代わりに使う事もあるので、業界に入った後もなんだかんだでどっかで使うことになりがちです。昔は英語が読めないと学習面でハードルがある環境でしたが、さすがに今は日本語による検索でもたくさん情報が出てきます。


ほか、JavaScriptなども、Webシステムを作るならばほぼ必ず関わる上、Node.jsと言う実行環境を利用すればサーバサイドの開発も可能です。ほか、スクリプト言語と言う視点ではRubyなどもあります。こちらも初心者にわるいものではなく、プログラム言語を学習する上では良いものであったのですが...。


特に初心者向きと言う事を想定した場合、これらのメリットをほとんど吹き飛ばす大きなデメリットが、2021年 現時点では存在します。

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


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

プログラム関連の検索汚染は、根っこは人材の採用需要に根差したものが、まずひとつあります。

実際の需要に基づくものもありますが、需要が無いにもかかわらず【応募者を集客できるのでとりあえず使用されるワード】などがあります。

たとえばAIブームに関するワードは、2015年頃から一気に加熱し、2017年頃に「過度な期待のピーク」を迎え、2019年には幻滅期に入ったとするレポートが出てたりします。

下記は2020年7月の日本の最新テクノロジ関連のものの様です。

日本における未来志向型インフラ・テクノロジのハイプ・サイクル (出典:ガートナージャパン)


これをもってAI投資が終了しているなどと言う話ではありませんが、より細分化・高度化したソリューションが要求されていく流れの中で、特にそれらしい知識のバックボーンがある訳でもないAI関連領域志望のロースキルPythonプログラマに、現実の需要が、果たしていかほどあるのでしょうか?

しかしながら、求人サイトを開いてみれば、ブロックチェーン技術・AI関連・IoT関連などなど、【採用する為のワード】が並んでいたりします。(実際にはやってない企業でも募集求人上で記載する事がある) これらはまさに

実需要は無いが、求人上の需要はあり、広告が出ている

状態と言えます。実需要よりも多くの需要がある様に見える事になり、その背景を読めない者の判断を狂わせます。このほかフリーランス向けの案件情報を元にした需要判断なども問題があり、1件の案件が複数社から案件情報として供給されてしまう為、実需要が何十倍にも膨らんで見えるという現象が起きてしまいます。この時、募集情報の開示に積極的な発注者の情報がより膨らみやすく、実需要とのギャップをより大きくしてしまいます。


上記のほかに、プログラミングスクール等の需要もあります。

良し悪しは抜きにして語りますが、現在多くの広告が出ているスクールは、生徒側を顧客とするスキームであって、この需要はIT業界内の実需要とは関連の低い、別の需要になります。(初期は人材紹介スキームも併用した収益構造で、IT業界内の実需要とある程度リンクしていたのだが、低質なスクールの乱立や、広告と現実の乖離から来るスクール生の離職率の高さの為、人材紹介フローでの収益が激減。多くのスクールが生徒側の授業料をメイン収益源とするビジネスモデルになっていったと思われる)

実需要とは別なものですから、やはり背景を読めない者にとっては、判断を狂わせるノイズとなってしまいます。


広告の主なターゲットとなる【背景を読めない者】とはつまり、実体経済・ビジネスに無関心な立ち位置のプログラマーや、ITとは異業界の人間。すなわち未経験者です。


ここまでは、あくまで背景。 実際に検索結果を汚染しているのは、こういった広告需要を受けて広告を掲載するアフィリエイター達になります。(エンジニアバブル初期のアフィリエイターは、1名で月200~300万くらい稼いだりしてた。その後、競合が殺到し、現在は効率は落ちたものと思われる)

実業プログラマーの視点から見ると、『ちょっと技術的なものの説明があまりに酷いな』と言う記事であったり、『実際の需要とはかけ離れた需要を語る』記事が多数存在する理由は、こういった背景で、実際にはくわしくないライターが結論ありきで広告の目的に沿って執筆したものであるからになります。

これら、不正確な内容の記事が淘汰されるどころか増え続けた理由としては、記事の正確性よりも量を増やす事が成果につながったという理由と推測しています。すなわち、

検索結果をアフィで埋めてしまえば、それを否定する記事にたどり着けない

と言う単純な構造です。

上記のやり方は2021年現在でもかなりの有効性を維持していると思われ、実際の発注者・雇用者の需要と乖離したままの内容で、果て無くゴミの様な記事が量産され続けているものと考えられます。

上記のアフィリエイト記事に関連するワードに関しては、残念ながらGoogle検索で正確な情報を得る事を期待する事は難しく、また、それらのワードを担いだ学習支援ビジネス関連でTwitterやQiita等に学習内容をアップする事が推奨された(採用されやすさ・モチベーション維持の意味もあるが、教育サービス運営側の広告となる側面もあった)為、未経験者やちょっとかじった感じのプログラマによる、不正確な記事などが多数掲載されてしまい、これらもその後に続く未経験者にとっての地雷記事として残る事になってしまいました。 ※学習内容をアップしちゃダメとか、そういう話ではないです。



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

マニアックなものであれば検索汚染の影響は受けにくいですが、それなりに環境を用意しやすく、とっつきやすく、安価な学習サービスに対応していたり、必要な情報が得られる必要があり、ポピュラーなものから選ぶ必要は、やはりあります。
教えてもらって、なるほどな。 と思った選択肢ですが。

・C#

は、検索汚染はまだマシな方なほうなようです。(汚染ゼロにはならない)

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

・英語

プログラム言語とは関係ありませんが、Google検索も、英語で検索するとゴミアフィ記事の量が一気に減るそうで、これも勧められました。 

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


4.就職まで考えた場合

C#は、他のポピュラーな言語と比較しますと、やはり仕事が少ない気がします。しますが、そこそこWinアプリ作って遊んだら、あとは開発会社に就職でOKだと思います。

ハッキリ言って、中途の実務未経験者に即戦力を求めてる会社はそんなに多くありません。現在進行形ですげー困ってる会社か、情報系の大学などの卒業生やインターンでそこそこやってきた求職者を採用できるレベルの会社です。ふつうの中途入社の未経験者の場合、この辺りの会社はターゲットにしないかなと思います。(応募数を確保するために、ホントは未経験NGだが未経験OKで求人出してますと言う話とは別の話として)


マトモに開発のリソースとして使う前提であればですが、未経験者採用において受け入れ側が一番気にするのは、【戦力化までに発生する時間とコスト】です。戦力化できていない段階では、十分な生産量を発揮する事はできませんし、他の既存メンバーのフォローやチェックが必要になる為、他のメンバーの生産性にも悪影響を及ぼすことになります。【コスト】と言ってもイメージしづらいと思いますが、【戦力化までに発生した給与+他のメンバーに与えた生産性マイナス分が本来生んだ利益】が【コスト】と考えるとイメージしやすくなると思います。

まず大きな問題として【プログラム適性】みたいなものがあり、ここが欠けていると戦力化までの時間がとんでもない事になります。お互いに不幸です。この【プログラム適性】のようなものを示すのに、自己学習期間の成果物が有用と言う事になります。

気をつけたいのは、この段階では戦力ではなく適性を測っている部分です。ありもののツールや外部サービスを使い倒して作られたもの、写経のみで完成するもの、大部分をフレームワークがやってくれているものなどはむしろ不適で、ピュアなプログラミングによるものの方が、採用側は判断がしやすくなります。一部でコピペポートフォリオの評価が低く、しかしなんらかの成果物(または学習履歴)を重視する傾向があるのは、このためです。簡単にWindowsアプリを作れるC#は、ここでも向きます。


仕事が少ない影響はあるはずで、C#だけで仕事を探すと範囲が狭くなり過ぎそうです。実際には『なんでもこいやー!』なスタンスで仕事を探すことになりますし、実際にC#以外を主力とする会社に就職する事になるケースが多くなると思います。

ウチの会社内では最近C#スタートだった人間がいないので、今現在の視点での正確なことが言えませんが、マイクロソフト環境以外の環境で開発実務を行うことになる事、VisualStudioができる子な事から、他の言語の学習しなおしには若干のハードルがあります。 よく言われるように実際、C#とJavaの文法はほとんど同じですが、それでもそれなりに苦労すると思っておいてください。なお、C#はJavaより後発の言語であるため、C#にはできてJavaにできない事があったりもするようです。

とは言え、プログラムの動く仕組みとかを理解しちゃうのがまず第一歩。これを得るには申し分ないのがC#ですし、ある程度できるようになったところから2つ目の言語に手を出していくのも、差分からさらに理解が広がる話であったりして、スキル構築上は悪くない事です。



5.オチ

ちなみにウチは主力Javaなので、あんまし意味のない記事だったりする。

ほか、GoやKotlinは省略しすぎで未経験向きじゃないなあとか。(特にKotlinて、難しい処理作るときとか、Javaでどんな風にやるのかとかイメージわかないと詰まるとか。だから先にJava)

VBAとかGAS(GoogleAppsScript)もいいよねとか。(異業界に居ながらにして実務上で使えちゃう。労力を減らす為にプログラムとか、まさに怠惰!

いやほんと、広告やなんかすごいっぽいアピールしまくりな人とかじゃなくて、実際の職業エンジニアの言う事を参考にしなよ? 異業種と比べたらだいぶ若手に優しいぞ。連中は。





----------------------------------------------
その他の記事へは、下記リンク先が記事一覧となっておりますので、そちらからどうぞ。

INDEXへのリンク

BAMV合同会社では一緒に働く仲間を募集しています
8 いいね!
8 いいね!
同じタグの記事
今週のランキング