プログラミングって何?
・プログラミングをたくさんの人が学ぶようになった
仕事だけではなく教養として学ぶ人もいる
・プログラムの理解なしにビジネスをやるのは不利な時代になった
プログラミングを理解していることは、あらゆる意思決定の土台になる
・あらゆる産業がテクノロジーの影響を受けている
その流れは今後さらに加速する
プログラムが動くイメージがつかめているだけで正しい意思決定ができる
プログラミングはビジネスをやる上での一般教養
・今回の話で、実際のプログラムコードは見せない
ゴールは、ざっくりプログラミングを理解してもらうこと
プログラミングをかじったことのある私には、マコなり社長のおっしゃる意味がよくわかります。
私の仕事はとてもアナログです。未だにパソコンに対して抵抗感のある人もいます。それでもここ数年でガラッと世界が変わりました。
私が提案したデジタル化が次々と実現しました。今日の予定表のデジタル化と共有、会議場所などの予約のデジタル化、リモートによる交流などです。
先日、外部との連絡にホームページの活用を提案したのですが、却下されました。トップの判断でした。しかし、これで引き下がる私ではありません。却下の原因となったポイントを修正して再提案します。
行動あるのみです。
プログラムなんて簡単
・プログラムを難しいと思ってしまう理由
「人間の感覚」と「機械の感覚」の違いを理解できていないから
人間と機械では情報処理の仕方が全く違う
・人間は曖昧なものを曖昧なまま理解できる
機械は具体的なものしか理解できない
・人間の能力はとんでもない
手で物をつかむということは偉業
機械が「手で物をつかむ」を見たら、涙を流して感動する
人間が5本の指を使って何かをつかむということはすごいこと
・人間は「手を開く・閉じる」という抽象的な言葉で終わり
でも、具体的に言えば
①親指の第一関節を秒速何キロで何度曲げて何グラムの力をかけて
②同時に第二関節を秒速何キロで何度曲げて何グラムの力をかけて
③同時に人差し指の第一関節を・・・
以下ずっと続く
・物をつかむときには、手首・肘・肩・体全体が動く
力加減やスピードも絶妙なバランスが必要になる
・人間がいかに膨大な変数を同時で並列にコントロールしているかを理解してほしい
私達が何気なくやっている動作は奇跡
・機械には無理
具体的に指示しないと動かない
1つでも間違っていたら終わり
・プログラミングは複雑なものだと思われている
複雑に動いているのは人間の方
プログラミング自体は簡単
人間が考えいていることをプログラミングに直すことが難しい
この話がとても面白くて、参考になりました。プログラミングの説明は、この動画が最高です。
プログラミングを難しいと感じる6つの理由
①何から始めればいいのかわからない
②プログラミングに対する苦手意識が強い
③プログラミング言語の種類が多すぎる
④コードをすべて理解しようとしてしまいがち
⑤プログラミングで手を動かす段階に至らない
⑥プログラミングの大量のエラーに心が折れる
人間のすごいところは曖昧さ
・曖昧に理解することは機械には絶対にできない
人間は、犬と猫を見分けられる
子供も見分けられるが、犬と猫の厳密な見分け方を教えられたわけではない
犬と猫の見分け方は厳密に考えると難しい
・人間は曖昧なものを曖昧なまま情報処理できる
機械も曖昧なものを曖昧なまま理解できるようになりつつある
・機械に指示をする言葉がプログラム
プログラミングはプログラムを書く行為
・機械はザックリ言えば電気が通っている通っていないしかわからない
電気が通っているを1
電気が通っていないを0
この1と0がずらっと並んだ情報が機械が唯一理解できる言葉
・1と0だけでは人間が理解できない
機械の言葉に翻訳可能な人間の言葉がプログラミング言語
機械は超絶具体的に指示しないと理解できない
プログラムを書こうとすると人間が曖昧にしていたものを全部具体的にしなければいけなくなる
例外もメチャクチャある
プログラミングで動くものを作ることはとんでもなくすごいこと
・LINE・Instagram・YouTube・Twitterなどには血の匂いがする
エンジニアたちが血を流しあげながら書いた膨大なプログラムの集大成
簡単なサービスでも作ろうとするとバグだらけになる
バグれば文句を言われる。動くのが当たり前と思われているから
脳 | コンピュータ |
アナログ | デジタル |
連想記憶装置 | メモリのバイト単位でのアドレス指定が必要 |
大規模並列処 | モジュラ型かつ逐次処理 |
処理速度は一定ではない | システムクロックで一定 |
短期記憶は長期記憶へのポインタを持つ | RAMでの短期記憶はデータ自身を持つ |
短期記憶量の上限は一定ではない | RAMの記憶容量は一定 |
プログラムのすごいところ
機械 | 人間 |
疲れない | すぐに疲れる |
忘れない | すぐ忘れる |
・機械の持つ疲れない、忘れないという能力は絶大
私が経験したプログラムのすごいところと大変だったことを書こうと思います。
私はExcelマクロを少し使えます。昨年度、情報係への異動を希望するときに、自分をアピールするため業務外の仕事を請け負いました。それが、Excelマクロを用いた一覧表から個別表へのデータのコピーの自動化です。
一覧表には、個人の名前が縦に並んでおり、それに対しての今年のデータが記録されています。その数は膨大で一人につき50以上もあり、内容も似ているのです。それを昔の年度の分が蓄積されている個別表に入力していかなくてはいけません。人間がやると必ずミスが起きます。単調な作業で気が遠くなりそうです。
しかし、このような量が膨大だが、単調な作業というのはコンピュータの得意分野。Excelマクロで処理できます。プログラミング自体は好きなので、基本となるプログラミングは楽しく行うことができました。動くものにするのにそんなに時間はかかりませんでした。
大変だったのは、微妙な修正です。部署によって項目の内容が違っていたり、数が違っていたりします。そして、この変更によってバグが起きるのです。プログラミングの大変なところは、タイプミスを見つけること。タイプミスは、簡単に見つかりそうに思えますが、人間には思い込みという恐ろしい能力が潜んでいます。「間違っていないはず」という思い込みでミスを見逃してしまうのです。
あとは、運用の問題。最初にマクロをかけさせてほしいと言っていたのですが、勝手にデータを入力してしまう人がいました。それによって、保存したときのシートの前後によりマクロが上手く動作しないことが起こりました。コンピュータは例外に自動で対処してくれないので、人間が対処しなくてはいけません。例外への対処は本当に面倒でした。
プログラムはどこにあるのか
・スマホを使っているなら、プログラムはスマホとサーバーにある
・サーバーとは電源・ネットつけっぱなしのパソコン
・2種類のパソコン
①私たちが使うパソコン
②サーバーとして使われているパソコン
・基本的な処理はアプリ側で行う = フロントエンド
膨大なデータ処理はサーバー側で行う = バックエンド(サーバーサイド)
サーバーという言葉と概念は本当に難しいです。よほどすごいものを使っていると誤解している人たちもいます。データ量が膨大なので、保存する外部メモリは大きいので、それなりに大きくなってしまいますが、サーバー自体は複雑な処理をしているわけではありません。
コンピュータの苦手な人は、コンピュータは何が得意で、何が苦手なのかを理解できていません。だから、できそうなこととできないことの区別がつかないのです。コンピュータが得意な人は、ザックリとした理解ができているので、できそうなこととできないことの区別ができます。
今回の話は、コンピュータへのザックリした理解という意味でとても有益なものでした。
今日のアクションプラン
・デジタル化に向けた新しい提案文書を完成させる
今日のアクションチェック
今まで紙で白黒で行っていた広報をデジタル化する方法を提案しました。
デジタル化したときに問題になるのは、セキュリティとカラー写真の悪用です。
Googleドライブの共有機能を使って制限をかけるとダウンロードと印刷ができなくなります。
前回、却下された提案の再チャレンジをこの方法で行います。
コメント