侍エンジニア塾とAidemyの杜撰さから学ぶべきこと

（2018年11月8日追記）
アイデミー代表の石川様よりコメントをいただきました。丁寧なご対応ありがとうございます。

ぜひこちらも一読ください。

https://qiita.com/nkmk/items/ee346c0da365e988e2dd#comment-533cc3df214d55aa216c

---

先日、プログラミングの勉強を始めようとしている知人から「Aidemyをやってみようと思うんだけど、どう思う？」と相談されたので無料公開されている「[Python入門](https://aidemy.net/courses/3010)」を試してみたところ、その内容があまりにも杜撰で驚きました。

最近炎上した侍エンジニア塾のブログ記事と、偶然やってみたAidemyの教材を見て、

- プログラミングを勉強する人
- プログラミング関連の記事を書く人
    - オウンドメディアを運営する企業
    - 学習サービスを運営する企業
    - 個人

が学ぶべき・気をつけるべきだと感じたことを書いておきたいと思います。

ここでは、侍エンジニア塾とAidemyをそれぞれ、

- オウンドメディアでプログラミング関連記事を公開している企業
- 事業（学習サービスなど）としてプログラミング関連記事（教材）を公開している企業

の例としています。

あくまでも例であり、この2社が他の企業と比較して特に酷いから選んだというわけではありません。

※当記事がQiitaの[コミュニティガイドライン](https://help.qiita.com/ja/articles/qiita-community-guideline)にある「プログラミングに関係ある記事」に該当するかどうかがよくわからないまま投稿しています。もし運営の方がQiitaにふさわしくないという判断をされれば削除していただいて結構です。


## 侍エンジニア塾のブログ記事

侍エンジニア塾は以下のツイートから大きく炎上しました。

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">うーん…。<br><br>侍エンジニア塾さんのこの表示方法って、法律的にアウトなんじゃないんでしょうか…？<br>常に一週間後の表示😰<br><br>プログラミングスクール等も少し興味あって見ていたのですが＞＜<br>なんだか色々ともやもやしてます…。 <a href="https://t.co/5YW7oQlwjc">pic.twitter.com/5YW7oQlwjc</a></p>&mdash; みや@ひよっこプログラマ🐥 (@mi_yamya) <a href="https://twitter.com/mi_yamya/status/1050681672901881856?ref_src=twsrc%5Etfw">2018年10月12日</a></blockquote>


以前から「ブログの内容に間違いが多い」「それなのに検索順位が高くて邪魔」という声が多く、このツイートをきっかけに不満や批判が爆発したようです。

- [検索上位に現れる「侍エンジニア塾」の記事が邪魔？ 集まる批判意見 - Togetter](https://togetter.com/li/1251193)

その後のDMCA対応も含めて、ブランドイメージは著しく毀損したと思われます。

ブログ記事の内容の不正確さについてはすでに多く語られているのでここでは触れません。

- [侍エンジニア塾のC言語のサンプルがヤバすぎる。 - Qiita](https://qiita.com/hamichamp/items/7b7a7ee091a6856ac900)


## Aidemyの教材

冒頭に書いたように、知人から相談されて「[Python入門](https://aidemy.net/courses/3010)」を試してみたところ、その内容があまりにも杜撰で驚きました。

例えば以下のページです。

- [Python入門 - 関数のインポート | 10秒で始めるAIプログラミング学習サービスAidemy](https://aidemy.net/courses/3010/exercises/Hkl2bccdM)

2018年11月4日9時頃のキャプチャ（現在は更新されています）
![Python入門 - 関数のインポート 1](https://qiita-image-store.s3.amazonaws.com/0/53096/91d7ea4a-39b1-6850-3cfb-ff77a4e57d89.png)

> このパッケージの中の関数をモジュールと呼びます。

とありますが、関数をモジュールとは呼びません。そもそも`time`はパッケージではなくモジュールです。

- [6. モジュール (module) — Python 3.7.1 ドキュメント](https://docs.python.org/ja/3/tutorial/modules.html)
- [time --- 時刻データへのアクセスと変換 — Python 3.7.1 ドキュメント](https://docs.python.org/ja/3/library/time.html)

これを[Twitterで呟いた](https://twitter.com/nkmk_me/status/1058894978619969536)ところ、Aidemyの方の目に触れたのか早速更新されました。

2018年11月6日21時頃のキャプチャ（そのうち更新されると思います）
![Python入門 - 関数のインポート 2](https://qiita-image-store.s3.amazonaws.com/0/53096/8d3c4c41-3c10-2673-583d-a6b7d288771a.png)

`scipy`の例が加えられましたが、残念ながらこの内容も間違っています。

`linalg`はモジュールではなくパッケージ（サブパッケージ）です。文中にある`import scipy.linalg.norm`はそのまま実行するとエラーになります。

- [6.4 パッケージ — Python 3.7.1 ドキュメント](https://docs.python.org/ja/3/tutorial/modules.html#packages)
- [scipy/scipy at master · scipy/scipy](https://github.com/scipy/scipy/tree/master/scipy)

侍エンジニア塾の一部の記事ほど致命的な間違いではないにしても、「Python入門」と銘打ったコースにしては組織としてのチェック体制のレベルが低すぎるのではないかと不安になる点がいくつかありました。

説明内容だけでなく、Markdownの強調`**`がそのまま表示されていたり、箇条書きが改行されていなかったりと、「誰もチェックしていないのかな？」と思わされるようなページもあり、（他のコースは素晴らしいのかもしれませんが）少なくとも「Python入門」は雑すぎる印象を受けました。

## プログラミングを勉強する人が学ぶべきこと

プログラミングを勉強する人が侍エンジニア塾やAidemyから学ぶべきことは、

__Web上の情報は間違っている可能性が大いにある__

ということです。

本来、プログラミングに関して信じられるのはソースコードだけです。

毎回ソースコードを参照するのは大変ですが、多くのプロジェクトには公式ドキュメントが用意されています。メンテナンスが追いついていない場合もありますが、最近の大規模なプロジェクトであれば信じても大丈夫だと思います。

__プログラミングを勉強するときはせめて公式ドキュメントには目を通しましょう。__

公式以外のWeb上の情報は、個人が書いているものはもちろん、侍エンジニア塾やAidemyのように企業が運営していて一見信頼できそうなものでもしっかりチェックされているとは限りません。「間違っているかもしれない」という前提を常に持つべきです。

古くからあるプログラミング言語はWeb上に公式ドキュメントの類が存在しないことがありますが、その場合は書籍を一冊手元に用意しておくとよいでしょう。歴史あるプログラミング言語であれば評価が固まったものがあるはずです。


## プログラミング関連の記事を書く（公開する）人が学ぶべきこと

### オウンドメディアを運営する企業

プログラミング関連のオウンドメディアを運営する企業が学ぶべき・気をつけるべきことは、

__公開する情報がユーザーにとって有益であることが大前提__

ということです。


PVをKPIとしていたのだとすれば、侍エンジニア塾のブログは大成功です。

アフィリエイト狙いの個人が同じように薄い記事を大量投入してPVを集めたのなら、（コンバージョン率は悪いと思いますが）それも成功といっていいでしょう。個人なら稼ぐだけ稼いで逃げてしまえばいいのです。

しかし企業の場合、そのまま逃げ切ることはできません。「ゴーイングコンサーンって何？」という荒くれ者の集団なら構いませんが、企業は事業を継続していかねばなりません。一度失った信頼を取り戻すのは容易なことではないでしょう。

オウンドメディアから自社のサービスに誘導するのは有効な戦略ですが、__そのメディアの情報がユーザーにとって有益であることが大前提__です。侍エンジニア塾のように信頼をすり減らしてPVを集めてもいいことはありません。



### 学習サービスを運営する企業

プログラミング関連の学習サービスを運営する企業が学ぶべき・気をつけるべきことは、

__間違いを防ぐためのリソースをケチってはいけない__

ということです。

Aidemyがベンチャーならではのスピード感でどんどんコースを増やしているのは素晴らしいと思います。

しかし、__粗削りなサービスをすばやくリリースするのと間違いだらけの教材を雑なチェックでリリースするのとはわけが違います。__

「ベータ版のサービスだから使いにくいかもしれません」というのは成立しても、「ベータ版の教材だから間違いがあるかもしれません」というのは成立しません。「ここが使いにくいよ」というフィードバックはできますが、これから勉強しようという人には「ここが間違ってるよ」というフィードバックはできないのです。

__「正しいことを教える」というのは学習サービスとして基本中の基本であり、学習サービスを運営するなら間違いを防ぐためのリソースをケチってはいけない__と思います。


### 個人

侍エンジニア塾やAidemyを他山の石としてプログラミング関連の記事を書く個人が学ぶべき・気をつけるべきことは、

__間違いを減らす努力は必要__

ということです。

「学んだことをアウトプットするのは最良の勉強法である」と言われます。私自身、プログラミング関係で調べたことや学んだことを自分のサイトに書いているので、アウトプットの大切さと効果を身を持って感じています。

しかし、アウトプットが役に立つのは「公開するからには間違いがないように書こう、しっかりまとめよう」という気持ちがあるからです。やったことを自分の中で消化することなくただ書きつけるだけでは意味がありません。

「初心者は間違いを恐れずどんどんアウトプットすべし」というのは正しいと思いますが、「間違ってもOK」と開き直っていいというわけではありません。書いたものはせめて一度は読み返してから公開すべきですし、不安なところは「分からない」とはっきり書けばいいのです。

__（間違いを書いてしまうのは仕方ないけど）間違いを減らす努力はしましょう。__


## さいごに

侍エンジニア塾のブログとAidemyの教材を見て、思うところを書きました。

- プログラミングを勉強する人が学ぶべき・気をつけること
    - Web上の情報は間違っている可能性が大いにあるから、できるだけ公式ドキュメントにも目を通す
- プログラミング関連の記事を書く人が学ぶべき・気をつけること
    - 間違いを書いてしまうのは仕方ないが、間違いを減らす努力はする（企業ならなおさら）

多くの企業がユーザーにとって有益なメディア、サービスを運営してくれることを願っています。

以上です。