渡るネットは嘘ばかり

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

IT業界を目指す人向けに業界人のコンサルが必要な気がする

ヒカルすこすこされて(ツール作るとか他人の足引っ張り隊本気過ぎ→ヒカルはまがい物の成功者だと思うので擁護しませんが)だいぶ低評価になってるみたいですね。低評価だと単価下がるみたいだけど、どうなるんだろう。そもそもが、高評価だとプレゼントみたいな、サービスによってはBANされる手法Google先生の優しさで見逃してもらってたんだよね。てかさ、英語でGoogleにこのやり方伝えた方がいい気がしてきた。高評価を作為的に作って単価を上げるのは、Googleに対する一種の詐欺なんじゃないかと思うけど。AdSenseのクリック依頼と同じようなもんじゃん。

ちなみに、ヒカルに過剰反応してるように見えるかも知れませんが、当初から胡散臭いネットビジネスに挙げてた情報商材(グレーゾーン詐欺)とバカやって儲けてるYouTuberのダブルなので、ほら、こういう奴ら有名にして稼がせたらろくなことがない、もっと評価されるべき人が評価されて稼げるべき、ということで取り上げました。

もうね、商材とか一度でも販売に手を出した人間は性根のレベルで金に汚くて、簡単に嘘ついて、人を裏切るのは目に見えてるので、信用したらダメです。息吐くように嘘つく人種です。

それで、今回はプログラミング教室のモニター募集で聞いた話で感じたことです。

IT業界に興味があってもどこから手を出していいかわからない

おそらく、これが1番多いでしょう。ちなみに僕は高校時代から独学でHPを作ったりしていて、最初の会社でなんとなく、手作業だった作業が面倒だったので、システム化できないか会社に相談して、自分で担当してシステム化したのがきっかけで、とりあえず、すぐ転職活動をして、当時本当に人不足だったのでシステム会社に転職が決まりました。それで、3ヶ月のJavaの研修を経て、某大手企業のシステムを作ることになるのですが、タイミングが良かったことも、元々趣味でプログラム(マークアップcgiを変更する程度のしょぼいレベルですが)してたこともあり、余り困らずツルッと入ってしまいました。

で、話を戻すと、それで、検索で上位に来たプログラミング教室(ほとんどステマ)の門を叩いて、余り業界経験のない人間に簡単とかどうにかなるとかテキトーなことを言われて受講してしまう人が多い気がします。結果、趣味レベルの技術力で痛い目にあうだけのパターン

現状、ほとんどのプログラミング教室が悪手

何度も言いますが、プログラミングは独学で学ばないほうが良いです。独学だと、その時必要なこと、やりたいことしか学ばないので知識が偏ります。で、Computer Science (以下CS)の全体図も見えないまま、とりあえず、動くものを作れるようになって、人によってはそれでマスターした。と言っちゃったりします。教室で教えるなら最低限CSの学部を出てるのが最低条件だと思います。今、ゲームプログラマを目指してる方に教えていますが、とりあえず、動かせる、程度の方がゲーム系で必要になるCGの知識とか、ゲームAIと機械学習の違いとかDAU10万以上のシステムの負荷分散とか教えられるんですかね?まぁ、その辺希望していたとしても汎用的な土台になる基礎知識教えて、ゲーム系専門とか行ったほうが良い気がします。個人的には全部教えるのは難しいし、専門に行ったほうが良いなら、そう伝えますし、編入すべきなら、それを伝えます。編入なら試験があるでしょうし、専門で途中で詰まる可能性があるし、専門では教えてくれない理論的な部分もあるでしょう。なので、最初に話して、必要な技術や知識を一緒に探りながらカリキュラムを決めてゴールを目指す方針を立てて教えるつもりでやっています。

ほとんどのプログラミング教室がろくでもないのは、誰でもできる、と同じ期間で、しかも独学でしか学んでない人が独学の仕方を教えるというとんでも教室ばかりです。プログラミングは結構才能の部分大きいので、学ぶ速度に差があります。期間で教えたら終わらない人が続出するのは当然。しかも、必要ないcssとか教えてもなぁ。基礎理解したらcssなんて難しくないと思うけど。そこに時間割くならもっとちゃんと基礎やったほうがいい。ぶっちゃけCとかC++フレームワーク作れればRubyなんて簡単なわけですが、Rubyだけやって、そこからCとかC++で同じことやってみよう、ってなると初心者には拷問でしょう。そうなるとRuby使うとこしか選択肢がなくなるし、中で何やってるかわからないからパフォーマンス・チューニングもないし、そもそもRubyは処理速度遅すぎで、ユーザー増えたら使い物にならないという。なので、成功するつもりがあるならRubyだけ、なんてあり得ない選択です。Cookpadさん、どんだけ苦労したと思ってるの。

独学でできるようになりました。って言うとすごいように感じますが、それはほとんどの人が挫折する独学でプログラミングが書けるようになったから、ということなんでしょうね。CS系学部の人間にとってプログラミングは言葉を話すのと同レベルです。動くものが作れないと、そもそも実装系の課題は何一つできないですからね。僕のいた学校のポリシーだと実装系課題はコンパイル通らないと0点です。全員が最低限の課題ができるように教えてるCSで学んだ人とほとんどが挫折する方法をやり抜いた人、どっちがわかりやすく教えられると思いますか?元々CS専攻の人が皆できること。知識ないのに独学で学ぼうとしたからわかんないんでしょ、という話なんですよ。英語を本だけでNativeレベルで使えるようになりたい、って思ったらメチャクチャ大変なのわかるでしょ。それと一緒です。

それ以上に、教室で1ヶ月とか3ヶ月学んだだけの人間がメンターとか名乗って教えてるとか軽いジョークです。大学だと、教授が教えてTA(大概学部4年か大学院生)が質問とか助言しますが、教えるのは基本、専門家である教授です。うちも受講者増えたら手伝いを雇うと思いますが、講師はCS学部卒以上で、卒業生に手伝ってもらうとしてもTA的な部分です。というか、ほとんどのプログラミング教室、オンラインで独学してTAに聞くだけの独学の仕方とヒントをくれる独学教室だからかもだけど…。なら、プログラミングサークルにでも入った方がいいんじゃないの?と思う。

データサイエンスに関する誤解

何人かに将来、AIやデータサイエンスをやりたいという話しを頂いたのですが、正直、大学院で勉強することをお薦めします。その受験や編入のための勉強は喜んで協力します。僕の行ってた大学では機械学習が4年で、それ以降は大学院で学ぶトピックでした。というのは、CSの学部卒業レベルの技術・知識があった上で、数学的な素養もある人が学ぶ専門領域ということです。それでも単位落としてる人が結構な数いました。API叩いても上手く動かないのは、繊細なチューニングが求められる技術だからです。次元削減しないと、データにノイズが多すぎて優位性が見いだせないとか、複雑な事象の分析に選んだ手法が単純な事象向けで使い物にならない、とか。

データサイエンティストはGoogleとか外資で1500万とか1800万とか当たり前なレベルで抱え込まれてます。大半が院でその分野の研究室にいた人です。そういうジャンルだということを理解した上で目指すべきだと思います。

流行りだし興味あると言っても、未経験でプロボクサーとスパーリングしに行くようなものです。幸い、ITの世界は社会人になってから学校に戻ることをマイナスに見ません(僕がそうですが、特に、それがアメリカだと箔になります)。本気でやりたいなら資金を貯めて大学院で学ぶべきです。

経営者がプログラミングを覚えたいなら社員を送るべき

これは個人的な感覚なので、違うと思う人も多いかと思います。経営者もプログラミングをわかってた方がいい、という論調があります。それはわかってた方がいいと思います。ただし、経営者が実務としてプログラミングをする前提で学びに行くのはお薦めしません。元々プログラミングができる人がプログラミングより経営が向いてて、たまに書くのは非常にいいと思いますが。正直な話、締め切り前のプログラマの精神状況は結構大変です。その状態で経営判断を行うのは非常に危険性が高いと思います。また、逆に、自分が実装してると締切に甘くなり、リリースが延期になりやすいでしょう。経営者はこだわって作るのでなく、時間に間に合うよう、何を採用して何を切るかの決断をすべきです。自分で作るとどうしても愛着が湧くので、経営判断とエンジニアリングは分けたほうがリスクが少なくなります

では、どうすべきか。
個人的にはCIO, CTO候補かシステム部門を作って教室に送り込み、参加者が経営者に教える機会を作るのがベストだと思います。学んだことを理解していないと教えるのは難しいです。なので、より集中して学ぼうとすると思いますし、教えることで知識の定着が期待できます。と言っても、自社でシステムを作ろうとした時に、システムを作る人間がプログラミング教室で学んだ人間だけだと心許ないので、結局は経験者を雇うことになると思いますが…

とりあえず、僕の教えるプログラミング教室は「即戦力」趣味プログラマではなく、キャリアパスを考えた上で、その道筋上の現場に出ても通用するプログラマを育てることなので、ちょっとかじってみたい、だとついていくのが大変で方向性が違うかな、と思います。とはいえ、大まかな理解に他の月14万とかかかるプログラミング教室行くのも無駄な出費なので、希望があれば、概念的に教えるコースも作るかも知れませんフレームワーク特化したRuby on Rails学んでも、言語変わった瞬間わけわかんなくなると思いますしね…。経営者に、「で、Rubyで言うとどうなるの?」とか聞かれたら、僕なら、「Rubyは忘れましょう」って言うと思いますw

コンサルとかしたら受けたい人いるのかな

ITに転職したいと思ったら、転職エージェントに行く人も多いでしょう。転職エージェントは転職をゴールに、プログラミング教室は自社のサービスを受けさせるのをゴールに考え、場合によっては担当者のITの実務経験が充分でない場合が多いと思います。プログラミング教室で実務経験足りない人が案内するとか恐怖だけど、代表が学生ノリで始めて一度も就職したことないとかいうとこいっぱいあるもんなぁ。ブログとかアフィリエイトで小遣い程度しか稼げなかった人が、ブログ・アフィリエイトで稼ぐコンサルしてるのと同じ構図だよね。怖い怖い。

その手前の段階で、ITで目指したい人がはじめに行くことろを決めるために助言するコンサルとか、休みの日にコーヒー代とか+1000円とかでやったら需要あるのかな。メッチャ格安だけど、需要あるならやってもいいかな、と。キャリアパス真剣に考えてから行動するのはエンジニアリングの世界で生きてこうと思うなら大事なことです。何度も言うけど、エンジニアリングは積み上げて行く世界。そして、しっかり積み上げれば崩れない技術が身につく。だから、ちゃんと積む道を定めるのは思ってる以上に大事なんですよ。

まぁ、その辺も気が向いたらアンケート取ってみますかね。