【書籍】子どもとつながる心理学 - 小児科ナースが実践しているズルいくらい子どもたちの心をつかむかかわり方 -

今回ご紹介するのはこちらの書籍。

イントロダクション

ウソというのは信頼関係を壊すには、最も簡単で最も効果的な方法だ。
それは相手が大人でも子どもでも一緒なのだ。

本書を薦める対象者

  • 全国の忙しいママさん、パパさん
  • 子どもにウソをついて気をそらしている大人

内容のご紹介

本書は、小児科ナースとして働いてきた著者が、子どもと接する際に気をつけるポイントをまとめた本です。

本書の構成は、下記となっています。

  • 第1章 子どもとの信頼関係を築く基本姿勢
  • 第2章 ズルいくらい子どもたちの心をつかむかかわり方

とても短い本です。
30分〜1時間程度で読めてしまうボリューム。

タイトルには「心理学」とありますが、小児科ナースとしての経験談を織り交ぜながら、大人としてどのように子どもに接していくべきかという基本姿勢を説き、接する際のちょっとしたテクニックが紹介されています。

忙しくてちゃんと子どもに向き合えてないと感じるママさん・パパさんにとって、子供との接し方や優先順位を見直すきっかけになるかもしれません。

感想

「家族は社会の最小単位だ」と、どこかで聞いたことがある。
狭い世界で生きる子どもにとって、家族、特に親は絶対的な存在だ。
そして子どもにとって親というのは大人の代表だ。

大人は子どもにとって信頼できる存在。
果たしてそう言い切れる接し方を普段からできているだろうか。
子どもを社会の一員と認め、1人の人間として向き合えているだろうか。

例えば、子どもと一緒に公園に遊びに来ているとする。
そろそろ家に帰って夕飯の支度をしないといけない。

「お腹減ったでしょ?そろそろおうち帰ってご飯食べようか」

しかし、子どもは首を振りながら遊び続ける。
手を取って無理やり連れて帰ろうとすると泣き叫ぶ。
手を離せばすぐにまた遊びだす。
さて、どうしたものか。。。

疲れ困り果てて大人はウソをつく。

「おうちに帰って一緒に遊ぼう」

もしかすると、そのときは本当にそのつもりだったかもしれない。
しかし、大人だって人間だ。
帰って家事をした後には子どもの相手が面倒になってしまうかもしれない。
急用が入ってしまうかもしれない。

そうやって結果的にウソになってしまえば、経験の少ない子どもは深く傷付く。
小さなウソでもそういった経験が続けば、

大人はウソをつく

子どもはそう学習する。
段々と大人の言葉を信じなくなっていき、言うことを聞かなくなっていく。

ウソというのは信頼関係を壊すには、最も簡単で最も効果的な方法だ。
それは相手が大人でも子どもでも一緒なのだ。

約束できないことは明言しない。
もし結果的に約束を破ってしまった場合は、ちゃんと相手に理由を説明をする。
大人として、社会の一員として普段当たり前に行っていることではないだろうか。

本書は、子どもも1人の人間なのだということを訴える。

最近、僕は姪っ子たちと遊ぶ機会が増えた。
ちゃんと1人の人間として向き合えているだろうか。
と、接し方を見直す良いきっかけになった。

【書籍】入門UNIXシェルプログラミング - シェルの基礎から学ぶUNIXの世界 [改訂第2版]

今回ご紹介するのはこちらの書籍。

入門UNIXシェルプログラミング―シェルの基礎から学ぶUNIXの世界

入門UNIXシェルプログラミング―シェルの基礎から学ぶUNIXの世界

イントロダクション

何といっても、本書のサンプルコードは20年経った今でも動く。
それだけ著者の愛が詰まっている。

本書を薦める対象者

  • シェルスクリプトが摩訶不思議ワールドに見える人
  • 枯れた技術にも興味がある人
  • 愛を忘れた人

内容のご紹介

本書は、あらゆるUNIXに標準搭載されているBシェル(/bin/sh)向けのプログラミングを学べる本です。

本書の構成は、ざっくり下記になっています。

  • 第1~8章  シェルの基礎知識について (200ページ強くらい)
  • 第9~10章   実際にシェルスクリプトを色々作る (100ページ強くらい)
  • 第11章   デバッグのやり方について
  • 第12~13章 よくハマる注意点や汎用的なシェルスクリプトにするためのノウハウ
  • 付録A     各シェル(sh,csh,kshなど)についての紹介
  • 付録B     リファレンスとして使える基本構文の一覧 (本書の各説明ページへの参照付き)

基本構文だけでなく、豊富な例とサンプルコードと共に、ハマりがちな注意点についても丁寧に説明されています。
まさにシェルプログラミングに必要な基礎とノウハウが詰まった1冊です。

各サンプルコードについての説明はこれでもかというくらい丁寧です。
何をしているかだけでなく、何故こんな書き方をしているのだろう疑問を持ちそうな箇所は、何故そう書くのかという説明がキッチリされています。
この辺りのノウハウが構文理解だけでは見えてこないので大変助かります。

また、このボリュームの本にしては、誤記や誤字も少なかったように感じます。
ちゃんと数えていませんでしたが、たしか僕が気になったのは2ヶ所くらい。(手元にあるのは第13刷です)

ただ、これから読まれる方にとって気になるのは、書籍自体が古いという点でしょうか。
改訂第2版 第1刷の発行が2003年となっており、初版に至っては1999年発行。
原著はもっと前になるので、実に20年以上前に書かれた本です。

しかし驚いたことに、本書掲載のサンプルコードのほとんどが、僕が試した環境でそのまま動きました。

僕が確認したこと/してないことについて補足すると

  • 確認環境は FreeBSD 12.0
  • 5.5 リモートシェル など、rshを使ったものは未確認 (FreeBSD 12からrshが消えちゃった。portsにはあるらしい)
  • 10.4 プロセス名に対してシグナルを送るシェルスクリプト は修正が必要 (psの出力結果からプロセス名を切り取る文字位置COL=66を68へ)
  • 10.14 プロセスの親子関係をツリー構造で出力するシェルスクリプト は修正が必要 (psの出力結果からプロセス名を切り取る文字位置COL=68を70へ)
  • その他はそのまま動作することを確認

といった感じです。
他にはループ外に出していい処理では?という箇所もありましたが、とりあえずそのまま動きます。
何か抜けがあったらすみません。

本書の難点をあげるなら、ボリュームでしょうか。
全体は400ページ越えの大型本です。
実例スクリプトを作り始める9章までは、200ページ以上の長い道のり。
それまで断片コードやコマンドラインから打ち込むような例はたくさん出てきますが、まとまった機能として作るのは9章、10章がメインです。
もしかすると飽きっぽい人は辛くなるかもですね。

とはいえ、いまだに新冊が売られている名書です。
シェルスクリプトが読めない/書けない、何となく読み書きしている人は、本書から得られるものは多いでしょう。

感想など

僕は今までシェルスクリプトについてちゃんと勉強したことがなかった。

初めてシェルスクリプトを見たのは、大学生の頃。
CやJavaに慣れていた僕には、とても奇妙で面倒な摩訶不思議ワールドに見えた。

「今さらシェルスクリプトなんて古っぽいし、他の言語で書けばいいや」

僕はそう思って、構文もろくに覚えなかった。

そんな僕がシェルスクリプトを眺めていると、不思議に見える記述が多々あった。

どうしてこんな書き方をしているんだろう?
ソースを読んでも意図が分からない。
しかし本書を読めば、そこに厄介な問題を回避するための思いやりがあることに気付く。

それはスクリプトを使う人、いつかメンテする人、そしてシェルへの思いやり。
自分の環境には関係ない、古臭いと言って見放したりしない。

もはやそれは愛だよ。

何といっても、本書のサンプルコードは20年経った今でも動く。
それだけ著者の愛が詰まっている。

本書を読めば、きっと貴方もその愛に気付けるようになるはずだ。

日々、環境やツールのバージョンアップで苦しまれている皆さん。

Bシェルのこと、覚えていますか?

愛・おぼえていますか

www.youtube.com

入門UNIXシェルプログラミング―シェルの基礎から学ぶUNIXの世界

入門UNIXシェルプログラミング―シェルの基礎から学ぶUNIXの世界

【書籍】UNIXという考え方 - その設計思想と哲学

今回ご紹介するのはこちらの書籍。

UNIXという考え方―その設計思想と哲学

UNIXという考え方―その設計思想と哲学

イントロダクション

標準入力、標準出力、標準エラー。
僕はその存在を知りながら、なぜその利用価値に気付かなかったのだろうか。

本書を薦める対象者

  • 標準入出力やシェルスクリプトの実用性に疑問を持っている人
  • ソフトウェア開発に終わりがあると思っている人
  • UNIXにあまり触れたことがない人
  • 全人類

内容のご紹介

50年もの間、様々な人を魅了し愛されてきたOS、そうUNIXです。
本書はそんなUNIXの背景にあるソフトウェア設計の思想・哲学を説いている本になります。

全体で150ページ程度と薄めの本です。
目の前にパソコンがなくても読めちゃうので、通学/通勤のお供にもってこいですね。

本書では以下の9つの定理について、著者の体験談や例え話を用いて分かりやすく説明されています。

  • [定理1] スモール・イズ・ビューティフル
  • [定理2] 一つのプログラムには一つのことをうまくやらせる
  • [定理3] できるだけ早く試作を作成する
  • [定理4] 効率より移植性
  • [定理5] 数値データはASCIIフラットファイルに保持する
  • [定理6] ソフトウェアの梃子を有効に活用する
  • [定理7] シェルスクリプトを使うことで梃子の効果と移植性を高める
  • [定理8] 過度の対話的インタフェースを避ける
  • [定理9] すべてのプログラムをフィルタとして使う

また、必須ではないとしつつ、多くの人がどちらかというと賛同する、以下の10の考え方についても言及されています。
※ ()内は僕の補足です

  • (1) 好みに応じて(ユーザが)自分で環境を調整できるようにする
  • (2) オペレーティングシステムカーネルを小さく軽くする
  • (3) 小文字を使い、短く (コマンド名の話)
  • (4) 森林を守る (紙に印刷した操作できないデータはもう死んでいる)
  • (5) 沈黙は金 (無駄にメッセージを出力しない)
  • (6) 並行して考える (CPUをできるだけだけ忙しく働かせて活用する)
  • (7) 部分の総和は全体よりも大きい (再利用するために小さい部品を組み合わせて大きいアプリを作る)
  • (8) 90パーセントの解を目指す
  • (9) 劣る方が優れている (単純さと完全性の優先度の話)
  • (10) 階層的に考える

原著は1995年発行で、翻訳版の本書は2001年初版発行となっており、もはや古典です。
従って本書での具体例は古く、人によっては馴染みのないものかもしれません。

しかし、主張する考え方はシンプルでいて力強く、多くの人にとって有用なものです。
ソフトウェア開発者だけでなく、他の仕事をされている方にとっても、きっと良い刺激になるかと思います。

感想など

僕が本書に出会ったのは社会人になって数年後だったけど、Linuxに初めて触れた学生の頃に読んでおきたかった一冊。

僕は仕事でUNIX系OSに触れることはほぼ無い。
会社では支給されているWindowsマシンしか使えない。
ソフトも勝手にあれこれインストールして良いわけではなく制約も多い。

そんなWindowsユーザの僕にとって本書で一番印象深かったことは、

  • 人ではなく他のプログラムと対話するプログラムを作るべき
  • そのプログラム間のデータの受け渡しには標準入出力を使用するべき

という旨の主張だった。

標準入力、標準出力、標準エラー。
ほとんどのプログラミング言語の入門書で、最初の方に紹介されているであろうこの機能。
僕はその存在を知りながら、なぜその利用価値に気付かなかったのだろうか。

これらはUNIXに限らずWindowsでも勿論使える。
ツールで処理するファイルを指定してもらう為に、ファイル選択ダイアログなんて要らない。
リダイレクトして標準入力でいいじゃないか。
そこから次のプログラムにデータを渡す為に、中間ファイルや共有メモリなんて要らない。
標準出力からパイプでつなげればいいじゃないか。

そう、テキストデータならね。

まぁ、業務では何だかんだで文字を扱うことが多いので、様々な場面において良い指針になると思う。
Excelファイルだって中身は大半テキストだしね!

今ではMicrosoft公式のWSL(Windows Subsystem for Linux)というものが登場し、UNIXの豊富なコマンド群とシェルスクリプトがWindows10で使える。
本書の哲学によって生み出される恩恵を、Windowsユーザも存分に享受できる環境が整いつつある。

もし本書を読んだことがない方は、来たるべき全人類UNIXer化時代に向けて、時もOSも越えてきた哲学に一度触れてみてはいかがだろうか。
 
 

UNIXという考え方―その設計思想と哲学

UNIXという考え方―その設計思想と哲学