初心者がプログラムの書き方を覚えるために

イチからプログラムを書くのは、初心者には非常にハードルが高い。
誰かの指導を受けることが出来ればいいが、ほとんどの人は独学で覚えている。
でも、なかなか一人でマスターするのが難しい。
PHPにしても、JavaScriptにしてもマニュアルはたくさんある。
マニュアルに書かれていることを暗記しようとすると、まず覚えることはできない。
ソースコードを実際に書くことが、修得の近道になる。
ただ、やみくもにソースコードを書いてもマスターできない。
何を書いているのか、理解していないとダメだ。
書籍を読んでマスターするためには、筆者がソースコードの注釈として書いてあるコメントが重要。
ソースコードより、そのコメントで、今何を記述しているか理解するのがいい。


そこで多くの人が躓くのが変数という存在。
変数は多くの場合、いきなり宣言されて、=で結ばれる。
プログラムは書いてある順番に流れて行く。(上から下に)
変数は、その中で今の状態を格納するためのモノだ。
よって、=は「等しい」のではなく、変数の右にある上に書かれた状態を代入している。
変数はその時の状態を格納していて、次の記述で変化すれば、新たな変数をつくる必要がある。
「状態が変わりますよ」というときに変数に代入している。
これは、正しい覚え方ではないのだろうけど、とりあえず、たぶん、そうなのだろうと思っておく。


それと、状態を変化させる記述をした後は、その状態が反映されたかどうかプログラムを実行する記述を書く。
そこで上手くいけば、実行するための記述は消すのではなく、コメントアウトしておく。
長い記述のプログラムでは、要件の変化などのデバッグに対応できる。


1.何を書いたのか理解するために、コメントはこまめに書く。
  (引き継ぎにも対応できる)
2.変数は状態を格納し、次の変化に渡すモノだと勝手に理解する。
  (変数が次の新たな変数に代入されたら、別モノだと考える)
3.たとえ100行程度でも、プログラムを初心者が最後まで書くのは無理。
  (変数が次の変数に渡された時点で、その変数(結果)が渡っているか状態を確認する)


自分はこんな感じでPHPJavaScriptに取り組んだ。
プログラムは、簡単でも予期せぬエラーに対応しないといけないから、開発には十分な時間が必要だ。
ロジックを考え、紙に書いて始めるのがいいと思う。

津波のエピソード

震災からそろそろ3カ月が経つ。
実際に被災した方もブログなどで、経験を語るようになった。
アルファルファモザイクのまとめ
【九死に】津波のエピソード【一生】
地元新聞の河北新報の特集は初めて見たが、読み応えがあった。
また、ブログも「模型工房」の方の書いた内容はいたたまれない気分になる。
スレッドの57番を読むと、3月11日の夜は地獄だったようだ。

Adobe Presenter

FlashがWEBページのパーツとして使われなくなってきた。
Adobeのホームページ自体、Flashがなくなっている。
ちょっと前まではもてはやされていたのに、Appleに見捨てられたのは痛い。
まあ、動画やアニメーションで残るとは思うけど。
Adobe PresenterはFlashテクノロジーを駆使した高価なソフトだ。
WEB会議、eラーニングコンテンツの作成、アンケートの取得など色んな事が出来る。
最近はあまり使うことがないが、PPTの原稿に音声ファイルを乗せて配布するのには便利だ。
だが、Firefoxで再生すると相性が悪い。今日も再生しなかった。
ローカルの環境に日本語の名前のフォルダにしていることが原因のようだ。
ハードディスクに移し、半角英語のフォルダ名に変えると、再生が始まった。
なぜかIEは日本語でも問題はない。普通、Firefoxの方が融通性があるのだけどな。
このあたりのトラブルシューティングAdobeはあまり発表しない。
以前から不親切で強欲なメーカーだと思っているが、どこかに買収された方がいいのでは?

取引先が無くなりそう

WEBの制作の仕事をいくつか請け負っていて、基本的には無理も聞いている。
中にはひどいところもある。
見積もりを出して、仕事を受けた後に3倍近いページ数を増やしてくる法人。
追加で見積もりを出すというと、「これ以上の金は出せない」という。
「じゃあ、これ以上の仕事はできませんね」と答えると、「次で埋め合わせをする」とのこと。
以前から継続的に発注があるから、仕方なしに受けたが、今回も同じことを言ってきた。
もう、契約は解消しようと思っているのだが、自分が制作にまわれば、何とかなる。
だから今回も請けることにした。
実は、自分はそこの親となる団体に所属している。
その法人は近いうちにどこかに吸収されると聞いているので、投げ出してもいい。
でも、予算も無いのに色々と考えて、工夫する担当者のことが嫌いではない。
彼との仕事は赤字だが、他で埋め合わせはできる。
その法人が、近いうちに消滅する日はもうすぐそばまで近づいている。
それでも、逆転を考えて、厚かましい依頼をしてくる担当者を見ておこうと思う。

日本が武力攻撃を受けた時の警報音

他国から武力攻撃を受けた時に、防災無線で鳴らされる警報音があるという。
それが国民保護のための情報伝達の手段のページに出ていて、実際に聞くことができる。
不安をあおる音だが、言葉によるアナウンスがなければ何のことかわからない。
「※このサイレン音を複製し、又は録音するなどして、みだりに吹鳴することを禁じます。」
と注意書きがあるが、ミサイルが飛んできたときに、この音を聞いても手遅れだろう。


このサイトを見つけたのはこの記事。
ロシアが30年間流し続けた「謎のブザー音」、止まる…
リンクされている全ての動画は見ていないが、不安な気分にはなる。

32768pxの記述に注意

CSSで複数のカラムの高さを合わせるために、以下の記述をすることがある。


padding-bottom: 32768px;
margin-bottom: -32768px;


一種のハックなのだが、この記述をして、ページ内にアンカーリンクを設定すると、レイアウトが崩れてしまう。(特にFirefoxでは顕著)


これを避けるためには、Tableタグを使うのが一番スマートな気がする。
<div>タグで設定している全体に<table>タグを置き、カラムの要素を<td>にする。
SEO的によくないと先入観があるかもしれないが、tableタグはカラムの構造にしか当てていない。
忌み嫌われるテーブルレイアウトをあえて使うのは抵抗があるかもしれない。
でも、このやり方で回避するのが手間がかからない。


今のところ、こんなこともあるからCSSも万能ではない。
ネガティブマージンなどのハックには落とし穴がある。

テーブルレイアウトはやめてくれ

自分が関わっているクライアントの中で、自分の手の及ばなかったところを再点検。
すると、これは10年前かというテーブルレイアウトのソースコードを見つけた。
SEO対策の障害になるので、制作した業者に作り直してほしいと連絡を入れた。
営業担当者と話をしたのだが、WEBの知識がなく、デザイナーに聞きながらのやり取りになった。
イライラしてきて、デザイナーの人と直接話をすることにした。
文書の記述はHTMLで書いてください。レイアウトのコントロールスタイルシートでお願いします。
ところが、「おっしゃる意味がわからないです」という返事だった。
印刷業者がついでにWEBも引き受けますよと言って、昔からそのまま継続している典型的な例だ。
この業者は切った方がいいとクライアントに連絡した。
印刷業者には過去の技術から成長していない連中が多いから注意したいところだ。
いまだにテーブルでしかデザインを作れない業者はもうきえてほしい。