ソフトウェア技術者にとっての英語

ソフトウェア技術者にとっての英語について最近思うことをつらつらと書きます。主題は英語学習についてではなく、そもそもの英語学習の必要性、および、問題は英語力ではないこともある、という話です。

「今後この業界を生きていくために英語は必須」とよく言われます。最新情報は英語で書かれたものしかない、仕事相手とのコミュニケーションには英語が中心、などなど。

こういう状況に置かれている人がいるのはその通りなのですが、そうではない場合はどうでしょうか。最新情報など興味がなくて追ってなくても困らない、あるいは興味がない、目の前の仕事は日本語だけで事足りている、という人にとってはどうでしょうか。もちろんできるに越したことはないのですが、必須かといわれると別にそういうわけではないかと思います。人によって重要なこと、緊急なことは違うので、たくさんある選択肢の中で英語だけをむやみに特別扱いする必要はないと思います。

ここからは簡単のためwritingに話を絞ります。なかなかうまく英語の文書が書けない、理解してもらえない、という人はたくさんいます。ただ、その人たちのうちのいくらかについては「この人の問題は英語じゃないな」と思うことがあります。ではなにが問題かというと言語に関係なく、物事を伝える能力です。

英作文が苦手と思っている人は、一度試しに同じことを日本語で書いて、近しい人に見せてみてください。そこで「何書いてるかわからない」と言われた場合、問題は英語がどうのこうのいう前に作文能力に問題がありますので、英語の前にそこを何とかするとよいと思います。この問題を解決するためには理科系の作文技術などの文書作成の訓練に役立つ書籍がいくつもありますので、見てみるとよいでしょう。

「何書いてるかわからない」と言われる場合、作文能力だけではなく、記述対象についての理解が十分ではなくて見当違いなことを書いている可能性もあります。この問題があるかどうかを確認するためには、その領域について十分知識がある人に日本語で伝えたいことを説明してみるとよいでしょう。

他にもいろいろ思うところがあった気がしますが、とりあえず思い出せるところは書いたので、このくらいにしておきます。また思い出したらなんか書くかもしれません。おわり

IT技術についての書籍を商業出版するか同人誌として出すか

IT技術者はさまざまなプラットフォームを通して情報発信して知見を共有するのが好きという印象が強いです。zennqiitaといったサービスをはじめ、さまざまな場所で貴重な情報が無償で公開されているのは驚くばかりです。

情報発信を繰り返していくうちに自分のコンテンツを形にしたい、具体的には書籍を出したいと思う人も多いようです。そこで目の前に立ちはだかる壁のひとつが出版社から商業出版するか同人誌として出版するかという選択を迫られることです。本記事ではそれぞれのpros,consについて、これまでに商業出版、同人誌出版の両方の経験がある筆者の意見を書きます。

結論から書きますと、わたしは以下のような考え方を持っています。

  • なるべくお金がほしいなら、あるいは世の中に広く情報を行き渡らせたいなら商業出版
  • ニッチで客層が限られるものについては同人誌
  • いずれにせよ普段から誠実な情報発信をし続けるとリーチできる層が広まる

まずはいきなりお金の話をします。具体的な数値や金額は出しませんが、私がかつて商業出版した本は、同人誌として売った場合は到底達成できなかったであろう数を売り上げました。やはり全国の書店に並んだり、そうしてもらうよう働きかけてもらったりしてもらうぶん、リーチできる範囲がはるかに広いと考えておくほうがよいでしょう。

一冊あたりの著者の取り分は出版までにかかわる人の数が全く違うために当然同人誌のほうが圧倒的によいですが、トータルで考えると、よほどコンテンツがよかったり、著者の名声が高かったりする場合を除けば金銭的な見返りとしては商業出版のほうが良いのではないかと推測します。お金はどうでもいいという人も、なるべくたくさんの人に読んでもらいたいという場合は、やはり商業出版に分があるように思います。

ただし商業出版をしたいという場合には上述のように販売するまでに介在する人が多く、たくさんのコストがかかる都合上、ある程度売れるものでないと出版は困難です。おそらく数千部単位の販売が見込めなければ企画として成立しないでしょう。

どうすれば商業出版の話を始められるのかがわからなくて二の足を踏んでいる人は多いようです。第一に、自分のネタに自信があれば持ち込みという手段があります。たとえば私が本を出したことがある技術評論社では持ち込み用のページがあります。他の出版社でもあるところはあると思いますが、探しにいったことがないのでよく知らないです。どの出版社がよいか、という疑問もあるかと思いますが、技評でしか出したことがないので他は知らないです。小ネタとして、「いつからO'reillyで本を出したい…!」という野望をもつかたは多いようです。あの動物の表紙、いいですよね:-)

第二に、過去の実績をもとに出版社から声がかかることがよくあるようです。出版社は売れそうな本のネタがありすぎて困っているというようなことはなく、日々世の中の流れをウォッチして、よいネタを常に探し求めているのです。

同人誌のメリットは何といっても売れるものを作る必要がなく、自分の欲望のままにニッチなコンテンツを作れるということです。わたしのコンテンツはBOOTH技術書典オンラインマーケットで販売していますが、いかにも商業出版が厳しそうなニッチな書籍が並んでいます。ここを重視するのであれば同人誌がぴったりだと思います。

その一方で、商業出版において出版社がやってくれていた作業をすべて自分でやる必要があります。具体的にはプロによる編集、校正は入りませんし*1組版から印刷、在庫管理まですべて自分でやる必要があります。この手の作業を全部自分でやりたい、かつ、できる人には苦にならないと思います。その一方で、わたしのように「そのへんはめんどくさいしできるとも思わないので全て人に任せたい」という人にはつらいかと思います*2

同人誌にするとしたら、どのようなプラットフォームで売るかという選択も必要です。たとえばKindle ダイレクトパブリッシングBOOTHzenn books技術書典オンラインマーケットなどがあります。それぞれみなさんの取り分、プラットフォームそのものの知名度、物理本出版の可否などに違いがありますので好きなものを選べばいいかと思います。場合によっては複数プラットフォームで売ってもいいでしょう。

最近では同人誌と商業出版の架け橋となる技術の泉シリーズというような面白いものもあるようです。残念ながらわたしはここから本を出したことがないので、どういう経緯で出版に至るのかは知りません。それはそれとして、わたしはマニアックな本が好きなので最近はここで本を買うことがよくあります。こういうニッチな文書を書く人にも、そのような文書を書く人、両者ともに嬉しい取り組みがもっと増えてくると面白いかなと思います。

どのような方法で本を出すにしても、わたしは信用が1番だと思います。わたしの場合もたくさん本が売れたりしたのは継続的に有償、無償を問わずコンテンツを配信してきて好評を受けた結果得られたおかげだと思っています。釣りタイトルでアクセス数を稼ぐような真似はせず、正攻法で良質なものを出し続けて信用貯金を貯めるのがよいでしょう。

やや話はそれますが、本にするにしてはあまりにも分量が少ないというような場合は、雑誌やWebメディアの記事にしてもらうという方法もあります。それぞれ上記の書籍の持ち込みと同様、なにかしらのチャネルがあるかと思います。ただしここでは詳細については述べません。

最後になりますが、参考までに現在のわたしのやりかたについて書いておきます。

  • 1~4ページくらいの小ネタは無償公開する
  • 4~20,30ページくらいの中規模のネタは雑誌記事、あるいは同人誌にする
  • 大ネタは書籍にする。上述の小ネタ、中型ネタをまとめたり、一部抜粋したりするのもよい
  • どれも自ら積極的に宣伝する(とくに同人誌)。出したからといって目に止まってはじめて売れるわけではない
  • 読者の審判を仰いで*3、次に活かす

本記事が、「これから本を出したい」と思っているかたに役立つことを願っています。

*1:商業出版でも著者校などの確認作業は必要ですが

*2:余談ではありますがわたしは同人誌を出しているとはいえ原稿執筆の後のすべての作業をできるプロの編集者と2人で組んでやっているので同人誌であっても楽をしています。

*3:批判は受け入れ、悪口は無視するのがコツです

時計をあまり見ない生活をはじめました

最近生活をしていくなかで時計をなるべく見ないようにすることにしました。理由は、もしかしたらこれで心に余裕が生まれるのでは、と思ったことです。とくに確たる根拠があるわけではなく思いつきではじめましたが、いまのところ前よりも気楽に生きている気がします。

この取り組みをしようとしたきっかけは、何気なく「今何時だっけ?」と時計を見た時でした。そのときは休日だったこともあって別になにかのタスクをいつまでに片付けなければならないというわけではなかったのに、です。

ここでふと、「自分は時計や時間に支配されていないだろうか」と思いました。さかのぼってみると自分には定期的に時計をチェックする癖があることがわかりました。それはもしかして頻繁にネットサーフィンやSNSのチェックをしてしまうという癖のように、場合によってはあまりよくないことなのではないかと思うようになりました。

そこで時計を出来る限り見ずに、何かしら次のことをしなければならないときにはアラームを使い、それが鳴るまでは時計で時間を確認せずに、気の向くままに気の向くことをすることにすることにしました。

上述のように、いまのところ前よりのんびり生活できていて気楽になったような気がします。とくに定性的になにかが変わったわけではないですが、こうしたことによって何か困るわけでもないので、今後もしばらく続けてみようと思います。

文書やコードのレビューで気をつけていること

文書やコードにはレビューというプロセスがあります。書いた人ではない人がそれらを読んで意見を述べて、意見を反映させてよりよいものを作っていくプロセスです。明にレビューという名前がついていなくても人の作品に意見を求められることが多いと思います。

このレビューというやつは、やることだけ見れば簡単そうに見えるのですが、非常に考えておくとよいことが多いです。本記事ではレビューはこうするといいものになるんじゃないかなと私が思って実践していることを共有します。なにか響くところがあれば参考にしてもらえたらなという程度の話です。

レビューアとして、まずは段階に応じた粒度を心がけています。レビュー対象のソースや文書は、最初は粗い物を出して、どんどん練り上げて、最終的に完成に持ち込むものです。したがって「とりあえず書きなぐってみた」という段階で細かい指摘をしてもあまり意味がありません。そういう指摘をしても次のレビューのときに指摘した部分がまるごとなくなっている場合があるからです。ここの塩梅は非常に難しいのですが、たとえば文書でいうとわたしは初期のレビューでは全体構成などについては話しますが、「てにをは」レベルの指摘は、よほど意味が通じないという場合を除き、やりません。

指摘の重要さの切り分けも重要です。わたしは修正したほうがはっきりよいと言える場合は指摘をためらいませんが、好みの問題のときはそもそも指摘すらしません。自分でもどっちでもいいと思っていることでお互いの時間を使うのはもったいないからです。とくに、ここで変にこだわるとレビューに対して寄与しない激論がかわされて、なにかやってるように見えて何も進んでいないという悲しいことになります。レビューの目的は相手を論破することではなく、より良いものを作ることです。

レビューをする側ではなく、依頼する側としてもやっておくべきことがあります。まずは対象読者の明確化が必要です*1。たとえば、初心者向けの文書では手厚く説明しているように見える文書であっても、その道のプロ向けのものだと当たり前のことをクドクド書いているだけという見方ができます。ここを最初に決めておかず、意識が共有されていないとレビューが迷走しがちです。

続いて、どういう人にはどういう観点で見てほしいかも書きます。たとえば初心者用の文書では、プロには技術的に合っているかどうかを重点的に見てもらい、対象読者の人にはこの文書で自分が理解できたかを見てもらう、などです。事前にレビュー観点を共有できているとお互いに手間が減らせると考えています。とくにレビューに慣れていない人にレビューアを依頼すると効果的かと思います。

いろいろ書いてきましたが、やっぱりレビューは難しいですね。ここに書かなかったこともたくさんあるのですが、レビュー対象物の性質によって適切なやりかたが大きく変わりそうなものは紹介を避けました。

みなさんも気をつけていることがあれば教えて下さい。おわり。

*1:これはレビュー有無に関係なくすべての文書に対してあるべきだと思ってます

情報発信に伴う負のリアクションについて

なんらかの情報発信をすると、いろいろなリアクションが返ってきます。本記事ではこれら負のリアクションに怖気づかずに発信を続けたい人に、これまでに色々な記事を書き、かつ、殺害予告を含めた多種多様なリアクションを受けてきた筆者の考えかたを書いたものです。とくに情報発信を推奨するものではありません。やりたい人がやればいいだけです。

負のリアクションにはいろいろなタイプがあります。ここでは以下の三つのタイプについてのみ述べます。

  • 馬鹿だのアホだのいう悪口
  • 答えが無いものについての反対意見
  • 誤りの指摘

複数のタイプが混ざり合ったものもあります。たとえば「ここの定義が間違えている。こいつは頭がおかしい」は誤りの指摘と悪口が混じっているといえます。

上記3つのタイプのうち、悪口については無視するといいと思います。なぜなら気にしてもとくにいいことはないからです。仮に相手にしてもとくにいいことはありません。発言、および発言者をミュートないしブロックできるのであればそうしたほうがいいとさえ思います。ブロックは逆恨みされたりする問題もあるのでミュートがいいと個人的には思います。

答えのないものについての反対意見については、基本的に「人による」としか言いようがないので、さらっと流せばいいでしょう。面白い意見であれば会話してみるのもいいかもしれません。誤解をもとに意見されたのならば誤解をただすのもいいかもしれません。ただし悪口と合体している意見の場合は話が通じない可能性が高いので、これも無視するといいと思います。ただ口調が丁寧でも議論が成立しない人もいるので、「なるほどそういう考え方もあるのか」と思って、参考にするもののとくにリアクションを返さないのが無難かもしれません。

最後の誤りの指摘については、本当に誤っているのであれば、のちのちの自分の信用のためにも速やかに訂正するとよいと思います。議論に慣れていない人であればとくに「自分の意見を否定された」「自分を否定された」と思うかもしれませんが、誤っているものはしょうがないので、自分の非を認めるほうがよいでしょう。ただし、とくに悪口と混ざっているような人は直接答えを返すとめんどくさいことがあるので、訂正したことだけを明らかにして、発言者に直接リアクションしないという手もあります。指摘が誤っている場合は、まともな議論ができる信用できそうな相手であれば反論するのも一つの手です。ただし、そうでない人の場合は終わらない地獄のようなレスバトルが続くこともありますので、反応を返さないのがいいと思います。

以下まとめ。

  • おかしい人には近寄らない
  • 考え方によるものについては、どちらが正しいとかは考えず、参考にする
  • 誤りがあればそれを認めて正す

休むことは難しい

休むことがどれだけ難しいか、および、私がそういうときにどう考えてきたかについて書きます。

プログラミングをはじめとしてコンピュータが好きであればあるほど*1、やる気があればあるほど休むことが難しいです。若くて気力体力が有り余っている場合はとくにそうで、朝から晩までプログラミングをしていてもあまり疲れを感じず、かつ、寝て起きたらスッキリです。ところが次第にそうではなくなってくることが多いようです。私が実際にそうでした。私の場合は以下のような流れで休みかたを忘れていきました。

  1. 10代後半でコンピュータに出会ったことによって興味の持てる対象が激増した
  2. コンピュータについての知識を得るために毎日昼夜を問わずに作業していた
  3. 休憩という概念がなく、寝る(気絶する)まで作業して、起きたらまた作業という状態になった。若くて体力があったので死ななかった
  4. 生活のリズムが乱れて疲労が蓄積していった。が、茹で蛙のごとく、本人は気づかない
  5. いつしか疲れているのが当たり前になってきた。どういう状態が元気なのかがわからなくなったし、そもそも休んでいないので休みかたを忘れた。これも本人は気づいていない
  6. 若くなくなって体力がなくなってきたのでつらくなってきた

今の世の中ではSNSなどで否が応でも自分と他人を比較してしまう機会があるので、「自分はまだまだ努力が足りない」「自分が休んでいる間にも他の人は先に進んでしまうのでは」「あの凄い人は一日中何かやってるっぽい」などという考えに陥りがちです。実際若者のtwitterを見ているとそういう考えにとらわれている人をかなり見かけます。これも私に当てはまりました。

無理を重ねれば重ねるほどに心身ともに疲労が溜まってきます。それは能率の悪さ、疲労感、体の凝り、姿勢の悪さ、イライラ、焦燥感、睡眠不足、など、さまざまな形で顕在化してきます。不調が一気に現れる場合はまだいいのですが、この手の症状は軽いものからはじまって次第に重くなっていくので、自分にとっての「好調」のレベルがどんどん下がっていき、身心は悲鳴を上げているので自分ではまだ好調のつもりでいることもあります。加齢に伴って昔大丈夫だったものがそうでなくなることも多々あります。この状態がどんどん進むと、いずれ腰が破壊されて座れなくなったり、メンタルを患ったり、不可逆に身心を破壊することになりかねません。

このようになったときに「休む」という単純な改善方法があるのですが、そう簡単にはいきません。なぜならずっと作業をしていたくて、休んでいる暇などない、と、思っているからです。疲れている、休みたい、でもどうやって休めばいいかわからない、いざ休もうとしても気づいたら作業している、そんなことはないでしょうか。筆者は10年以上そんなかんじでした。こういう辛い状況を抜け出すために筆者がいろいろと取り組んだ結果、役に立ったものを書いておきます。もちろん人によって何がいいかは全然違いますが、上記のような、いかにもバッドエンド一直線のようなルートに自分も乗っているなと思う人は参考にしてください。

第一に考え方を変えました。無理してでも何もしない状態を作って数日間過ごしてみて、自分の体調の変化を見てみます。それで改善するようなら、休んだ後の状態が自分本来の姿で、もともとは劣化していた効率の悪い状態で延々と作業していたことになります。疲れた状態でしっかり休むと、効率のいい状態で作業できる、という意識を体感すると、休むことに段々抵抗がなくなってきました。

第二にインターネットや電子機器から自分を切り離す時間を設けました。デジタルデトックスとか言われたりもするやつですね。ツイ廃のわたしにとってはとくにSNSとの切り離しが効果的だったと思います。かつては一息ついて何も考えずにぼーっとしていたときで画面を見てtwitterをしてたりすることがあったので、それを控えるようにしました。気を付けようと考えて気を付けられるようなものではないので、以下のように強制的に使えなくする仕組みを導入しました。

  • Androidのフォーカスモードのような機能で特定アプリを使えなくする
  • アプリをアンインストールする
  • 特定の端末からしかアクセスできないようにする
  • 寝るときは寝床に端末を持ち込まない

そこまでするなら「やめればいいのでは」と思われるかもしれませんが、情報発信や普段気軽に会えない人と話したりするのにはSNSは非常に便利なツールなので、無理にやめはしませんでした。

第三にストレッチをはじめました。私の場合は昔に比べて明らかに体が硬くなっていたり姿勢が悪くなったりしていたので、とにかく執拗にストレッチをしました。とくに電子機器をさわるときに酷使しがちな首、肩などを重点的にやりました。この効果は目覚ましく、かなりの能率改善を達成できました。今では決まった時間にやるというより、暇なときはまずはストレッチ、というくらい習慣化しています。

第四にリラックスできる趣味を持つようにしました。わたしは昔からコンピュータが大好きで、就職してからも会社ではプログラミング、家に帰っても同じようなことをしたり、別のことをしていると思いきや会社とは別分野について何かしていたりという具合でした。この考え方ですといちおう仕事と趣味を切り離しているといえなくもないのですが、頭脳は酷使し続けるので、疲れも溜まり続ける。この状態を改善するため、数年前からコンピュータとは一切関係のない、かつ、頭が休まる趣味を探して、現状では写真を撮ったりコーヒーを淹れたりという趣味を見つけました。これまでは疲れたら寝るくらいしかやることがなかったのですが、リフレッシュする方法に多様性が生まれたので、とてもよかったと思います。

第五に、身心の作りが違う他人と同じ土俵で勝負しようとするのをやめました。たとえば一日4時間睡眠で平気といったようなショートスリーパー、業務でのプログラミングに疲れたら趣味プログラミングで疲労を回復させるアンデッドモンスターのような人がいるのも否定しませんが、自分ではどうなるかを試してみたところ、残念ながら自分はそうはいかないという認識をしました。その結果、無理なものは無理、自分のハードスペックに合ったことをするのが一番、と思えるようになりました。ここで重要なのは、どういう状態なら自分は元気か、パフォーマンスが出せるか、という感覚を取り戻して初めてこの取り組みが可能になったということです。

上記のことは最初から徹底できたわけではなく、だんだんとできるようになったと記憶しています。何事も一気にすべて解決とはいかないものです。なにかを勉強するときと同様、小さな積み重ねを繰り返していけばいいのだと思います。

*1:別にコンピュータに限りませんが…

2-in-1のChromebookを買った話

LenovoIdeapad DuetというChromebookを買って数週間経ったので感想を書き連ねます。

www.lenovo.com

もともと次のようなことがしたくて適当な端末を探していました。

  • 軽くて持ち運びしやすい
  • 雑誌記事や書籍の原稿など、文書作成がしたい
  • 電子書籍が見たい
  • ssh経由で外のサーバにつないで開発がしたい

この要件で人に聞いたところ、これを教えてもらいました。評判は上々で、かつ安価であることより、購入に踏切りました。昔Chromebookがリリースされてからそう時間が経っていないころに一度買ったことがあり、Webブラウザsshがついていたのは覚えていて、かつ、Androidアプリも使えるらしいと聞いていたので、これなら行けそう、と思いました。

買ってみたら想定していたよりも多くのことができるとわかりました。一番大きなものはベータ版としてLinux環境(distroDebian)が使えることでした。さらにその環境上のGUIを動かせることもわかったため、VSCodeをインストールしてみると、あっさりと動きました。さすがにCPUパワーが足りないので動きはもっさりしていますが、普段使い慣れているエディタで文書作成ができて、かつ、オフラインで開発もできるというだけで非常に嬉しいです。これからどんどん使い込んでいきたいと思います。

ハードウェアキーボードは価格相応で、それほどいいものではありませんが、それほど長い時間でなければ問題なく操作できるかなと思うくらいです。トラックパッドがついているのはいちいちタッチせずに済むので便利だと思います。laptopからタブレットへの切り替えときにはハードウェアキーボード兼フタを本体から取り外す必要があるため、けっこうめんどくさいです。iPadのようにキーボードを外さずにそのままタブレットとして使えるようなものだったら嬉しかったのですが、外さないと重いので、それはできるかもしれませんが、やりたくはないです。ただし、フタは重い反面、laptopモードにしたときは本体部分は安定していて、これなら倒れないだろうと安心できるという利点もあります。

タブレットとしては最低限kindlekoboで本が読めればいいやと考えていました。この最低限の要求には十分このたんまつは応えてくれて、いままでのところ、とくにストレスは感じていません。それに加えてAndroidタブレットとして使いやすければいいなと考えていました。こちらについては、ややもっさりしていると感じますが、我慢すれば使えるなといったところです。もう一点、ソフトウェアキーボードでの入力が不便です。一番の理由はiPadのようにソフトウェアキーボードを分割できないので、両手で画面の両端を持ったまま入力ができません(調べた範囲では。できると知ってる人は教えて下さい)。このため、寝そべってごろごろしながらキーボードで入力というのはめんどくさいです。

総合判断としては、価格性能比はとても高いと思いました。これからどんどん使い込んでいこうと思います。