General プログラミングの必要性

2016年5月30日 | General | コメント (0)

政府は、プログラミング学習を小中学校で2020年から段階的に必修にする方針を固めたそうですが、その必要性が話題になっています。

現実として、プログラミング言語はいくつもあり、分野によって使う言語は異なります。しかも流行り廃りがあります。

現在、iPhoneやマックのソフトウェア開発には、Objective-CからSwiftへシフト。アンドロイドはJava、ウェブプログラミングは、PerlやPHPなどをSQLと組み合わせてプログラミングします。Windowsは、今でもC++でしょうか、それともC#でしょうか。ソフトウェアの会社によっても使っている言語が違うことが多々あります。

大雑把にいえば、上記のプログラミング言語は、C言語からの派生です。英語を勉強した後に、フランス語やドイツ語を勉強するよりは、簡単で、C言語からの方言程度と考えていいと思います。かといって、初心者が最初にC言語を勉強すればいいというわけでもありません。

C言語では、iPhoneやアンドロイドのアプリを作るためのオブジェクトの考え方がないので、C言語からObjective-CやC++へ派生していきました。なので、C言語の勉強は無意味ではないのですが、実践力にはなりません。

プログラミング言語は、コンピュータと使う人が直接目にする画面との間で、橋渡しをするものです。使う人が、画面上に数字を入力し、OKボタンをクリックした時に、どのような処理をするのかということを記述していきます。

重要なのは、どのプログラミング言語を勉強するかではなく、どのプログラミング言語でも基本となる、独特の使い回しです。変数の考え方や、条件分岐や繰り返し処理などの使い方をマスターすることが基本です。Objective-CやC++などのオブジェクト指向のプログラミング言語には、クラスを使ったカプセル化を理解する必要もあります。

小学生用のビジュアルプログラミング言語が、プログラミングのどのレベルまで対応するかというのが気になります。MITメディアラボの開発したScratchは、条件分岐や繰り返し処理に対応しています。プログラミングの考え方を身につけるのには、良い入り口かもしれません。

しかし、プログラミング言語を勉強しても、わかる人にはわかるし、わからない人にはわからないという現実が待ち構えています。子供用のビジュアルプログラミング言語を楽しんだとしても、ある一定以上のプログラミングの考え方の壁にぶち当たってしまいます。また、それを乗り越える意味もそれほどないように思います。

実は、プログラミングより重要なのは、ソフトウェアのアイディア、あるいは仕様のあたり。プログラミング言語は、外国語を学ぶより、はるかに簡単です。外国語の文法や単語に相当する部分はシンプルで覚えることも少ないのです。それよりもどのように組み立てるか、どんなソフトウェアにするのかということのほうが難しいのです。外国語の勉強でも、文法や単語を勉強するより、実際に勉強した外国語を使いこなすことのほうが、苦労が多いのではないでしょうか。

そんな発想力を身につけることのほうが重要です。iPhoneやアンドロイドでどんなアプリがあったら、より便利になるのか、楽しく使えるようになるのか、というアイディアの部分です。それをどのように実現するか、どのようなしくみにするのか、という部分が重要で、プログラミングは、それらをコンピュータが理解できる手順に書き換えるだけなのです。

すでに日本人の中には、有能なプログラマーが世界中で活躍しています。問題は世界で通用するアプリを作る発想力がないことでしょう。

それでは、そのような発想力を育てるにはどうしたらよいのか。より便利に、より楽しく使えるようにしたいという気持ちが起きるまでiPhoneやアンドロイドを使っていくことなのかもしれません。なかなかハードルは高いです。だから一部のプログラマーと多数の使う人に別れてしまうのですから。

報道では、「人工知能(AI)などの普及を見据え、新しい技術を使いこなして付加価値の高い仕事につく人材を増やす狙い」とありますが、それはプログラミング学習では育たないということです。

ちなみに日本が外貨を稼いでいるのは、自動車、産業機械、電子部品、電化製品、鉄鋼といった工業製品です。アニメやゲームも話題に上がります。しかしどれも教育の中で重要視していません。コンピュータの学習を重要視した結果、手先が不器用な人間を増やしてしまっただけです。

Android 初めてのアンドロイドアプリ

2016年5月15日 | Android | コメント (0)

YouTubeを先生に、Google検索を参考書にして、Android Studioの勉強。今までもXcodeを勉強しようとして、挫折する中、今回はAndroidアプリを一つつくるところまでできました。

Xcodeがなぜ挫折したかというと、本を買ってきて、取り組むまでに少し時間が空き、その間に、XcodeのバージョンアップやObjective-CからSwiftへの移行などで、本の通りに事が進まず、次のページに行けないのが原因でした。たまたま変化が大きい時期だったのかもしれません。

アンドロイドアプリは、EclipseからAndroid Studioに開発環境が移行し、Android Studioのバージョンが2になって、情報が集めやすいという時期のようです。YouTubeで解説動画が複数あるのもありがたい。

今回、画面構築や設定保存(プリファレンス)やSQLiteを勉強し、作ったのは「減煙支援アプリ」。類似のアプリで減煙していたのですが、微妙に気に入らないところがあり、これを機会にアプリ作成の練習にしました。

作ったアプリは↓
Oceansoft Library - 減煙支援アプリ

過去を振り返れば、BASICで始まり、Pascalは独学。C言語はたまたま募集していたエプソンの講習会に参加して、納得理解。Windowsにプラットフォームを移し、Visual BASICからDelphiへ。これも独学。

XcodeもSwiftでも情報が出回っているはずなので、今度は大丈夫かなと考えています。本を買うよりYouTubeで講習をしてもらえるなんて、便利な時代です。

Modefy サイトをモバイル対応にする

2016年5月 1日 | Modefy | コメント (0)

やっと重い腰を上げて、今さらながらモバイル対応にしました。

ヘッダに
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" media="(max-width: 480px)" href="<$MTBlogURL$>mobile.css">

インデックステンプレートを作成
「スタイルシート(モバイル)」という名前で作成

#container {
width:100%;
}

#header {
width:100%;
}

#header-inner {
width:100%;
}

#header-content {
padding:0;
padding:5%;
margin:0;
width:90%;
}

#header-name, #header-description {
width:100%;
}

#content {
width:100%;
}

#content-inner {
width:100%;
}


.layout-wt #alpha {
width:100%;
}

#alpha-inner {
padding-left: 5%;
padding-right: 5%;
width:90%;
}

.asset {
width: 100%;
padding:0;
}

#beta, #gamma {
display: none;
}

#footer-inner {
padding:0;
width: 90%;
}

#footer-content {
margin:0;
}

#footer {
margin:0;
}

.widget, .widget-content {
margin:0;
}

img {
max-width: 100%;
height: auto;
}