よもやま話はじめに「プロを目指す人のためのRuby入門」を出版して以来、本で学んだ内容をブログに載せてくれている方をよく見かけます。それ自体は著者として大変嬉しいのですが、たまに「ん?これはちょっと・・・」と思うようなブログ記事を見かけるときがあります。具体的にいうと、本の内容を丸写ししているだけのブログ記事です。このエントリでは本の丸写しがなぜいけないのか、かわりにどういうブログを書けばいいのか、ということについて書いていきます。本の内容を丸写しをしているブログというのは文字通り「丸写し」しているブログです。具体的なイメージを共有するために「こんな感じ」という例を載せておきます(特定の誰かのブログを意図しているわけではありません)。「プロを目指す人のためのRuby入門」を読んでいるので、勉強した内容をメモしていきます。Rubyは基本的に改行が文の区切りになります。セミコロン(`;`)等の記号を使って明示的に区切りを示す必要はありません。"a"一方、セミコロンで明示的に文の区切りを指定することもできます。使用頻度は高くありませんが、1行に複数の文を入れたい場合に使われることがあります。10.to_s(16)文が続くことが明らかな場合は、文の途中で改行することができます。16バックスラッシュ(`\`)を使うと、文がまだ続くことを明示的に示すことができます。使用頻度は高くありません。"a"この調子でがんばって勉強していこうと思います。「プロを目指す人のためのRuby入門」を持っている方はわかると思いますが、最初と最後の一文以外は完全に本の丸写しです。ここまで極端ではなくても、これに近い感じのブログ記事をいくつか見てきました。技術書の内容を丸写しすることは大きく分けて2つの問題点があります。問題点その1:引用の範囲を超えて無断転載と見なされるブログを書いてる本人には悪意がなく、純粋に「自分が勉強した内容をブログにメモしただけ」と考えているのはわかります。技術書や他の人が書いたブログ記事の内容を必要以上にブログに盛り込んでしまうと引用ではなく「無断転載」と見なされる恐れがあります。引用や転載の基準や判断は法律が関わるところであるため、素人がうかつに発言するのは危険だと判断し、以下の記述を取り消します。引用は無断でやっても構いませんが、転載は執筆者の許諾が必要になります。引用と転載の境目を定量的に示すのは難しいのですが、丸写しの割合が記事全体の2割~3割までなら引用、それを超えると転載かなという気がします。感覚的な基準で言うと、あなたのブログを読んだ人が「おっ、このブログを読んでいったら本を買わずに済むじゃん。ラッキー!」と思うような内容であれば、それは転載にあたると思います。問題点その2:実はちゃんと理解できていない恐れがある意図せず無断転載と見なされるのも問題ですが、ブログを書いた本人にとってそれ以上に問題なのは、こっちかもしれません。これは僕の持論なのですが、技術をちゃんと習得したかどうかの判断基準のひとつは、「その技術を自分の言葉で説明できるかどうか」だと思っています。逆に言うと、「自分の言葉で説明できていないなら、その技術をちゃんと習得していない恐れがある」ということです。この話は以前発表で使ったスライドにも載せています。Deckそもそも本を丸写しするだけなら、誰でも手を動かせば書けます。本人は勉強したつもりでも、実はちゃんと頭に入っていなかった、というのは困りますよね。丸写し以外の書き方を実践していく必要があります。オリジナルなコンテンツを書くためのアイデアここまでは少し厳しい話を書きましたが、自分が学んだことをブログにアウトプットすること自体は大変良い習慣です。このエントリを読んで「ぎくっ」とした人もブログは続けてほしいと思います😃では、無断転載にならず、なおかつ自分のためにもなるオリジナルな技術ブログはどのように書けば良いのでしょうか?個人的にオススメしたい執筆スタイルを以下に挙げてみます。その1:章単位で内容を要約する本の内容を右から左へコピーするのではなく、その内容を短くまとめてみましょう。自分が「ここは重要」と思ったところだけを残し、それ以外の部分を切り捨てると要約が完成します。以下のような感じです。「プロを目指す人のためのRuby入門」の第2章を読み終わりました。個人的に重要だと思った点をピックアップします。3(以下省略)要約を作っていくときの大事なポイントは「どれだけ情報を捨てられるか」です。「あれもこれも」と思い始めると結局丸写し(=無断転載)に近づいていってしまいます。「短くできるほど勝ち」の精神で、必要最小限の内容だけを残し、その他の情報をどんどんそぎ落としていきましょう。2019.01.04追記:ただし「これ、本を買わなくても内容がわかるじゃん!」みたいな要約は避ける上にも少し似たようなことを書いていますが、要約は要約でも「これ、本を買わなくても内容がわかるじゃん!」というような要約は避けた方が良いです。以下のブログ記事にそのあたりの話がいい感じにまとめられているので、こちらも参考にしてみてください。その2:自分の感想を積極的に散りばめる本を読みながら「この機能は初めて知った!」「今までに使ったプログラミング言語とはここが違う!」と思った部分があれば、その気持ちをブログに散りばめてみましょう。するとあなたのブログを読んだ他の人も「へえ、そうだったのか」と勉強になるかもしれません。今まではJavaしか使ったことがありませんでしたが、JavaとRubyではこんなところが違うと思いました。(以下省略)その3:自分の言葉で説明してみる少し前に「自分の言葉で説明できていないなら、その技術をちゃんと習得していない恐れがある」と書きました。あれば、その反対で「自分が理解した内容を自分の言葉で説明するのが良い」ということになります。「自分の頭の中ではこんなイメージで理解した」というポイントがあれば、それをブログにアウトプットしてみてください。以下の例ではRubyのunless文に関して、英語のunlessの意味を併記している部分が「本に載っていない独自の説明」に該当します。Rubyではif文の反対のunless文があります。英語のunlessには「~でない限り」という意味があるので、うまく使えば自然な英文のように読める条件分岐が作れますね。"何か異常があります"その4:自分で実験した結果を載せる本を読みながら「こんなことをしたらどんな動きになるんだろう?」と思った部分があれば、それを実験してみましょう。その結果をブログに載せてください。これなら確実にオリジナルなコンテンツになりますね。Rubyでは"!"や"?"で終わるメソッドを定義できると書いてあったんですが、二つを合わせて"!?"で終わるメソッドは定義できるのか試してみました。`<main>'やってみたら構文エラーになりました。"!?"で終わるメソッドは定義できないようです。まとめというわけで、このエントリではブログに技術書の内容を丸写しする問題点と、その改善案を説明してみました。繰り返しになりますが、ブログに学習内容をアウトプットするのは非常に良い習慣なので、ぜひ続けていってください!そして、ブログを書く際にはここで紹介したような改善案を実践してみると、さらに本の内容が自分の頭に定着すると思います。はてなブログPro株式会社ソニックガーデンで働くRubyプログラマ。2017年11月に「プロを目指す人のためのRuby入門」を出版。blog)はてなブログをはじめよう!JunichiItoさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。