誰かに「プログラミングって・・・こういう事なんです」と教える立場になって、一番最初に話のきっかけとして持ち出す話題、それが・・・
プログラム(コンピュータプログラム)とは、コンピュータに与え指示する「命令」を書き記したものである。
ということです。大概の教科書・参考書にもそう書いてあります。したがって、「プログラミングとは何でしょう?」という問いに対する答えは、
コンピュータに指示する「命令」を書き記したプログラムを作ること。
になります。
しかしながら、あえて今、この記事を書こうとしている理由というか、気持ちを伝えることが上手く出来るか心配しながら言いますと、そもそも、今どきのプログラミングが「命令(指示)を書き記す」と言って正解なのか?という疑問があります。
わたしがプログラムを書き始めた40年も昔だったら、「命令(指示)を書き記す」というのはかなり正解でした。記述する多くの部分が命令(指示)でしたから。この考え方はまあまあ分かりやすいので、今でも最初の第一歩はそこからでしょうね。
ところが、時代と共にプログラミングの技法・技術も進歩します。わたしが覚え始めた頃のプログラミング技術と今のものは、かなり、様変わりしました。
単に「何かをせよ・・・」的な発想から、そもそも、やろうとしている事や対象となるモノ(例えばデータ)はどういうものなのかを体系的にイメージして、その体系をプログラムの中で表現するとか、後々、別の状況や別のシステム、別のプログラムでも使えるような汎用性のある実体として作り上げておくとか・・・
そういう事を総合的に取り扱うことが「プログラムを作る」「プログラミングする」ことになってきました。
そういった考え方の一部に、従来からの命令的な部分も勿論あります。ところがそれ以上に、扱う対象であったり、データであったりをどう捉えると良いのかが、重要な「プログラミング技術」になってきました。
プログラミング言語も、そのような技術の進歩・変化に合わせて変わってきました。プログラマ(プログラミングする人)が非常に厳密に全てを決め、コンピュータに対してその内容を伝える必要がある・・・という考え方もあれば、状況によっては、コンピュータやプログラミング言語がある程度判断して(決め打ちで)動くから、プログラマは比較的あいまいな状態でプログラムを書いても良い・・・という考え方も出てきています。
そもそもどういう状況の中で、どんなプログラムを作るかで、プログラミング言語も異なるものが選ばれるし、身につけなくてはいけないプログラミング技術・知識も違うということになります。
おそらくは、オペレーティングシステムや、何かの効率的な制御とか、高い処理性能を出すことを目的とするようなプログラムを作るには、一から百までプログラマが全てを厳密に定義し、決めていくような作業が必要となります。
ところが、もっと応用的な、何かの分析とか数値計算とかグラフィカルな処理とかであれば、そういう厳密さを求めるよりも、やりたいこと(処理内容)を効率的に示すことに長けているプログラミング言語を使って、短時間でやりたいことを記述するプログラミングが良いということになります。
昔はプログラミング言語の選択肢が限られていましたので、プログラミングを学ぶと言えば、ある決まったプログラミング言語を使うことを学べば良かった。
今ではその選択肢が広がりました。したがって、コンピュータプログラムを書くということで、勉強しなくてはいけないことはそもそも何か・・・を自分で選ばなくてはいけません。
これからプログラミングを学ぼうとしている初心者、初学者だったら、何がいいのかなぁと考えました。
その一つの答えが、Python(パイソン)というプログラミング言語です。ここ最近、文科省は小学生にプログラミングを学ばせるのに、Scratch(スクラッチ)というプログラミングツールを使っていますが、スクラッチでは、色々なコンピュータの多様なプログラムを書くことはできません。あくまでもスクラッチの世界(”画面”の中)で何かの処理(例えばゲーム)をするにとどまります。
実際に何かに役立つプログラムを書こうとすれば、プログラム(”コード”と言います)を書き下す従来からのプログラミング言語のいずれかを学ぶ必要があります。
そういうプログラミング言語で、初心者がプログラミングを学ぶのに良いと思われるものの一つがパイソンです。
パイソンでは、何もかもを厳密に定義し書き下さなくても、多くのプログラマ(またはユーザー)が求める処理を、効率的に書けるようになっています。非常に良く出来ている。パイソン以外にもそういうプログラミング言語はありますが、最近はパイソンに人気が集中しているようです。
パイソンは、この40〜50年程のプログラミング技術の重要な考え方(構造化、オブジェクト指向)を使ったプログラミングができるように作られています。それでいて、効率よくプログラミングできる生産性の高さもあります。
誰かにプログラミングの初歩を教えたり、実際にやってみたりするのに、都合が良い道具立てもあります。
旭IT塾は、コンピュータ(パソコン)を使う基本から、応用的な使い方やソフト(アプリ)について教えることもしますし、将来、ITに関連する仕事をしようと思う学習者にプログラミングについても指導しますが、プログラミングについては、特別な希望がなければPython(パイソン)プログラミングをやろうと考えています。
小学校でスクラッチを使い、コンピュータプログラミングに興味・関心を持たれた若い人たち(小・中学生)が、本格的なプログラミングについて学びたい時に、Pythonプログラミングは良い入り口になるでしょう。
また、高校生や大学生で、プログラムを書けるようになりたいけれど、体系的にプログラミングを教えてくれるところと言えば、専門学校や専門のプログラミングスクールになってしまいますから、通っている学校での勉強を続けながら、その合間にプログラミング(基礎)を教えてくれるところはどこか?といった時に旭IT塾がお役に立ちます。
ちなみに日本の多くの大学では、体系的にプログラミングを学べるクラスは、理系であってもまだ少ないと言わざるを得ません。(わたしがIT企業で新卒採用の責任者をしていた時に、大学で本格的なプログラミングを学んでくるという学生は非常に少数でした。)
地域密着でやっているパソコン・IT学習塾ですので、できればこの地域のプログラミング初心者・初学者の皆さんに、プログラムを作るとはどうすればよいのかをお教えできたら良いと思っています。
学習者それぞれの状況を最初にお聞きして、目指す姿や目標を一緒に確認してから、必要なものや、学習内容を決めていきますので、やる気になった時が始め時・・・ということで、旭IT塾に問い合わせてください。お待ちしています。
コメント