betana's blog

betana’s blog

エンジニア歴10年超、現役の上場企業エンジニア/兼業起業投資家社長と学ぶ、プログラミング、ビジネススキル、投資ブログです

【スクラッチ】ビジュアルプログラミングってどうなの?Scratchが人気の理由 良さ|プログラミング独学で稼ぐ始め方|未経験からエンジニアに転職

f:id:betana:20210705165556p:plain

目次

ビジュアルプログラミングってどうなの?エンジニアからみた良し悪し

今や小学校義務教育でもプログラミングが始まっていますよね。 彼らは例外なくScratchやそれに類似したビジュアルプログラミングをしています。 ビジュアルプログラミングが教育にどう役立ち、役に立たないのかをずばり掘り下げていきましょう。

scratch

https://scratch.mit.edu/ f:id:betana:20210705170538p:plain

ビジュアルプログラミングは役に立つのか

ビジュアルプログラミグは様々な場面でプログラミングの手法として使われています。 それ相応の良さ使いやすさがたくさんありますので挙げていきましょう。

ビジュアルプログラミングが小学生で使われる理由

f:id:betana:20210705165950j:plain

  1. 見た目の分かりやすさはそれなりに高いこと
  2. 操作方法がドラッグアンドドロップで直感的なところ
  3. 文字タイピング能力を問わないこと

といったところでしょう。

さらに掘り下げていくと

ビジュアルプログラミングの良さ

  1. 見た目の分かりやすさはそれなりに高いこと
    • 命令バーが色別されてていて役割が理解しやすい
    • ブロック(分岐や繰り返し)の区間がコの字形の入れ物で分かりやすい
    • 命令やまとまった処理などが視覚的にひとまとまりになっていて分かりやすい
  2. 操作方法がドラッグアンドドロップで直感的なところ
    • 命令を一覧から選んで投げ入れるだけでいいので操作が簡単
    • まとまった処理を好きな場所に移動できて整理しやすい
    • 命令バーの形が使う場面や役割を示すので間違った使い方になりにくい
  3. 文字タイピング能力を問わないこと
    • タイピングの練習は小学校中学校いずれでも通常行わない(教育課程外になる)
    • プログラムコード単語の英語を習ってない

またよく玩具や教材になっているロボット制御もかなりの数がこのビジュアルプログラミングベースで制御できるソフトウェアが付属しています。 学校教育ではよくセンサーを見る、モーターを動かす、LEDを点灯させる、といった制御がビジュアルプログラミングでできる教材を使っています。 このように並べて考えるとプログラミングの仕組みを体験するのには、まさにちょうど良いように思えます。

本格的な学習にScratchを利用することもできそうです

ビジュアルプログラミングは役に立つのか

子供たちにとって、こういったツールなどを使ってでも自分のアイディアを形にすることは論理的な思考を育てる意味で大いに貢献するものでしょう。 ただ優秀なエンジニアがビジュアルプログラミング経験者だということは特にありません。 エンジニアを目指すと決めている人間にとっては不要だとは思います。 プログラミングの世界をお手軽に試したい人や教育に興味がある場合にやっていくのが良いでしょう。

ビジュアルプログラミングのデメリット

プログラムコード自体をビジュアルなブロックで組み立てること自体に思考の優劣はあまりなく、組み立てられることにどのくらい制限があるのかで経験できることが減ってしまいます。 またプログラムコードを整理し理解しやすくするいくつものテクニックが使えないのは知識経験で不足し、思考のリソースを状況把握に費やさなければならないこともデメリットとなります。 結局、プログラミングが理解でき使えることをある程度目指しているのであれば、テキストプログラミングに必ず向かいます。

やり込むのであれば難易度は高い

前にも述べたように、簡単に操作できて理解しやすいのですから難易度が高いわけはないとお思いでしょうか。 実はそれは間違った認識です。

作るプログラムの規模次第ということが前提になるのです。 少ないイベントや分岐、浅いネスト構造、簡単な目的を達成するプログラムであれば、ビジュアルプログラミングのいいところだけで作れるはずです。 しかし、ゲームソフトのように状況変化が複雑であったり、画面の移り変わりがあったり、多様な設定を事前に設けたいとき、途端に少ない道具で目的を達成させる方法を編み出す難解なパズルに変わってしまいます。さらにその作り込んだブロックは独自のアルゴリズムになってしまい、製作者自身も間違いを正し整理直すことが難しいものになってしまうでしょう。

凝った仕掛けにしようとすると別の能力が必要

実際に見てみるには、たとえばScratchであれば、「見る」で投稿されている作品で良くできたゲームのようになっているものの「中を見る」を選んでみると状況は理解できるでしょう。 パッと見ても制作の意図がなかなか掴めないはずです。

プログラミングをやっている人間からみた不都合な部分を挙げて見ましょう。

テキストプログラミングでやればもっと短い方法で実現できる

ビジュアルプログラミングの記述方法の縛りだったり、用意されているコマンド種類の制限によって、独特の記法になっている可能性が高いのです。

ビジュアルプログラミングエディタで大変な部分

  • テキスト検索
    • テキストプログラミングであれば「テキスト検索」「参照の検索」が非常に有効なのですがそれに代わるものがないという操作性は状況把握しにくい原因となります。
  • コメントアウト
    • コード説明としてコメントがないのも著しく読む側の難易度を上げてしまいます。
    • 不要なコードを残しておく場合にもあとから明確に未使用なことがわかります。
  • コンソール
    • ちゃんと作っていくには絶対的に必要なコンソール(ログウィンドウ)がないのです。
    • どういう状況なのかを調べにくいことは間違いを発見できないことにつながります。

学習していくとテキストプログラミングができないとダメ

もっと遠い未来の思想は別ですが、大人の世界では当面の間、テキストでプログラミングができることのみがプログラミングができることを示します。 またビジュアルで制作できる便利なツールがなくもないのですが、本質的にはテキストプログラミングがゼロで済むことは決してありません。 ノーコードなプログラミングツールを作る人間がテキストプログラミングで仕組み化しているわけであり、ノーコードでできる範囲には予めサービス側が示した範囲のカスタマイズしかできないものです。 それは一般消費者がプログラミング的な成果を手軽に得たいときがメインターゲットになっているものでしょう。 またあるいはビジュアルなツールで作ったコンテンツに部分的にテキストコードを入れ込むものでしょう。

まとめ

ビジュアルプログラミングってどうなの?エンジニアからみた良し悪しのまとめです。

  • 直感的で理解しやすい
  • 小学生の思考を育てるがエンジニアには不要
  • 凝った仕掛けにしようとすると別の能力が必要
  • 結局学習していくとテキストプログラミングができないとダメ

いかがでしたか、プログラミング力を育てるためにビジュアルプログラミングを考えている方の参考になれば幸いです。

関連記事

betana.hatenablog.com

©️betana.hatenablog.com all rights reserved