渡るネットは嘘ばかり

元文系、米国大学院CS修士号持ちITエンジニア。自称エンジニアが撒き散らすゴミを少しでもキレイにしたい

正しい情報を仕入れるための日米の指標

f:id:masa-lab:20200417110246p:plain:h400

コロナでフルリモート中です。

ソフトウェアエンジニアとして、優秀な人に備わっている「抽象的思考」と「アナロジー思考」を書こうと下書きしているんですが、新型コロナウイルスの広がる中、インフォデミックも起きているので、差し込みです。

その辺の話は次回予告で少し書くとして、今回は如何に情報の確かさを判断するか、という話です。ただし、自分が知っているのは日本とアメリカくらいです。アメリカも州とか環境によって違うので、自分の知っている範囲でのお話になるのであしからず。

この辺も日本人が苦手なところだと思います。習ってないですし。だから、稼いでるって自称してるだけの人、ツールでフォロワー数増やしてるインチキさんを信用しちゃうんですよね…。R氏とか過去にツール利用をツッコまれてますね。フォローバックしないとフォロー解除してまたフォローしてきて、フォローバックしても外すと外される、みたいな感じに動くツールあるらしく、インフルエンサーになりたい偽物はよく使ってるっぽいですね。本物はツールを使ってフォローしても、ある程度の手作業を併用するし、フォロー外さないですね。純粋に関わりのある人との繋がりを広げて、その人に価値を感じた人がフォローバックするのが本来の姿でしょう。

change-consul.factdeal.co.jp

フルボッコですねぇ。偽物はわかる人には簡単にバレるのですよ。とはいえ、2年半位ツール使ってある程度信者は作っているようですが。情弱の世界だけで地位を作ってもなぁ、と思いますが、お金がメインの判断基準な人は簡単に釣れてしまうという。ここを読んでくれている方はもう、R氏はエンジニアとしては、副業の1つでやってる、ただのセミプロだと気付いているでしょうが。経験だけでなんとかなる仕事のレベルって知れてますよね。本物は多くの尊敬と嫉妬を集めますが、詐欺師は多くの尊敬と軽蔑を集めます。

まぁ、この人もメインの物差しがお金みたいですが。
change-consul.factdeal.co.jp

別にお金を生きる目的にするのは構わないのですが、拝金主義の人達の厄介なところは「それを他人に押し付けてくる」ところですね。物差しは人によって違って良いと思うのですが。

大事な人を守るためにはお金がいります。

と言っても、大金は要らないのでは?と言う話で。そして、通り魔とか、目が合ったら殴りかかってくる戦闘狂にお金を出しても許してくれるとは限りません。自分よりお金を持っている相手にお金で勝負するのは負け戦でしょうし、お金があっても守れないケースも、お金がなくても守れるケースもあります。極論に振り切ると説得力が落ちる良い(悪い?)例かと。物差しが1つしかないのは近視眼に陥りがちです。そして…お金で守って欲しい人を守りたいとも思わないなぁ。お金というのは、好きなことに打ち込んだ結果ついてきた方がかっこいいし、お金以外の目標ややりたいことがあって、それをお金に繋げる考え方ができた方が人生楽しいのでは、と思ってしまいます。マーケターとか経営者だとある程度重視するのは仕方ないとしても押し付けないで欲しい感が強いです。お金はあって損はないし、選択肢は増えますが、一定以上になると人によるのではないでしょうか。自分は一定額を超えたら、お金より時間が欲しくなると思います。

と言っても、この人はあまり口は良くないものの、フリーランス志望にサラリーマンに戻ることを提案したり、基本的にはまともな人っぽいので…note売るために書いたっぽいですね。また出たポジショントーク…。

僕はフリーミアムの影響が強いので、noteで高額で売る行為に価値を感じません。10万字以上の本が3000円台で買える中、5万近いお金を払って得る情報はどれくらいの価値なのか。結構3000円の書籍とかでも強いですよ?少なくともnoteのペライチで書ける話じゃないと思う。それに見合う分量を一人で裏付け、校正できるのだろうか。僕が友人に相談されたら絶対購入止めますね。それより書籍読んで、本当にすごいと思った人の講演会とか行ったり、実際に批判的な目を持ちながら話を聞いてすごいと思ったら、直接コンタクトを取って教えを請うた方が良いのでは。講演会とかそこまで高いものではないだろうし、いきなり5万とか博打に感じます。日本人ホントガチャ好き過ぎなのでは。

前に軽く構想を書いた、少しずつ進めてる理論と数学も学べるプログラミング講座は投げ銭とアマゾンアフィリエイトだけでやるつもりです。もし予想以上の収入があっても、例えば一軒家とか賃貸物件を借りて初学者のたまり場を作って、時間がある時に行ったら学べる場所、また、そこで仕事を受けて実務経験のない人が経験を積める場、とかにしても面白いと思います。初学者の学び舎、的な。そういう収入はある程度は還元できた方が世の中が回って良いかと。とか言いながら、自分の勉強に時間を取られてゆっくりしか進んでいませんが。コロナで皆が時間がある今に学べるところを作るべきなのでしょうが、いかんせん自分の勉強もあり、です。

エンジニアとしての生き方の教科書的なSOFT SKILLSという本で

自分がしていることの90%はただで分け与えよ
John Sonmez

shop.nikkeibp.co.jp

という言葉があります。すごく好き。無料コンテンツの方がはるかにシェアされ、それによって価値を感じた人の感謝や評価に繋がり知名度が上がる、結果として高額な有料コンテンツをそこそこ売る以上の価値になって返ってきたりします。講演や執筆(あまりお金にはならないそうですが)、自分のやりたい仕事ができる会社でのポジションとか。そして、この価値には継続性がある。有料コンテンツは買い切りですが、無料コンテンツは複数回バズる可能性がありますし、影響力と繋がりができると人を騙さないでも、皆が幸せになれる方向でお金を動かせる。いきなり有料で出すのは今を最大化する戦略かも知れませんが、将来を、累計を最大化する場合はこちらの戦略の方が正しいと思います。価格以下の内容を売っても評価は上がるどころか下がってしまい、目先のお金と引き換えに買った人に悪い印象が残り、その人からの将来の道は途絶える可能性が高いでしょう。FREEでは「情報はフリーになりたがる」、と言われていたりもします。

www.nhk-book.co.jp

しかし、実力なくて努力もしないで有名になりたい人の気持ちがわからない。簡単にショボさは露見するのに。とはいえ、おそらく、日本人の7割位は情弱で、8割位は自分の頭で考えていない気がするので、それでも引っかかる人は結構いるのでしょう…。僕はインポスター症候群なので、少し背伸びして通用する場所に相応しい人間になるために努力し続けているつもりです。自分は決してすごい人ではないと思うけど、残念ではないかな、とは思いたい。海外のすごい人とか複数の分野で博士取ってますしね。僕はきっと当たり前のことをやってるだけの中二病の人です。賢くなりたい。

  • コロナ禍の世界
    • インフォデミックの担い手のモラルの壊れたインフルエンサー
    • マスク信者の怖さ
    • 情報を拒む勇気
  • 情報の信頼性
  • 次回予告
続きを読む

インフルエンサーと拝金主義とマルチまがい情報商材(Brain)

fraud

インフルエンサー関連の話はこれにて終了したいかもです。「業界で実力が優れてて登壇とか学会で有名になった人」ではなく稼いでるアピール(嘘ブランディング)で突然出てきたエンジニアのインフルエンサーは香ばしすぎて、ちょっと関わりたくない感があります。インフルエンサーと信者のやり取りとか、本当に宗教じみてて気持ち悪くて、自分はこんな人達に現実を伝えようとしてたのか、と無力感を感じました。

「水は低きに流れ、人は易きに流れる」と言いますが、努力をしないことに慣れた人は努力をしないで成功する方法を探したがるのでしょう。「努力?何バカなこと言ってんだ、〇〇さんのように賢く効率のいい方法で稼ぐんだ」という感じでしょうか。努力しない成功方法の方が運の要素が高く成功率も再現率も低いのが現実なんですけどね。

というか思考の抽象レベルが違いすぎてガチでツライ人達な気がしました。なるべく抽象度落として書いてるつもりですが…全く伝わる気がしない。そもそも、論理的思考も抽象的思考もできない人を納得させるには情弱ビジネスの人達みたいに失敗から這い上がった情弱代表の振りをしないといけないのだろうか。多少抽象度下げてるつもりではありますが、抽象的思考の重要さに気付いてからの、この数回の投稿はわかりにくめかも知れません。

抽象度の高い文章>抽象度の低い文章>漫画>動画と情報の抽象度が下がりますが、下がるほどに脳のギアの回転数が下がるので、動画ばかり見てる相手に抽象度がやや高めの文章はつらい、というか、もう、140文字以上を理解する脳のギア錆びてる可能性もありますよね…。

完全に正常性バイアスなんだろうけど、騙されてるのに、その人の言うことがおかしいと指摘するとすぐ「アンチ」とか言いますよね。別にその胡散臭い人個人はどうでもよくて、「人を騙して稼いでるインフルエンサー」「情弱ビジネスのインフルエンサー」がエンジニア業界に手を出しだしたのをどうにかしたいだけなんですけどね。アンチとかで残念な感じの個人に執着するつもりはないです。執着するほど価値のある人達ではないと思います。ホント、盲信してる信者の人達は無料懇親会とかある勉強会の1つでも行けば、そのインフルエンサーの言ってることがいかに業界と乖離してるかわかると思うんですが。

何度も言うけど、僕は自分の経験の主張を聞け、というわけじゃなく、色んな人のいる場で現実を見た方が良いよ?という立場です。それでも盲信して動かないのが情弱の情弱たる所以というか。りゅうけん氏とか、「情弱ビジネス」を説明する動画作ってるし(見る気しないけど)、いや、まともな人からすると、やってるのあなたでしょ、的な…。自分がそうだと気づかせないための煙幕でも張ってるんだろうか。サスペンスで犯人が被害者の振りするあれですかね。

情弱ビジネス系インフルエンサーが結構いますが、大半が過去に悪徳商法やってたり、MLMやってた人ですね…。真っ当に生きてきた人間としては詐欺師の部類(インフォプレナーの亜種)に見えるし、やりたい放題させちゃまずいけど、なるべく関わりたくない。1回バズった程度ですが、向こうからもこんな奴がいる、というのはボンヤリ見られてる気がするので、無駄なストレスは貯めたくない。というか、拝金系インフルエンサーはマジで会話通じる気がしません。価値観が違い過ぎる…。彼らが初学者や情弱な人達を信じ込ませるのを防ぐには、やはり具体的な受け皿を作るしかないのかも知れない。僕はやっぱり、誰かに甘い言葉で博打をさせて、半分以上不幸になった道で掴む幸せより、大多数が満足できる、人の喜びに触れて幸せになりたい。幸せというか、彼らは情弱を金に換金してるだけで、その先はどうなろうと知らんのでしょうが。

しかし、インフルエンサーに釣られてフリーランスエンジニアを目指す人はエンジニアになりたいのではなくて、努力しないでお金を稼ぎたいだけなのではないか、という疑問もあります。確かに、短期間の金稼ぎの副業視点で読んだら、このブログは刺さらないでしょう。エンジニアとして生きていきたい人には刺さりやすいと思いますが。しかし、その動機で、しかもインフルエンサーに騙されちゃう拝金的近視眼で現場に入ってこられても周り大変そうだなぁ…。ググって間違ったコードを平気で信用して突っ込んできそう。変数名とかそのままで(tmpとかsとかmigiとか)。

堀江さんの小説「成金」で「悪貨は良貨を駆逐する」ということわざが出てきますが、フリーランスエンジニア業界で起きてるのはまさにこれですね。

人を導く人間は再現性がないといけないわけですが、インフルエンサーは自分が歩いた汚い道を、すでに踏み荒らした上で罠の仕掛けた道を薦めてるように見えます。その道で同じ所にたどり着ける(再現できる)人はほとんどいないのではないでしょうか。普通に考えて稼げる方法を赤の他人に教える時って、その手法が自分にはもう要らなくなった時ですしね。とはいえ、エンジニアを目指させて、実は厳しい世界だと、できない人間は稼げない世界だと気づくまでに時間がかかる(中途半端にできると数年は消費しそう)ので、情弱ビジネスをやってる人間にはエンジニアを薦めるアフィリエイトは都合が良いのでしょう。数年の時間を使った上で向いてないと気付くのは絶望感ヤバそうですが…。

僕は当たり前のことは当たり前にやるべきだと思うし、楽しくないことで他人騙して稼ぐより、好きで向いてることを仕事にして、楽しく成長して認められて稼ぐことを目指したい人間です。とか言っても、別に収入悪くないとは思うけど。楽しみながら学んでいる、この道の先は普通にフリーランスの2倍とか稼げてもおかしくないと思ってますし。

しかし、インフルエンサーそんなに詳しくない(自称稼いでるは信用しない)し、ここの記事に価値を感じてくれる人は今回書くようなことは理解できてる気がします。

続きを読む

バズった後はつらいやつ2

F5

後半です。主にバズった記事のフィードバックやら言い忘れたり後で気付いた話です。

前回まえがき長くなり、分割しました。

masa-lab.hateblo.jp

  • 前回の振り返り
    • 本来怒るべきだった人
      • 仕事を依頼したクライアント
      • 真面目にやってるフリーランスエンジニア
    • 読書や勉強会、努力の話
    • 技術マウント
    • WordPressについて
  • エンジニアとして稼ぎたいなら
  • あとがき
続きを読む

バズった後はつらいやつ

256の人
読者数が256人になったのでいい加減更新します。256で「やるなら今か」、とか感じるようになると、そろそろあれですね。

バズったら早めに更新した方が良いのかも知れませんが、自然言語を書くのはつらいです…。いっそ、プログラミング言語で記事を書いてしまおうか(無理ゲー)。

今回は元々、バズった振り返りとITエンジニアとしてのキャリア的な話を書こうと思ったのですが、長くなって、まず振り返りとインフルエンサーについてとキャリアに分けて、まだ分割足りない感じだったので、まえがきと振り返りとインフルエンサーとキャリアの4つに分けました。キャリア周りは来週くらいになるかも知れません。また、振り返りはフィードバックを少し拾うのと、後で気付いた言い忘れくらいなので飛ばしてもらっても。

インフルエンサーもあまり詳しくない(専門家でない人達の情報発信に価値を感じない)ので、どれだけの価値を届けられるか。基本的に、自分の学びや感じたことのまとめと同時に、読んだ人に何かしらの学びや気づきを得てもらえれば、と思いながら書いてはいますが、専門的立場から書けるのはテクノロジーに関わるあれこれくらいです。

続きを読む

ブロガー界隈の有名フリーランスエンジニアを見てプログラミングを始めないでくれ

なんかマナブやばいな、ついでに色々見てたんですが、最近技術ではない方向で前に出てきてるエンジニアが増えてるようですね。

技術ブログは一般の人は見ないからわからないかもですが、技術ブログ系はエンジニアが見るだけで、基本的にそこで収益を得てるものも少ない印象があります。技術者の業界というのは業界の発展のために、無償で貢献(楽しみとしての人が多い)する人がすごく多く、それによってライブラリの充実の恩恵として再利用性や車輪の再発明を避けたりできてたりします。なので、この人達は金儲け系のブロガー界隈では話題にならないですね。

一般向けに言葉を発信する人が少なめだったというのもあるのかも知れませんが。というか、よく見たら取り上げようと思った人全員文系エンジニアですか…。文系エンジニアは技術よりお金に向かい、理系はお金より技術に向かう傾向でもあるんですかね。

今回はやまもとりゅうけん、マナブ、勝又健太さんを取り上げようと思いましたが、りゅうけんが香ばし過ぎたので、やまもとりゅうけん特集にしようと思ったものの、なんか同じことばっか書いてるし、ほとんどアフィリエイトだし、ツッコミどころ多すぎてバカバカしくてやめました。とりあえず、この人から派生した系統多そうだからまとめて書きます。一部引用入れます。批判というより、ガチ勢からの見え方程度に思ってもらえれば。

ちなみに勝又さんは元々GREEで開発統括をやったり、ちゃんとしたエンジニアっぽいですね。ブロガー系フリーランスエンジニアには下手したら言ってることわからないのでは?早稲田の政経上がりらしいので、プログラミングガチ勢というより経験と努力で業務に特化してる感じはありますが。なので、本人も理論系は専門家に任せてるようで。最近はサロン屋もやってるようですが、ちゃんと技術にフォーカスできてるなら良い気がする。りゅうけんさんとかビジネス的な立ち振舞ばっかな気がしますね。そもそも技術なさそうだし。普通に考えると、個人のサロンってどんだけ面倒見られるの?という話があり、

mba.globis.ac.jp

スパン・オブ・コントロールとかって概念が出てくるみたいだけど、直接効果的に管理できるのは10人以下、そうなるとその下にまた10人ずつ付くような構造じゃないと、組織として機能しないだろう、って話ですね。オンラインで一方的に発信して、質問とかの中からピックアップして返すとか、オフラインでは講演後懇親会とかが限界な気がするけどなぁ。りゅうけんって人は露骨に情弱狙いっぽいので、できるエンジニアはまず来ないでほとんどが未経験の努力したくない人だろうし。自分はエンジニアとして彼から得られるものは、金に貪欲な人はこの程度のレベルでも稼げる時代なのね、という感じですね。ネットワークビジネスやってたって人だから、稼ぎは信用してないけど。あの人達の盛り癖すごいよね。200万使って150万稼いでも利益ないやん、的な。

エンジニアはお金は面白いことに情熱を持って取り組んだ結果付いてくるものという感じで、ある程度の報酬確保できたら、お金より面白いこと、成長を求める変態揃いなので、もしかしたら感覚おかしいのかも知れないけど、そういう業界です。そのせいで非技術系自称エンジニアが金儲けに一般人を食い物にする構図が出来てしまってるところもあるのかなぁ…。

勝又さんのとこは結構経歴的にもガチっぽいし、独学でもCSとか数学の重要さを理解して学び直ししてる人なので、非エンジニア系学部卒の人には良さそう。

なんか、りゅうけんベースで書いてた時にツッコミどころ多すぎてメチャクチャ長いです。マジで冗談は休み休み似して欲しいと思いながらエンジニア入門カテゴリを流し読みしたんですが、もう最後の方同じような話のアフィリエイト丸出し過ぎだし。

フリーランスについて

まずはフリーランスから正社員に戻った今のフリーランスエンジニアというものに対して思うことを。

技術が好きなら基本的にお薦めしない

自分も流れでフリーランスで稼いでましたが、今感じるのは技術者として一線で活躍したいなら、この分野ならこの人、となるまでは正社員の方が全然良い、です。在宅で働きたがるフリーランス志望は多いですが、実際のところ、今リモート勤務で家で働けるベンチャー多いですね。今の会社でも週の半分リモートの人とかいます。その働き方を求めて、なら別に余計なやること増えるフリーランスにならなくてもよいのでは、という感じ。しっかり努力して成長しての転職なら正社員でも年収は上がっていきます。700〜800万位までなら。たまに香ばしい名前のtwitterアカウントで、「自由にコードを書きたいからフリーになった」という人いますが、案件受ける範囲ではフリーランスの方が自由はないと思います。「今募集ある案件が扱ってる技術」しか使えないし、その人が使ったことない技術とか先端技術で高額でフリーランス雇うところ少ないんじゃないかな。本とかググって出ない技術やってるところは論文読みながらとか、売上に直結しないサーベイとかにも結構時間を割くので、フリーランスにやらせるわけないですしね。まぁ、その論文発表してたとか、国際会議で定期的に採択されるレベルのフリーランスなら別ですが。また、20%ルールとかあるところは仕事中も自分の好きなコードを自由に書けたりするけど、フリーランスがそれやったら「サボらないでください」と言われますね。

経費の話

フリーランスで書籍代を経費で落とせる、とか言ってる人もいますが、それは経費扱いで税金の対象になる収入から引く、というだけの話です。技術力に力を入れてる会社はたいてい書籍は稟議通せば買えます。購入後は会社の所有で自由に借りれるところが多いです。また、技術カンファレンスとかの旅費や滞在費も出してくれる上に、その間も当然給料が出ます。フリーランスで最前線にいようとすると実費で、その期間は業務時間にカウントされないので、なかなか重いです。ここが結構大きい。

技術力

また、フリーランスで技術力を上げるのはなかなか大変で、正社員は実際は半分くらいの時間は勉強に使えたりしますが、当然フリーランスの費用に学習時間は含まれません。正社員ならセミナーや勉強会を開いて知識を共有したり、登壇等で会社のブランド力を高められますが、フリーランスの学習に金を使っても無駄金、というか、学習しないと仕事できないような奴連れてくるなよ、という話になり、下手すると1ヶ月持たずに退場もありえます。ググって思い出して目的達成できる、位ならいいですが、どんな技術で実現するかすらわからない仕事だと、どうにもならないと思います。

同時に、フリーランスの募集があるのは自社での技術力があまり高くない会社が中心だと思います。フリーランスの単価は高めであるため、その高めのお金で社員が納得できるようなところしかフリーランスを利用しないし、一定レベル以上のお金を払うなら社員を雇った方が良いという話になります。レベル高いところは見積もりもきちんとしてるので、割安に感じるだろうし、教育必要なレベルが来られても余計人手足りなくなる(できるエンジニアの時間を奪う)わけで。自社開発系で余裕があるところはリリースを遅らせるだけなので、フリーランスを入れてまで急ぎません。フリーランスを入れてまでリリースを早めたい現場というのは結構炎上しがちな現場とも言え、その期間業務に追われ、しかもコードベースが洗練されていないので、毎回同じようなコードを書いたりします。

技術スタックが広がらない

上記の通り、業務のための勉強も仕事中は簡単にしかできず、プライベートの勉強時間を使ったり、基本的に忙しい(慢性的に人手が必要な)現場が多いので、リリース前とかは勉強会に出れなかったりもするので、自分のやりたい勉強に割く時間が減ります。りゅうけんさんは半年で新しい技術を扱えるところに行った方が成長が早い、的なこと言ってますが、雇う側として、なんで社員より高い金を払って、その分野未経験の人間を入れるんですかね。基本的に経験あるところでしか取ってくれないですよ。逆に経験ない分野を任せてくるとしたら、技術力の見極めができない会社とかほぼ内部にエンジニアがいなくて全て(責任も)押し付けられる感じとしか思えないですね。高い金を払う=その仕事を高いレベルで達成できる、が要求されるわけです。やっすい額ならあるかもだけど。

また、フリーランスの戦場は技術力で言うと真ん中位、上中下で言うなら下〜上の下位まで(下の上〜中の下辺りがボリュームゾーン?)なので、ホントの上の人達(フリーランス要らない会社)と関わらないので技術力に過信しがちな気がします。

結局、今できることと、その近くの例えば同じツールの使ったことない機能を使ってみるくらいのレベルが多くなると思います。普通に考えましょう。フリーランスに社員以上の金払って勉強させてたら社員キレるでしょ。何故かこの辺努力しない系の"稼いでる"フリーランスエンジニアは仕事で学べると言ってますが、理論系のものは仕事中に学べないですよ。なので、「こうやったら動く」は手を動かせば学べても、「こうやって動いてる」は学べないわけです。解析できるレベルなら別だけど。

給料

上記のようなデメリットがあるため、金の払いは良いです。その分野で即戦力として通用する程度の実力があれば1000万前後は難しくないです。隙間空かなければ。まぁ、ある程度の残業代(契約時間以上の超過料金をもらえる場合)も含んでかもですが。消費税がつくのも結構大きいですね。その反面、国民健康保険はアホほど高いです。正社員だと、IT健保は安い上2万以上の治療費は後で返ってきます。その分厚生年金は高い→将来でっかく返ってくる感じです。ブロガー界隈歩いてる人とかアフィリエイターは年金信用してないかも知れませんが、早死しなければ少なくとも貯金より全然増えて返ってきますよね。算数的な話。僕はエージェント介さずに入って、結構ちゃんとしたところだったので、末締め翌末払いで源泉徴収もあったので、その辺は楽でした。確定申告も税金は払うより1ヶ月分の給料レベルで返ってきてた。

年金

フリーランスは基本的には国民年金ですが、国民年金は平均6.5万、厚生年金は22.1万です。何もしないで年180万ほど差が付くので、フリーランス後に年金生活を30年するなら5400万差が付きますね。そして、厚生年金は会社と折半です。

allabout.co.jp

給料の壁

これはあまりフリーランスエンジニアの方は語らないですが、給料で言うと、中小企業 < 国内有名企業 <= フリーランス << 外資なわけです。実力派ベンチャーは国内有名企業よりやや下、ボーナスの差くらいかなぁ。外資Googleとかで働くと正社員の特権を持ったままフリーランス以上に稼げるわけです。技術好きがフリーランスで副業とかせずに開発に集中して稼げるのは1200万〜1500万が限界なのでは?仕事だからじゃない技術好きのフリーランスアフィリエイトみたいな副業したくないですよね…。なので、金目的の人達は怪しげなアフィリエイトYouTubeに走るわけです。理系出身なら断然正社員で外資を目指した方が良いです。これはCS卒に問わず。特にデータサイエンスとかだと他の理系領域出身も強いですね。

個人的に技術力で勝負したい文系なら、フリーランスは選択肢としてあり(文系だと外資では高卒と変わらない扱いなので、よっぽど業界で目立つ技術を持っていないと応募すらできない)ですが、本当に技術で勝負したいならフリーランスの間に貯金をして、300(国内)〜1000万(海外)位貯めて大学でちゃんと勉強し直した方がいいです。外資へのパスポートがてらちゃんと体系的に学ぶと見える景色が一変すると思います。

個人的に日本だと学部からしか入れない場合が多いので、海外で文系学部卒からのCS大学院を選択しました。アフィリエイト業界の人の言い方をするなら、「控えめに言っても人生変わります」。まぁ、こういうことちゃんと学んでる人間に独学で勝てるわけなかったわ、というのが文系の独学から大学院出た感想です。文系のフリーランスエンジニアは否定ばかりしていないで独学でもいいからコンピューターサイエンス学んだほうが良い。独学でもやってみたらちゃんと学びたくなるので。理論系はプログラミング以上に独学きつい気がしますけどね。

文系だから、と限界を置くなら、大学入り直せばいいだけなんですよ。なんでGoogleとかAmazonとか世界のトップレベルの外資がCSの学位にこだわるか考えてみて下さい。基礎の大事さ、なんてどこの業界でも同じです。あ、基礎ってプログラミングの基礎構文じゃないですよ。その裏で動いてる仕組みとか考え方です。世界は生涯学習当たり前だし、IT業界は日本の会社でもCSで勉強するのに開くブランクはマイナスになりません。日本の会社がブランクにこだわるならCSの学位取って外資入ってしまえばいい。GAFAとかじゃなくても給料良くてブランクあっても評価してくれる外資はいっぱいあります。

日本のエンジニアは1000〜1500万を限界に設定しますが(フリーランス単独か役員報酬含めて)、学位持って外資に行けるならもっと上のステージもあります。Googleのアップデートでお前のサイトはクソだ、って叩き落されながら情弱をはめて稼ぐより、よっぽどいい人生だと思いますよ。

ブロガー界隈だけで有名なエンジニアの方々の話

パット見非エンジニア系の学部出身が大半ですね。学歴で大学名出してる人もいますが、エンジニアで非エンジニア学部だと海外では高卒と同等に扱われます。日本ってビリギャルがウケたり、最少限の努力、時間で成果を出した人を尊敬する人が多いですが、言うまでもなく時間かけてる人の方が地力強いですよ。ケンカ最強を自慢してる荒くれ者と格闘技を本格的にジムで習ってる人の違い位差が出ます。それは新しい領域や技術を触る時に大きな差になるんですよね。1からググって学び直すのと、既に中腹まで土台があって細部を整えるだけの人で、どれだけ差ができるかなんて言うまでもないです。

金の話ばかり

「お金稼ぎたい」でエンジニア目指すのはお薦めしません。
「エンジニア 鬱」で検索してみて下さい。特に技術力がない間、向いてない人は結構精神やられたりします。しかも、技術力のない現場で起きやすいので、最初の段階でやられやすいため、勉強するのが楽しめないと苦しい職業な気もします。自分は学べば学ぶほどできることが増えるので楽しんでいたら上がってきた感じはありますが。

https://note.com/denkigai/n/nafff6bd87802note.com

これとか結構壮絶で。そこそこいろんなことに挑んでそうな人なんですが。それでも向いてないと辛い想いをする話。

現状のプログラミング学習支援サービスのほとんどは「Hello, World!」から「Ruby on Railsinstagramっぽいサービスを作ってみましょう」までは手厚く支援してくれるが、その先で迷う人を増やしていると言っても過言ではないと思う。

これは常々書いてきたことで、それっぽく動く何かを作ってプログラミングすげー、までは教えてくれても、それが実際実務ではおもちゃだと教えてくれない。というか、就職したことなくて、実務でガチの負荷に耐えるシステム作ったことない経営陣の教室もありますしね…。その〇〇っぽいサービスに負荷ツールで同時1万アクセスとかさせたら面白い感じになる気がします。

そしてこれは2つの失敗に共通する話だが、「プログラマーになろうとしている時点で向いていない」という考えもある。(中略)
いわゆるプログラマー、ソフトウェアエンジニアというのはビジネスで言う「HOW」のプロである。実装方法がわからなかったり、見たことがないエラーが出たときに、根気強くドキュメントを調べて動くまで頑張る、というのが仕事の基本となる(もちろん仕事なので限度はある)。
つまり、「プログラマーになるには?」という質問をしている時点で、「調べて実装する」というスキルが不足している。
たぶん業界で活躍しているようなエンジニアはほとんどが「気がついたらプログラミングしていた」タイプの人だと思う。彼らが人の何倍も手を動かしているのは間違いないが、彼らはそれを「努力」だとは思っていないだろう。一方、「努力してプログラミングしている」人たちは、彼らの領域に至るまでにさらなる精神的な追い込みをかけなければならない。

これは結構真理だと思っていて、自分は高校時代になんか自分もHP作りたいな、と思っていきなり書き始めて、気付いたらプログラミングやってた人です。一線にいる人は子供の頃にゲーム作ったとかも多いですね。そして、できるエンジニアほどリバースエンジニアリングができるので、コード読めば理解できるから、わからなかったらドキュメントどころかライブラリとか言語自体のコード読んだりしますね。基本的にプログラミングって言語やライブラリの公式ドキュメント読めばできるように情報が開示されています。

金さえ稼げれば技術力なくても楽な方がいい、という人は何かエンジニアというかビジネスマンって感じですね。金のためにITの仕事をしてるというのは、何か、好きで技術力高くてそこそこの給料で働いている会社員より社畜感が強い気がします。金のために好きじゃないことやってる、でもフリーランスは自由、稼げる…うーん。自由な人が好きじゃない仕事するってなんだろうなぁ。現場で、あいつ金もらってるけど大したことないな、と思われるのはエンジニアとして悔しいというか、軽く惨めな気分になることだと思うけど、まぁ、金目的なら気にしないか。フリーランス高収入低技術エンジニア…。技術好きじゃないし、勝負できるレベルでなくて本当に簡単に稼げるなら、希望者集めてフリーランス集団作ってエージェントやればいいのに…。こう言うと突然仕事好きなんで現場にいたい、とか言い出したりしますよね…。どっちやねん!

ちなみに情弱(ブロガー・アフィリエイト)業界の人達は稼いでる人ほど戦闘力高いと思っていますが、エンジニア業界では技術力が高いほど戦闘力が高いと思われます。エンジニア業界で稼いでる自慢してもあまり尊敬されないので気をつけましょう。徐々に技術力と収入が一致し出してるので(特に外資成するとフリーランスが副業必死にならないと稼げない額を、定時どころか短時間の"好きな"開発案件のみに集中できるようになる)、一部のフリーランスエンジニアの、技術力あるのに稼いでないエンジニアをバカにする風潮は薄れていくでしょうね。そもそも、技術力あると700〜800万はもらってるので十分だし、煩わしいことして成長できる環境から離れて100〜200万稼ぐより、好きなことやりながら外資とかメガベンチャー目指したほうがいい、という感覚の人が多そう。そういう人は世界飛び回って差額分経費出てたりしててもおかしくない。僕は好きじゃないのにエンジニアやるなんて、求められること多いし大変そうだなぁ、と他人事で思ってますが。好きを仕事にして手に職付いて給料も伴ってくれば最高の職業だと思うけど、好きじゃないなら、ストレスすごそう。

実際経験上、若干給料下がりながらでも新しい業界に挑戦した方が生涯収入は高くなりそう、っていうのを実感してたりもするので、金に変えられない将来のための投資とも言える時間はあるし、壁を超えていくエンジニアには結構必要だったりします。

まとめ:エンジニア業界では稼ぐことが最優先と考えている人ばかりではないので注意

プログラミングについて

プログラミング周りは、プログラミング教室へのアフィリエイト誘導のポジショントークだとは思いますが…。なんか、わざとなのか偶然かわからないですが、ブロガー界隈の有名フリーランスエンジニアってプログラミングがメインの職じゃないことが多いんですよね。なのに、何故かプログラミングを語ってるという…。それでか、フリーランスでレベル低めの現場が多いせいか、ちょっと仕事が出来だして調子に乗った駆け出しプログラマみたいな感覚で語ってる人が多く感じます。さすがに、ちゃんとやっててこれだと出来なすぎなので、勘弁してください、という次元で。アフィリエイト誘導ですよね?そう信じたい。

簡単・誰でもできると言う

まぁ、情弱や金稼ぎしか考えない人は大変な事したくない系が多いですよね。簡単で稼げたらとっくにバランス変わってない?という話なので、思考停止してるわけですが。その辺を事実誤認させた人手不足トークで補おうとしてる説明も多いですね。人手はないけど、それは初心者に教える時間も取りたくないぞ、という話。だからこそのフリーランスでしょ。で、最初に戻る…んですが、その辺の一攫千金思考層をターゲットにアフィリエイトで金使ってもらおうとすると簡単アピールになるのでしょう。一昔前はセドリとか、バイナリーオプション詐欺、ネズミ講ネットワークビジネスもそうですね。簡単に稼げるぞ、って。どう考えてもネットワークビジネス簡単に見えないけどね。売れるものを売るのは簡単だけど、身内でしか売れてないものを売らないといけないとか、考えられないです。これまでの人生で簡単で稼げると言われて稼げたことありますかね?なんで「自分月商500万です」、なんて文字列を信用できるのか。
実際のところ、スタンドアローンで自分の手元で動かすプログラミングはすごく簡単です。localhostフレームワーク動かしてアクセスできる、とか手順に沿って作業するだけで画面表示までいくし。環境設定のチュートリアルだけでwebの画面出ますよね。それですら作れないガチで向いてない人もいるんですが。え、日本語読むだけじゃん、的な。

そして、業務で扱うと求められるものが変わります。プログラムが難しくなる一般的な要素として、

  • 大規模アクセス
  • 並列処理
  • 組み合わせ問題

とかがパッと浮かびますね。プログラミングが簡単、と言ってる人の作ったサービスに、負荷ツールで同時1万〜10万アクセス打ち込んでみると面白いと思います。リソース食い尽くして暴れる魔物と出会えるでしょう。並列処理はマルチスレッド、マルチプロセス、マルチコア的な話がありますが、データレースとかレースコンディションの問題、false sharingとかも手を動かしてるだけだとわからない話ですね。比較的簡単だけど、DBの排他制御とかもね。組合せ最適化が出てくると、大抵がNP-complete/NP-hardになって、階乗のオーダーの問題が多く、入力が大きくなるとあっという間に現実的な時間で解けなくなる系の問題です。

また、コード面として

  • 可読性
  • 可用性
  • 拡張性
  • 実行速度

を満たした設計や実装をするには、本とかで先人の知識を学ばないと難しいでしょう。テストちゃんと書いてCI導入とかも含め。コード読んで書いてるだけだと、そこの現場のレベルしか身につかないし、フリーランスエンジニアが入れるのは、技術ある人でも中の上程度のレベルなので、ちゃんと学んで書いている人が少なく、自分で書籍とかから学ぶしかない状態が多いでしょう。実行速度に関しては、アルゴリズムとかデータ構造わかってないとなので、コンピュータ・サイエンスの基礎を学ばないと難しいでしょうね。NP-hardの問題にTSP(巡回セールスマン)問題と言って、セールスマンが複数の都市でセールスをして元の場所に戻るのに最短の経路を探す、というような問題がありますが、これは一定の街数(かなり少ない)を超えると現実的な時間で解けないことがわかっているので、近似アルゴリズムとかを使ったりしないといけないわけです。

ja.wikipedia.org

プログラミングは確かに始めるのは簡単ですが、奥が深く、一人前になるのは難しいものです。趣味で遊ぶレベルなら簡単ですね、という感じで、「プログラミングが簡単」という人は上記に挙げたようなチャレンジングな課題に取り組んだことがなく、簡単な仕事しかしたことのない経験も知識も浅い人なので信用しない方がいいです。この人達の大半はプログラミングがメインの仕事じゃない、か、難しい仕事をしたことがない事が多いですね。

いわゆる「完全に理解した」レベルでうぬぼれて、本質に触れて「なにもわからない」段階に到達したことのない人です。初心者に毛が生える頃ってなぜか無駄な自信を持つものです。後で考えるとものすごく恥ずかしいけど。難しいことがあるのを知らないで簡単と言っているのはまさに井の中の蛙に見えます…。

togetter.com

ツールとか言語は使う側と作る側がいて、もちろん後者の方が難しくて、かっこよくて、稼げるわけですが、日本で後者に携わる人が少ないせいか本質的な部分を扱うプログラムを書いたことのある人が少ないですよね。前者のプログラムは比較的簡単で、後者はすごく難しいです。難しいことを知らない、やったことがないから簡単というのは無知を晒してるようなものです。

当然簡単なプログラミングもありますが、優秀なエンジニアがついでに30秒で片付くものをメインに書く人は必要ありません。簡単な作業を自動化できずに人が必要な現場ならあるかも知れませんが、単調で面倒でストレスの多い作業な可能性が高くストレスも多いでしょう。そういった仕事を中心にであれば簡単なプログラミングだけで十分かも知れません。

まとめ: プログラミングは実現したいこと次第で簡単なものから難しいものまであるが確実に奥が深い

理系との違いがわかってない

時が経てば経つほど、理系出身エンジニアとの技術力の差もなくなっていきます。(りゅうけん)

これとかね。単純作業はそうだろうね、という感じ。難しい技術になればなるほど土台に数学力が求められるので、学習曲線に文理、というか数学力で差が出てくると思います。大学院で、この数式を実装するだけ、とかって課題があったりするけど、実装するだけって…どうやって?!とかありましたしね…。問題解決でない簡単な「データをルールに従って処理する」というような、誰でもできる"作業"では差はなくなっていくでしょう。この辺の文章を見る限り、難しい問題解決の課題、計算量が実務として問題になるような課題に関わったことがないのがよくわかります。

簡単で作業が多い、忙しいけど実力上がらない現場ではこれは正しい、という感じです。
りゅうけんさん、書籍をあまり読んだことがないようですが、コロナ社の本とか機械学習プロフェッショナル(MLP)シリーズを読んでみるといいです。別に、数式全部解ける必要はないけど、何をやっていて、どういう意図か、とかわからないとチューニングとかも無理なのでは。

現場で物理系出身の初心者が、あっという間に10年選手の文系エンジニアをごぼう抜きしたのを見たことがあります。エンジニアリングがわかってる上に、数学の土台があるので、かなり強いです。少し難しい領域になると幾何学とか代数学活きてきたりしますしね。これは⊕に閉じてるので正しく動くことが保証される、とか。そもそも電子計算機を使って行う処理なので、計算の法則が理解できるのは強いです。

文系エンジニアが劣っていると言いたいわけではなくて、前提として積み上げてきた土台が違うという話です。非技術系学部卒じゃなくても、同じくらい積み上げていれば何の問題もありません。技術の土台に数学がある。アルゴリズムが正しいことを証明するにも数学が必要。詳細に言語化する時に数学が必要なのがガチプログラミングの世界なわけです。「経験から、感覚で正しく動くと思います」、とか言われても、ガキの使いか!という話で。ちなみにプログラミングを通した数学は楽しいですよ。数式からCGで現象を再現できた時とか、より数学的な話だと偏微分とか動かしてみると簡単に理解できますし、数学は世界を表現する言語だな、と思っています。つまり、現実世界をコンピューターの世界に投影するには、数学が必要不可欠というわけです。まぁ、データを右から左に流しながら、ルールに沿って変換するような単純労働は文理の差は全くありませんが。建築業で言ったら材料を運ぶだけなら差は出ないみたいな話ですね。そういう現場に理系の人間が入ったらいる場所を間違えているので職場を変えたほうが良いです。

まとめ:文系と理系では技術力の高い難しい本質的な領域は差が付きやすく、基礎的な技術は差がつかない

数学は要らない

前のと少しかぶりますが、難易度10段階で6くらいまでは数学は要らないかも知れません。ただ、標準ライブラリ等では数学が使われているわけで、数学が要らない、というより「誰かが数学を必要なプログラミングをしている場合、数学は要らない」という話です。他に人がやっているから使ってないだけですね。ライブラリでできないことを実現するには数学が必要になることは多く、画像処理をガリガリやっている人や、機械学習の中のコードを書いている人は数学ばかり使っていると思います。結局、「プログラミングに〇〇は要らない」、と言っている場合、制約が付いています。「他の人がやってくれるなら」「それを使わない現場で仕事するなら」とか、そういうことです。当然、制約が少ないエンジニアの方が優秀で現場を選べるわけで、制約が多いほどできる仕事は減ります。とはいえ、未経験や独学上がりのエンジニアは、どこに、何が、使われているかつまみ食いしていない部分はわからないことが多いので、〇〇ができなくてもいい、と言っている場合は、制約を隠しているというより、そもそも使われていることを知らない、可能性があります。

例えばサッカーでキーパーをやって、蹴り出さず全て投げるなら「足でボールを蹴らなくてもサッカーはできます」とも言えますが、それは「サッカーをやるのに足を使う必要はありません」とは話が別ですよね。物事に制限をつけてそれを一般化して語っている状態です。

また、上司が外資上がりだったりちゃんと学んだ人間だと、アルゴリズムやシステムの定量的な解析を求められるかも知れません。「ここの処理遅いけど、計算量どうなってんの?」「は?(計算量?)10秒位だと思うですけど。」とか言ってら、いいよ、もう来なくて、という感じですね。マネージャーが定量的な根拠を求めない精神力重視の現場なら良いでしょうが。

まとめ:数学を使わない仕事、誰かが使ってくれる現場であれば数学は要らない

仕事は短期間で移るべきか

この辺から、ガチ勢は目を覆いたくなるくらい酷い話が続きます。

半年〜1年くらいのスパンでどんどんと現場を切り替えていけるような人の方がスキルは確実に上がっていくんですよね。(りゅうけん)

冗談だろ、としか言えません。半年って、大きな難しい案件だと1つ終わらない長さだけど。そりゃ上積みがほとんどないレベルなら考えられるけど、そんなレベルの人は、逆に超高額で外資とかに抱えられて、色々先端分野に挑戦してそうだけどね。
もし、これが事実なら短期のSES案件で常駐場所が頻繁に変わる下請け企業のプログラマが最強になってしまう気がしますけど…。質の良い(問題解決として難度が高い)案件を、品質の高い仕事ができる同僚とできるのが、技術力アップで一番いい環境だと思います。背伸びしてできるくらいの難度がベスト。あとは、理論的に難しい案件だと、半年で下手したら理論理解しきれない可能性すらある気がするけど。最初はもやっとした感じで、徐々に案件が進むと霧が晴れていく感覚があります。まぁ、インフラで初期の環境構築から安定稼働させて次の現場に移るなら、確かにそれはありですが、プログラミング系だとないなぁ。しかし、インフラでそんなにフリーの人間入れるものなんですね。バックドアとか仕掛けられそうで怖い。昔いたところはインフラだけSIerに任せてたこともありますが、それは会社が責任取れますからね。当時は、そこの会社のデータセンターにサーバーとか置いてたりしました。

体験として正しいとしても、それはインフラだからだろうね、という感じ。プログラミングだと半年で任されるのは表面的な、いわゆる「手を動かすだけでできる」簡単な仕事くらい。手を動かすのが大事、って言う人多いけど、それは基礎体力づくりで、要はスポーツでのロードワーク的な話ですね。慣れるには、基礎力付けるには繰り返すのが大事、という。素振りだけでHR王にはなれないけど、素振りは大事、みたいな話です。内部構造や要素技術の十分な理解が必要な仕事は半年までに任されることは稀にはあっても半年で終わってることはほぼない気がしますね。大前提として、軽い仕事を繰り返しても経験値は大して上がらないんです。簡単な仕事が早くできる人になるだけです。スライムを倒し続けても、スライムが余裕で倒せる以上のレベルにはなかなか上がりません。半裸の覆面のおっさん(カンダタ)に叩き潰されます。レベルの低いシステム業界で、自分ができるエンジニアと勘違いするよくあるパターンです。僕の業界経験2年目とかも、そんな感じでした。転職活動で自分の立ち位置が見えてから、本気で恥ずかしくなりましたが。ググってするだけの仕事を繰り返しても上手くなるのはググり方だけです。

自分の感覚では、一つの現場で学ぶことがなくなるのは1年半〜3年位ですね。半年で学ぶことがなくなった場合、それ以上難しい事は任せられないと判断されている状態、と考えた方が良いかも知れません。それか、元々簡単なことしかやらない現場だったか。簡単なことを早くできるようになるのは成長ではありません。ただの慣れです。勘違いしちゃいけないですね。想い出すだけでちょっと恥ずかしい…。

まとめ:本質的な仕事を任せられる程度には同じ場所にいた方がいい

努力しない言い訳を作る

情弱狙いだからだと思いますが、ホントに努力しない人間なら同じ現場に来て欲しくないなぁ。

paiza.hatenablog.com

グーグルが採用したいのは、ジェットコースターを選ぶタイプ、つまり学習を続ける人々だ。彼ら"ラーニング・アニマル"は大きな変化に立ち向かい、それを楽しむ力を持っている。

自称稼いでるアフィリエイトだらけのサイトのフリーランスエンジニアって、フリーランスからの視点ばかりで、企業側の視点を意図的に無視してる感じがありますね。努力する人と働きたいんですよ、企業は。特にエキサイティングな仕事をしてるところはそうです。人海戦術の、誰でも良いから人が欲しいという奴隷商のところは、仕事すれば何でもいいと思うけど、そういうところで働きたい人いますかね。

IT資格

最近、Web開発に資格は要らないと吠えてる人多いですが、実務に必要か、と言うと、そりゃそうだけど、特にSESやフリーランスのプログラム系の職種なら高度情報処理技術者の資格とか持ってたり、DB・プログラミング周りの資格持ってると、転職でも単発でも書類通りやすいと思いますよ。経歴は盛れますが、資格は盛ると簡単にバレます(合格証見せられない)からね。あと、資格を通じてその領域の幅広い知識が得られたりもします。つまみ食いしてると、いざという時にこいつ本質的なことわかってないなぁ、というのがバレます。ブログでアウトプットした方がいいとか、資格の勉強のアウトプットって問題解いたり試験受ける部分な気がしますが…。そして、受かるレベルって、突っ込んだこと聞かれて答えられるレベルなはずなんですが、ほとんどの人は資格の勉強しないで資格の勉強を叩いてるからなぁ…。自分で持ってないとか言ってると、知らないことは価値のないこと、というカチカチマインドに思える。インフラは知らんけど、未経験読者のほとんどが目指してるプログラマだと結構資格は効きますよ。特に駆け出しの間は実績少ないですし。僕は未経験で入社して3ヶ月で高度情報処理技術者の資格取ったら、かなり箔が付いて、SESの書類ほぼ素通りだったし、転職活動でも書類は強かったです。普通に未経験なのに応用情報技術者とか持ってたら、僕は持ってないけど、すげえな、と思ったりします。かなり幅広く深いですから。これは試験わかってないと理解できないかも知れないけど。ただ、受けてないとしても、有名な試験の難易度理解できない人間が面接官やってる会社は底が知れてる気が。それで仕事できるかは別だけど、実務しないでそこまで理解できるなら、かなりITエンジニアとしての理解力高いと思います。基本情報レベルでも明らかに努力している、穴のない知識体系を身に付けようとしてる意志が見えます。同レベルの実績の2人が並んだら、努力が見える方を選ぶのがまともな感覚なのでは。

例えば、会議中に、これ実現できますか?「ちょっと待って下さい、ググります!」という人間と「技術的な課題としては〜があるものの、これなら〇〇の技術で実現できますよ」とサッと出てくる人で、どちらと仕事したいですかね。かつて、SESからWeb系に転職しようとした時に「ググってわかるは技術じゃない」と言われましたが、そういうことです。ググればわかるなら単金高い君じゃなくていいよね、という話。知識が定着してないからググらないと出てこない。ど忘れはあるとしても、体系的に土台から覚えていれば、ある程度のレベルでは答えられるようになるし、体系的に学ぶのに、資格って悪い判断ではないと思うけど。ググって出てくる情報は大半が断片的だから。資格は持ってなくてもマイナスにはならないけど、取ってればプラスになる、程度ですが。少なくとも、そこの専門領域を学んだことがある証明にはなります。理論はわからないけど、ググれば答えはわかるのでググりますね!とか言われても、こいつ大丈夫か?と思いませんか。とりあえず、取らずに文句言うのはかっこ悪いのでどうかと…。そして、そういう人ほどググったコードをコピペしてバグらすというね。

まぁ、CS学位も一種の資格です。努力や実績として結果を残してプラスに成ることはあっても、マイナスになったことはないですね。決定的なプラスにはならないけど、判断材料が増えて悪いことはないです。自分の知識体系を育てて、しっかりと根の張った大きな木にするために学ぶことをやって損はないです。資格は書類の賑やかしと同時に、自分を育てるモチベーションになるものですから。努力を否定する人は努力したことのない人が多いので、大半が資格持ってないですね。自分が持ってないのがマイナスにならなかったから要らない、と言ってるだけで、持ってる場合の立場がわからないか、他人の目に見える実績に嫉妬してる感じがしますね。持ってなくてもマイナスにならない、と、持っていたら多少でもプラスになる、は全く別の話です。努力しないための言い訳は格好が悪いものです。とは言え、転職活動のために取る、みたいな目的なら、身につかないからやめたほうが良いです。自分が成長できる定期的にあるハードル位に置いておくのが良いです。

まとめ:資格はなくてもマイナスにならないが否定するなら取ってからにしないと格好悪い

勉強会

勉強会意味ない発言は、稼いでるはずなのに勉強会やカンファレンスで登壇したりしてないのを正当化したいのかな、と思いますが、勉強会要らないとか、ググればわかる、ってね…。何度でも言うけど、「ググればわかる」は技術を身に付けていないことと同じです。慣れてきた駆け出しのやりがちな勘違い。誰でもできることならできるという主張で、確かに、ググればわかることは多いですが、ググらなくても分かる人との差は明確です。知識として染み込ませてる人と、都度ググる人と頭の回転の速さの違いは明白です。そもそも、考える時に外部記憶装置使ってますからね、人なのに。外部記憶措置は数桁速度が遅いのですよ。

勉強会にはモクモクとかもありますが、ググってわからない最新の課題に取り組んでいるものや、最新のツールの導入からメリデメ紹介してるのなど色々ですね。業務で体験するのが最善の学び、と言うと自分で経験したことしかわからないけど、勉強会の追体験では他人の経験からも学べるわけです。2倍にも3倍にもなるわけで、意識の高い人達を見てモチベーションが上がったり、twitter等でつながることで技術情報が手に入りやすい状況が作れます。ツール選びも自分が確認するツールが一つ減るなら儲けものです。

ハマりどころも事前にわかったりするので、失敗してググって解決するという手戻りの時間と労力の無駄遣いが避けられます。勘所もわかってくるので、"鋭い"エンジニアになるにも勉強会はプラスになります。インフラとかって、ダウンタイムをなるべく減らしたいと思います。それを未然に防ぐための知識を得る場と考えて準備できれば、マイナスを無くすか減らせると思うんですが、落ちたらググって直せばいいと言う思想だと直すまでの時間損失が発生します。自分の経験だけでなく、他人の経験も取り込んだほうが良いのは明らかです。失敗が損失に繋がる仕事であれば経験して学ぶ、じゃ遅いと思うのですが…。というか、勉強会なんか行くより現場でググればいいとかいうエンジニアはAIじゃなくてGoogle検索に仕事奪われそうな気がするんだが。

初心者はモクモクもいいですね。1人じゃ何を作っていいかわからなかったり、家でやる気が出ない人は勉強会でコードを書けばいいのです。

登壇してないに関しては、このブロガー界隈での"稼いでる"フリーランスエンジニアは技術で稼いでるのではなく、立ち回りとかで稼いでるからと言うのが大きいのでは感がありますね。技術力は勝又さんを除いて(MLOpsだしちょっと未知)凡庸な感じか中の下くらいが多く見えます。

何より、勉強会やコミュニティ活動というのは、技術好きには楽しいものです。これが理解できないのはエンジニアとしてもったいないなぁと思います。

まとめ:勉強会は技術力を加速させ問題の予防に繋がる楽しい場

プライベートで勉強しない

プライベートは自由ですからね。その選択は自由です。とはいえ、楽しくてエンジニアやってる人はプライベートでもプログラム書いたり電子工作したりしてるわけですよ。成長の差は明らかですよね。

axia.co.jp

これの但し書きは概ね正しいでしょう

プライベートで勉強しなくても何とかなります
但し書き1:勉強しない人は勉強する人には勝てません
但し書き2:勉強しない人は勉強する人ほど給料は上がりません
但し書き3:勉強しない人は勉強する人ほど重要な仕事を任されません
但し書き4:業務時間で習得したスキルは10年後使えなくなるかもしれません
但し書き5:勉強しない人は転職が厳しくなるかもしれません

某氏のすごいところは、「努力しないこと」を全面に出してることですよね。よくクライアント取れるよなぁ…。自分がフリーランス採用する側や一緒に働く仲間だったら、努力しない人と働きたくないけど…。戻りたくなったら余裕で会社員に戻れる、とか言ってましたが、フリーランスから戻った人間としては、舐め過ぎだと思いますね。僕もそう思っていましたが、現実は大変でした。技術的にこっちの話が逆に通じない時もあったりしたけど、場合によっては、企業に属さずに働いてた人は協調性が…みたいなこと言われても仕方ないのですよ。特に、企業側の視点を無視してフリーランスでは実力と報酬のギャップが得られるような話してる人は企業側の利益から考えてマイナスな人材に思えますが。

同じような仕事ばかりしてるなら、勉強しなくても経験だけでなんとかなるんですよね。努力してないのがわかる人には新しい領域の仕事とか重要な仕事を任せたくないですよね…。正社員に戻るにしても、努力しない=成長が遅い人を取りたいとは思わないだろうね。社員の話ですが、努力できるのがわかってるエンジニアの場合、使ったことのないプログラミング言語アサインすることもありえます。基礎ができてれば、案件中に学べますから。とは言え、言語仕様をちゃんと理解しないと地雷踏んだり、最適化されずパフォーマンスが出ないので、結構な努力必要ですね。と言っても、業務中も勉強できるから、そこまで時間的な犠牲は大きくないかも。強制しないでもそういうのを楽しんで手を挙げられる人は技術の幅がどんどん広がるのは目に見えてるでしょう。フリーランスで経験ない言語となると、現場でよっぽど信頼されてからで、技術的に社員に荷が重い場合にはあるかもですが、稀でしょう。その際には、当然同じくらい、プライベート中心での努力が求められます。フリーランスは現場に仕事にくるわけで、勉強しに来るわけでも企業が育てたいわけでもないのですよ。できるからやってもらうだけなので。

まとめ:プラベートで勉強しなくても通用はするが、勉強する人間には勝てない

本は読まない

かつては入門レベルの本ばかりでしたが、今は下手なプログラミング教室より技術書の方がレベルが高いとこまでフォローしてることが多いです。

自分も留学前に陥っていた状態なんですが、ググればわかるじゃん。本買うやつ馬鹿なの?と思っていましたが、今やsejukuとか入門レベルの内容をプログラミング教室が不確かな記事で説明してるものも多く、それが正しい情報かわからない人は本を買ったほうがいいです。今後、dockerとかが入門書で用意されるようになれば、ありがちの入門者が環境構築に失敗して挫折することも減るでしょう。本は少なくとも、編集や校正を通って一流の同業者がチェックした確度の高い情報です。本当に知見のない領域ならゴミまみれのネット上で情報探すより確実です。
StackOverFlowとかは有益なのは確かで、本にも出てない情報はその辺で調べることも多いです。というか、初心者は公式リファレンスで大抵解決できる気がするけど。慣れるまで見方わからないかな。

ちなみに機械学習系は理論わかってないと実装できなかったり(APIないレベルの部分)、チューニングできないのでめちゃめちゃ本読みますね。前述MLPシリーズとか。ある程度のレベルになると、言語系は使ったことのない言語でもガチ系の本1冊で書けたりするし、つまみ食いでなく体系的に学びたいなら、本の方が良いです。本は要らないという人の知識は大抵虫食いで穴だらけです。ググって見つけた、それっぽい解決策は地雷が埋まってることも少なくないです。正しい動きはしても言語的にはNGだったり。経験で学ぶ、は確かに一番の道ですが、それだけだと情報の少ない未経験に対応できないし、理論わかってれば仮説を立てられるわけで。仮説の検証というプロセスが問題解決の基本なはずですが。

まぁ、この辺の感覚が文系エンジニアと理系エンジニアの違いなのかな。経験だけだと難易度高い問題設定だと限界は近いんですよ。特にプログラミングはね。さらに英語の文献も読めたら学びはかなり加速します。

ちなみに、会社の優秀なエンジニアはこの本は持っておいたほうがいい、という本は会社のではなく、自分で購入して机に並べてすぐに見れるようになっている人が多いです。中級に向かって本よりネットに流れて、中級から「なにもわからない」ステージに達すると、また本に戻る感じがある気がします。で、その先は執筆する側になるのですが。

まとめ:本は体系的に穴の少ない知識を学べ、情報の正しさが保証されるので結果的にコストパフォーマンス(時間等含め)が良い

経験のない座学を否定

これは結構酷いので引用ベースで。あまりに酷すぎなので魚拓で引用しておきます。これ、ガチ勢ドン引きレベルですよ。

megalodon.jp

一方、大学やプログラミングスクールだとどんなスキルを持っててどんな実績を上げてるのかも分からないような人から教わらないといけません。

ちょっと待って、この人どんな大学通ったの?神戸の大学だっけ?全部、対象外の研究室のTAとか、道で震えてるところを拾われたバイト、とかが教えてたのか?大学の授業って、基本的に教えてる科目を専門分野にしてる教授とか、研修室の博士課程の人間が受け持つものなんですが。完全に専門家で、スキルも開示してるし論文もわかるはず。これはガチでビビる。有力ベンチャーとかは大学教授が顧問でついてたり、サイバーエージェントでも働きながら博士取ってた人もいるし、ある程度以上のレベルのクライアントで働いてたら、アカデミックを下に見ないと思うけどなぁ。流石に、この文章は後から「大学」も足して気が狂った文章になったのだと信じたい。二日酔いの朝に最初に目が合った見知らぬ女性に求婚するようなレベルで意味がわからない。

なので、個人が可視化されたエンジニアの人達から学ぶ方があまりハズレを引かなくて済むんですよ。もちろん期待はずれだと思う事もあるかも知れないけど、少なくともプログラミングスクールや大学で教わるよりもまだマシだと僕は思います。

情報発信=可視化というか、論文の採択とか技術系の登壇とかの実績のほうがSNSでのインフルエンサーであるだけよりよっぽど信用できると思います。少なくとも、「素人に人気のインフルエンサー」と「アカデミックな領域で先端の研究をしている教授」のどちらが信用できるかは言うまでもないはず…。冗談でしょ、としか言いようが。インフルエンサーになって自分の実力を勘違いしてるのでは…。この人藤沢某みたいだなぁ。

結論プログラミングをどこで学んだとしても長期的に見るとそんなに大差はありません。

あなたそもそもプログラミング職じゃないでしょ。基礎構文だけで言えばそりゃそうですが、長期的にそれだけの仕事する人って…。そんな言うならAtCoderで1ヶ月で黄色とか行って見せて下さい、という気持ちです。コーディングなら大差ないかも知れないけど。WordPressって技術力で言えばMarkdown使いこなしてブログ書くのと大差ない感だし。中級から上級の間にあるものすごく高い壁を超えるための鍵は、ほとんど大学で学ぶ内容、というか大学院で学ぶ内容にあると思いますよ。特に応用のアルゴリズムはかなり差がつくと思いますが。別に、独学でいけるなら大学入らなくてもいいけど、ガチ数学ですね、その辺は。基本的に、こういうのは経験したことのある人間しか判断できない話で、自分の経験がないものを軽視するのは自分の成長に自分で限界作ってるか、見て見ぬフリしてるだけですね。

こんなこと言うと身も蓋もありませんが、エンジニアは座学でどれだけ勉強したとしてもそこまでレベルアップしないんですよ。

これは独学から大学に戻った経験からして、座学が必要なのは、本質的な問題を解決する場合で、表面的な問題を解決する程度ならそうかもね、という感じですね。動的計画法とかBinary Indexed Treeとか、ひたすらコード書いてるだけで身につきますかね?貪欲法なら思いつくかも知れん。証明は出来なそうだけど。big-O記法とかでアルゴリズムの解析できますか?最適なデータ構造の選び方、説明できますか?なぜ、その暗号が安全か説明できますか?座学が価値があるかは、座学をちゃんと受けた人しかわかりません。文系科目から関係ない仕事に就職するのと同じノリで、大学で学ぶことを評価されてもなぁ、という感じ。おそらく、本質的な問題を抱えた事例の問題解決に携わったことのない人の言葉です。こういうのを見ると、やっぱり、エンジニアとして情報発信するなら、独学でもいいからコンピューターサイエンスの基礎は勉強して欲しいな、と思います。どう裏で動いてるかわかって最適化したコード書ける人と、なんとなくこう書くといいらしい、おまじない!って言って偶然似たようなコードになった人のどっちが信用できるか…。まぁ、説明してもわからないでしょ、でおまじないで煙に巻く人も多いですが。

なので座学ではほとんどレベルアップはしません。それはJリーグを目指すサッカー少年が、ピッチに上がらず必死にルールブックやサッカーの上達本を読んでいるようなものです。

うーん、今時、トップレベルのサッカースクールは戦術をボードとかで学んで、ポジショニングの意味とか、それぞれの動きの狙いを教えた上でコート上で反復すると思いますけどね…。脳の最適化として、ただ身体を動かすんじゃなくて、考えて、意識して動かすと成長は驚くほど早くなるんですよ。その意識するため考える種にスポーツでも座学は必要なんです。昔身体に覚え込ませる、って言ってた反復は、結局は脳の伝達回路の最適化です。正しい経路を理解して、その道を太く強くすることは大事です。

ameblo.jp

CSの授業受けたことがないからわからないのかと思いますが、座学って座学だけで完結するわけじゃなくて、座学で理論を学んでそれを応用した技術が課題で出て実践するんですよね。仮説を立てて検証するのがエンジニアリングの基本だと思うんですが、この人の考え方だと、いきなり仮説を立てずに実践して失敗してやり直すみたいなイメージに見えます。トライアル・アンド・エラーにしても仮説は立てないと無駄死にしまくると思いますが。リセットボタン押し放題の子供の遊びじゃないんですよ…。仮説を立てるためには理論が必要で、理論を証明することも必要で、その辺は座学なわけですよ。ただコード書いてればいきなりひらめくロマサガみたいなシステムはエンジニアには搭載されていないのです。天才なら車輪の再発明できるかも知れないけど、それ、最初から学んだほうが良くね?という話で。この辺は必死にプログラミング教室とかコンサルに向かわせる手法ですかね。この人のブログ的には後者だろうけど…。

プログラミングの学習は人で選ぼう!

人で選ぶなら体系的に俯瞰でCSの技術をわかってるCS卒をお薦めします。パフォーマンス・チューニングとかハードの要素も強いけど、並列処理でfalse sharingの問題とかコード書いてるだけじゃわからないでしょ…。

megalodon.jp

ただ別にね、勉強会でわざわざ学ばなくてもググって学んだらいいんですよ。僕はそれで十分だと思うんですよね。
(中略)
なので、既に現場に入ってるような人はわざわざ座学で学ぶよりも仕事を通して学んでいった方が絶対効率が良いんですよ。

もう、ガチですげーな、これ。今年ですよ。5,6年フリーランスやってこれって、マジでフリーランスって成長しないんだなぁ、という圧倒的な証明ですよ。どれだけレベルの低い現場担当してんだ…。圧巻ですわ。この人、フリーランスですよね?フリーランスに経験ないことを学ぶような場を提供する会社あるんですね。フリーランスは仕事で学ばせてもらえる機会、圧倒的に減ると思いますが。僕は座学で知ってて、課題レベルで書いたことあって他の社員も外部の人間も経験ないから、で任せられた話とかもありますけど、それは知識があったからだしなぁ。知識を学ぼうとせずに完全に現場で学ぶんでしょ?フリーランスで?ウソでしょ…。傭兵が鍛錬せずに戦場で学ぶ、新しい武器があったら戦いながら覚えればいいと言ってる感じ…。死んでダメージ受けるのはクライアントだが。

結論ですが、僕はフリーランスエンジニアになる為の勉強はしてません。ほぼノー勉です。

エンジニア向いてないのでは…。かなりガチ目にエンジニア向いてないのでは…。優秀なエンジニアは趣味で勉強しちゃったりしますね。本人も自分が凡人って言ってて、向いてる優秀な人間が毎日楽しみで勉強してて、凡人がノー勉って…。でも、金はもらう( ー`дー´)キリッ、的な。この人がネットワークビジネスにハマったのわかる気がします。それとも、これは"フリーランスエンジニアになる為の"で限定した引っ掛け問題で、影で優秀なインフラエンジニアになる勉強はしてるのでしょうか?

paiza.hatenablog.com


例え1日10分だとしても、1年でノー勉の人とどれくらい知識に差ができるんでしょうね。まぁ、仕事としてお金のためにやってるとか言ってるし、それでこのブランディングなんですね。こんなプログラミングは簡単だとか言って蟻地獄に引きずり込まないと稼げないなら他の仕事やってほしいなぁ…。確かに、動くだけのプログラムを書くのは簡単ですけどね。まぁ、そんな簡単なプログラムに高いお金払おうと思う人はいないですよね…。入り口は簡単だけど、ゴールのないめちゃくちゃ長い道、と言えると思います。

基本的に自分の市場価値が上がる要因になるのは現場でやったことのみだからなんですよね。

おいおい、あなた、他人の市場価値を判断する立場になったことないでしょ。SIerから即逃げ出して派遣からずっとフリーランスで、他人の市場価値の何がわかるんですか…。レバテックで受注した案件の額面とか程度なんだろうけど、エンジニア業界で一度、ちょっとレベルの高いところで就活してみたらいいと思うけど。特にプログラマ職だと技術課題出るとこ多いから、ちゃんと学んでるかバレますよ。たいてい基礎技術なので、基礎技術軽視して表面的な仕事しかしていない人は落ちます。

とは言ってもプログラマーやインフラエンジニアの仕事が好きで好きでたまらないのであれば勉強会に出るのは全然良いと思いますよ。だけど、僕はぶっちゃけエンジニアの仕事なんて金の為にやってるだけなんで。

金のためにやってるエンジニアが、"参加者多数の勉強会で既出の解決策"を知らずに失敗したら、プロ失格だと思いますけどね。金のためにやっている人ほど必死でやらないと好きでやってる人に勝ち目ないと思うけど。まぁ、同じフィールドで戦ってないという話か。勉強会では"転ばぬ先の杖"を配ってるんですよ。しかも無料。○○みたいなブログ書く時間あったら行ってみたらどうですかね?一度行ってみたのがレベル低い会だったとか?この回のエントリー書くより、よっぽどいい時間の過ごし方だと思うけど。そして、こんなこと言いながらフリーランス薦めるって…まぁ、アフィリエイトではめ込むためだろうけど、酔っ払って書いた記事かなんかじゃないのか、これ。異常なクオリティの低さなんだけど。中学生の読書感想文のできの悪い方から何番目から取ったような内容ですよ…。この頃からアフィリエイトで放っておいてもチャリンチャリンし出したのか、軽く○○ってるんじゃないかって言う質の悪さで本当にこれからエンジニアを目指す人には絶対読まないで欲しい

まとめ:座学で理論がわからないと言語化(アルゴリズムの証明や計算量等定量化含む)ができないので、独学でも基礎技術は学ぶべき

githubはない

githubで自作アプリ公開すべし、と言いながら自分が持ってない人多いですね。自称稼いでるフリーランスエンジニアの業務実績のほとんどはサイト上にしかないです。仕事でしかコード書いてないとそうなりがちだけど。そして、Qiitaもなさそう。

まとめ:技術系で有名になるならgithubくらい持ってるべきだし、持ってない人の技術力はあやしんでよい

公式ブログがWordPress

プログラミング簡単とか言ってるのに、自分のブログをWordPressで作ってる人ばかりというね。WordPressが悪いとは言いませんが、web系の技術の練習とかに使えばいいのに。「このサイトもRailsで作ってます、マジプログラミング簡単」とか言えば説得力出るのに。かつて勝又さんもマナブの件ので言ってますが、WordPressって技術的にレガシーだし、せっかく技術を試せる場を持ってるのに、移行も面倒で古い技術をわざわざ使い続けるってどうなの?技術のアンテナどうなってるの?話に出せる程度に表面はなでておくけど、人には手を動かせ、と言いながらも、実際手は動かさない、って感じですかね…。前に絡んできた人もそうだけど、プログラミング教室薦める記事書くのに自分はWordPressでサイト作ってるって、激しく説得力ないんですが…。ちなみに勝又さんは2013年頃にGREEWordPressいじってますね。経験者の発言。当時GREEですらWordPress使ってたのか、というちょっとした驚き。

labs.gree.jp

前にも書きましたが、WordPressCMS(コンテンツ管理システム)やブログと呼ばれるジャンルの製品で、カスタマイズも簡単だし、開発者よりユーザー寄りの製品です。プラグインのバグとか色んな条件に引っ張られるし、技術を楽しんでる人は公式ページの技術としてはあまり選択しないのでは。というより、しないで欲しい。せっかくのサンドボックスなのに。プログラミング系の仕事の人はWordPressプログラマの仕事と思っていない気がする…。どちらかと言えばデザイナが少しプログラムした方が良いものになりそう。あ、ちなみに、ソース表示したらプラグインとかにWordPressプラグインを示すコメントとか見えたりするんですよね…。見えていいのか、それ、と思ったりもする。

まとめ:WordPressでHPを作ってる人は開発者というよりデザイナー・ユーザー寄り

求められてるスキルセットの提示が低すぎる

2年程度で十分だからフリーランスになるべき、という話が多いですが、2年の実力って、SESなら60万くらいかも知れませんが、その60万のうち20万位は会社の信用が乗っていて、何かあったら責任取る、という安心もあるので、実際のSESの額は高めになっていて、フリーになると額は落ちると思っていいでしょう。このレベルの人は何十万人もいると思われ、もし一定数が会社員より稼げる、とフリーランスになったら、同じ報酬額の要求水準はかなり上がるでしょう。単純計算で中抜きなくなった額と考えがちですが、会社の信頼とかの額を無視しちゃ駄目ですね。この2年程度で60万、例えば4年で100万もらってる人間がきた現場の7年働いてるプロパーが月給50万だとしたら、そのフリーランス追い出すか、そういう評価する会社辞めるのでは?そうしたら、人手不足でフリーランス呼びますかね。で、さらに人減って変わりにフリーランス入れて予算上がって…その会社潰れないか、それ。打ち出の小槌でも開発してんのか?技術力低くてもフリーランスになれば稼げる、というのは採用する側からすると、そういうことですね。技術力落ちてコスト増えるという話。それで会社潰れたらある意味人手不足解消ですね。人の足りない会社が減る、という斬新な解決策です。

会社側の視点から言うと、技術力の低いフリーランスを入れるのは経営上のリスクになりうるんですよ。

マナブの○○ロードマップもそうですが、商材とかサロン系で、技術より立ち振舞い的なの中心な人は、提示する「1000万を目指すためのスキルセット」が駆け出しレベルですね。CS学部でインターンしてたら、新卒の方ができそうなレベル。

note.com

この人のも結構微妙です。僕が2年程度で学べた内容だし、テスターは開発職につながってないですね…。デバッガーとかって専門職ですよ。すごいよ、あの人達。このスキルセットだと、CS上がりなら1年要らないかも知れない。この人、経営頑張ってるっぽいのに、なんでこういうの売っちゃうんだろう。しかも、この人情報系出身っぽいのにテスターを経由する合理的な意味が何一つ見つからない…。「研究生」って学位ないのに東大研究生を経歴で書いてるのもなんだかなぁ、感。本業で頑張って欲しい。

今はそういうレベルで高額もらえる見積もり失敗案件が結構あるかもですが、フリーランス増えたら奪い合いになるし、そうなると需要と供給のバランスで単価落ちるし、徐々に適正化していった場合に、現実では現場で学べないフリーランスが今の技術だけでできる仕事を選んでいくとかなり手詰まりになる可能性が高いし、正社員に戻ろうと思った時に技術が型落ちになってる可能性もありますね。

それにしても、案件のつなぎ目で掘り出し物案件捕まえてを1年繰り返すってかなりの運ゲーに思えますが。僕は非エージェントでの現場で重宝してもらって色んなプロダクトのお手伝いしたから安定してたものの。技術力を上げると運の部分が減って下限が上がると思います。

というか、継続的に案件を出してる会社はフリーランスより社員雇った方が伸びるし、安上がりなのに気付いた方が良いと思うが。まぁ、それに気づかないか、使い捨てのつもりの会社しか案件がないと考えるのが妥当でしょうね。

まとめ:自称1000万超えのフリーランスエンジニアの開示してるスキルセットは大半が見積もり失敗案件じゃないと稼げないレベル

人手不足の理由の勘違い

わざと勘違いしたポジショントークなのかも知れませんが、IT業界が人手不足なのは、純粋に人が足りないSI業界と雇いたいレベルの人間が少ない自社開発業界、という分断が起きていて、未経験とかが入りたいのが後者なのに、後者は未経験者要らない、なので、ミスマッチ半端ない状態ですね。デスマーチとか絶対無理、と言っても未経験者とかスクール出たてが入りやすいのは前者なのだが、という。しかも、日本でも大手ベンチャーとかは海外から雇いだしてるので、別に未経験とか経験の浅い人は要らないんですよね。

報酬のギャップがわかったり、正社員化の方がクライアント側の選択として良い、という海外で普通の判断が基本になると炎上案件の、低単価で人手が必要なとこ中心になって、高単価はガチ強エンジニアが独占しそうな気がします。フリーランスが増えたら、上の方も増えると考えるのが通常。

なかなかバブリーな話ですが、現場経験2~3年のエンジニアが普通に年収2000万円超えする時代もすぐに来ると思いますよ。(りゅうけん)

これをガチで思ってたら頭お花畑だと思うけど…。クライアントどんだけ儲かってんだよ、という話。利益社員に還元した後、フリーランスの技術力低い人間にもそれだけお布施出せる規模って想像つかないなぁ。もしかして、社員の給料上げる前にフリーランスの報酬上げる想定なんだろうか。それは完全に脳に何か寄生してる気がするけど。経験2,3年が70万とかもらえるのは既にお布施案件な気がしますけどね。品質とは何かわからない、とりあえず早く作れる(バグ埋めまくりな)状態で納品してるだろうし。委託でその辺のレビューとかさせられたらかなりきついですね。往復ビンダで途中から自分で書いた方が早い状況になりそう。まぁ、フリーランスが入ってくる会社ではもう働かないと思いますが。

まとめ:人手不足は誰でもいいSI業界と雇いたいレベルの人が受けない自社開発業界とで別の事情

侍推し

いやぁ、sejukuはないよねぇ…

侍エンジニア塾では、全国およそ80名のメンターが在籍しており、ほぼ全員が現役のフリーランスエンジニアです。他のスクールでよくある、「普通の情報系の大学生」とかではありません。

情報系大学生なめてますが、よくあるメンターはスクール上がりの文系大学生な気がします。日本は知らないけど、まともな学校なら、下手な実務経験者より初学レベルの知識(パフォーマンスの最適化とかコードの品質とかじゃない話)では情報系の大学生の方ができてもおかしくない。

というか、紹介されてるエンジニアほとんど独学系で、関わった技術以外、特にハードレベルとかエコシステムわからなそうな気がします。まぁ、そういうレベルでも十分仕事になるものの、代表で書くレベルとしては物足りないというか、正規の教育受けたことがない人が教えるってねぇ…。文学部出て法律事務所で働いてる人が民法の授業教えるような感覚…。なんで、これで安心して教われると思えるのか、自分には北と西が入れ替わった並行世界の人かなんかなのかと感じますね。

まとめ:アフィリエイトのためならsizeof(32)を信頼する人もいる

ネットワークビジネスの手法?

自分の意見を否定する人間は既得権益を守りたいからだ、とか老害言う人って楽して一発逆転思想の人に多いですよね。そういうの、露骨に情弱狙いな気がする…。
エンジニア業界で前述の「完全に理解した」「なにもわからない」「チョットデキル」ってのがあるんですが、結構初期にエンジニアが自信過剰になってるときがこの「完全に理解した」という最初のフェーズであることが多いんですよね。自分も独学からのシステム業界で1年位で会社上位くらいの技術力と言われる感じになって勘違いして、転職時にうわー、めっちゃ井の中の蛙だった、と気づきましたが、自分が本質的に何もわかってない段階にすら行ってない時ってなんか過信しちゃうんですよ。独学で結構業務でやること大体何でもググればできる、って状態で。でも、結局それって難しいこと何も求められない現場だったという話で。なんか「完全に理解した」同士が褒めあってるように見える…。

Google及川卓也さんとかも言ってましたが、優秀なエンジニアってインポスター症候群が多い気がします。自分もこれな気がする。自分が優秀かは置いといて。自分が今の立場で劣ってる、まだまだ足りないって思い続けるから勉強し続けて努力し続ける部分はあると思います。どこまでいってもまだまだだと感じる。すごい人に会う度にそうやって気を引き締めてます。どうも文系上がりのエンジニア系インフルエンサー(ブロガー界隈の有名人)は自己評価が高く仕事をなめてる感が強いですね…。

twitterとかのエンジニアアカウントでも「@未経験」とか「音大出身」とか別業界から的なのが付いてると、ああ、未経験者の中でチヤホヤされて向上心なくした人達ね、一緒に働きたくないなぁ、と思います。僕は未経験・独学からエンジニアになって、社内で評価されても、ちゃんと学んだ人に勝てる気がしなくて、少なくともそれを売りにしたいなんて思えなかった。お陰で成長できたし、学校に戻るきっかけになったし、向上心を持ち続けてると思ってたりします。未経験からエンジニアで活躍してますとか言われてもちゃんと勉強した人にはマイナスになってもプラスにはならないですね。未経験からGoogleまで行ったらすげえな、と純粋に褒めますが…。
まぁ、その辺のアカウントはアフィリエイトとか商材屋なんだろうけど。

ガチ勢が業界を正しく把握してもらいたくて書いてる記事を、金儲け目当てで遠ざけようとするって、ネットワークビジネスで囲い込みの手法としてネットでの批判を信じるな、見るな、とかあった気がする…。それ信じる人はエンジニア業界じゃなくてネットワークビジネス目指して欲しいなぁ…。

プログラミングが難しいと言ってるのは既得権益を守りたい、って言ってるのを信じたい人は、AtCoderAtCoder Beginner Contest(ABC)をやってみて下さい。茶色〜緑が普通の企業で身に付けて欲しいレベルの実装力なので、ABCの最近の全6問だと4問目位、昔の全4問の3問位が一人前に必要なレベルの実装力です。

まとめ

ブロガー系フリーランスエンジニアの発言の注意点として

  • 経験のない重要なことを軽視して否定してることが多い
  • 努力が伴う知らないことを価値がないことと否定していることも多い
  • プログラミング職じゃないのにプログラムが簡単という
  • 企業側の視点を全く考えずフリーランス簡単稼げるばかり
  • だいたいリンクはアフィリエイト

等があるので、情報の見極めは慎重に。ガチ勢噴飯ものの記事も多数です。特に自分のやってないことは必要ないと言うが上のレベルでは必要なので注意が必要です。この人達がエンジニアの代表として露出して行くと、エンジニアって努力しないで稼げる仕事だよね、と思われるのかな。嫌すぎる。大半のエンジニアは、クライアントを欺いて実力以上の額を得られる現場探しに努力するのでなく、クライアントが満足できる仕事をするために努力しているものです。

未経験、独学系を全面に出してるエンジニアはやったことがあることだけ詳しく、知らないことが多いと思います。その人が知らないけど実は重要なことを必要ないと言っているのを信じるのは非常に危険です。特に「ググればいい」と言ってる人は信用しては駄目です。その人がメンターに付いたら、要は、それは「ググればわかる」という答えが大半でしょうね。ググればわかるはその人の技術力ではありません。コンピューターでも人でも記憶はコアに近いほうが処理が速く優れているものです。また、ググってした仕事は身につかないことが多いです。次もググるでしょう。ググればできる、って主張はググらないと何もできないの裏返しなんですよね。PCあればあなたは要らないという話なんですよ。

同様に経験重視の人はhowはわかってもwhyがわかっていないことが多く、表面的な理解しかできていないことが多いでしょう。最初は経験で慣れるのは重要ですが、問題が複雑になるほどにwhyがわかっている人が強くなります。howだけわかるのは言わばハリボテなので応用には対応できません。

僕はもう関わらないレベルの現場だと思いますが、この人達が言ってるレベルのフリーランスが大量に流入してきたら逆に現場の人手不足は更に深刻になりそうで御愁傷様感です。予算持ってかれて教育必要なんでしょ。現場の人間として悪夢ですよ、それ。


あ、ちなみにフリーランスになるだけなら簡単ですよ。
税務署行って開業届を出すだけなので無料5分で出来ます。

俺は覚悟を持って努力してエンジニアになりたい人は応援したいと思ってるので、来年は無料で深い部分まで、"本当は知っておいて欲しい座学"と"数学"と"プログラミング"自体を繋げた講座記事を書こうと思ってます。金のためだけ(余裕ないなら多少金にもフォーカスした方がいいとは思う)でなく、技術を楽しいと思って向上心を持って努力して、業界を盛り上げてくれる人はウェルカムです。願わくば、人生変わって学校入り直してまでガチでやる人が増えて欲しいなと思います。プログラミングに関しては向いている人、向いていない人、すごく向いていない人がいて、向いている人には難易度も簡単なものから意味不明なレベルまで色々あるし、技術を知ると解ける問題が増える、ガチレベルだと悩ましいけど、成長を感じることが多く楽しいものなので、楽しいと思った人は座学というか書籍もちゃんと読んで、ただ動くプログラムでなく、スケールできて読みやすく拡張性のあって品質の高いプログラムを書けるようになって欲しいな、と思います。自分もまだまだ道半ばです。20年くらいコード書いてますが、未だにPRレビューがすんなり通らない(皆一発で通ってない気もするけど)。この道は死ぬまで終わらない気がします。だからこそ面白い。

しかしびっくりする長さに。

[12/27 後日談]
いやぁ、こんなにバズると思いませんでした。1日でほぼ1年分位のアクセスとか怖すぎる…。普段しないエゴサーチとか軽くしてしまいました。

文章が長いのは自分でもわかってて、これは言い訳させてもらうと、最初は某氏(今更)のエンジニア入門カテゴリの記事を、一番古いのから読みながら、ピルクル吹きながら、ゆるゆると引用しつつツッコミを入れてたんですね。それが2万文字超えた辺りで、ツッコミどころ多すぎて収集がつかん!となって、更に、あれ、また同じ記事?もしかして・・・タイムリープしてる?!(色々混ざってる)とかなって、引用を最少限に削りながら、類似記事をまとめたりしたため、ちょっとダラッとして重複のある記事になってしまいました。3年ちょいの記事に対するツッコミ、なので、むしろ「短い」と思って頂ければ(おい!)。しかし、3年以上の記事のツッコミが1エントリーで終わる内容って…。そして、時系列の記事からカテゴリにまとめるの大変だったんですよ。

元々中身のスカスカな記事に内容を突っ込みながら文字通りツッコんだ感じなので、もし、何かしら、この記事から持ち帰れるものがあれば幸いかと。「ググってわかるは技術じゃない」は貰い物ですが、この言葉はもう10年以上忘れられない。自分の慢心をぶっ壊してくれた言葉です。CS卒だと、「そうね」位かもですが、未経験・独学からのガチでやってきたい人達には知識欲をそそる種を蒔こうと試みました。未経験とか初学者層にはわからなくても、"そっと閉じない程度"に抽象化しようと試みたつもりです。また、細かいネタが挟んであるのは、ただのツッコミでは重いだけの長い文章になるので、ニヤニヤしながら最後まで読めれば、と。全くツボにはまらないと、長いだけの駄文になるやつ。

そして、技術者が技術を語ると技術原理主義という何かになるのか、という気付き。個人的には知らない技術は知りたいし、それによってできることが増えたら楽しいことも増える、という素敵なループがエンジニアの一番の楽しさだと思いますが、スタンスが違うと確かに怖いかもですね。全ての人を読者として設定するのは無理なので、スタンスが違うならスルーして頂ければ。技術は向き不向きあるし。しかし、「技術」が中心にない「技術者」って「何者」なのでしょうね。違う肩書を名乗った方が心理的に楽かと。とは言え、本当に伝えたい層は140文字以上読めない気がしますね…。どうせ、「稼げない奴の嫉妬」で終わるんでしょう。価値基準が幻覚の現金で、現実見せられるとそれしか言えない壊れたラジオになる人達ですから。「ジョージ逃げろ!ケツ燃えてるぞ!」「出た〜!嫉妬〜!!」…って、一体何回焼かれたら気が済むの?そう思いたいのだろうけど、金を見せびらかす(儲けてると言ってるだけだけど)と御老公の印籠のように情弱は信じてしまう、という…ネットワークビジネスと同じなんですよね、結局。ハリボテにいつまでも気づかない、気付きたくないのね。「王様全裸だぞ!」って見たまま言っても「いや、バカには見えない服着てんだよ」というあれ。ん?それ、結局全裸じゃないか。あと、元文系卒ですが、高校理系で学部は心理学なので、なんちゃって元文系かもです。経歴詐称気味ですみません。今はML/AI界隈の人間です。

最後に、拙い文章を最後までお読み頂き、ありがとうございました。文章下手くそのツッコミはね、いや、僕は前回のが1年以上ぶりのブログ更新だったくらいで、プロの作家ではないので、ご容赦願えれば。Qiitaとかは箇条書きとコード中心だったり(最近の活動はOSS貢献中心)もするので…。3万字超えると、1人で誤字脱字探してとか句読点チェックは精神的に無理ゲーです。誤り率で言えば悪くないのでは(慰め)?!とりあえず、句読点増やしました(更に長くなる&打ちすぎた感)。句読点難しい。日本語難しい。大丈夫です、もし、僕が執筆して本を出したら、編集さんとか校正さんがよろしくやってくれます。所詮ネット上の戯言、何卒、ご容赦を!!

それでは、良いお年を!

初心者プログラマ、未経験者がプログラミング教室選びの前に読んで欲しい話2019(ランキングとか比較記事は信じちゃ駄目)

久しぶりの更新です。新しい業界に飛び込んで、毎日技術書を読んで新しい技術エリアに必要な知識を付けたり、プログラミング力の底上げをしたりの日々でした。会社にかなりすごい人がいて、薦められた本を読んだりして目からウロコなことも多くあり、1年が経ったら、転職前に技術書で理解が浅かった部分もかなり深まりました。やはりエンジニアリングは積み上げです。基礎をしっかり固めると応用は簡単に感じるようになります。逆につまみ食いばかりで必要なことだけやってると毎回同じ基礎を調べて時間を喰ったり、非常に効率が悪いです。本当にすごい人のいる場所で働く、少なくとも一人はそういう人のいるところで働くのは重要です。
※ ただし、ある程度実力がつかないとそういう会社には入れない

時間が経ったのでもう一度アフィリエイトの記事でプログラミング教室を決める前に知っておいて欲しいこと、2019年版をお送りしたいと思います。
また、noteで無料で基本、有料で掘り下げた話を書こうと思っていましたが、無料で全部書くことにしました。ただ、内容としてはちょっと浅めで、ちゃんと知りたいなら、でAmazonアフィリエイトを貼ることにしました。なので、最低限は無料で学べて、もしもっと書いて欲しい、もっと知りたいならリンクから本を買ってちゃんと読んでね、と。実際のところ、自分で学ぶ習慣もエンジニアになってからは非常に大事です。僕はアフィリエイト目当てのリンクがあると紹介者のパラメータを消したり(ガチのなら踏んでもいいけど大抵は金儲け目当て)する人ですが、まぁ、どうせ買うならそこから踏んでくれたら、記事でちゃんと学んでくれてる人がいるのがわかってもっと記事書く意欲になりますよ。的な。ちなみに、金儲け目当てに紹介してるのと違い、現場で求められたりすごい人に紹介された本を中心に紹介するつもりなので、かなり良書揃い、というか、この言語やるならこの本は読むべき、この領域ならこれを読むと差がつく、という本しか紹介しません。意外とそういうのまとまってるところ少ないですよね。それが本来のアフィリエイトだと思います。

正しいアフィリエイトでどれくらい稼げるかも報告しようかと思います。というか、本業とOSSとかで忙しくて若干やるやる詐欺になってますが。稼ぐ気はあまりないので、小遣い程度、講座を書くために読む書籍代位になればいいや、程度でいいかと。

ちなみに、ここでは結構強めの記事が多いので、別でブログ作って運用します。ブログ+自サーバーの予定。ブログは時系列になって流れちゃってまとめて辿るのが見にくいので、自サイトで項目でまとめた目次から飛ばす予定です。はてブロとか結構SEO強そうなので乗っかちゃえばいいかな、的な。基本一方通行ですが、それでもサポートが欲しい人が多ければ何かしらのサービスやるかもですが、一部のプログラミング教室の言っている、「わからなくなったらすぐに聞くのが大事」ではなく、「聞く前にできるだけ自分で理解する努力をする」というシニアエンジニアに求められる資質を得られるよう導きたいと思います。わからなければ聞け、ってずっと下っ端なのが前提ですよね。できるエンジニアは他の人が知らないことを切り開かないといけないし、そのポジションまでいけないと”プログラマで一攫千金"的な人の期待する収入は得られないと思います。あと、いい会社だと、知らない領域や製品を触る際は教えるというよりペアプログラミングとかしますね。

  • SIer上がり(5〜10年前?)のコンサルが暗躍してそう
  • 情報ソースをちゃんと見よう
  • スキルにWordPressというブロガーを信用しない
  • アフィリエイター向けのプログラミング商材
    • マナブはやばい
  • わかる人に聞きましょう
  • 検索してみよう
    • 無料の勉強会もいっぱいあるよ
続きを読む

AIエンジニアとソフトウェアエンジニア

AIベンチャーに入って数月が過ぎました。Qiita書いたり発表もしたんですが、いかんせんインプットが多くて、咀嚼しきれてない。アウトプットが少なくてすみません。
以前書くと言ってたNoteもそろそろ始めようと思っています。内容としては、無料版でよくあるプログラミングの入門をできるだけわかりやすく、有料版でその裏側のコンピュータ・サイエンス的な知識や原理を説明して、無料でもとりあえずコードは書けるように、有料なら一生エンジニアとして生きていく土台になるような知識や手法が身につくようにかければ、と。そこら中にある入門レベルと同じような技術書をなぞるようなプログラミング教室に行く必要ないよう、有料部分も100〜200円で販売予定です。3000円程度の本と同等の内容で10万以上取ってるところが多くて、正直、今はやっと日本も技術書のレベルが少しずつ上ってきて、すでに難しめの技術書はプログラミング教室以上の内容が書いてあることも増えてきています。言語は無料ではpython辺り、有料版では深く理解できるようCやC++も追加しようかと。需要ありそうなら、無料か会場費だけ出してもらって、初心者向けのもくもく会やってもいいんですけどね。わからないことを聞いたり、どう学んでいいかわからなければレベルややりたいことに応じて課題をあげたり、というような。

英会話とかはネイティブスピーカーと話さないと身につかない部分があるんですが、プログラミングはそういうものではないので、どうも自分の好きなプログラミングを餌に金稼ぎをしてるだけに見えてどうにかしたい気持ちが強いです。そもそも、プログラミングは初心者から踏み出すと視界が変わります(数学的要素が入った瞬間世界を表すことができるようになります)が、そういう魅力を伝える経験や技術力を持ってない人が経営してるパターンが多くて。初心者レベルなのに、少しかじっただけでプログラミングは難しくない、誰でもできるとか言ってる代表を見るとため息が出ます。そんなに浅くないぞ、と。高校から20年位いじっててもまだまだ底が見えない。むしろ、どんどん深くなっていっています。プログラミングは残酷なほどにセンスで、初心者から先はセンスか数学力かのどちらかが強く求められる。趣味として教えるならいいけど、それで即戦力とかありえないから、と思ったりするわけで、その辺がこのブログを始めたモチベーションになってたりします。

数式ベースのいわゆるコンピュータ・サイエンス的な領域だと、経験や知識が一定量あるエンジニアが本を読んでも、論文を読んでも一回で把握できない。何回か読んだり、参照実装見たり、自分でいじってみたり、土台となる論文を読んだりしてやっと理解できる。そして、理解した瞬間に一気に全体が見える。ジグソーパズルみたいです。語学もそうなんですが、一定の理解まで霧がかかってよく見えないけど、突然視界が晴れて一気にわかる。そんな感覚です。

AIベンチャーに入ってから確率変数と戦ったり、ディープラーニング系の案件にも関わっていますが、そんなこんなで今回はAIエンジニアに関するエントリーです。
AIエンジニアは年収のレンジがかなり高く、人材不足という情報もよく目にすると思います。とはいえ、実際のところ、AIエンジニアを名乗って情報発信しているAI領域のソフトウェアエンジニア(AIに特化した技術や先端AI技術の理解力はないもののAI系APIは叩ける人)やデータ分析の人がすごく多いなぁ、と思う今日此の頃。
ちょっとその辺を話したいと思います。AIエンジニア風の普通のエンジニアだと年収も普通のソフトウェアエンジニアと大差ないので、非常に情報が錯綜して、さらにそこにAIスクールが便乗して金稼ぎをしてる印象を受けます。というか、アフィリエイトのせいで、ネットのIT業界に関する情報は9割5部間違ってると言ってもいいと思います。

ちなみに、DIVE INTO CODEのAIコースがほぼほぼオライリーの本と同じ内容と気づいて吹きました。1万円ちょいを100万にする錬金術と言うか、入門書理解できない人達を機械学習エンジニアを名乗る、実態はソフトウェアエンジニアとして、AI風ベンチャーに入れられるという…。DIVE社はまともな方だと思いますけどね。特に非エンジニアが技術を知る、というレベルなら最適だと思います。ちなみに、某社はAI導入1年延期した上50億で訴えられてました…。AIコース出身ってそういうところの送り込まれてそう。ちなみに下記の本は初心者から抜け出したエンジニアなら独学で理解できます。独学で理解できない人のための教室になってるんだろうけど、一線のお金も良くて有望なAIベンチャーはソフトウェアエンジニアでも論文読んだりします。
カリキュラム↓
diveintocode.jp
オライリーの本
www.oreilly.co.jp
www.oreilly.co.jp
www.oreilly.co.jp

目次見ると内容がほぼほぼ一緒。スクレイピングがカリキュラムから消えましたが、これの1冊目を見たんだろうか。スクレイピングってデータ分析寄りで、そもそもwebサイトにとって情報は資産なので、robots.txtGoogle以外弾いたりとかしたり、データ資産を守るために、途中からログインさせてページ伸ばさないと全部表示されないところも増えましたね。webサイト作る側からするとスクレイピングってして欲しくないし、データ提供の意志があればAPI公開するのが普通です。分析でバッチで1日1回セールス系でとかならギリギリなレベルな気がするけど、普通はデータセットが提供されるか、お客さんに作ってもらったり支援したりなので、現場でスクレイピングって聞いたことないです。少なくともうちでは。どちらかというとデータ分析とか情報収集が目的な印象。機械学習だと、教師データの場合ラベルを付けないといけないので、無作為に取ってきた場合、結局ラベル付けにかなりの時間がかかるので、データセット使ったほうがいいし、スクレイピングで集めたデータはデータセットとして売れない可能性高いし…。正直、あまり魅力感じないです。

数学は、偏微分とかできないと数式わからないけど、高校レベルって書いてますね。前提だから、授業では大学レベルなんでしょうか。偏微分は高校のカリキュラムにないです。ちなみに解析学もわからないとちょっときつい気がする。ラグランジュの未定乗数法とか、KLダイバージェンス統計学か。その辺は高校では習わないはず。線形代数微積はゼロからだとそのレベルでしか出してない気はしますが。機械学習で求められる数学は大学レベルです。数学科レベルではありませんが…。大学の多くの理系学部が専門領域をやる土台になる共通の数学クラスって感じですね。

自分の肌感では、実はAI業界に関してはガッツリプログラム書いてきた人より、物理とか別の数式バリバリの領域でシミュレーション程度にプログラム書いてたとかって人の方が強いです。当然AI/機械学習を専攻してた情報工学の学生は別物です。数式とか論文(当然英語)の理解がベースになってくるので、コードの量は業務システムよりだいぶ少ないと思います。手を動かせばいいわけじゃないのがこの領域です。まぁ、理論の理解が正しいかは書いて確認して行った方がいいと思うけど。

目次

AIエンジニアに関する混乱

まずはこの記事を読んで下さい。
gendai.ismedia.jp

ここでAIエンジニアやAI企業として許容されているのはAIの技術自体を"作っている"エンジニアや企業です。これはその通りだと思っていて、AI系ライブラリを使ってAPIを叩いてるだけだったり、データをAPIを使って分析してるだけでAIエンジニアを名乗ってる人が非常に多いです。フリーランスでAIエンジニアを名乗ってる9割がAPI使いですね…。実際のところ、フリーランスで、業務委託で個人で稼げる(数式完全理解レベルと思われる)だと年収3000〜5000万いっておかしくないです。人月500万とか聞く話で。大概が依頼する側が価値基準がなくて出しちゃってる場合が多い気がしますが。こういう人は引き合いが多く、「AIエンジニアになれた理由」、的なブログエントリー書くより、技術系のことを書いてることが多いです。未経験から、文系でAIエンジニアになれた、的なことを書いてる人はアフィリエイトか、実際はAIを扱ってるところでAIの技術自体は作らずに、誰かが作ったものを使っている、いわゆるただのソフトウェアエンジニアの可能性が高いので注意が必要です。AIエンジニアを目指す人がそういう記事を見ても違うところにたどり着きます。
ちなみに今の会社ではAPIと言っても言語的に速度が実用レベルじゃないので、学習はpythonフレームワークでやって、結局のところ学習した重みデータが有れば、同じ構造で組めれば言語またいでも問題ないので、C++とかで推論はやってたりします。

データ構造とかわからないと話にならない

実務レベルの速度を出す部分ですが、C++いじるポジションだと、当然ですが、データの量が膨大なので、データ構造というかSTLを使いこなせないと結構話しにならないと思います。Eigenライブラリ使ったりもします。初心者が書いたら学習終わらない、推論が実務で使い物にならない、というのは頻発しそう。
www.amazon.co.jp
この辺熟知してる人もいます。データ量的にもアルゴリズムやデータ構造わからないとちょっとつらいですね。pythonでのサーベイ(論文の再現実験)とかだとある程度フレームワークが吸収してくれますが、英語の論文を理解して、数式からコードに変換するような能力が求められます。正直、こっちの方がデータ構造とか理解するより遥かに難易度高いです。

C++ポジションは(ちゃんとできる)人材が少ないようですが、C++をEffectiveシリーズ(技術書)とかのレベルで使えることを望まれます。C++やっててよかった(というか、Cできるからいけるだろ、とゲーム会社で使って、すごい人にレビューで鍛えられたら自然にEffective的な書き方になってた)と思ったりします。まぁ、正直言語はなんでもいいけど、最近はWebとかUI寄りよりネイティブ寄りな言語の方が楽しいです。ちなみにWeb系はUIに近づくほど修正が多くなって残業に繋がります。ここ、もう少し寄せたいね、で見せたら、寄せ過ぎだから少し戻そうか、なんてやり取りがあったり、UIはカチッと決めても画面で見たら変わることが多いので結構稼働は上がりがちです。デザインが上がってくるの待ってたら納期ギリギリできて巻き込み事故の被害にあったり…。

AI業界で必要なこと

学ぶ意欲はかなり必要だと思います。今の会社でも情報工学系の修士上がりが多いです。それでも皆毎日勉強して(会社でもできる)、どんどん知識を広げて、アンテナもすごいから新しい情報をシェアして皆で高めあっています。多分、数式は最低限何を意図しているのか位わからないと辛いです。自分で書いて解いてできるレベルの人はそこまで多くない印象。コードを書くのには、コーディング力というより、必要な技術を知っていて理解することの方が重要かもしれない。先端技術なので、基本技術はほとんど知ってる前提で書かれてるし、基本的には統計的手法をプログラムに落とすので統計的な書き方が何を意味してるのかわからないと厳しいです。つまり、社会に出た時点でだいぶ前を走ってた、速い人達がその後も結構全力で走り続けてる業界です。好きでないと怖い(皆頭良すぎ)業界なので、覚悟して飛び込みましょう。

というわけで、ただ書いてある通りに、言われた通りに実装するとかでなく、何を意図して何をする必要があるのか、ということを理解しないと実装できません。実装時間より準備時間が長いです。そういう意味でも、数式や数学的な表現に慣れてる別領域の博士とかが一線にいるのがこの業界の特徴ですね。

未経験からAIエンジニアを目指す人に対して

他の理系領域での経験がある人はガンガン挑戦した方がいいです。そういう人にはプログラミング部分教えてでも来て欲しい気持ちはあります。理系の素養がない人はまずはそこから始めましょう。システム業界でもいいから、まずはプログラミングの仕事に慣れつつ、コンピュータ・サイエンスの基礎となるアルゴリズムであったり、データ構造から始めて、同時に微積分、線形代数解析学統計学辺りの本で基礎数学力を付けて、5年後位を目指すといいと思います。今のエンジニアの半数以上が従事してる、データを変更したり加工したりして表示して出し入れするだけのコーダーの仕事はどんどん自動化が進むと思います。ただ、問題解決の領域は自動化が難しいので、そこを目指して、プログラミングコンテストとかも楽しんで、本当のプログラミングに触れていって欲しいと思います。