soumen’s blog

子育て、プログラミング、木の育て方など自分の興味のあることを中心に、関連しておもしろかった本などとともに紹介します。

Gitはおもしろい

最近、Gitを使ってみようと思いたち、入門書を読んでいました。

Git との出会い

Rを使って100行程度のカンタンなコードを書いたりしていたのですが、短いものではあっても、コードの管理に悩みがありました。 たとえば、自分のPC上のとあるフォルダーでマスターを開発しているのですが、途中で別の場所で実際に使ったり、人に使ってもらう機会などがあり、マスターと違う場所でコードに変更を少し加えたりしているうちに、どこに最新版があるのか分からなくなってしまったりします。 短いコード一つでさえこんなに悩むのですが、いったい皆さんどうやってコードを管理しているのだろう!?というのが疑問でした。

同じものの派生物があちこちにある状態は、あとあと混乱を起こしかねないので、やっぱり良くない。コードが増えるほど、探したり管理するのに時間がかかるだろうことも予想できました。 これは、コードの中で関数を書いたりする考え方とも通じるのかもしれませんが、同じものが複数箇所にあるのは気持ち悪い!一度書いたことを二度と書きたくない!という気持ちがふつふつと湧いてきました。ちょっとちがうか。

いよいよGitとの出会い。

それで、なんでか忘れたのですが、Gitというバージョン管理ツールを知りました。その前に、GitHub上に公開されていたコードなどを利用したことはあったのですが、、。 Gitよさそうだなーとか、実はRstudio上からもGitが使えるので、はじめはそこで使っていたのですが、自分が何をやっているか、いまいち分かっていませんでした。 それでも、Gitってすごく便利そうだし、もっと使いたい、ということで、amazonやネットや書店で入門書探しをしばらくしました。結果、買ったのが、下の二冊。購入の決め手はやはり書店で中身をみて、自分に合いそうかどうかというところです。 本を買った後、しばらく放置していたのですが、python勉強会で知り合った方との会話で、GitはLinuxを作った人が作った、と聞いて俄然やる気が増しました。なぜなら、Linuxにも興味があり、最近少しだけ触り始めていたからでした。Linuxを作った人が作ったというか、このLinus Torvaldsという人が、Linuxを他の人達と共同で開発するために自ら開発したツールがGitだったのです!!(ネットのインタビュー記事で知った。) 既存のツールはいくつかあったそうですが、目的にピッタリとはあわず、自分でつくったそうです。すごい人ですね。

そこで買ったのが以下の本です。

Gitが全く分からない、プログラミングにも不慣れな状態からスタートでしたが、この本に沿って実際に手を動かして見た結果、なんとか基本的な使い方はできるようになった気がします。 Github上のサンプルレポジトリも用意されており、擬似的にチームでGitやGitHubを使って開発した時に起こる状況を体験できます。 この分量の本で、こういう事が実現できていることが素晴らしいと思います。「いちばんやさしい」シリーズって、初めて使いましたが、よさそうです。 優しそうな女性二人が著者というのもよく、感心しました。youtubeも見ました。

もう一冊、こちらも買っているので、あと何冊か順番待ちの本を読んだあとは、これに挑戦したいです。もう少し分厚い本です。

独習Git

独習Git

R を学ぶのにおすすめの本

私はこれまでメインで、Rという言語を使ってきました。Rを言語と読んでいいのかは、微妙なところらしいですが・・。Rの公式サイトでも、"R is a free software environment for statistical computing and graphics. "と書いてあって、言語 languageとは言っていないですね。「統計計算のためのソフトウエア環境」とのことです。

 

それはともかく、Quoraで「R を学ぶのにおすすめの本はありますか?」という質問があり、自分の経験に基づいて回答をしたところ思いのほか読んでくれた人がいたようで、高評価ボタンを押していただいたいますので、内容をここにコピーしておきます。

 

ちなみに、Quoraというのは、なんというのでしょう、質の良いQ and Aサイトなのです。本家はアメリカで、日本語版もあります。何が、Quoraの質を高めているのかというと、、なんででしょうね?Quoraについてはまた考えてみたいと思います。

jp.quora.com---

いくつか、私の知っている本を紹介します。ご自分に合いそうなものを選んでいただくと良いと思います。私の場合は、Rを学ぶ前には、他の言語の経験はまったくない状態でした(子ども時代に少しだけやったBASICを除く)。


RユーザのためのRStudio[実践]入門 −tidyverseによるモダンな分析フローの世界−

RユーザのためのRStudio[実践]入門 −tidyverseによるモダンな分析フローの世界−

 

10冊ほどRの本を持っていますが(最後まで読んだわけではない-_-;)、この本はいままでで一番気に入っています。初級から中級へのステップアップという感じです。(本当の初歩から学ぶのであれば、この前に一冊、入門書を読んだほうがよいかもしれません。)

・この本では、Rを動かす環境であるRstudioの使い方が説明されています。Rstudio、便利です!

・ここ数年で広まったらしい、tidyverseというパッケージを使ったRのコードの書き方が身につきます。自分は古いRの書き方を学んでいたのですが、表(データフレーム)の操作(前処理)が、この本で学んだdplyrパッケージを使った方法で、劇的に効率よくできるようになりました(というより、効率よく書けるようになった)。パイプ演算子(%>%)を使って、直感的な書き方ができます(「これをやって、次にこれをやって~、、」みたいに順に書いていける)。

・その他、描画パッケージのggplot2の使い方も、一通り身につきますし、Rmarkdownを使った、再現可能なコード記述(記録をちゃんと残す)の考え方も身につきました。


再現可能性のすゝめ (Wonderful R 3)

再現可能性のすゝめ (Wonderful R 3)

 

 「再現可能性」というのは重要なキーワードだと最近しみじみ感じています。他の本にも書かれていますが、この本は、その再現可能性に重点を置いています。Rmarkdownという書き方で、文章の中にコードと解析結果を埋め込んでレポートやプレゼンテーションを作成したり(.docx, .html, スライド等へ出力できる)、解析結果を導いたRコードの記録の残し方が説明されています。結果だけが残っていても、再現できないと困ります!


Rではじめるデータサイエンス

Rではじめるデータサイエンス

 

こちらは、そもそもRstudio, tidyverse, ggplot2の中心的開発者であるHadley Wickham氏の著書なので、本家に当たるという意味で良いかもしれません。上の本では触れられていない、stringrをつかった文字列操作のことなども書かれており、重宝しています。

・この本の英語版と同じ内容は、Web上で無料で読めると書いてあったような気がします。


RStudioではじめるRプログラミング入門

RStudioではじめるRプログラミング入門

 

Rの初歩、およびプログラミング言語的ないろいろなコードの書き方は、この本に詳しいかもしれません。(最後までたどり着いていません、、-_-)


プログラミングR―基礎からグラフィックスまで

プログラミングR―基礎からグラフィックスまで

 

こちらは10年ほど前の古い本ですが、Rを初めて学んだ時に、とても役に立ちました。Rの基本、ファイル操作、if文とかforループの書き方、関数の作り方(これ大事!)、画像の扱い方、など、へーと思うような内容で、今でも手元に置いて、かつて蛍光ペンでマークした箇所を読み返したりして参照しています。ただし、今読むにはコードの書き方等古いかもしれないので、新しい情報は別の本で補うとよいでしょう。(といっても、使えない訳ではなく、主にbase というRに元から入っている基本的な方法で書かれているという事です。)

 

 

おばけのてんぷら

こどもと外出すると、ぐずって困ることがあります。

こどもの気分によって、落ち着ける方法はいろいろですが、

このような小さな絵本をいつも持っていると、便利です。

 

なんと、たったの400円で、サイズも小さく、重宝します。

なぜか、うちの3歳時は、これを何度もくり返し読んでとせがみます。

 

『おばけのてんぷら』という、せなけいそさんの作品です。

短い話ですが、あらすじです。

<うさぎのあげた天ぷらの匂いによってきたおばけが、まちがえてあげられそうになるも、間一髪せーふ。同時進行で、まちがえてころもにつけていためがねを天ぷらにしてしまい、最後に気づく。>

単純な話ですが、大人の私でも笑ってしまう、気に入りのストーリーです。

こどもも、そういうところが気に入っているのかもしれません。

 

おばけのてんぷら