<この記事の著者>
上田茂雄(ueponx) - Tech Team Journal
IoTと電子工作に情熱を持ち、プログラミングと最新のガジェットを好む。新しい技術を学びながら実践的なプロジェクトに取り組んでいる。技術を磨き、常に新たな挑戦。
この記事ではこれまでプログラミングの学習を行ったことのない初心者に向け、非常にハードルの低いブロックプログラミングの体験を通してプログラミングの初歩を体験する内容となります。
【目次】
なぜ今、大人もプログラミングを学ぶべきか?
生成AIでもコーディングを行えるようになってきている現在において、大人になってもプログラミングを学ぶ理由とは何でしょうか。筆者の経験から以下の点があるのではないかと考えています。
1. テクノロジーに対する理解が深まる
私たちの生活はテクノロジーによって成り立っていますが、その複雑さによって内容を理解するのは難しい状況です。プログラミングを学ぶことで、アプリやWebサイトがどのようにして動作しているのか、IoTデバイスがどのようにして情報を処理しているのかなど、テクノロジーの背後にある仕組みを理解できます。
2. 問題解決スキルの向上
プログラミングの本質は問題解決にあります。プログラミングを学ぶ過程では、論理的思考や創造的思考が鍛えられます。これらの考えるプロセスは、プログラミングの領域のみならず、職場や日常生活における様々な課題に対処する際にも役立つのではないでしょうか。また、新しいテクノロジーの理解や、それを応用する能力も身につけることができます。これは絶えず変化する現代の社会において非常に重要です。
3. コミュニケーションスキルの向上
プログラミングを学ぶ過程では、先に述べた技術的知識、論理的思考、問題解決能力がトレーニングされることで、エンジニアとのコミュニケーション能力も向上が見込めます。エンジニアとのプロジェクトにおいてもスムーズに要件定義や課題解決が行えることになるでしょう。
4. 職業の選択肢が広がる
プログラミングスキルは、現代の仕事において非常に重要な資質の一つです。技術関連の職種はもちろん、マーケティング、ファイナンス、教育など、様々な分野でもプログラミングが活用されています。プログラミングを学ぶことで、キャリアの選択肢が大きく広がると考えられます。
これらのメリットがあることで、大人といえどもプログラミングを学ぶ意義はあると考えられます。
プログラミングに関して全く学んだことのない方が、いきなりプログラミングを始めるのは非常に困難を伴うことは容易に硬いと思います。paiza timesを運営するpaizaの「paizaラーニング」もプログラミング学習の最適解のひとつです。
「paizaラーニング」では、未経験者でもブラウザさえあれば、今すぐプログラミングの基礎が動画で学べるレッスンを多数公開しております。
詳しくはこちら
また、ブロックプログラミングの作成体験を通してプログラミングの初歩体験を行うのもおすすめです。
EduBlocksとPython:初心者に易しい最初の一歩
EduBlocksの概要:ブロックベースのプログラミングとは?
EduBlocks(https://edublocks.org/)はAnaconda社(https://www.anaconda.com/)の無料学習ツールで、Pythonのようなテキストベースのプログラミング言語を親しみやすいブロックで学べるものです。
EduBlocksで作成したプログラムはPythonテキストコードへ簡単に変換できるので、学習が進んだ際、テキストベースのコーディング結果と比較を行うこともできるようになっています。
初めてのEduBlocksプログラム:シンプルな例で理解する
では、EduBlocksを使用して簡単なプログラミングを行ってみましょう。EduBlocksはブロック単位の処理を組み合わせることでプログラミングができます。Python1処理をブロックとする形でプログラミングを行えます。
前述のリンクにアクセスして、画面中程にある【Start Coding】ボタンをクリックします。
クリックすると、プロジェクト作成の画面が表示されます。Create New Projectにある【Python3】ボタンをクリックします。プロジェクト名とTYPE(ブロックプログラミングかテキストプログラミング)かを選択します。今回はTYPEにはブロックを選択してください。これでプログラミングの準備は完了です。ちなみにEduBlocksはPython3以外にHTMLなどの作成にもブロックプログラミングを適応できるようになっています。
準備ができると以下のような画面に遷移してプログラミングを行っていきます。画面の左にはプログラミングに使用するブロックが並んだToolbox、真ん中にはブロックを並べるWorkspace、ブロックで作成したプログラムをテキスト化してくれるCode tabがあります。また、画面の左上には保存用の【Save】ボタン、コード実行の【Run】ボタンがあります。
Toolboxに並ぶブロックはカテゴリー処理内容によりカテゴリー分けされています。クリックするとそのカテゴリーに属するブロックが現れるのでそれをドラッグアンドドロップしてワークスペースに並べることでプログラミングができます。
ブロックを並べた後は左上にある【Run】ボタンをクリックすると、Code Tabの部分にOutput Tabが現れ、実行結果が表示されます。
実行結果を見ても分かる通り、EduBlocksのUIは日本語の対応がされていないのですが、データとして日本語を使用することは可能になっています。はじめは日本語対応されていないのでとっつきにくいかなと思ったのですが、この後に控えるテキストコーディングのことを考えると、逆に英語になっていた方が、置き換えがしやすいと分かりました。これにより学習が進めやすくなると思います。
実践!EduBlocksで作る実用的なサンプル
ブロックプログラミングはテキストプログラミングに比べて高機能なことができないと思われがちですが、EduBlocksは非常に多機能です。というのも、Toolboxのimportブロックがあり、ここで必要なライブラリの呼び出しができます。次の例ではWebリクエストを行うrequestsライブラリとJSONデータを解析するjsonライブラリを使用して、気象庁のデータ作成されたデータを元に提供されている気象情報取得APIにアクセスして、現在の天気を表示するプログラムの作成をしてみます。(末尾の130000.jsonは東京地方を指定しています。)
1.Toolboxのimportからrequestsとjsonのブロックを接続
2.ToolboxのRequestsからr=requests.get()のブロックを接続
3.取得したデータからJSONデータを取得し変数dataに格納
ここで取得したJSONデータ(変数data)は以下のような形式になっています。
[ { "publishingOffice": "気象庁", "reportDatetime": "2024-04-18T22:00:00+09:00", "timeSeries": [ { "timeDefines": [ "2024-04-18T17:00:00+09:00", "2024-04-19T00:00:00+09:00", "2024-04-20T00:00:00+09:00" ], "areas": [ { "area": { "name": "東京地方", "code": "130010" }, "weatherCodes": [ "300", "100", "111" ], "weathers": [ "雨 所により 雷 を伴う", "晴れ 所により 明け方 まで 雨 で 雷を伴う", "晴れ 後 くもり" ], "winds": [ "北の風", "北の風 23区西部 では 北の風 やや強く", "北の風 後 南の風" ], "waves": [ "0.5メートル", "1メートル 後 1.5メートル", "0.5メートル" ] }, 以降省略
このデータには様々なデータが格納されていますが、そのうち時刻(timeDefines)、地域(area)、天気(weathers)の3つの項目だけを取得するようにします。jsonライブラリを使用することで、複雑なJSON形式のデータも配列や辞書と同様のアクセスが可能になります。以降、処理を続けます。
4.JSONデータのdataから天気を表す項目を指定し、変数に格納(date、area、weather)
5.変数に格納されたデータの内容をprintブロックを使用して画面表示
これで、気象情報取得API(REST API)にアクセスするプログラムが完成しました。
また、ブロックの作成とともにCode tabを見るとテキストプログラミングをした時のコードが出来上がっています。ブロックを作りながら、テキストコーディングも同時に行える点がEduBlocksの利点ではないでしょうか。
こちらのコードを実行するとOutput tabは以下のような表示になります。
おわりに:プログラミングのはじめの一歩
プログラミングを行ったことのない方でもEduBlocksを使用することで学習環境の準備をすることなく、プログラミングを体験ができ、この学習の経験を経て、Pythonのテキストプログラミングへとつなげることで、確実にプログラミングの力がついていくものと思います。
ブロックプログラミングは子どもの使うものという認識があるかもしれませんが、ブラウザだけで簡単に学習できるツールとして使うことは非常に有用ではないかと考えます。みなさんもプログラミングの第一歩を踏み出してみてはいかがでしょうか。
<参考資料とリンク>
EduBlocks … https://edublocks.org/
Anaconda … https://www.anaconda.com/
「paizaラーニング」では、未経験者でもブラウザさえあれば、今すぐプログラミングの基礎が動画で学べるレッスンを多数公開しております。
詳しくはこちら