
プログラミングは難しい?解その4
10月20日に投稿した”プログラミングは難しい?”の検索結果としてえられた10アイテムについて、当日コメントさせて頂いていました様に、インターネットの再検索による、確認と各々のアイテムの検索結果について、講師のコメントを公開させて頂こうと思います。
諸般の都合で、すいませんが、LISTの若番順では無く、講師が説明を作成しやすい順(必要時間の関係です)に解説させていただこうと思います。今回の対象は以下の黒太字のアイテムになります。(4番目です)
尚、タイトルの”解その*”は、アイテムLISTの番号に合致させてあります。
1.どの言語を学べばいいのかが分からない<=>習得難易度の高いプログラミング言語を選んでいる
2.プログラミング学習をするための準備が難しい
3.英語のドキュメントが多い
4.プログラミング特有の用語や専門用語が多い
5.膨大な基礎学習が必要
6.厳密な論理性が求められる
7.抽象性の高い思考も求められる
8.エラーが多すぎる
9.覚える事が多すぎる
10.苦手意識が強い
インターネット上の情報を”プログラミングは難しい プログラミング特有の用語や専門用語が多い”で再度検索したところ、第一検索結果から、”プログラミング特有の用語や専門用語が多い”に関する説明が出てくる様です。
その内容を少し引用し纏めてみると以下のような内容になる模様です。
プログラミングを習得するには、プログラミング特有の考え方や専門用語を理解する必要があります。
たとえば、初心者・未経験者の方には馴染みがないであろう、”変数”や”高水準言語”といった専門的な技術用語があります。
更に、”オブジェクト指向”などの理解は、プログラミング学習にはほぼ必須といえるでしょう。
”オブジェクト指向”は言わば、プログラミング独自の考え方・ルールであり、いずれも日常的に使用頻度の高い用語ではないため、”プログラミングは専門性が高い”と必要以上にハードルを上げてしまうと共に、難しさを感じてしまう一因なのかも知れません。
そこで、”オブジェクト指向”の複数のインターネット検索結果を以下の様に並べてみました。
オブジェクト指向=開発するもの一つひとつを”物”と捉えて、その仕組みを考えながらプログラムを作るという捉え方
基本的な考え方は、プログラムの中で扱いたい、現実世界の事物を模るためにオブジェクトを使用すること、またはそうしなければ使うことが難しいあるいは不可能だった機能にアクセスするための、シンプルな方法。
オブジェクトは、モデル化しようとしている事物に関する情報および、持たせたい機能や動作を表現する、関連したデータとコードを持つことができる。オブジェクトのデータ (通常、関数も含む) はオブジェクトのパッケージの中 (名前空間と呼ばれることもある) に適切に格納される (カプセル化と呼ばれています)。
オブジェクト指向とは、現実の世界でものを組み立てる時のようにプログラムを作る考え方。オブジェクトにはさまざまなデータや機能、動作を与え、パッケージの中に格納しておくことが可能。こうしたオブジェクトを複数用意し、それらを組み合わせながらプログラム全体を作るのがオブジェクト指向の考え方です。
実体のないものを物のように扱うというのが抽象的でわかりにくいことに加えて、オブジェクト指向というのはあくまでも考え方であるため、人によって解説の仕方が違うこともわかりにくい点となっている様です
また、この様な概念はそもそも抽象的なものなので、初心者・未経験者がそのすべてを短時間で理解することは難しいと言われており、その結果、多くの方がプログラミングに苦手意識を持つ一因になっている様です。
前述の”オブジェクト指向”の様なプログラミング独自の考え方の他に、数多くある専門用語を理解するには時間や労力が必要です。
プログラミングには”ソースコード”や”タグ”、ITのインフラ関係でもある言葉の”サーバ”、”フレームワーク”のような多くの方には聞きなれない専門用語が複数存在します。
そこで専門用語をインターネットで調べてみたところ、以下のような用語が挙げられていました。皆さんは意味が解りますでしょうか?講師にとっては、全て簡単に説明可能な範囲です。
高水準言語(高級言語)
ソースコード
実行形式(実行ファイル)
コンパイラ型(C、C++、C#、VB.NET等)
インタプリタ型(Perl,PHP,Ruby,Excel VBA等)
ロールバック
バグ
デバッグ
変数
代入
真と偽
算術演算子
比較演算子
論理演算子
関数
サーバー/クライアント
コメント
データベース
SQL
フレームワーク
個別の意味は、必要が有れば、インターネットの検索で確認をお願い致します。
”オブジェクト指向”の考え方・言葉は謂わばプログラミング言語特有のものかもしれませんが、使っていかないと、理解は難しいかもしれません。また、その他の言葉も覚えて、実際に使用しないと、理解を深める事は難しいかもしれません。
要するに、”習うより慣れよ!”ではありませんが、使いこなすことで、慣れていくしかないのではないでしょうか?
但し、これらの概念や専門用語は最初から完璧に理解していたり、覚えていないと、どうにもならないかというと、そうではないと思います。何故なら、言語に関連するIT系の言葉や概念は日進月歩で日々変わっていっていると思っても、間違いではないと思います。
従って、徐々に慣れていく、使えるようになる、という事でも、十分に対応していける様に講師は感じています。
皆さんは、プログラミングについて、どの様なご意見・イメージをお持ちでしょうか?
講師の経験が、皆様のお役に立てれば幸いです。