「プログラミング/学習方法」の版間の差分

s/プログラム言語/プログラミング言語/11
(s/プログラム言語/プログラミング言語/11)
タグ: 2017年版ソースエディター
 
 
なんで、わざわざこんな比喩を言うかというと、実は日本のネット上の電子掲示板などのアマチュアのIT評論家のなかには、実装の確認をあまりしてない人が、そこそこ多くいる。
たとえば、新しいプログラミング言語が出てくると、その言語の情報をネットで勉強するのだが、
しかし、まったく、実際にコンパイルして実行ファイルを作って確認したりはしないで、ただネット上の文字のみの情報を追いかけているような人。(単に不勉強な人なのか、それとも掲示板会社に雇われた書き込み業者か、あるいは情報商材屋による誘導記事か・・・。掲示板などには、各種の業者などの入り浸っている可能性もあるので、実際に動くコードを書ける人を信用しよう。)
 
 
というのも、IT技術では、実装のさいの制約がいろいろとあるのだ。
特定のミドルウェアをいくつもインストールしないといけないとか、それらミドルウェアの文法にしたがわないといけないとか。
 
 
また、日本では、そういう動くコードの書けない人でも、「基本情報技術者」みたいな名前の資格を取れてしまう。
 
資格試験は、必ずしも特定のプログラミング言語を目的にしたものではないので、試験でもプログラム技能は問われないが、しかし消費者のなかには、それに胡坐(アグラ)をかいて、いつまで経っても資格試験だけの肩書きのための机上の知識を求めていて、肝心のアプリ製作を始めようとしない人が残念ながら、けっこういるようだ。
 
 
== 教育の充実の必要性 ==
 
さて、実際の企業などでのIT業務は集団作業であるので、開発に採用するプログラミング言語などの技術は、教育をしやすい技術であることも重要である。
 
そのプログラミング言語の、初心者むけの解説書や解説サイトや電子掲示板などが、(すくなくとも日本では)充実していることも、重要である。そのコミュニティが、情報のやりとりをしやすいコミュニティであることも、重要である。
 
もし仮に、ある新プログラミング言語で、公式サイトで「Hello World」としか書けないサンプルコードしか公式サイトで紹介されない言語があったとしても、社会ではその言語はいらない。
 
 
このため、初心者は、市販の教材の充実している標準C言語や、あるいは JavaScript など90年代~2001年ごろからある言語や、流行して市販本も充実している Python などを学ぶのが良いだろう。
 
ネットでは、2010年以降の新らし目のプログラミング言語が取り沙汰される事も多いが、しかし、そういう新言語は大抵、市販の解説書も少ないので、初心者は避けるべきであろう。
 
それでも、どうしても新言語を初心者が学ぶなら、せめて公式サイトのチュートリアルで、条件分岐や繰り返しなど、最低限の制御構造くらいは、初心者むけの噛み砕いた説明が、公式サイトなどに完備している言語を学ぶべきだろう。
なぜなら、もし単に画面を文字を表示するだけなら、わざわざプログラムをする必要は無く、Windows「ペイント」や「メモ帳」のようなアプリでも充分だからだ。
 
ホームセンターでドリルを買っていく人の欲しい結果は、穴である。ドリルは手段でしかない。プログラミング言語も、手段でしかない。
 
== ユーザー視点の必要性 ==
諺(ことわざ)で「あちらを立てれば、こちらが立たず」と言いますように、イイとこ取りは出来ないのです。
 
なので、プログラミング言語そのものの開発では、理念の取捨選択が定期的に行われ、理念が変化します。
 
その理念が、「今後いつまで、その理念が続きそうか?」という予想も含めて、理念を分析するようにしましょう。
 
 
PythonにしろPHPにしろGo言語にしろ、登場したばかりの時や普及前のときは、文法が比較的に自由だったり不規則な記法が多くても、普及とともに、文法が厳格化していく事がよくあります。
 
なので、誕生時や普及前の理念を、いまだに鵜吞みにしつづけないように気をつけましょう。
 
=== web系の学習 ===
インターネットのプログラミングの学習では、まず、(プログラミング言語ではないですが)[[HTML]]の知識が必要です。
 
とりあえずHTMLで、文字の色を変えたりとか、表を作ったりとか、画像を表示したりできるレベルになるまでは、先にHTMLを学びましょう。
 
 
さて、HTMLで作ったwebページに、ユーザーからの入力に反応するなどの動作をつけるには、JavaScriptなど他のプログラミング言語が必要です。
 
web系のプログラミングでは、webに特化したプログラミング言語(JavaScriptまたはPHPやGo言語など)を使うほうが効率的です。
 
 
 
サーバ側だと、Apacheなどのサーバソフトの使い方も習得する必要があり、やや学習の敷居が高くなります。
 
 
なお、サーバ側もクライアント側も前提の知識として、HTMLの知識が両方とも必要です。
 
なお、Go言語は、サーバ系への特化を謳っていますが、現状(2020年に記述)では市販の解説本が不足しているのが難点です。
 
 
なお、web系の学習では、必ずwebブラウザ(FirefoxやGoogle Chrome や Microsoft Edge など)で実行結果を確認しましょう。
サーバー業界の実務では、サーバのOSは Linux が業界の標準です。
 
市販のプログラミング入門書だと、PHP などの操作説明で、Windows や mac OSmacOS などのOSで説明していたりする場合も多くありますが(出版社にとっての動作確認がWindowsやmacだとラクなのだろう)、しかし実務では、サーバOSはほぼ全てが Linux または BSD というオープンソースOSです。
 
極端な話、もしサーバ業界の実務につく気があるなら、PHPのマニアックな関数などの細かい仕様を学ぶよりも、まずLinuxの操作を習得するほうが先です。
2,688

回編集