ITservice雄飛 プロモーションビデオ

2020年8月4日火曜日

Kindle本を書いている話

こんにちは、ITservice雄飛です。
微妙に忙しい、今日この頃です。

今日も、よもやま話を。

今、片手間ではありますが、Kindle本を書いておりまして。

きっかけは、半年前に書いたKindle本がちょこちょこ売れ初めまして。
で、じゃぁ、もうちょっと本の本数増やそうかな、と思った次第です。

で、話は戻って。

私が最近主に使う言語は、Lazarus(FreePascal)なんですが。

これに関する日本語の情報が少ないのなんの。
大体、英語とかドイツ語とかが大半ですね、ググると。
コードは同じなので、多少文を翻訳できれば、ソース見て内容はわかるんですが。

更に、書籍はもっと少なくて、ドイツ語の分厚いのが1冊、Kindleで書かれた本が日本語で1冊。それだけかな?

分厚いドイツ語のは持ってます、因みにですが。(高かった)

更に、私がメインとして行う、(日本語での)VBA処理に関する文献はWeb、書籍共に皆無でして。


「じゃぁ、書こうか、試しに」

となった次第です。

内容としては、FreePascal(Lazarus)を扱える人自体が少ないと思われるので、プログラミング入門書と位置付けて、プログラミングやアルゴリズムのイロハから始まって、ハローワールドからVBAとComObj使ったサンプル作成、テーマを自由に決めて、その中から作品を作る、という章で終わる、という構成です。

昨日、夜な夜な書いていました。

さて、執筆終わるのにどれくらい時間かかるだろう?
結構なボリュームになりそうなので、時間は掛かると思います。

それではそれでは。


2020年8月3日月曜日

プログラミング技術だけ覚えても駄目な話

こんばんは、ITservice雄飛です。

最近は、自作のエディタの更新と。
本業と副業、共に忙しい今日この頃。

さて、本題。

今、プログラミングが(まだ)熱いというか、盛んですが。

以前、ツイッターの方で、非常にごく簡単なアンケート取ったんですが。

それで、反応を見て難しいなと思った感想を持った訳です。

何が難しい言って、プログラミングだけ覚えれば、それで良い、
そうすれば食べていけるんだろう、みたいなアンケート結果だったので。

結論を先に書くと。
「プログラミング」だけ覚えても、仕事にするのはとても難しい。

これでしょうか?

独立って意味ではないですよ?

なんで??

それは、基盤となる必須の基礎知識的な技能であって、
それを実現する、別の各種知識が必要になるからです。

簡単に図示するとこんな感じ。

・対象の業務に関する専門知識
・アルゴリズム構築技能(設計技術、構築技法)
・プログラミング(コーディング)技能


簡単に、大雑把に、図示しただけですが。
細かく書き出すともっとあります。

上記の技能をうまく作動させるために、
コミュニケーション能力も結構重要だったりします。


例えで、仮のやり取りで書きますね。

・お客様「会社の単純手作業を何とかしてくれないか?」
・受注者「どの様な作業でしょうか?お話をお伺い出来ますか?」
(お客様と受注者でやり取りを行い、受注者はヒアリングをする)

・受注者「AとBは自動化可能ですね。Cは難しいというか、自動化は危ないですね。」
・お客様「どれ位で出来るの?どこまで楽になるの?」
・受注者「お伺いしたお話の限り、AとBはエクセルVBAを使えば1時間です。」
・受注者「もっと早く数分で処理する事も可能ですが、その場合納期は嵩みます。」
・お客様「作業時間は掛かっても良いよ、急いでいるから、エクセルで良いよ。」
・受注者「このAとBのエクセル処理なら○○日で出来るでしょう。」
(ここの、見積もり納期の勘案は非常に重要だったりする。少しだけ多めに見積もる感じ)

・受注者「これを自動化して欲しい。」
・受注者「Aの処理とBの処理を、1時間以内で出来るVBAを書いてほしい。」
・作業者(プログラマ)「扱うサンプルデータはありますか?」
・作業者(プログラマ)「お客様の行っていた作業の工程教えていただけますか?」
・受注者「Aがこれで、Bがあれ。資料送ったよ。」
・受注者「お客様からヒアリングしたから、それを基にサンプル作って。」
・作業者(プログラマ)「ありがとうございます、早速取り掛かります。」
(ここでプログラマは、資料と睨めっこして、自動化の方策を書き出してアルゴリズムに落とす)
・〇日(納期○○日の半分が経過)

・作業者(プログラマ)「テスト版ですが出来ました。」
・作業者(プログラマ)「サンプルデータで動いているだけなので、保証は出来ません。」
・作業者(プログラマ)「実作業に近いデータは貰えますか?詳細詰めたいです。」
・受注者「交渉してくる。欲しい作業内容を詳しくお願い。」
・作業者(プログラマ)「Aは△の処理の際の文字の長さの揺れ幅が知りたいです。」
・作業者(プログラマ)「Bは□の処理の際のテキストのフォーマットを知りたいです。」
・作業者(プログラマ)「テストプログラムと資料送りました、これで大丈夫ですか?」
・受注者「ありがとう、交渉してくる。」


(ここで、お客様にテストプログラムを確認して貰い、詳細を詰める作業をする)
・受注者「この様な感じで進めております。テスト版ですが、ご意見お願いします。」
・お客様「あれとこれは良いね、ここは要らない、そこに作業経過が欲しい。」
・受注者「Bの作業の差し支えない空データは貰えますでしょうか?」
・お客様「良いよ、適当な数字と文字で良い?」
・お客様「ありがとうございます、その方が助かります。」


・作業者(プログラマ)「ありがとうございます、助かりました。作業に移ります。」
・受注者「納期通り終わりそう?」
・作業者(プログラマ)「テキストのフォーマットが判ったので大丈夫です。」
・作業者(プログラマ)「納期数日前に、客先でテストさせて貰えますか?」
・受注者「判った、お願いしとく。」

・作業者(プログラマ)「初めまして、□□と申します。」
・作業者(プログラマ)「納品前に動作を確認させていただきたく存じます。」
・お客様「どうやって使うの?」
  ~省略~
・お客様「良いね、でも時々止まるね。」
・作業者(プログラマ)「申し訳ございません、事前に確認出来て良かったです。」
・作業者(プログラマ)「今修正しました、どうでしょうか?」
・お客様「良いね、今度は何やっても大丈夫だね。」


上の例えは、私が一人でやっていた受託開発を、幾つか擬人化させて登場人物を増やし、架空の案件で例えてみました。


・先ず、絶対的に必要なのはコミュニケーション力です。
コミュ力が無いと、色々苦しみます。
書く言う私も、日々コミュニケーション力は試されています。
それだけでなく、交渉力も重要になってきたりします(私の場合)。


・次に必要なのは、アルゴリズム構築能力と、それの言語化能力です。
アルゴリズムというのは、動作原理とも言えるかと思います。
要は、モノが動く仕組みを、頭の中で構築する能力です。
そして、それを図と文章で記す能力。
これが出来て、初めてプログラミング作業に命が灯ります。

・業務専門知識
必須です。
仕事を受ける場合、プログラミング出来ればどの分野でも、という訳には行きません。
ではどうするのか?お客様は、その分野の専門家です。
要は、プログラマたる私はその分野の素人な訳です。
細かく聞いて、只管聞いて、覚えるしかありません。
実際、そのように仕事をした事もあります。

プログラミングだけ覚えても、コーダー(コードを書く人)になっただけです。
しかし、第一歩には違いはなく、そこで満足するのではなく。
常にどん欲に学習していかないといけない、と言う事になります。


逆に、貧欲に学習する人は、何をやっても成功するかと思います。

今回は、これにて以上。