薫のメモ帳

私が学んだことをメモ帳がわりに

USB-Aポートが分からなくて苦戦する

1 PC店に買い物に行く

 先週の土曜日、私はPC用品の買い物に出かけた。

 買う予定の商品は①キーボードと②マイクの2点。

 

 私は現在ノートPCを使っている。

 このノートPCを使い始めたのは約3年半前。

 ある方から頂いたものである。

 

 しかし、このノートPC、複数の部分にガタが来ている。

 ハードディスク・スピーカー・マイク・キーボード・ファン・・・。

 具体的に書いてみると、このPC、満身創痍(!)である。

 

 この点、ハードディスクはSSDに換装した。

 SSDに換装したことでスピードが圧倒的に早くなった。

 これに慣れてしまうとHDDには戻れない。

 

 また、キーボードとマイクはUSBで接続するキーボード・マイクを別途購入し、それで代用していた。

 もっとも、最近、USBのプラグに刺しても反応しないことがあるなど、キーボードやマイクの調子がおかしくなった。

 そこで、完全に沈黙したときのために、新しいキーボード・マイクを買い直すことにしたのである。

 

2 「万歩計が欲しいなあ」と思って

 PC店に行く。

 店に入り、商品を探しながらふと思う。

「そういえば、万歩計が欲しいなあ。この店にあればいいなあ」と。

 

 そんなことを考えつつ店の中を歩いていたところ、手首にはめるタイプの「活動量計バンド」なるものを見つけた。

 具体的に見つけた商品は次の商品である。

 

www.kashimura.com

 

 この活動量計は手首に巻いて使うものであり、見た感じは「腕時計」である。

 時計機能も付いている。

 また、仕事中に着けていたとしても違和感がない。

 さらに、値段もお手頃であった。

 そこで、購入することにする。

 

3 Aポートのコネクタ?

 ところで、商品のケースを見ると次の趣旨のことが書いてあった。

 

(以下、文章自体は上のサイトから引用。ケースに書いてあったことと同趣旨)

・USB充電器は付属しておりません。

・USB-Aポートの充電器が必要です。

(引用終了) 

 

 そうか、充電器はついていないのか。

 なら、場合によっては充電器も買う必要があるな。

 ふむふむ、なるほど。

 

 しかし、次の部分を見て、目が点になる。

「USB-Aポート」ってなんだっけ、と。

 

 頭をひねって考えるが、分からない。

「タイプCではない」ということは、最近のスマホなどに使う充電器ではないのだろう。

 では、昔のスマホ(携帯)に使っていた充電器なら大丈夫なのだろうか?

 いや、そもそもあれはタイプAだっけ?

 タイプBじゃなかったっけ・・・。

 

 など色々なことが頭に浮かんだが、知らないことであれこれ考えてもしょうがない。

 店員さんに「USBのAポートってなんですか?」と質問する。

 その結果、「USBケーブル等でPCに差し込むコネクタの部分がAポートである」ということが判明する。

 

 そうだったのか。

 私も常に散々使っていたあの部分がAポートなのか。

 一つ勉強になった。

 

 また、私はコンセントとUSBAポートをリンクさせる充電器の余分がなかった。

 充電器自体は持っていた、スマホタブレットのために使っていた。

 そこで、新たに充電器を買うことにする。

 しかも、2個同時に接続・充電できるやつを

 

 ところで、このコネクタに関することは「基本情報技術者」の教科書に書かれてあった。

 この資格の勉強をすれば、本件にもすんなり対応できたようだ。

 ちゃんと勉強して「基本情報技術者」の資格を取るかな。

 

4 活動量計デレステに反応する。

 上で書いた通り、この活動量計は手首につけるタイプのものである。

 そのため、活動量計を付けるとちょっとした腕時計を付けた気分になる。

 うん、気に入った。

 

 そして、手首に活動量計を付けた状態でデレステアイドルマスターシンデレラガールズ・スターライトステージ)をプレイした。

 この点、デレステリズムゲームである。

 音楽にあわせてスマホの画面を人差し指でポチポチ叩く。

 

 その後、活動量計を見る。

 すると、歩数が1000くらい増えている。

 歩数が1000個動く間、私はデレステをプレイしていた。

 机に向かって座っており、一歩も歩いていない。

 にもかかわらず、活動量計の歩数が増えている。

 どうやら、デレステをプレイする際に人差し指でスマホの画面を叩いた関係で手首が振動し、活動量計の歩数が動いたようだ。

 

 あまりの展開に自室(一人しかいない)で爆笑する。

 思いっきり笑った。

 この笑いと腕時計としての部分だけでこの活動量計を買った意味があった、と思うくらい。

 

 もっとも、腕時計代わりに使う点と笑いが得た点でとどめるのはもったいない。

 また、これを機に運動する習慣を身に着けたい。

 よって、この活動量計バンドを有効活用していこう。

 

 まあ、今日も活動量計を左手首にはめたままデレステをプレイしまくったため、今日の活動量計の歩数が2万を超えてしまったが(この点、私は外出時にスマホを持ち歩くところ、スマホが歩数を計測している、そのスマホによると今日の歩数は約6000である)。

私を引き付けた翻訳

1 「私釈三国志」というサイト

「私釈三国志」というサイトがある。

 

www5f.biglobe.ne.jp

 

 このサイトは、中国の三国時代(魏・蜀・呉)について歴史書の「三国志」や「三国志演義」等を参照をしながら書いたものである。

 はじまりは黄巾の乱から、終わりは三国を統一させた晋(西晋)が滅亡する(永嘉の乱)まで。

 

 分量はかなり多い。 

 全部を一気に読み切るのは大変である

 少しずつ読むのがいいだろう。

 

 また、「私釈」という文言が付いているように作者の解釈も含まれている。

 しかし、資料等についても触れており、「私釈だから(以下略)」ということはない。

 むしろ、作者の解釈があることがこの「私釈三国志」の魅力を高めている。

 

 あと、おまけ(番外)として「漢楚演義」というものがある。

 これは「項羽と劉邦」の時代(プラスアルファ)を取り上げたもの。

「私釈『楚漢戦争』」という感じの内容である。

 こちらは全部で13話。

「作者の文章がどんな感じか見る」ならこちらを読むのも十分ありだ。

 

2 私を三国時代と「項羽と劉邦」の時代に誘い込む

 このサイトを見るまで私は中国の三国時代に関心がなかった。

 確かに、私はコーエー歴史シミュレーションゲーム信長の野望」はハマっており、いくつかのシリーズ(烈風伝天翔記など)をやりこんでいた。

 しかし、「三国志」シリーズは全くやっていなかった。

 

 また、三国時代については全く知らなかった。

 せいぜい、漫画の世界史シリーズで出てきたこと・中学と高校の国語(漢文)に出てきたことくらいしか知らなかった。

 具体的には、孫堅孫権を一緒くたにしていたくらいである。

 

「私釈三国志」を読むきっかけは忘れてしまった。

 ただ、このサイトを読んで、私は三国時代や「項羽と劉邦」の時代についてハマりこむことになる。

 

 まず、「私釈三国志」それ自体について分量がたくさんある。

 そのため、扱われている時代が広く、細かい。

 よって、これを読むことで単純に勉強になり、三国志に関する知識も増えた。

 

 また、このサイトを見たあと、私は「三国志」に関するドラマや「項羽と劉邦」の時代のドラマを視聴することになる(もちろん、それらにもハマりこむ)。

 あるいは、時間を見つけてネットカフェに行き、横山光輝の漫画『三国志』60巻を全部読破することになる。

 現在、アマゾンのアンリミテッドを使い、吉川英治の『三国志』が読める状態になっているが、近いうちに全部読む予定である。

 

 というわけで、私は少しの間、三国志三昧の生活をしていたのである。

 

3 私がしてみたいこと

 ところで、私の感じているこのサイトの魅力に「詩や原文の訳」がある。

 

 例えば、「私釈三国志」の「156 建安文学」( http://www5f.biglobe.ne.jp/~f-sinner/3th/156.html )では、曹操が詠んだ『短歌行』の冒頭部分が次のように訳されている。

 

(以下、サイトより引用)

 対酒当歌 ――さぁ、酒だ
 人生幾何 ――人生がどれほどのものだというのか
 譬如朝露 ――朝露のようにはかなく
 去日苦多 ――去りゆく日々はむなしい
 慨当以慷 ――悲しみにくれたとしても
 幽思難忘 ――亡き人のことは忘れがたい
 何以解憂 ――どうすれば、この憂いは解けるのだろう
 唯有杜康 ――酒だ、酒しかないっ!

(引用終了)

 訳に感情がこめられている上、歌が持つ力強さを感じる。

 

 せっかくなので、もう1個例を出そう。

「漢楚演義」の「12 四面楚歌」( http://www5f.biglobe.ne.jp/~f-sinner/3th/000-24.html  )にて、項羽が垓下の戦いの最後の段階で設けた別れの宴席で読んだ詩(いわゆる「垓下の歌)についてこんな訳が付されている。

 

(以下、サイトより引用)

力抜山兮気蓋世 ――この天下はオレのモンだったのに
時不利兮騅不逝 ――不利になったら騅すら云うことを聞いちゃくれねェ
騅不逝兮可奈何 ――騅まで云うこと聞かねーなんて、あーあ、どーしたモンかなぁ
虞兮虞兮奈若何 ――虞よ、お前もどーしたモンかなぁ

(引用終了)

 こちらも感情が込められていて良い。

 国語(漢文)の教科書に書かれている訳文に比べて、なんと生々しいことか。

 

 というわけで、この訳し方には非常に心惹かれる。

 私もこのような訳が書けるようになりたい。

 

 というわけで、練習をしよう。

 こんな訳がいきなり書けるようにはならないだろうが、「千里の道も一歩から」である。

 

 上の原文が中国に由来することから、中国の古い書物から原文を抽出しよう。

 まずは、『孫子』から。

 なお、原文と書き下し文は『新訂孫子』(金谷治訳注、岩波文庫、2000)のものから引用する。

 

 まずは、この文章を翻訳してみよう。


(以下、所謂「敵を知り己を知れば百戦して殆うからず」の下りを引用)

故曰、知彼知己者、百戦不殆、不知彼而知己、一勝一負、不知彼不知己、毎戦必殆。

(故に曰わく、彼れを知りて己を知れば、百戦して殆うからず。彼を知らずして己れを知れば、一勝一負す。彼れを知らず己れを知らざれば、戦う毎に必ず殆うし)。

(引用終了)

 

 いわゆる「敵情を知り、自分の事情も知っていれば、百回戦っても危険がない」という部分である。

 この部分を訳してみる。

 

 よって、「相手と自分についてちゃんと知っていれば、戦っても大丈夫だ。自分を知っていても相手のことを知らなければ、運を天に任せるようなものだ。相手のことも自分のことも知らないようでは、危なっかしいことになる」と言うことになる。

 

 うーん、いまいち。

 戦術書のような技術書から原文を引っ張り出したのがまずかったか。

 

 でも、なんか面白そう。

「中国の古い時代の文章や日本の古い時代の文章を使って上のような感じで翻訳する」ということは続けてみようか。

 あるいは、現代の堅苦しい文章(例えば、憲法・法令の条項)を翻訳してみるか。

 それも面白いかもしれない。

「学び直し」を始める

 令和3年になり、私は「学び直し」を始めた。

 

 例えば、プログラミング。

 この点、従前の私もプログラミングを活用していた。

 具体的には、シミュレーションを行う・データを収集する・収集したデータの解析をする、といったことをしていた。

 

 しかし、「時間をある程度投入して入門書等を通しで読み、プログラミングを学ぶ」ことをほとんどしていなかった。

 そこで、令和3年になったのを機に、「入門書等を最初から最後まで通しで読むことで、プログラミングの勉強をする」ことにした。

 もちろん、「単に読む」だけではなく、「本に書かれてあるプログラミングのコードを写経し、実際に動かす」ということもやっている。 

 

 現在、2月が終わって3月になった。

 その間に、PERLとC++を学び直した。

 PHP・SQL・PYTHON・RUBYを新たに学んだ。

 さらに、データベースやウェブについても学んだ。

 

 本を通しで学習した感想は「私は何も知らなかったな」ということであった。

 確かに、これまでも様々なプログラムを組み、自分のしたいこと・自分に必要なことをしてきた。

 しかし、私が学んだのは自分の目的に必要な部分だけ。

 得た知識は断片化されたままだった。

 

 今回、「一冊を通しで学習する」ことで「柱」のようなものができた。

 そして、断片化されていた知識と知識がリンクするようになった。

 今後も柱を強固なものにすべく、リンクを強化すべく、精進していきたい。

 もちろん、学んだ言語の具体的な活用方法は決まっているので、アウトプットしていくことも忘れない予定である。

 

 

 学び直したものはプログラミングだけではない。

統計学」についても学び直している。

 

 確かに、私は大学1年生のときに「統計学入門」という名の講義を受け、その講義の単位を取得した。

 また、そのときに買った統計学の教科書は何回か読んだ。

 さらに、統計学を用いたアウトプットをこれまでもしてきた。

 

 しかし、先日、『統計学が最強の学問である』(西内啓、2013、ダイヤモンド社)という本を読んで私はショックを受けた。

 というのも、この本によると、私がしてきたことは「19世紀になされていたレベル」に過ぎず、「21世紀にすること」として著しくお粗末だったからである

(私がいた世界では「19世紀からなされたいたこと」すらなされていない状況であり、私がやった「19世紀レベルのこと」でさえ価値があったわけだが)。

 

 そこで、「統計学」を学び直すことにした。

 その結果、大学1年生レベルではあるものの色々な知識を蓄えることができた。

 せっかくなので、「統計検定」の2級を取る予定である。

 

 また、学び直した統計学の知識は既に活用している。

 現在、行っている調査等について学んだ知識をフル活用している。

 以前の私の統計学のレベルは19世紀だったが、今は20世紀半ばにはなった、とは思いたい。

 そして、学習とアウトプットを重ねることで、21世紀のレベルまでもっていく予定である。

 

 

 プログラミング・統計学の他、学び直しているものとして「日本の歴史」がある。

 

 この点、私は高校のときに日本史を選択し、センター試験でも日本史で受験した。

 また、個人としても日本史は好きである。

 歴史シミュレーションゲーム信長の野望」はやりまくっていた時期があったし、大河ドラマを見ていた時もある。

 

 しかし、これまでの私は「物語を楽しむ」・「受験に活用する」という意味でしか歴史を活用していなかった。

 そこで、「歴史から教訓を引き出す」という目的意識をもって歴史を学び直している。

 というのも、日本人がしてきた失敗と自分のしてきた失敗との間に共通項があることに気付いたので、日本史を学び、歴史上の失敗を学ぶことで自分の今後の人生に活かすことができると考えたからである。

 

 なお、学び直した内容はこのブログにまとめる予定でいる。

 そうすれば、学んだことが無駄にならないし。

 

 

 最後に。

 今回の学び直しにあたり、私は「アウトプット」を意識するようにしている。

 また、「目的」・「目標」を意識するようにしている。

 

 この点、私は「知識欲のかたまり」の人間である。

 よって、「何かを知る」ことそれ自体から膨大な快楽を得ていた。

 今回も「学習によって何かを知ること」から膨大な快楽を得ている。

 しかし、「得た知識を活かす」意識が極めて乏しかった。

 

 例えば、少し前に「簿記3級」と「簿記2級」の資格を取った。

 詳細は合格レポートのとおりである(2級については近いうちに書く)。

 確かに、簿記3級の資格を取る際、「学習目的」はあった。

 しかし、「簿記3級の知識の活用方法」については抽象的にしか把握していなかったうえ、意識も希薄だった。

 

 そこで、今回の学び直しにあたっては、「学習した知識をどこで活用するのか」・「学習コストをどうやって回収するのか」をできるだけ意識し、具体化するようにしている。

 

 そういう意味で去年までと今年からとで学習のスタンスが違う。

 その違いがどう出るか。

 その結果についても目を光らせ、その結果をこのブログに書く予定である。

FIZZBUZZプログラムを1行で書いてみる

0 はじめに

 今年の1月からプログラムの勉強を始めたため、いわゆる「FIZZBUZZプログラム」にチャレンジし、そのときのことをブログにした。

 

hiroringo.hatenablog.com

 

 今回は前回のブログの続きである。

 

1 腕試しにチャレンジ

 前回のブログで、利用中の言語PERLとC++、勉強中の言語RUBYとPYTHONを用いて「FIZZBUZZプログラム」を書いた。

 その際、「ちゃんと動くプログラムをとにかく書く」ことを目標して、特に「縛り」は設けなかった。

 そして、その目的は達成した。

 

 ところで、ウィキペディアのFIZZBUZZ問題の項目には次の記載がある。

 

(以下、https://ja.wikipedia.org/wiki/Fizz_Buzzより引用)

実際に「制限時間2分以内」「剰余(%記号等)を用いない」「1行でできる限り短く(ワンライナー)」等の縛りでゲーム条件を満たすコード記述の腕試しをする者が続出した。

 

 前回のブログでは、この部分に軽く触れただけだった。

 しかし、この部分に踏み込まないのはもったいない。

 そこで、今回はこの「縛り」プレイにチャレンジする。

 

2 ワンライナーに挑戦する

 まずは「ワンライナー(1行でできるだけ短く)」に挑戦する。

 言語は使い慣れたPERLを用いる。

 PERLならプログラミング能力のない私でもできそうだからである。

 

 前回は「while」でループを制御したが、今回は「for」でループを制御する。

 また、ワンライナーにするためには3項演算子を用いる必要があるだろうから、これを使う。

 

 以上を考えをソースコードに反映させてみる。

 こんな感じかな。

 

(以下、ソースコード

for ($i=1;$i<101;$i+=1){(!($i%15))?print" FIZZBUZZ!! ,\n":*1?print" FIZZ! ,":*2?print" BUZZ! ,\n":print" $i ,"))}

ソースコード終了)

 

 文字数がカウントできるサイト( http://www1.odn.ne.jp/megukuma/count.htm )を使ってソースコードの文字数を調べたところ、129文字となった(スペース抜きで120文字)。

 また、ちゃんと動くかチェックする。

 

f:id:Hiroringo:20210304173230j:plain

ワンライナー縛りで作ったFIZZBUZZプログラム(PERL)の実行結果1

 ちゃんと動いたようだ。

 めでたしめでたし。

 

3 文字の最小化にチャレンジする

 ワンライナーが思ったよりも簡単にできたので、「文字数を減らす方法」を少しだけ考える。

 

 まず、過剰なカッコを外す。

 これで何文字か減らせた。

 

 また、改行位置を変える。

 前回は5の倍数毎に改行していたが、15の倍数毎の改行に変える。

 

 さらに、構造を変える。

 前回のプログラムのforループの中身を日本語にすると次のようになる。

 

(15の倍数だったら)?(「FIZZBUZZ」と書け):

((3の倍数だったら)?(「FIZZ」と書け):

((5の倍数だったら)?(「BUZZ」と書け):(数字を書け)))

 

 この構造だと「と書け」の部分が何度も現れている。

 よって、この重複を最初に括れば文字数が減らせる。

 

 以上3点を修正したソースコードは次のとおりである。

 

(以下、ソースコード

for($i=1;$i<101;$i+=1){print !($i%15)?" FIZZBUZZ!!,\n":(!($i%3)?" FIZZ!,":(!($i%5)?" BUZZ!,":" $i,"))}

ソースコード終了)

 

 実行結果はこんな感じ。

 

f:id:Hiroringo:20210304175739j:plain

ワンライナー縛りで作ったFIZZBUZZプログラム(PERL)の実行結果2

 ちゃんと動いた。

 また、文字数は129(スペース抜きで120)から102(97)となった。

 これなら成功(目的達成)と言っていいだろう。

 

 以上、ワンライナーに挑戦した。

 予想よりも簡単にできた。

 また、3項演算子を教科書以外の場所で初めて使ったが、予想より簡単に使えた。

 今後も3項演算子を使いこなしていきたい。

 

3 「剰余を用いない」にチャレンジする

 次に、「剰余(%記号等)を用いない」にチャレンジしてみる。

 

 最初に思いついた方法は再帰関数を用いた次の方法である。

 

(以下、ソースコード

for ( $i = 1 ; $i <= 100 ; $i += 1 ) { print &FBoutput($i) ; }

sub FBoutput {
    if ( $_[0] > 15 ) { return &FBoutput($_[0]-15) ; }
    elsif ( $_[0] == 15 ) { return " FIZZBUZZ!!,\n" ; }
    elsif ( $_[0] == 3 or $_[0] == 6 or $_[0] == 9 or $_[0] == 12) { return " FIZZ!," ; }
    elsif ( $_[0] == 5 or $_[0] == 10 ) { return " BUZZ!," ; }
    else { return " $i," ; } }

ソースコード終了)

 

 関数(サブルーチン)を作り、ループの中をすっきりさせた

ワンライナーにこだわる必要がないので、多少長くなっても問題ない)。

 この関数の部分を日本語に変換すると次のとおりになる。

 

①16以上だったら15を引き、関数の最初の部分に戻す

②15以下で15だったら「FIZZBUZZ!!」を返す

③3、6、9、12だったら「FIZZ!」を返す

④5、10だったら「BUZZ!」を返す

⑤それ以なら数値を返す

 

 このプログラムでは剰余を用いていない。

 また、この関数はどんな数字を入力しても対応できる。

 そして、ちゃんと動く(実行画面は省略)。

 これなら、一応「ミッションクリア」と言えるだろう。

 

 この点、この関数には複数のreturnがある。

 だから、3項演算子を使って文字数・行数を減らすことができる。

 しかし、今回は文字数の縛りがない。

 また、3項演算子を使うとかえって分かりにくくなりそうである。

 よって、3項演算子は使わないし、その形に修正することもしない。

 

 また、今回は再帰関数を用いた。

 しかし、次のソースコードのようにwhileを使う方法もありそうである。

 

(以下、ソースコード

for ( $i = 1 ; $i <= 100 ; $i += 1 ) { print &FBoutput($i) ; }

sub FBoutput {
    $j = $_[0] ;
    while ( true ) {
        if ( $j > 15 ) { $j -= 15 ; }
        elsif ( $j == 15 ) { return " FIZZBUZZ!!,\n" ; }
        elsif ( $j == 3 or $j == 6 or $j == 9 or $j == 12) { return " FIZZ!," ; }
        elsif ( $j == 5 or $j == 10 ) { return " BUZZ!," ; }
        else { return " $i," ; } } }

ソースコード終了)

 

 どっちがいいかはよくわからない。

 まあ、両方とも書けて、かつ、動いたので、「両方正解」でいいかな。

 

 以上、「剰余を用いない」という条件もクリアできた。

 他にも面白い縛りがあればやってみたい。

 

 また、今回はPERLを用いたが、「練習」という点を考慮すれば、RUBYやPYTHONでもチャレンジすべきかもしれない。

 特に、「①剰余は使わない。②if等を用いず3項演算子を用いる。③再帰関数を必ず用いる。」という条件で書くというのは練習になりそうである。

 このブログを公開した後にでも挑戦しよう。

 そもそもRUBYやPYTHONについては「特に何かを参照することなくプログラムを作成できるようになる」という目標もあることだし。

*1:!($i%3

*2:!($i%5

「簿記3級」の資格を取ったときのこと

1 はじめに

 少し前、「会計に関する資格を取ろう」ということで簿記3級の資格を取った。

 そこで、記憶を掘り返してそのときのことを書く。

 簿記3級に関心があればさっと読んでみてほしい。

 

2 動機

 まず、簿記3級の資格を取ろうと思うに至った経緯から説明する。

 私が簿記3級の資格を取ろうとした目的は次の2点になる。

 

① 会計・経済の勉強がしたい

② 「資格を取る」という行為を通じて勉強する習慣をつけたい

 

 まず、私はこれまで会計や経済の勉強する機会がなかった。

 そこで、「一度、会計や経済に関する勉強をしたい」と思った。

 

 ただ、「勉強をするなら、何らかの客観的・具体的なものを残したい」と考えた。

「本を読んで勉強した」だけでは主観的な意味はあっても客観的な意味はほとんどない。

 そこで、「勉強をして資格を取る」ことを目標にした。

 

 次に考えたのが「何の資格を取るか」

 会計・経済に関する知識がないため難しい資格を狙うと挫折する。

 そこで、簡単な資格を狙うことにした。

 また、「簿記」については「昔一度取ろうと思って書籍を買ったものの1ページも読まない」ということがあった。

 そこで、「じゃあ『簿記』を真面目に勉強しよう」ということになった。

 

 最後に悩んだのが「2級か3級か」である。

「3級と2級は同時に受けられる(当時、午前中に3級を受け、午後に2級を受けることができた)」ので「3級の試験も受ける」ということにした。

 

 あと、「平成が終わり、令和になる」ということで「継続的に勉強する習慣を身に着けたい」と思った。

 そして、「勉強する以上、何か成果を残したい」と考えていた。

 これも背景にある。

 

 以上の経緯を経て、簿記3級の勉強を始めた。

 

3 利用した教材

 私が使った参考書は次の2冊である。

 ただし、リンク先の書籍は最新版であり私が本当に買った本は当時の版である。

 

 

 これは教科書(インプット教材)である。

  

  

 こちらが演習教材(アウトプット教材)である。

 

 私はこの2冊以外に手を出さなかった。

 この2冊があれば簿記3級対策は十分である。

 

 確かに、別の参考書という選択肢は全然ある。

 相性の問題もある(必ずある)し、他の参考書と比較してこの本を選んだわけではない(私はこの2冊を特に考えずに選んだ)ので、「この2冊がおススメ」とは言わない。

 しかし、「上の2冊の他にさらなる何かが必要」と考える必要はない。

 もし必要な部分があるならば、それはこの本よりも細かい知識ではなく、簿記へのイントロダクションの部分である。

 ただし、私の場合、この本にある簿記の導入・入門部分で充分だった。

 

4 勉強内容 

 教科書を用いた学習方法は次のとおり。

 

 教科書を読み、書いて覚え、問題演習で記憶を定着化させる。これを約3回繰り返す。

 

 学習の方法は「理解」と「暗記」であるところ、「私は忠実に実行した」としか言えない。

 それから、今回は「理解」→「暗記」の順番だった。

 

 また、簿記3級の勉強は「教科書の勉強」がその大半を占めた。

 上で「2冊あれば十分」と述べたが、内容に関しては教科書1冊でもほぼ十分であると言える。

 

 次に、演習教材に関しては試験直前に1回過去問・予想問題を解いた。

 そして、ミスったところを復習した。

 

 予定では問題集を3周する予定であったが、1周しかせずに終了。

 教科書による勉強が十分だったせいか1度で充分だった。

 また、教科書による勉強に時間を割きすぎたせいか繰り返す時間もなかった。

 

5 試験について

 資格試験というものは久しく受けていなかったため、試験本番は緊張した。

 ただ、十分な準備ができたせいか75分足らずで問題を解ききってしまい、あとは適当に時間をつぶしていた。

 

 そして、結果は合格である。

 

6 感想 

 簿記3級の勉強はやってよかった。

 具体的なメリットを挙げると次の感じになる。

 

「過去に身に着けていた習慣が今でも使えることが確認できた」

 「資格が一つ増えた」

複式簿記の考え方が身に着けられた」

「簿記2級を狙う上で重要な足場になった」

 

 確かに、資格を取るということはお金(受験料+教科書代)と時間がかかる。

 特に、時間については決して少なくない。

 しかし、今回に関してはそれに見合う代価は回収できたと判断している。

 

 特に、簿記2級からスタートしなくてよかった

 もし、最初から2級を目指したのであれば(昔買った書籍も2級の参考書であった)挫折していたし、3級すら取れなかったと思っている(この点については別の機会で)。 

 

7 反省点

 反省点としては「時間をかけすぎたかな」・「気負いすぎたかな」というのはある。

 簿記3級に合格できず目標が達成できなくてもせいぜい投入したリソースが無駄になるだけなので、もっと気楽に考えてもよかったとは思っている。

 

 

 以上、簿記3級に受かったときのことを述べた。

 ありきたりのもので恐縮だが、よかったら参考にしてほしい。

 

8 追伸

 最後に、勉強中に私が思った感想を。

 

1、決算時の費用・収益の調整について「仕訳編」で学んだときは非常に難しかった。ただし、ここで得た知識を用いる場所は仕訳ではなく精算表の処理のときである。精算表を見ながらであればそれほど難しく感じなかった。

2、簿記3級の教科書は大枠として仕訳・帳簿・決算に分類される。ページで見た割合だと仕訳の割合が多いが、帳簿や決算もページ数の割合に劣らず大変である。また、試験の出題内容から見ても大事なのは後者である(仕訳の問題は大問5つのうち1つしかない)。

3、理系の人だから敬遠する必要は全くない。むしろ有利ではないかとさえ思える。

FIZZBUZZプログラムを書いてみる

 プログラミング界隈では「FIZZBUZZ問題」という非常に有名な問題がある。

 

ja.wikipedia.org

 

 この「FIZZBUZZ問題」とは「コンピュータの画面(コンソール画面)に『FIZZBUZZゲーム』の結果を表示させるプログラム」を作る問題である。

 今日はこの「FIZZBUZZプログラム」を現在学習中の言語や現在活用中の言語を用いて書いてみる。

 

 最初に、元のFIZZBUZZゲームについて確認する。

 ゲームのルールは次のとおりである。

・最初のプレーヤーは「1」と発言する。

・次のプレーヤーは原則として直前のプレイヤーが発言した数字に1を加えた数字を発言する(直前のプレーヤーが1であれば「2」と発言する)。ただし、①その数字が3の倍数である場合はその数字の代わりに「FIZZ」と発言し、②その数字が5の倍数である場合はその数字の代わりに「BUZZ」と発言し、③その数字が3の倍数かつ5の倍数である場合はその数字の代わりに「FIZZBUZZ」と発言する。

・言い間違えたら脱落。

 ゲームではプレーヤーが数字・FIZZ・BUZZ・FIZZBUZZと発言する。

 他方、プログラミングのFIZZBUZZ問題ではプログラムを書いて実行することでそれらをコンソール画面などに表示させるわけである。

 

 というわけで、早速チャレンジ。

 最初はPERL言語で書いてみる。

 PERLは私が長年利用していたプログラミング言語である。

 よって、これで書けないとなるとお話にならない。

 

(以下、ソースコード

my $i = 1 ;
while ( $i < 101 ) {
    if ( ! ( $i % 15 ) ) { print "FIZZBUZZ," ; }
    elsif ( ! ( $i % 3 ) ) { print "FIZZ," ; }
    elsif ( ! ( $i % 5 ) ) { print "BUZZ," ; }
    else { print "$i," ; }
    if ( ! ( $i % 10 ) ) { print "\n" ; }
    $i += 1 ;
}

ソースコード終了)

 

 何も見ないでサクッと書けた。

 上のプログラムを実行した結果は次のとおりである。

 

f:id:Hiroringo:20210302230237j:plain

 

 教科書などを一切見ないで書き、無事に動いた。

 めでたしめでたし。

 当分の間、FIZZBUZZ問題に出会ったらPERLで書くことにしよう。

 

 もっとも、PERLで書けるのは当然である。

 次に、最近学習し始めた言語でチャレンジする。

 まずはRUBYで。

 

(以下、ソースコード

def fizzbuzzoutput ( x )
    if ( x % 15 == 0 ) then
        print "FIZZBUZZ!!"
    elsif ( x % 5 == 0 ) then
        print "BUZZ!"
    elsif ( x % 3 == 0 ) then
        print "FIZZ!"
    else
        print x
    end
end

for i in 1..100 do
    fizzbuzzoutput ( i )
    print " , "
    if ( i % 10 == 0 ) then
        print "\n"
    end
end

ソースコード終了)

 

 タグ下げが微妙だがこんな感じか。

 上のプログラムの実行結果はこちら。

 

f:id:Hiroringo:20210302230822j:plain

RUBYで書いたFIZZBUZZプログラム

 ちゃんと動くプログラムが書けた。

 ただ、覚えていない部分があって、その点は教科書等を見た。

「コンソール出力・if文・ループ・関数」レベルのことについて何かを参照しないとプログラムが書けないというのは少々まずい。

 暗記するための時間を取らないとダメか。

 

 次はPYTHONで書いてみる。

 

(以下、ソースコード

i = 1
while i < 101 :
    if ( not ( i % 15 ) ) :
        print ( "FIZZBUZZ!! , " , end='' )
    elif ( not ( i % 3 ) ) :
        print ( "FIZZ! , " , end='' )
    elif ( not ( i % 5 ) ) :
        print ( "BUZZ! , " , end='' )
    else :
        print ( str(i) + " , " , end='' )
    if ( not ( i % 10 ) ) :
        print ( "" )  i += 1 
ソースコード終了)

 

 上のプログラムの実行結果はこんな感じ。

 

f:id:Hiroringo:20210302232115j:plain

pythonで書いたFIZZBUZZプログラム

 これもちゃんと動いた。

 ただ、こちらも「何も見ないで書く」ということはできず。

 RUBY同様、暗記のための何かをすべきか。

 

 最後はC++で書いてみる。

 C++も長年私が利用している言語である。

 

ソースコード

#include <iostream>
using namespace std;

int main ( ) {

    for ( int i = 1 ; i < 101 ; i++ ) {
        if ( ! ( i % 15 ) ) { cout << "FIZZBUZZ!! , " ; }
        else if ( ! ( i % 3 ) ) { cout << "FIZZ! , " ; }
        else if ( ! ( i % 5 ) ) { cout << "BUZZ! , " ; }
        else { cout << i << " , " ; }
        if ( ! ( i % 10 ) ) { cout << "\n" ; } }

    return 0 ;

}

ソースコード終了)

 

 プログラムをコンパイルして実行した結果はこんな感じ。

 

f:id:Hiroringo:20210302233122j:plain

CPPで書いたFIZZBUZZプログラム

 これもちゃんと書けたかな。

 めでたしめでたし。

 

 さて。

 今回は「プログラムを書く」ことが目的であり、その方法にこだわりはなかった。

 そのため、どれも似たようなプログラムになった。

 

 もっとも、ウィキペディアの記事によると、色々な「縛り」があるらしい。

 

「制限時間2分以内」「剰余(%記号等)を用いない」「1行でできる限り短く(ワンライナー)」等の縛りでゲーム条件を満たすコード記述の腕試しをする者が続出した。


 最初の「制限時間2分以内」についてはPERLやC++であれば書けるだろうが、他の言語だと怪しい。

 ちゃんと記憶のための時間を取らないと。

 

 次に、「剰余記号(%記号等)を用いない」についてはどうやるのだろう。
 ちょっと頭を使う必要がありそうだ。

 さらに、「1行でできる限り短く(ワンライナー)」については何をすればいいか今の段階では想像ができない(多分3項演算子を使うのだろうけど)。

 これらについても近々挑戦してみようかな。

ブログ、始めました

0 この記事の更新履歴

・2021年3月1日

 当記事を公開

・2021年6月28日

 このブログのタイトルを「薫のメモ帳」に、ブログの名義を「桐生薫」にそれぞれ変更

・2021年7月28日

 ブログ全体から「あるカテゴリー」に属する記載と記事を削除し、代替記事に差し替え

 

1、はじめまして

 初めまして。

「桐生薫(きりゅう かおる)」と申します。

 ちなみに、日本人っぽい名前ですが、実名ではありません。

 

 この度、ブログを始めることにしました。

 よろしくお願いします。

 

 この記事はこのブログの最初の記事ですので、このブログに何を書くかを示していきます。

 よかったら、最後までお付き合いいただけると幸いです。

 

2、このブログの指針 

 このブログはいわゆる「メモブログ」です。

 よって、このブログの内容は

 

① 私が学習したこと

② 私が考えたこと

③ 私が経験したこと

 

です。

 

「ブログの対象読者」などは特に意識していません。

 メモですから。

 

 この点、最初は「ブログに書く内容が『メモ』でいいのか」と考えました。

 読者に役立つような内容のブログを書くべきではないか、とか。

 アクセス数などを意識したブログを書くべきではないか、とか。

 

 そう考えて、ブログの方針についてグーグルで検索して情報を集めました。

 しかし、情報を集めて考えたのは、、、

 

 無理っす。

 そういう意図でブログを作っても長くは続かない。

 

 そこで、「『メモとしてのブログ』というのはありか」と考えてネットを検索したところ、次のNOTEを見つけました。

 

note.com

 

 上のNOTEを見て思いました。

 別に「メモとしてのブログ」でも問題ない、と。

 よって、「メモブログとしてこのブログを始めます。

 

3、具体的に書こうと思っていること

 とはいえ、書きたいテーマがないわけではありません。

 それについていくつか書いていきます。

 

1、読書メモ

 2021年になって私は「本を読む」こと日課にしました。

 そして、1月と2月の間に12冊読みました。

 

 もっとも、「本を読むだけ」・「重要だと判断したところにマーカーを引くだけ」・「後で見返したい部分に附箋を貼るだけ」では内容を理解しているかどうかわからない。

 そこで、読んで理解したこと、考えたことをこのブログに書きます。

 

 もちろん、書くのはメモです。

 よって、書評(レビュー)を書く気はありません。

 

「この本を内容を私はこのように理解した」

「この本を読んで私はこう考えた」

 

ということを書きます。

 

 なお、最近、私は山本七平氏と小室直樹に関心を持っている(二人とも故人)ので、お二方の書籍について言及する可能性が高いかもしれません。

 また、下の自己紹介の項で取り上げた『日本はなぜ敗れるのか ー敗因21か条』については細かく取り上げるつもりではいます。

 

2 プログラミングの学習メモ

 最近、私はプログラミングの勉強を再開しました。

 その関係でプログラミングに関するメモもこのブログで書く予定でいます。

 

 もっとも、私はこのブログを技術ブログにするつもりはありません。

 私は「技術ブログ」を書けるような技術を持っていないので、技術ブログになるようなものを書けません。

 あくまで私がこのブログで書く内容は「私が学習・理解したこと」です。

 

 よかったら、これからも覗いてもらえれば幸いです。

 

4、ブログの中の人について

 最後にこのブログの中の人について簡単に紹介します。

1、性別

 男性ですっ

2、血液型

 B型ですっ

3、最近読んだ本

『日本はなぜ敗れるのか ー敗因21か条』(山本七平著、角川書店、2004)

 

 

『図解ピケティ入門』(髙橋洋一著、あさ出版、2015)

 

 

統計学が最強の学問である』(西内啓、ダイヤモンド社、2013)

 

 

『現代語訳・福翁自伝』(福沢諭吉斎藤孝編訳、ちくま新書、2011)

 

 

4、ブログを続ける上での目標

 目標を作らないと三日坊主になるので目標を決めます。

 また、内心で目標を立てても外部に宣言しなければ目標を破りたい放題になるので、ここに決めた目標を書いておきます。

 

① 年間で100以上の記事を作成する

② 1記事の文字数は2000文字以上とする(分量の下限の設定)

③ 5年間このブログを続ける

 

 とりあえず、このラインを目標に頑張ります。

5、最近見ているテレビ番組

 私は自分の部屋にテレビがないこともあり、あまりテレビを見ません。

 しかし、一つだけ毎週見ているテレビ番組があります。

 それは「英雄たちの選択」というNHKの番組です。

 

www.nhk.jp

6、好きな言葉

「駒得は人を裏切らない」(将棋のプロ棋士森下卓先生)

「学者勉めざるべからず」(福沢諭吉学問のすすめ』より)

 

7、(ひそかに)私淑している人物

 2021年の段階で私淑しる人は次のとおりです。  

 

ja.wikipedia.org

  

ja.wikipedia.org

  

ja.wikipedia.org

 

 なお、昔に私淑していた人は省略。

 機会があれば、日記として書くかもしれません。

 

 

 自己紹介は以上です。

 今後ともよろしくお願いします。