渡るネットは嘘ばかり

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

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

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

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

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

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

SIer上がり(5〜10年前?)のコンサルが暗躍してそう

一番最初に書きたい最新の話です。IT業界の転職とかの話で、SIerやSESは辞めとけ、ブラックだ。Web業界はホワイトな上に技術力も高い、的な話が結構出てくるようになりました。そうだよね、と思って読むと、何故か、SIerはブラックだから行っては行けない→Web業界だ→流行りはRubyだ、でプログラミング教室へのアフィリエイトリンクが来ます。更に詐欺っぽいところは自分はWebエンジニアやってる、と名乗ってます。大抵は独学で、とか、正規ルートで学んでいないことをアピールしています。これは何故か。

  • ハードルを低く見せるため
  • 共感を得るため
  • 情弱なアフィリエイトの鴨はショートカット(なるべく努力しない)を好む

のような理由が考えられます。自分は独学から会社の研修を経て1年でその会社でトップレベルの技術力と言われていましたが、正しく学び直したら昔の自分は完全に井の中の蛙だったと実感しました。ショートカットの道は砂上の楼閣です。簡単に崩れます。細い技術に特化すればなんとかなるかも知れませんが、基礎無しで特化するとその技術が覆されメインストリームから端に追いやられた時、何もできない人になります。ウンコ製造機です。

それで、この人(達)のコンサルの特徴としては、SIerと"Web業界"を比較します。Web業界という言葉は10年前位に流行りました。FacebookAmazonが日本でも広まり、サイバーエージェントGREEDeNA(モバゲー)のサービスが全盛期だった頃によく言われた言葉です。僕も当時SES(SIerの下で働く外部の人の契約)から転職した時はWeb業界という言葉を使っており、システム業界とのレベルの差に愕然としたものですが、現状、インターネット上で商売をしてる企業、特にBtoCの会社はWebサイトで商売してるのが当たり前ですし、同時にスマホアプリも出しているのが大半です。売上の半分や下手するとほぼアプリの会社すらその人達はWeb業界と呼びます。LINEとかね。LINEもたいていWeb業界に入れられてますが、LINEってWebでアプリ使えないのでは、的な。今はStoreあるけど、昔はQA位のサイトだった気がする。スマホはこの5年で1人1台を超すレベルまで広がりました。そして、今の技術のメインストリームはIoTです。そして、Node.jsで電子工作のLED光らせたりセンサー動かしたり、Webでメインに使われてた言語が既にブラウザ上以外でも動くようになっています。未だにWeb業界と言ってるのはなんとなく古く感じます。

これは予想ですが、SIerを辞めてアフィリエイトに進んだ人間がSIerとWebを比較する記事で成功してコンサルに移り、コピーサイトのような同じ主張や流れでプログラミング教室やフリーランスを薦めるサイトだらけになったんだと思います。詐欺師は嘘の中に適度に本当のことを混ぜると言います。その手法でしょう。

中には「エンジニアになるには数学が大事」と語ってるアフィリエイターもいます。これもコンサルの助言でしょう。しかし、その説明はたいてい算数レベルです。数学が必要になるのは、例えば計算量(プログラムがデータ量に対してどれくらいの速度で動くか)の計算であったり、アルゴリズムの考え方や証明、機械学習やAIの基礎、CGのオブジェクト操作等やシミュレーションで必要になるものです。Webサイトの仕様が決まってるものを実現する、いわゆる複雑な問題解決のプログラミングに対する単純作業のコーディングと呼ばれる作業で数学はほとんど使いません。数学の必要のない作業は将来的には自動化されるのでは、と思います。仕様書からボタン一個でコードが生成できてもおかしくないです。

あとね、SIerブラック、ホワイトで技術力の高いWeb業界に行きましょう、でさプログラミング教室出たての素人に毛が生えかかった駆け出しが技術力の高いところで雇われるかね…。本当に0からなら最初は初心者レベルでも人手が欲しいシステム業界かOSSとかコミュニティ活動に熱を入れてるベンチャーとかが最初の就職先の選択肢だと思いますが。

情報ソースをちゃんと見よう

そういうサイトを見つけた人は情弱と差がついたと喜ぶかも知れません。しかし、大半が怪しげな筆者です。多いのは

  • 写真付き(大半が20代か30代前半)
  • 独学から月○百万を稼いだ
  • 未経験からフリーランスで年収1000万以上稼いでる

未経験や独学などの発言をしていることが多いです。前述の通り、専門じゃない領域から成功したと語るのは鴨を引っ掛けるため、というか、そもそもアフィリエイト界隈の人達がコンピューターサイエンス(以降CS)の全体を知らないでしょう。下手するとCSという言葉すら馴染みないかも…。そういう人は残念ですが、自分がどれくらいできて何ができないかわかりません。地図を持たずに歩いているようなものです。知らなくても稼げればいい、と思うかも知れません。今はだいぶ落ち着いた気がしますが、少し前はバブルに近い(依頼する側が技術を見積もれない)ので、そんな素人に毛が生えたような人に1000万を払ったりもしてる状態(おそらく、まともなクライアントならすぐ切られます)だったものの、日本は自社エンジニアより外部からエンジニアを入れる先進国でも異常な状態なので、プログラミング教育が正しく進んだり、企業が情報部門を置きだしたらお役御免になります。

ちなみに、自分もフリーランスで1000万前後稼いでましたが、この水準は月数億稼いでるコンテンツのチームでトップ3に入る位の実力は求められます。在籍期間にフリーランスは何人も来ましたが大半が1,2ヶ月で退場していきました。SIerの下以外でフリーランスを雇うところの大半は自社の開発チームの人手不足を補ったり戦力補強に外部の人間を入れます。自分より技術力のない人間が自分の2倍給料をもらってると知ったら社員はどう考えるでしょうか?普通辞めますよね。なので、フリーランスになれば稼げる、というのは嘘です。結局、普段からそのシステムやゲームを作ってる社員よりできる人間でないと無理です。フリーランスの受託(ランサーズ経由とか)は一時期価値判断のできないクライアントでバブル起きていましたが、もはや収束したと思っていいでしょう。ぶっちゃけ、社員雇った方がいいぞ、という話。それに、本当に技術力高い会社はフリーランス雇わないですね。レベルが足りないのがほとんどの理由で技術流出にもつながるしね。ガチ系のベンチャー(東大系とか)は学会で論文採択されるような学生をインターンやバイトで入れたりはしますが、フリーランスは雇いません。当然ですが、専門的に研究してる学生の方が遥かにレベルが高いです。実務に合わせて学ぶべきことなんて、その下地にかかる時間と比べたら微々たるものです。

"独学で稼いでる"とか"フリーランスで稼いでる"という人は信用しないほうがいいです。この人達の9割は業界で無名です。というか、働いてる実績はブログとかサイト上にしかないでしょう。この人達が作ったシステムを見せてもらったらいいと思います。ちなみに僕はアメリカの大学院でCSを先行して修士号を取得していますが、ここではちょっと強めに話しているので、正体は明かしません。信じるかは文章の内容で判断してください。計算量の話とか計算理論(チューリングマシンとかNP≠Pの話とか)の話題をたまに出したり、アルゴリズムの話とかもしているので見る人が見ればわかると思います。ちなみにSES時代は高度情報処理技術者試験も2つ受かってます。というか、高度しか受けてないいう変態です。基本情報簡単すぎて年2回の1回使うのもったいないと思い。自分で判断できないなら知人のIT業界の人に聞いたほうが良いです。

アメリカではPersuasive Essay(説得力のある小論文)で読者に信用できる文章の書き方を学びます。Ethos, Pathos, Logos的な話です。それは裏返すと、その人の文章が信用できるかの基準を知る、ということです。その中のEthosは権威であったりすることで信用を得るという部分があり、ソースを検証することを求めます。Wikipediaをソースに語ってるような話は胡散臭いと思ったりします(一般人が編集できるから)。

誰が書いているか、どのような経歴の人間が書いた文章かをちゃんと考えましょう。

また、収入のスクリーンショットを貼っている人も信用しないほうがいいです。アフィリエイターやブロガーはコーディングはできるのでそのWebページはソースが改竄されているかも知れません。特に顔写真を出している人で本当に技術力があるのであれば、勉強会や国際会議で登壇してスピーチをしています。顔写真を出していて、そういう公の場での活躍の報告がない場合、十中八九詐欺の人と考えて間違いないでしょう。本当に1000万稼ぐ実力があって、それ以上を目指すなら、そういう場に出て名前や顔を業界に売る方が得策なのは間違いないです。自分も少しコミュニティで知られて来ましたが、そういう立場になると情報が集まりやすくなる(一線にいる人が絡んでくれるので)ため、加速的にできることが増えます。

スキルにWordPressというブロガーを信用しない

2年半前の記事ですが、
www.alivecast.co.jp
というのがあります。昔Windowsはしょっちゅうウイルスをもらうので対策必須でした。Macユーザーになったので今はどうかわかりませんが、ユーザーが多いというのは標的にされやすいということです。なぜならそこに対する穴をつけば最小限の労力で多くの人に攻撃できるからです。WordPressの無料で多くのユーザーがいるというのは格好の的です。BtoB(企業のHP依頼)とかではなるべく避けたい技術です。以前も書いたかも知れませんが、下請けが使ったPluginがセキュリティホールを突かれて公開後すぐに緊急メンテで一旦サービスを落とす事がありました。WordPressを使うということはそういう危険を覚悟することに他なりません。また、WordPress使いが自分はプログラマだ、と言っても信用しないほうがいいです。プログラマから見るとあれはコーディングであり、Webデザイナーができる仕事です。ちなみにWebデザイナーの一線で働いている人は芸大を出てるのが大半です。芸大出に芸術性で戦えると思えるならその領域で勝負したらいいと思います。僕は絵も上手いほうだし、小中ずっと学年の代表で美術展とかに出品していましたが、本職に勝てるとは思わないです。

WordPressCMS(Contents Management System)と呼ばれるようなもの、もしくはブログとくくられたりもするようですが、技術力のない人でもWebサイトを作れるように作られたソフトです。本来そこに技術力は求められません。テンプレートやデザイン変更、と語っているのはぶっちゃけLINEの背景変えたりとかPCの背景作ったりとかというレベル、Excelで計算式書ける、とかとプログラマから見たら大差ありません。このはてなブログを編集して、何かしらの標準じゃない機能をググりながら埋め込んだり、という程度の作業です。何故かアフィリエイターの方々はそれをプログラミングと呼んでいますが、僕は20年とか昔にまだ技術書もあまりない時代に高校生でテキトーにやってできてたのと同じレベルに感じます。あの頃の話をする時はたいてい「プログラミングのようなこと」をしてたと僕は説明しています。なんかね、HTMLとか書くのってメールに固定の署名付けるのと大差ないやん、と思ったりします。CSSはなんらかのアプリの設定ファイルいじれるレベル人ならどうにかなりそう。

アフィリエイター向けのプログラミング商材

こことかでプログラミング教室やフリーランスを薦めてるのがアフィリエイターであって、彼らの言葉は金稼ぎのためだけでエンジニアから見たら全く意見が違うのを伝えてきた効果が多少出たのか、稼ぎ相手(鴨)をアフィリエイターに向けてる商材が出だしてますね。「プログラミング アフィリエイト」などで検索するとアフィリエイト+プログラミングは稼げるみたいな記事がいっぱい出てきます。その中で「プログラミング技術を一度身につけたら食いっぱぐれない」、というようなことが書いてあって、独学ができないならプログラミング教室とアフィリエイトが出てきて、さらには成功した秘訣を商材でみたいなのが出てきたりします。そもそも、お前、成功したって嘘だろ、という。成功してブログは放っておいても金を産むとか言いながら毎日更新してたり。与沢商法(儲けてるフリをして信じた人の金で本当に儲ける一種の詐欺)みたいなやつですね。情弱が自分より情弱から金を取ろうとするのって何か愚かな話に感じます。金を稼ぎたいなら金を持ってる層から継続的に支払いを受けるべきなのに、金を稼ぎたい(十分に本業で稼いでない)人をターゲットにしたら1回きりか数回でショートして終わりでしょう。大抵の成功者は商材とか手を出さないし。ちなみに、彼らの言うプログラミングとは会社でやるとコーディングと呼ばれるものです。何度も書きますが、大半がWordPressをあげます。

アフィリエイターは情弱と言うか騙されやすい人、将来の計画や見積もりができない一発逆転思考の人が多いのもありますが。アフィリエイトから商材詐欺に持っていったり、アフィリエイター向けのブログを書いたりするのはアフィリエイト単体で一般人が儲けるのは難しいのを示してますね。アフィリエイターで稼いでると言ってるのは大半が商材の収入です。そして、商材は成功してる、稼いでると吹かないと買われません(誰が成功してない人の戦略が欲しいかという)。まぁ、中身は本1冊程度の浅い話が大半ですが。商材は絶対買っちゃ駄目です。本当に価値があるなら書籍化してるか、秘伝のタレとして他人に教えません。ネット上に本当に価値のある情報はあまりないと思ったほうがいいです。色んなサイトググるより、本当に信用できるソースを限定してそこから仕入れた方が良いです。

国民生活センターとか消費者庁とか動き出してるし、そろそろ情報商材規制入るんじゃないか?
www.kokusen.go.jp

マナブはやばい

ちょっと久しぶりにガチやばい感じのを見つけました。自称エンジニアのマナブくん。
魚拓取りましたが、
megalodon.jp

2年半前に最初に書いて最近更新してますね。

世の中には100以上のプログラミング言語がありますが、入り口としては好き嫌いで選んでOKです。Webが好きな人はWeb系を学び、アプリが好きな人はアプリ系を学ぶ。これだけです。

さらにいうと、Web系の中でも「PHPなのか?」「Rubyなのか?」といった選択肢があり、アプリ系でも「Swiftなのか?」「Unityなのか?」といった選択肢があります。

とか言ってるんですが、

※注意点:ニッチすぎる言語はオススメしません
例えばC#とかって言語もありますが、個人的にはあまりオススメしません。その理由は需要が低いから。せっかく勉強したのに、世の中的に需要が低かったらお金も稼げません。無難に有名どころから始めるのが良いかなと。

C#がニッチらしい。Windowsアプリは基本的にC#ですね。.NET FrameworkってWindows上で動いてるので動作する言語です。最初のでプログラミング言語の中に何故かUnityが入ってる(何で書いてるか知らないのでは)けど、UnityのスクリプトC#で書いてます。そもそもがCがOSの言語なので(UnixカーネルとかCで書かれてます)、プログラミング言語は裏でCを呼んでたりするのも多く、C派生のC++とかC#とかをニッチなんて呼ぶエンジニアいるんでしょうか?

ちなみに↓でNov2019でC#は5位ですね(最新のが出るので順位多少変動あるかも)。というか、エンジニアとして言わせてくれ。
C#がニッチな言語なわけあるかぁぁぁぁぁああ!!!
www.tiobe.com

言語に関しては↓も。てか、これもプログラミング教室のアフィリエイトにつないでるなぁ。広めというか浅めのドメイン限定されない(機械学習とかはガチ過ぎて別)ITの情報調べるとほとんどがアフィリエイトに繋がりますね。情報汚染結構深刻です。
mikumikuplay.com


まぁ、マナブくんはWebデザイナーに毛が生えたレベルのプログラミング力(デザイン力は当然Webデザイナーの方が段違いに上)っぽく見えますが。彼の語ってるのをプログラマ、エンジニアの仕事とするとはてブロをはてな記法とかマークダウンで書いてる人や会社でナレッジ共有サービス使ってたら(基本マークダウン)プログラマ、エンジニアとなってしまうのでは…。うちの会社では営業もマークダウンは普通に書けますが。

ちょっと次回マナブくんのブログの内容を検証してみますかね。

あんまり投稿読んでないけど↓見る限り商材もやってて、初心者向け技術書1冊レベルで10万以上取ってるとか言う話で。
tkstock.site

ちなみに↑の人もプログラミング教室のアフィリエイトつけてたりするけど。ホント前に絡んできた人いますが、ブロガーってみんな腐っていくのだろうか。侍薦めるってお前…sejukuはsizeof(32)事件でエンジニアは誰も支持しないし、検索汚されて苦情出まくってるやつですね。アフィリエイターもプログラミング教室の技術記事もそうだけど、金儲けを目的としたサイトがSEOやって検索上位に出るのは情報汚染です。sizeof事件については↓
qiita.com

というか、YouTuberでたまに名前聞いた「マコなり社長」ってTECH::CAMPの真子社長か…。TECHはこのサイトを作るきっかけになったこれはやばいだろ、と思った教室ですね。マナブくんはこの人とコラボしてるとか、なんか詐欺っぽいサービスしてる人間のマインドは近いんだろうなぁ…。TECHの教室受けるなら語学学校行ってチュートリアルの英語読めるようになった方が良い気がする。プログラミング向いてなかった人がプログラミングで、じゃなくプログラミングを売ることで成功者になるというね…。
TECH::CAMPはエンジニア用語で「完全に理解した」レベルまで卒業生の学生メンターが教えてくれる親切なプログラミング教室です。
togetter.com

あ、今年からメンターが社員になったのか。去年までに受けた人は残念でした、という感じ。
しかし、5日前のブログでメンターが学生って言ってるけど。これもアフィリエイトだけど、通ってないのか、本店のみ全部社員なのか、本当に胡散臭い。
yukitoshi.biz

やっと少しまともになってきた感はありますが、去年くらいまでは詐欺で訴えられたら負けるんじゃないかってカリキュラムだった。カリキュラム非公開になってるのかね。ブログとかの報告見る限り、入門者向けの技術書1冊レベルなのは変わらなそうですが。
個人的にカリキュラム公開できないような場所で学ぶのは不可能です。大学のサイトとかでも授業のカリキュラム見れますね。自信のあるところは余裕なんですよ。↓はStanfordの学部生が最初に受けるクラス。Stanford受かる学生すらこれで10週かけて学ぶ、それが専門家です。
web.stanford.edu

わかる人に聞きましょう

この人が本物か、わからないなら、知人でIT関連で働いてる(できる)人に聞きましょう。いなければ、比較的返事のくれる有名な開発者にでもtwitterで聞いてみましょう。新説な人なら3分で読んで判断してくれます。これは何度も言っていますが、自分がわからないことを不確かな情報で判断するのは危険です。詐欺の大半はそういう状況です。詐欺系教室も「プログラミング教室○選」とか言いながら自社を宣伝したり結構気が狂ってます。ランキングとか比較記事は大半が自社の広告かアフィリエイトなので信用しない方が良いです。

検索してみよう

最後に、「プログラミング教室 アフィリエイト」で検索してみましょう。改めてアフィリエイターがプログラミング初学者を鴨にしようとしているのが見えてくると思います。PCならカーソルをリンクに乗せて出る飛び先たいていpx.a8.netとかaf.moshimoから始まりますね。これはアフィリエイトのURL(アドレス)です。

無料の勉強会もいっぱいあるよ

最後のおまけに、プログラミングの学習意欲があって、独学は難しいと思うなら無料の勉強会(有志で集まってワイワイ開発する感じ)もいいと思います。
↓とかで初心者とか入門で検索したら何かしら出るんじゃないかな。
connpass.com




ああ、あと本当に最後に
プログラミングを本気でやってない奴らがプログラミングをだしに金稼ぎしようとするな!!!


マジで、俺の大好きなプログラミングを利用して詐欺のようなことしないでくれ。

[追伸] 追加多い…。ここでRuby結構けなしてましたけど、今の会社で管理画面とかはRubyがよく使われています。Webサービスにはなかなか厳しいけど、小規模なそれこそ管理画面であったりちっちゃいツールを作るのには良い言語だと思います。ただ、大半のプログラミング教室でWebサービスと言えばRubyRailsと言ってますがそれはどうだ?という感じです。Rubyを愛していた本格派エンジニアの皆さん、すみません。