give IT a try

プログラミング、リモートワーク、田舎暮らし、音楽、etc.

Amazonで品切れになっている技術書を手に入れる6つの方法

はじめに

新型コロナウイルスの影響で、Amazonの在庫状況に影響が出ています。

新型コロナウイルス感染拡大防止のための緊急事態宣言が発出されたことを受けて、アマゾンジャパンよりお客様、事業主様、そして地域の皆様へのメッセージ
(略)
このような状況下で、オンラインでお買い物をされる方が増えています。そのため、短期的ではありますが、お客様へのサービスも影響を受けており、在庫切れの商品や、通常よりお届けにお時間をいただくことがあります。

アマゾンジャパンよりメッセージ

一説によると、最近は生活必需品の対応が優先されているらしく、技術書のような一般の書籍は在庫がなくなってもなかなか補充されないみたいです。

その関係で、僕が執筆したRubyの入門書、「プロを目指す人のためのRuby入門」(通称・チェリー本)も今週の初めから品切れ状態が続いています。

f:id:JunichiIto:20200423192822p:plain

在庫が復活するまでひたすら待つ、というのもひとつの手ですが、いつになったら在庫が補充されるのかは不透明です。
そこで、このエントリではチェリー本を例に挙げながら、Amazonで品切れになっている技術書を手に入れる方法をいろいろ考えてみたいと思います。

【もくじ】

f:id:JunichiIto:20200423205002j:plain

方法1:電子版を購入する

一番手っ取り早いのは紙の本の代わりに電子版を購入する、という方法ですね。
電子版であれば在庫切れの心配はないですし、いつでもすぐダウンロードして読み始めることができます。

チェリー本の電子版は以下のサイトで購入できます。

おそらく利用者が一番多いのはAmazonのKindleだと思いますが、個人的にお勧めなのは技術評論社の公式サイト(Gihyo Digital Publishing、以下GDP)です。

f:id:JunichiIto:20200424073614p:plain
個人的にお勧めなGDPの電子書籍

GDPで電子版を購入するメリットは以下のとおりです。

  • 紙の本や他の電子版より298円安い(通常は3278円だが、GDPは2980円)
  • EPUB版とPDF版が両方手に入る
  • DRMフリーなので好きなデバイスにコピーできる

EPUB版はiOSやmacOSのBooks appで読むことができます。
(もちろん、Books app以外の一般的なEPUBリーダーで読むのもOKです!)

f:id:JunichiIto:20200423194315p:plain
MacのBooks appでチェリー本を表示するとこんな感じ

f:id:JunichiIto:20200423194815j:plain
iPhoneに入れて読むこともできます。

また、PDF版は紙の本とまったく同一のレイアウトで読むことができます。

f:id:JunichiIto:20200423195135p:plain
PDF版は紙の本とレイアウトが完全に同一

どうしてもKindleじゃなきゃイヤだ!という強いこだわりがなければ、電子版はGDPで購入するのが個人的にベストだと思っています。

「いやいや、そうじゃくなくて紙の本で読みたいんだよな〜」という方は、以下で紹介する方法2〜6をどうぞ!

方法2:中古本を購入する

新品の本にこだわりがなければ、中古本を購入するのもありだと思います。
Amazonを見ると、このブログを書いている現時点では中古本を売っている古本屋さんもいくつかあるみたいです。
ただ、中古本も数に限りがあるので、もしかするとそのうち手に入れにくくなることがあるかもしれません。

f:id:JunichiIto:20200423200017p:plain
Amazonにおけるブログ執筆時点の中古本一覧です

しかしまあ、中古本は購入されても僕には一銭も印税が入ってこないというのが一番の大問題でありまして、そう考えるとここで僕がお勧めするのもなんだか(以下略)

方法3:Amazon以外のネット書店を利用する

ネットで本が買えるのはAmazonだけではありません。
たとえば以下のようなサイトでもAmazonと同じようにネット通販でチェリー本が買えます。

本ブログ執筆時点ではヨドバシ.comだけが品切れになっていて、楽天ブックスとhonto、紀伊國屋書店ウェブストアにはまだ在庫があるようです。
Amazonと同じようにそのうち売り切れてしまうかもしれませんが、在庫があるうちにこれらのネット書店を利用するのも一手です。
(ちなみに僕も先日、Amazonで売り切れていた技術書を楽天ブックスで購入しました)

f:id:JunichiIto:20200423201130p:plain
楽天ブックスの購入ページです

方法4:近くの書店に足を運ぶ(ただしちょっと微妙)

もちろん、ネットで買えないなら在庫のある近くの書店を探して、自分で買いに行くという方法もあります。
ただし、「外出自粛」が叫ばれている昨今なので、本を買いに外を出歩くというのはあまり望ましい行動ではないかもしれません。
また、書店側が臨時休業していたり、営業時間を短縮していたりすることもあるので、足を運ぶ前に下調べが必要になりそうです。

方法5:リアル書店に配送をお願いする

自分で足を運べないからといって、リアル書店を利用できないとは限りません。
書店によっては自宅まで配送してくれるところもあるみたいです。

たとえば、ジュンク堂書店さんは配送サービスを実施しています。
配送料はいくらになるのか調べてみたところ、「現在キャンペーン中」とのことで、今なら次のような料金で配送してくれるそうです。

  • 購入金額が5000円以上 → 代引き手数料330円のみ(送料無料)
  • 購入金額が5000円未満 → 1210円(送料880円 + 代引き手数料330円)

ちなみに、キャンペーンの終了日は2020年5月10日だそうです(ブログ執筆時点の情報)。
技術書を2〜3冊買えばだいたい5000円以上になると思うので、これはなかなかお得かもしれません!

なお、ジュンク堂書店さんは honto.jp で各店舗の在庫が確認できます。
チェリー本の在庫も以下のリンクから確認可能です。

プロを目指す人のためのRuby入門 言語仕様からテスト駆動開発・デバッグ技法まで - 店舗お取扱い状況 - honto本の通販ストア

f:id:JunichiIto:20200423202504p:plain
honto.jpで在庫を確認したときの表示例

方法6:会社や学校経由でまとめ買いしてもらう

最後に紹介するのは、技術評論社さんからまとめ買いするという方法です。
技術評論社さんの書籍紹介ページに行くと、「学校・法人一括購入ご検討の皆様へ」というリンクがあります。
ここをクリックすると、一括購入の申込みフォームが開きます。

f:id:JunichiIto:20200423203447p:plain

個人で申し込むことはできませんが、会社や学校からであれば申し込むことができるので、興味がある方は自分が所属している会社や学校に相談してみてください。
(ちなみに、まとめ買いすると少し安くしてもらえるみたいですよ!)

まとめ

というわけで、このエントリではAmazonで最近品切れになりがちな技術書の購入方法をいろいろと紹介してみました。
もちろん、ここで紹介した方法はチェリー本以外の技術書でも有効です。
「外に出かけられないのでいっぱい勉強する時間はある!でも、技術書が買えない〜😭」と嘆いている方は、このエントリの内容をぜひ参考にしてみてください!

gihyo.jp

Q. チェリー本の学習時にサポートが切れたRuby 2.4を使ってもいいの?

追記:改訂2版が発売されました

Ruby 3.0に完全対応したチェリー本の改訂2版が2021年12月に発売されました。今後はなるべくこちらを使って学習されることをお勧めします。

はじめに

先日、Ruby 2.4の公式サポートが終了しました。

Ruby 2.4 公式サポート終了

ですが、これは別に驚くべきニュースでもなんでもありません。
Rubyは毎年12月25日に新バージョンが公開され、毎年3月末に古いバージョンがサポート対象外になっていくので、これは予定通りの動きです。

ところで、拙著「プロを目指す人のためのRuby入門」(通称・チェリー本)では、このRuby 2.4を説明対象のバージョンにしています。
これから本書を使って勉強しようと考えている人は、「えっ、Ruby 2.4ってサポートが切れてるけど、使って大丈夫なの?」と思うかもしれません。
そこでこのエントリでは、チェリー本の学習時に使用すべきRubyのバージョンについて説明します。

最初に結論:Ruby 2.4でもいいし、Ruby 2.5以上でもOK!

最初に結論を言うと、勉強で使用するならRuby 2.4でもいいし、Ruby 2.5以上でも構いません。
詳しい話は以下に書きます。

Ruby 2.4を使う場合

公式サポートが切れると、Ruby本体のバグ修正やセキュリティパッチのリリースがなくなります。
もしRuby 2.4を使って、外部に公開するようなアプリケーションを開発している場合はこれが深刻な問題につながる可能性があります。

ですが、チェリー本のサンプルプログラムはローカルマシン内に閉じた簡単なものばかりです。
なので、学習用として使うのであれば、Ruby 2.4を使い続けても問題はありません。

Ruby 2.4の問題点

ただし、Rubyのバージョンが古くなっていくと、「最新の開発環境にうまく対応できなくて、インストールにすごく苦労する」という現象がときどき発生します。
今はすんなりインストールできると思いますが、数年すると「Ruby 2.4をインストールしようとしたらエラーが出た」みたいな問題が起きるかもしれません。
その際は無理に頑張らず、新しいバージョンのRubyをインストールして学習することを検討してください。

また、最新のRubyでは本書の説明と異なる部分もいくつかあるため、業務で新しいバージョンのRubyを使ったときに「あれ、こんな構文あったっけ?」と疑問に思うことが出てくるかもしれません。
そうならないように、Ruby 2.4で学習が終わったら今度は次の項で紹介する説明記事を参考にして、Ruby 2.5以上の新機能や新構文もチェックしておきましょう!

Ruby 2.5以上を使う場合

Ruby本体はバージョンが上がっても、大半の部分で後方互換性が維持されています。
ですので、Ruby 2.5以上のバージョンでチェリー本を勉強したとしても、9割以上の内容は有効です。

ただ、そうは言っても「100%同じ」というわけにはいきません。
そんなに数は多くないものの、中には「チェリー本に書いてある内容と、実際に動かしたときの挙動が異なる」という部分もところどころに出てきます。

そういうときのために、Ruby 2.5、2.6、2.7の各バージョンについて、チェリー本の説明との差異をまとめています。

qiita.com
qiita.com
qiita.com

Ruby 2.5以上のバージョンを使って学習する場合は、事前にこれらの記事に目を通しておくと、安心して学習が進められると思います。

このような最新バージョンとの差異の説明は、今後も引き続き行っていく予定です。

Q. ところで、Rubyのバージョンってどうやって変更するの?

特定のバージョンのRubyをインストールしたり、複数のRubyのバージョンを切り替えて使ったりする場合はrbenvというツールを使います。(Mac/Linux環境の場合)

github.com

なお、rbenvのインストール方法や使い方についてはここでは詳しく説明しません。
これらはネット上にたくさん情報があるので、そちらを参考にしてください。
(意外と技術の移り変わりが激しい分野なので、なるべく1年以内に公開された情報を参考にするのをお勧めします)

Q. Ruby 2.3以前を使って勉強するのもありですか?

ありと言えばありですが、チェリー本が発売された当時(2017年)ならともかく、2020年現在にわざわざRuby 2.3以前のRubyを使う理由は特にない気がします。
何か特別な理由があるならやむを得ないと思いますが、そうでないならRuby 2.4以上で学習することをお勧めします!

まとめ

というわけで、このエントリではチェリー本の学習にサポートの切れたRuby 2.4を使ってもよいのかどうかについてまとめてみました。
ここに書いた内容で疑問点が解消しなかった場合はこのブログのコメント欄や、Twitterのメンションなどを使って、お気軽にご質問ください。

今後とも「プロを目指す人のためのRuby入門」をよろしくお願いします!

【初心者ITエンジニア向け】上手な質問は「相手にエスパーさせない質問」です

はじめに

この春からITエンジニアになったみなさん、どうもおめでとうございます。
これからたくさん勉強して、立派なエンジニアを目指していきましょう!

・・・と言っても、最初はわからないことだらけだと思います。
一人では解決できない壁にぶち当たったときは、他の人を頼って質問した方が学習効率が良いです。

とはいえ、質問するときは上手に質問しないと、自分も答える人も無駄に時間を食ってしまいます。
というわけで、今回のエントリでは「上手な質問」について書いてみたいと思います。

なお、ここで想定している質問は、社内掲示板のようなオンラインでの非同期な技術系Q&Aを想定しています。
ですが、基本的な考え方は対面で質問する場合も変わらないと思います。

まずはネットで質問のセオリーを学ぼう

上手な質問のしかたについては、すでにネット上に優れた資料があります。
これらの資料に目を通してもらえれば、僕が言いたいことの9割以上は伝わるはずです。

僕が言いたいことの「残りの1割」については以下でお話しします。

僕が考える重要ポイント=回答者にエスパーさせないこと

回答する立場に立ったときに一番困るのが、「困っているのは伝わるが、あなたの状況がよくわからない」という質問です。
隣の席に座って、一緒に画面を覗きながら「ほうほう、なるほど」と話ができれば一番いいのですが、掲示板のようなオンラインのQ&Aではそういうわけにはいきません。

情報が不足していると、回答者は「もしかしたら、こういうエラーメッセージが見えているのではないか?」「もしかすると、こんなことをしてるのが原因ではないか?」と想像力をフルに働かせなければならなくなります。
僕はこういう行為を 「相手の状況をエスパーする」 と呼んでいます。

Untitled

上手な質問はエスパーする部分が少ない質問です。
あまりうまくない質問はエスパーする部分が多い質問です。

思考実験:もし「田舎のおばあちゃん👵🏻」から電話がかかってきたら?

たとえば、田舎のおばあちゃんから、「なんかなあ、インターネットができへんねん。なんでやろか〜?」と電話がかかってきた状況を想像してみてください。
「いやいや、おばあちゃん。ネットができない、ってそもそもどういう状態なの??😅」って聞き返したくなりますよね?
ブラウザが起動しないの?Yahoo!にアクセスできないの?もしかしてパソコンすら起動しない??などなど、こちらは想像力を働かせておばあちゃんの状況を確認しないといけません。

これと同じで、自分が質問をするときに「Railsが起動しないんです。どうしたらいいですか?」みたいな質問をしていないか、自分で自分の質問を見直してみましょう。

電話ならその場で情報のキャッチボールができますが、掲示板のような非同期のコミュニケーションではキャッチボールするのにお互い時間がかかります。
ですので、回答者がエスパーする余地がないぐらい、情報を豊富に載せておきましょう。
情報が少なすぎることよりも情報が多すぎることの方が100倍マシです。

その点を踏まえて、上で紹介したネット記事を読み直してもらうと「なるほど、たしかにこれは全部エスパーする部分を少なくすることにつながってるな」と思ってもらえるはずです。

あと、質問の最後に「もし不明な点や不足してる情報が何かあれば、追記するので教えてください」みたいに書いておくと、「おっ、この子は回答する人への配慮もちゃんとできているな」と思われるので、goodです👍

まとめ

こんなにいろいろポイントを挙げると、「ハードルが高い!質問するのが怖い😭」と思われるかもしれません。
ですが、たくさんコードを書かないとコードが書けるようにならないのと同じで、何度も質問をしないと質問力は鍛えられません。

新人のうちは「まあ、まだ新人だからな」と許される場面も多いと思うので、どんどん質問して質問力を鍛えていきましょう💪

あわせて読みたい

質問は「恥ずかしいから誰からも見えないところでこっそり質問する」ではなく、「恥を捨ててみんなの前で質問する」のが正解です。
というわけで、こちらの記事もあわせてどうぞ。
blog.jnito.com