2021年03月31日

プログラミング教育について

昨日の続きで、プログラミング教育について。
私はプログラマーではなかったが、コードを書くのは好きだったし、もしもプログラムを職にしたなら、超とまではいかないにしても、一流のプログラマーにはなっていただろうなと思う。
超のつく一流というのはイノベーティブなプログラマーであって、例えばGoogleの分散ストレージのコードを2週間くらいで書くような天才的な人間である。

論理的思考を身に付けるという目的で、プログラムを通して見につけて欲しいことは2つある。

一つ目は変数の領域の概念。
ローカル変数とグローバル変数で、その変数が有効となる領域の範囲。
領域の思考法は実社会でも非情に役に立つが、周囲の人間(プログラミング経験あり)で変数の領域をきちんと意識していたと思える人間は少ない。それはコードを見て言うのではなく、会話や仕事ぶりやその他の振る舞いを見て感じたもの。仕事の責務や境界線とか、ルールをどの範囲に適用するかと言ったような、基本的な考え方である。
この考え方ができていない人間はプログラムの変数領域の問題も真剣に取り組んでいないことがわかる。

スクリプト言語のような変数の型や領域を曖昧にするような言語では身に付かない。

二つ目は構造化。
これはいい具合の機能単位を局所(関数)にまとめ、それを誰の目にも明らかにわかりやすい形で呼び出すという構造化。
構造化できずにダラダラとロジックを書いても「論理的な思考」を養ったことにはならない。

実はこの2を実現するということは、別の側面から見れば「保守性の高いコード」を書くということになる。
保守を意識するのは、例えば人の書いたコードを自分がメンテしなくてはらない時に、「どうしてこんなわかりにくコードを書くんだ」と呪ったり、うっかりとバグを踏んだりするような時に学習できる。

だから新しいプログラムを書いて、はい、あなたの書いた命令でロボットが動きましたね!おめでとう!!
みたいな教育では何も論理的な思考は身に付かない。
それよりは数学の証明問題を解く方がよっぽど論理的な思考が身に付く。
(その時間を削って、子供にプログラムをやらせようというのですか!?)

保守性の高いコードのアナロジー。
自分が同じ職場や同じクライアントの下で永続的に働くわけではない。
でも自分がいなくなっても仕事の影響力が長く残るような仕事をするべきである。
もちろん正しい仕事であることが条件。

その場しのぎの仕事ではなく、自分の影響力が残るためには、単純なアウトプットではなく、なぜそのようなアウトプットを出したのか?どういうプロセスの下で出力したのかというルールを定義する必要がある。それが抽象化の能力。
抽象度が高まれば汎用性が高まり永続度も高まる。

保守性の高いコードを書く人は、仕事においても同じことをしようとするはずである。
もしもこの2つの行為に相関性が無いのであれば、学校教育にプログラミングを取り入れる意味は全くない。

ただ、本当に相関性があるかどうかはわからない。
文科省の人間がそれをわかってプログラミングを導入しているのかもわからない。

ただ、IT化=プログラミングだと思ってるだけなのかもしれない。哀しいことに。





posted by しもす at 23:23| Comment(0) | 教育

2021年03月30日

なぜプログラミングを必須科目とするのか?

最近の社会現象とプログラミングについてはいくつかの疑問がある。
まずは、なぜプログラミングを必須科目とし、2025年の共通試験から導入されるのか?

必須とすることで何をプログラムに期待しているのか?
文科省は日本人をプログラマーに養成したいのか?
他の教科に比べて、英語は教養というよりは実用を目指しているようである。
ところが学校教育に実用を持ち込むと、必ず目的がブレる。
本当は国語、社会、数学、理科といった、一見「実用性のない」科目の方が、学校教育にフィットしている。
実用であれば効果を問われるが、基礎能力、教養であれば測定が難しいから、批判もしにくい。

プログラミングも教養というよりは実用を狙ったものであることは間違いない。
でも、今更日本人のプログラマー率を本気で高めようとしているなら、愚の骨頂である。
日本人の労働単価は東南アジア諸国では未だ高い方である。
ところが、中国をはじめとして、東南アジアには日本人よりもはるかに優れたプログラマーが大量に存在する。
しかも単価が安いから、コスト競争では勝てない。

15年くらい前から、そのうち日本人はプログラマでは飯が食えなくなり、大量失業時代がやってくると思っていたが、未だにそこまで悲惨な世界にはなっていない。これも不思議だが、コストパフォーマンスの悪い日本人のプログラマーを、旧日本企業が吸収して、生産性を一向に高められないのでは?という構図だろうか。

今でも言われていることだが、プログラミングは単なるコンピュータ言語の習得ではありませんとも言われている。
プログラムを極めたことも無い無知な大人が単なるとはよく言ったものだが。

では何を習得するのか?一つは論理的な思考能力。
これもおかしい。私の周りには数年、数十年プログラムを職とした人が多くいるが、論理的に会話ができる人は極めて少ない。
百歩譲って多少の論理的な能力はつくとしよう。でも論理的な能力であれば、国語の読解力や数学の証明問題でも論理的な能力は養える。なのになぜプログラム言語を使って論理的力を養おうとする?

共通テストの科目になるからと言って、プログラミングをさせるのではない。マークシートである。
英語の4技能もそうだったけど、ヒアリングを入試に取り込もうとしても、ヒアリングのテストが実行できない。
結局ロジの問題で当初「崇高」だった志が崩れてしまう。

マークシートのプログラミングテストって一体文科省は何をしたいのか?

学校の教師はプログラミングの知識もないから、にわか勉強で即席の似非教師が作られる。
費用はないので、機材も揃えられず、チープな授業となる。

結局喜んでいるのは、大手の塾だけである。
誰かこの謎を解いてほしい。

posted by しもす at 23:08| Comment(0) | 教育

2021年03月28日

初決算のこと

2月末が初年度決算締めである。
決算で税理士を頼むべきかどうかを悩んだ。

頼めば20万くらいいるだろうか?
でもうちはちゃんと帳簿を付けていたし、毎月末に口座との突き合わせをやっている。
複雑な売掛も発生していない。
減価償却資産もない。
商品在庫もない。
金融資産もない。
従業員は2人だけ。
こんなシンプルな会計なのに、売り上げ規模だけで価格が決めるのはもったいない。

じゃあ、やっぱり自分たちだけでやってみようということで、税理士を頼まないことにした。

まず参考にしたのは『法人税申告書と決算書の作成手順』Amzonで3千円。
たった3千円の本だけど、内容が半端ないくらい詰まっている。
405ページ108ステップの手順があり、それぞれ詳しい説明が付いている。
まずは、Trelloの「決算」ボードを作って、108のステップを登録。
要否を分けるとだいたい半分くらいが必要な作業であることがわかった。

2月末に令和2年の帳簿を締めて、決算書作成に取り掛かった。
毎月銀行口座と帳簿が一致することは確認していたので、そこには問題はない。
役員借入金も毎月合わせているつもりだったが、初期の段階でずれていたことがわかった。
役員借入金はどうやって合わせるのかこつが掴めないままだったのだけど、毎月の貸借対照表を見れば良かったのだな。
今期は役員借入金が繰越になってしまったが、来期から問題なし。

freeeで貸借対照表と損益計算は自動で作ってくれる。
この数字と帳簿、銀行口座明細を突き合わせてみればおかしいところがあっても気づくことができる。
(実際登録漏れや引き落とし口座のミスがあった)

そしてきれいな仮決算書の作成。
ここまでに週末2回を使う。

納税申告関係書類は、どこがゴールなのかまだぼんやりとしていた。
ここでの救世主はfreee。初めて決算する人のためにWebセミナーを開いてくれた。
1時間半くらいのセミナーだが、これの中で、重要なのは別表1、4、5だというのがわった。

また、納税申告書類をEXCELで提供してくれている税務署のサイトがあった!
利益を入れると税額を自動計算してくれる。
切り捨て桁が計算箇所によってあちこち違うので、これを税務署の説明書類を見ながら作るのは至難の技である。
それを自動でやってくれるからありがたい。(というかそんなものを納税者にやらせるなと言いたい!)

これでほぼ納税申告書類に関してもほとんど理解できた。
ここまでがさらに週末1回。

そして本日e-taxに挑戦。
アプリをダウンロードして、基本情報と別紙1を入力してみた。
相変わらずのダサいインターフェースにはもう慣れた。
一応ちゃんと自動計算してくれるから良しとしよう。(もう少し自動化できるところはあるんだが・・)
これでほぼ電子申告できることはわかった。

あとはeLTAXをやればもう安心かな。
というわけで、税理士抜きの決算と納税に光が見えた!
続きを読む
posted by しもす at 15:33| Comment(0) | 日常