佐々野寄の日記

数学、ソフトウェアまたはそのほか

ネスペの勉強始めます

ネスペ(ネットワークスペシャリスト)の勉強を始めようと思います。

若いころに取り損ねた資格で、当然持っているべき資格です。

持っていないのは、なんとなく恥ずかしいので、

まずは勉強始めます。

 

 

 

デスペ(データベーススペシャリスト)を取ったのは

何年も前だから、午前Iから受けなきゃだ。

今更、午前Iで落ちるとは思えないけど、

それで落ちていると、超恥ずかしいので、そっちも勉強しないとだけど、

まずは、「ネスペの礎」という本を読んでみます。

 

来年の春に受験なので、ちょっと息が長い勉強期間ですが、

少しずつやってみます。

「ミニマルPerl」

 

軽量言語に流行り廃りがあります。

bashとかは常に使います。その他のやつらの話です。

 

Python, Ruby, Perl, Gosh

あたりでいいですかね?

 

最近はどこを向いてもPythonですね。

なんか、今はやりのデータサイエンス関係のライブラリが充実しているとかで

はやっているんです。言語が分かりやすいからとか、使いやすいから

ではないみたいです。

 

Rubyは 一時期はすごくはやりました。

本屋に行けば、Rubyの本がいっぱい置いてあった時期が懐かしい。

 

Goshは、私の中では流行ってましたけど、、

Schemeの処理系でかなり野心的でした。使うというよりは

ソースを読んでた感じですが。 

 

どの言語も使えるんだけど、私が一番好きなのはPerlです。

いまだにかなりの頻度で使っています。

なぜ、Perlなのか。「ミニマルPerl」の使い方が超絶便利だからです。

bashの補助というか、bashをとてもとても使いやすくする、

という形の入門書なんですが、、、

bashを日常的に使うならもうミニマルPerlの使い方は手放せないです。

 

grepとかfindとかをPerlをからめて使いこなすことができれば

作業効率が飛躍的に上がって、他のエンジニアから尊敬されることでしょう。

 

 

 

 

Tablacus Explorer, CLaunch いつも使うアプリ

もう使っていることさえ忘れてしまうツールがあります。

Tablacus ExplorerとCLaunch

これらがないと作業できません。

 

tablacus.github.io

 

forest.watch.impress.co.jp

 

Tablacus Explorer

Tablacus Explorerは、タブがついたExplorerのようなツールです。

2分割とか4分割とかもできるし、とてもとても便利です。

 

毎日、多数のExplorerを開く人はこれを使ったがいいです。

というか、PCで作業する人は、一つの作業しかしない

というのはありえないので、Windows PCで仕事する人全員

にお薦めです。

 

CLaunch

CLaunchは、アプリランチャーと言われるアプリの一種です。

誰かが使っているのを見るとすぐに使いたくなるようなアプリです。

デスクトップをダブルクリックすると、

登録していたアプリが出てきて、それを起動できます。

よく使うアプリは10個くらいでしょうから、これもとても便利です。

ここに登録しているは、

やっぱりいつも使うものです。

Office系はファイルをクリックして開けるのでここには置いてません。

 

マインドマップのアプリXMind

私が設計者として最も使っているツールはXMindです。

 

jp.xmind.net

 

マインドマップという手法は、会社の研修で知りました。

今では中学校の技術の教科書に載ってます。

トニー・プザンという言う人が提唱している方法です。

 

新版 ザ・マインドマップ(R)

新版 ザ・マインドマップ(R)

 

 

 

マインドマップを作るアプリはいくつかありますが、

FreeMindとXMindが有名です。私はXMindの方が好みです。

 

 

私がいつXMindを使っているか。

  • 頭を整理したいとき
  • 会議の議事をとるとき
  • 樹形図をかきたいとき
  • 仕様書の目次を考えるとき
  • 何を検討すべきか、分からなくなったとき
  • テストケースを考えるとき
  • 資格の勉強をしているとき
  • 知識を整理するとき
  • 人に何かを説明するとき
  • その日のToDoリストを作りとき
  • 思いついたメモをとるとき

本当にいつでも使っています。

読書感想文「スーパーエンジニアへの道」

ワインバーグの名著「スーパーエンジニアへの道」の

読書感想文です。

 

 装丁が古めかしいです。けれども素晴らしい本です。

 どういう人に向けて書かれているか

最も有益なのは、エンジニアになりたての時期を過ぎて

初心者ではなくなってきた人たちです。

入社して数年たって後輩ができたあたり。

これからテクニカルリーダとか呼ばれるような仕事に就く人には最適です。

それ以降の人たちにとって、つまり、いますでにテクニカルリーダの人とか

マネージャ的な仕事をやる人とかが読んでも心に刺さってきます。

 

私自身は、入社三年目くらいのとき、どう人を指示するのか

手探りでやっていた時期に読みました。

ドンピシャの時期に読んだことになります。

 

何が書かれているか

「リーダーシップはセックスと似ている」

という文章で始まるこの本に何が書かれているかを書くのは

とても難しい。いや、難しくはない。リーダーシップについて

書かれているのだけど、だからと言って、それでこの本の内容を

説明したことにはならない。

 

多くのエンジニアにとって、

リーダーシップ、マネージメントは、

はからずもやらなくてはならないことに違いない。

多くのエンジニアは職業的にコミュ障だ。仕事自体が一人で完結することが多いため

他人のやることにかまけることが嫌いな人が多い。

 

こんな感じの、ちょっと読みずらい嗜虐的な文章が螺旋を書くように

書かれていて、その章の主題が何かをすぐに忘れてしまう。

この文章だけに惚れ込んで内容なんかどうでもいいとさえ言える。

 

だから、そういう文章美の集大成とこみで、この本の内容だ。

(ある種類の人たちにとっての)素晴らしい文章で書かれたリーダーシップ

くらいが、この本の紹介文で合っていると思う。

 

読むべきですか?

私自身は何度も読み返している本だし自分自身の本質的部分を形作っている

ものと思っているので読むべきと思う。

他の人もそう思うかと言うと分からないというのが正直な感想です。

資格を取れるわけでも、新しい言語や技術を覚えられるわけでもありません。

 

でも、何かに行き詰ったときとか、仕事に疲れたときとか、

PMP死ねとか思ったときとか、会社やめたいと思ったときとか

に読むと、もしかしたら何かの気づきが得られるかと思います。

2の冪について

実はソフトウェアの世界で数学が役に立つことはほとんどありません。

 

数学が得意なことによって、抽象的言い回しに慣れているので

プログラムを書いたり読んだりが

あまり抵抗ないとかはあるでしょう。公理がプログラミングの規則に

変わっただけだ、と思う人もいます。でも、それは、「数学」が

役に立っているわけではないです。

上記の主張は、論理を基調とする学問ならすべて当てはまります。

物理学とか法律学とか哲学に置き換えても、通じる主張がほとんどです。

 

さて、数学が役になったこと、ダイレクトに数学を使ったと思ったことが

一度だけありました。私は当たり前だと思っていたことが、十年以上

ソフトウェアのプログラムをしていた同僚が驚いてくれました。

 

ソフトウェアの世界では2進法

 

さて、ソフトウェアの世界で、$2^{10}=1024$を1Kと呼称します。

$2$進法の海の中で生きるソフトウェアの世界では

$10$進法は使わないです。

 

たとえば、

「ある値の最大値を$500$にしようと思う」

とデザインレビューで発言したとします。

かなりの高確率で

「そんな中途半端な数字はやめて$512$にしろ」

と言われます。

$500$よりも$512=2^9$の方が切りのいい数字だということを

覚えておくことはソフトウェアの世界を生き抜くために必須のことです。

 

2の冪をすぐに変換できるか

さて、$2^{23}$と言われてそれがすぐに$8M$であることは

分かりますか?

$2^{34}$が$16G$とすぐに変換できますか?

 

件の同僚と話しているとき、何ら躊躇なくこの変換をやったところ

「暗算速いね」

とか言われました。

「いや暗算とかしてないよ?」

 

まずは基本

まず、$2^0$から$2^9$の値は覚えるでしょう。

ソフトウェアの世界でこの値を覚えていない人はいません。

覚えていなくても覚えたふりをしておきましょう。馬鹿にされます。

$2^9$までだったら頭の中で計算できますから、覚えているフリは楽です。

$256K=262144$とかまで覚えているひとがいる世界ですから。

 

$2^0=1$

$2^1=2$

$2^2=4$

$2^3=8$

$2^4=16$

$2^5=32$

$2^6=64$

$2^7=128$

$2^8=256$

$2^9=512$

 

KとかMとか

$2^{10}=1024$を1Kといいます。

K(キロ)、M(メガ)、G(ギガ)、T(テラ)

あたりまで覚えておけばいいでしょう。

 

$2^{10}$とK, M, G, Tの関係を理解しましょう。

10乗ごとに上がっていくことを心に刻むのです。

 

$2^{10}$がK、

$2^{20}=2^{10} * 2^{10}$は、最初の$2^{10}$をKと読んで、

2個あるからMになる。

$2^{30}=2^{10} * 2^{10} * 2^{10}$

とK, M, Gと読んで、3個あるからGになります。

 

2の冪の変換

これで、準備が整いました。

$2^{23}$と言われたら、

$2^{23}=2^{10} * 2^{10} * 2^{3}$

と変換します。

K, Mと数えて、$2^3=8$だから8Mとすぐに分かります。

 

$2^{32}=4G$とか、瞬間的に変換できるようになりましたね?