![見出し画像](https://assets.st-note.com/production/uploads/images/102516279/rectangle_large_type_2_450e8855c04a6bd5ac1cc4139d96b79c.png?width=800)
自分が今までプログラミングだと思ってきたものは、もしかするとプログラミングではなかったのかもしれない#177
プログラミングスクールのCMとか、エンジニア系のyoutuberとか見すぎたのかなと思いました。
はじまり。
最近、AIがブーム(?)なこともあり、図書館で以下の本を読んでいます。
この本の著者は、インスタの日本語化作業を担当していたエンジニアさんだそうです。
※本の感想をツイートをしたところ、著者さんから直接リプをいただくことができました。これは本当に嬉しかったです。こうやって、本を媒介にして、いろいろな方と繋がる事が出来るのは、とても嬉しいです。
この本は「教育」と名前がついている通り、親が子供にデジタル教育をする際のデジタルリテラシーを高める本・・でもありますが、それ以上に「プログラミングとは何か?」や「プログラマーの思考(アプリを作るときはだいたいこんな感じで考える)」などを学ぶのにとても最適な本でもありました。 (むしろそれを全面に押し出してもいい気もするくらいの良本だと思います)
選書ってタイトルだけじゃわからんな。
本の中に書いてあったことで面白かったこと。
1.コンピュテーショナルシンキング(プログラミング的思考)
・物事を抽象化して本質をとらえる
・複雑な事象は分解して考えた後に、ひとつに合体して戻す
・一般化・パターン認識(類推、アナロジー)
・アルゴリズム的思考方法
2.エンジニア的思考
・科学的に考える(これはとても良かった。仮説検証の大切さ)
・論理的に考える。
・コミュニケーションに注意する
・縦横高さを考えて、物事を立体的にモノを見る。
など。
一番面白かったのは「複数人が参加するテニスのシングルスの対戦表をランダムにつくるアプリを作るとしたら、我々(プログラマー)は、だいたいこんな順番で考えていきます。(例)」と、アプリ作成における思考の例が細かく丁寧に書いてあったことでした。
(大枠を考える→そぎ落とす→メリットデメリットを考える→とりまつくる→リリースしてフィードバックをもらう→改善・・的な感じ(確か))
3.アルゴリズム
界隈の方から見ると聞き慣れた言葉なんでしょうけれど、プログラミングという言葉に対して、謎に夢を見てきた自分からすると、ここまで丁寧に解説をしていただいたのは初めてで。
アルゴリズムというのは、課題を解決するために使用する手順、解法みたいなものです。
ちなみに著者さんのスタンスは、「まず、コンピュテーショナルシンキングを得て、その後必要に応じてコードを書けば良い」という感じ。
なるほど、何かを作りたいと思いついて、どのアルゴリズムを使うかまで落としこめれば、あとは適切な言語を選択してコードを書けばいいだけなのか。
だって、頭の中に設計図は出来ている訳だから。
プログラミングについての長年の違和感がようやく払拭出来た気がしました。
と同時に、「あれ? ○○キャンプとか、初心者でもわかるプログラミングとかにアルゴリズムって言葉、一切出てこないよな?」って思いました。
4.コンピュータの歴史と基礎。(追記)
最終章。初めてのコンピュータ?が出来てから、今日に至るまではざっくりと「高性能化」と「小型化」の歴史であったこと。
そして「コンピュータは1と0で動くものであり、何か操作が行われるたびに、膨大な0と1の命令がパソコンに対して行われて、その結果が画面上に現れる。
同じ端末の中で、様々なソフトやアプリが動かせるのは、プログラムを使って都度、指示命令の経路を変えるようにしているから。
ここで、初めてプログラムって言葉が出た。
なるほど、プログラムってそもそもそういう意味なのかと。
最終章を読むと、パソコンやスマホへの見方というか価値観がかなり変わった気がしました。
スマホをタップしたり、キーボードをたたいたり、マウス操作をしたその裏では、内部で様々な複雑な処理が瞬時に走って、結果として文字が出てきたり、マウスカーソルが動いたりするのだなとわかりました。
もっとぱそこんちゃんを大事に扱おうと思いました。(ほんと)
今まで自分が触れてきたプログラミング。
わたしが、いままで見てきた「初心者でもできるプログラミング!」的なやつは、「とりあえずコードをいっぱい書いてみよー」「まずはHello worldから!」ってやつが多かった気がします。コード覚えろ。タグ覚えろ。その都度調べろ的な。
いや、確かにそれはそうなんだけどさ。
コードなんて全部覚えてられないから、都度調べるのは間違いじゃないんだけど、その前に全体図とかイメージせえへんの?って。頭の中に設計図は無いの? プログラミングって頭脳労働だよね。それ肉体労働と同じやんけ。って感じ。
ま、自分が知らなかっただけだよな。
世の中は広い。
本の中で紹介されていたこと
あくまで「教育」本ということもあり、プログラミング(アルゴリズム)を学べるいろいろなアプリが紹介されていました。やってみたけど面白かった。あと、子供向けのプログラミングサイトも紹介されていた。これは、自分が知っているProgateとかとは違い、アルゴリズム(問題を解く手順)を学ばせることを重視しているなと感じた。
本当にプログラミングをやるなら、こっちからやった方がいいのかも知らんな。
ちなみに、読書サークルの人にこの話をしたら「それってコンピュータサイエンスとか、計算機科学ってやつですよ」って言われた。
世の中広すぎやん。 ウケる。
おわりに
佐川急便の倉庫でアルバイトをしていた時、荷物に貼られる伝票番号がどの地域に対応しているのか、全国ほぼすべてを暗記したことがあります(未だにわりと覚えている)。
北海道が9・・
東北が8・・
関東が7・・ とかってやつです。
倉庫の仕事なんて、別に伝票番号なんぞ覚えなくても仕事は出来ます。単純作業だから。
でも、そういうことを知っておくと、ドライバーのおっちゃんとかと仕事面においては、少し高度な会話が出来るようになって楽しいです。
プログラミングもそうで、別にアルゴリズムなんぞ知らなくてもコードは書けるんだろうし、仕事は出来るんだろうけれど、アルゴリズムとかを知っていた方が、もっと楽しくプログラミングをすることが出来るんだろうなと思った。
おしまい。
※アルゴリズムがいっぱいのってるよー。
この記事が気に入ったらサポートをしてみませんか?